       Performance of numerical functions decreases with time

• To: mathgroup <mathgroup at yoda.physics.unc.edu>
• Subject: Performance of numerical functions decreases with time
• From: Magnus Nordborg <magnus at fisher.stanford.edu>
• Date: Tue, 13 Jul 93 13:57:47 -0700

```Hi,

I have a "time-critical" question here.  I want to find the minimum of a simple
function for many different parameters.  I define something like:

MyFunction[d_,s_,z_,a_,b_,g_,k_] :=
Module[{fn,res},
fn = - 2*(1 - d)*M^z*(1 - M^g)^k*s -

(1 - M^g)^k*(1 - (1 - M^a)^b)*(1 - M^z*s);
res = FindMinimum[ fn, {M,0.5}][];
If[ MatchQ[res,{Rule_}],
M /. res,
(* else *)
res = FindMinimum[ fn, {M,0.1}][];
If[ MatchQ[res,{Rule_}],
M /. res,
(* else *)
res = FindMinimum[ fn, {M,0.9}][];
If[ MatchQ[res,{Rule_}],
M /. res,
(* else *)
Null
]
]
]
]

This particular pattern tries several starting points, but everything I say below applies
equally well to the simplest possible pattern.  Now, I am trying to use "Table" to find
the minimum for 10^5 different values, say.  I did some small number (like 10) and
then extrapolated to find that my job would take on the order of 20 hours (this is using
Sparc 2 and NeXT).  80 hours later the machines are still crunching.  So I did a little
test.  I timed 35 cases, then redid the same 35 cases, and so on 10 times.  To my
chagrin, I find that the performance is decreasing over time!

why = Table[ Timing[ Table[
{0.1,0.1,0.1,1.5,5,1.5,k,
MyFunction [0.1,0.1,0.1,1.5,5,1.5,k]},
{k,1.5,10,0.25}] ], {i,10} ];

Transpose[why][]

{23.8333 Second, 26.2833 Second, 28.85 Second,

31.6667 Second, 34.5167 Second, 37.0833 Second,

39.7 Second, 42.6 Second, 45.5 Second, 48.5833 Second}

It doesn't take the proverbial rocket scientist to see that if time to completion more
than doubles after doing 300 cases, 10^5 will take a bit MORE than 20 h...

What on earth is going on here?  What is causing this, and is there a work-around?
We really need these numbers fast, unfortunately.  Time for C...?

-Magnus
---
Magnus Nordborg
magnus at fisher.stanford.edu (NeXT mail preferred)
Department of Biological Sciences
Stanford University
Stanford, CA 94305-5020
+1 (415) 723-4952 (office)

P.S.  I'm using Mathematica 2.1 on NeXT and Sparc.

```

• Prev by Date: re: pure function puzzle
• Next by Date: Absoft
• Previous by thread: Re:Function Puzzle
• Next by thread: Re: Performance of numerical functions decreases with time