Re: Re: Pi upto a Billion Digits
- To: mathgroup at smc.vnet.net
- Subject: [mg75728] Re: [mg75672] Re: Pi upto a Billion Digits
- From: "Szabolcs Horvát" <szhorvat at gmail.com>
- Date: Wed, 9 May 2007 04:35:18 -0400 (EDT)
- References: <f1msfm$rnf$1@smc.vnet.net>
On 08/05/07, DrMajorBob <drmajorbob at bigfoot.com> wrote: > On my machine (WinXP, Athlon 3200+, 2GB RAM, Mathematica 6), I estimate > 3.4 hours: Did you run the calculation? > > Timing[data = > Table[Update[]; > Log@{#, First@Timing[N[Pi, #]]} &[2^k 10^5], {k, 1, 8}]] > > {231.921, {{Log[200000], -1.06711}, {Log[400000], -0.226901}, {Log[ > 800000], 0.669879}, {Log[1600000], 1.50741}, {Log[3200000], > 2.37052}, {Log[6400000], 3.21451}, {Log[12800000], > 4.05123}, {Log[25600000], 4.87675}}} > > (I doubled two steps more than Szabolcs did.) > > The log-log data is VERY linear: > > Needs["LinearRegression`"] > AdjustedRSquared /. Regress[data, x, x] > > 0.999901 > > Clear[a, b, z, logSecs, hours] > model = a + b z; > logSecs[z_] = model /. FindFit[data, model, {a, b}, z] > hours[z_] := Exp[logSecs[Log[z]]]/60^2 > hours[10^9] > > -16.0424 + 1.22792 z > > 3.37132 > > Also note, omitting Update[] has NO effect on the timings: > > Timing[data = > Table[Log@{#, First@Timing[N[Pi, #]]} &[2^k 10^5], {k, 1, 8}]] > > {231.703, {{Log[200000], -1.07002}, {Log[400000], -0.207024}, {Log[ > 800000], 0.628609}, {Log[1600000], 1.52126}, {Log[3200000], > 2.36471}, {Log[6400000], 3.21133}, {Log[12800000], > 4.04989}, {Log[25600000], 4.8771}}} > > Bobby Update[] forces Mathematica to recalculate everything instead of using cached values. If it has no effect in Mathematica 6 that is very strange (it would mean that Mathematica 6 doesn't cache results in this case, and that the performance may be worse than in 5.2). Does it have an effect when you don't use it in Table[], but evaluate the expressions separately? In 5.2 it has a very noticeable effect: In[178]:= Update[] In[179]:= Timing[N[Pi,4*10^5];] Out[179]= {3.25 Second,Null} In[180]:= Timing[N[Pi,8*10^5];] Out[180]= {5.579 Second,Null} In[181]:= Update[] In[182]:= Timing[N[Pi,8*10^5];] Out[182]= {8.187 Second,Null} In[183]:= Update[] In[184]:= Table[Timing[N[Pi,k 4*10^5];],{k,2}] Out[184]= {{3.156 Second,Null},{5.625 Second,Null}} In[185]:= Update[] In[186]:= Table[Update[];Timing[N[Pi,k 4*10^5];],{k,2}] Out[186]= {{3.11 Second,Null},{8.062 Second,Null}} Szabolcs