CloseKernels[]
{KernelObject[14,local,<defunct>],KernelObject[15,local,<defunct>],KernelObject[16,local,<defunct>],KernelObject[17,local,<defunct>],KernelObject[18,local,<defunct>],KernelObject[19,local,<defunct>],KernelObject[20,local,<defunct>],KernelObject[21,local,<defunct>]}
In[]:=
Needs["SubKernels`LocalKernels`"]Block[{$mathkernel=$mathkernel<>" -threadpriority=2"},LaunchKernels[]]
Out[]=
{KernelObject[1,local],KernelObject[2,local],KernelObject[3,local],KernelObject[4,local],KernelObject[5,local],KernelObject[6,local],KernelObject[7,local],KernelObject[8,local],KernelObject[9,local],KernelObject[10,local],KernelObject[11,local],KernelObject[12,local],KernelObject[13,local],KernelObject[14,local],KernelObject[15,local],KernelObject[16,local]}
ClearSystemCache[]
CloseKernels[]
{KernelObject[1,local,<defunct>],KernelObject[2,local,<defunct>],KernelObject[3,local,<defunct>],KernelObject[4,local,<defunct>],KernelObject[5,local,<defunct>],KernelObject[6,local,<defunct>],KernelObject[7,local,<defunct>],KernelObject[8,local,<defunct>],KernelObject[9,local,<defunct>],KernelObject[10,local,<defunct>],KernelObject[11,local,<defunct>],KernelObject[12,local,<defunct>],KernelObject[13,local,<defunct>],KernelObject[14,local,<defunct>],KernelObject[16,local,<defunct>],KernelObject[17,local,<defunct>]}
Needs["SubKernels`LocalKernels`"]Block[{$mathkernel=$mathkernel<>" -threadpriority=2"},LaunchKernels[]]
{KernelObject[1,local],KernelObject[2,local],KernelObject[3,local],KernelObject[4,local],KernelObject[5,local],KernelObject[6,local],KernelObject[7,local],KernelObject[8,local],KernelObject[9,local],KernelObject[10,local],KernelObject[11,local],KernelObject[12,local],KernelObject[13,local],KernelObject[14,local],KernelObject[16,local],KernelObject[17,local]}
Print["Start time is ",ds=DateString[],"."];prec=5000;(**Numberofrequireddecimals.*.*)(*ClearSystemCache[];*)T0=SessionTime[];expM[pre_]:=Module[{x11,z,t,a,d,s,k,bb,c,end,iprec,xvals,x,pc,cores=32(*=4*numberofphysicalcores*),tsize=256,chunksize,start=1,ll,ctab,pr=Floor[1.005pre]},chunksize=cores*tsize;n=Floor[1.32pr];end=Ceiling[n/chunksize];Print["Iterations required: ",n];Print["Will give ",end," time estimates, each more accurate than the previous."];Print["Will stop at ",end*chunksize," iterations to ensure precsion of around ",pr," decimal places."];d=Cosh[2*n*ArcSinh[1]];{b,c,s}={SetPrecision[-1,1.1*n],-d,0};iprec=pr/64;Do[xvals=Flatten[ParallelTable[Table[ll=start+j*tsize+l;x=N[E^(Log[ll]/(ll)),iprec];pc=iprec;While[pc<pr,pc=Min[4pc,pr];x=SetPrecision[x,pc];xll=Power[x,ll];z=(ll-xll)/xll;t=2ll-1;t2=t^2;x*=(1+SetPrecision[4.5,pc](ll-1)/t2+(ll+1)z/(2llt)-SetPrecision[13.5,pc]ll(ll-1)/(3llt2+t^3z))];(**N[Exp[Log[ll]/ll],pr]**)x,{l,0,tsize-1}],{j,0,cores-1},Method"FinestGrained"]];ctab=ParallelTable[Table[c=b-c;ll=start+l-2;b*=2(ll+n)(ll-n)/((ll+1)(2ll+1));c,{l,chunksize}],Method"Automatic"];s+=ctab.(xvals-1);start+=chunksize;st=SessionTime[]-T0;kc=k*chunksize;ti=(st)/(kc+10^-4)*(n)/(3600)/(24);(*If[kc>1,Print["As of ",DateString[]," there were ",kc," iterations done in ",N[st,5]," seconds. That is ",N[kc/st,5]," iterations/s. ",N[kc/(end*chunksize)*100,7],"% complete."," It should take ",N[ti,6]," days or ",N[ti*24*3600,4],"s, and finish ",DatePlus[ds,ti],"."]];Print[];*),{k,0,end-1}];N[-s/d,pr]];t2=Timing[MRB1=expM[prec];];Print["Finished on ",DateString[],". Proccessor and actual time were ",t2[[1]]," and ",SessionTime[]-T0," s. respectively"];Print["Enter MRB1 to print ",Floor[Precision[MRB1]]," digits. The error from a 6,500,000 or more digit calculation that used a different method is "];N[m3M-MRB1,20]
Start time is Mon 18 Mar 2024 08:33:12.
Iterations required: 6631
Will give 1 time estimates, each more accurate than the previous.
Will stop at 8192 iterations to ensure precsion of around 5024 decimal places.
Finished on Mon 18 Mar 2024 08:33:13. Proccessor and actual time were 0.796875 and 0.8710556 s. respectively
Enter MRB1 to print 5019 digits. The error from a 6,500,000 or more digit calculation that used a different method is
-0.18785964246206712025+m3M
N[m3M-MRB1,20]
0.×
-5021
10
ClearSystemCache[];
ClearSystemCache[];
Nolimitmulticore6400MHZRAMforthefollowing10,000digitrun.
In[]:=
Print["Start time is ",ds=DateString[],"."];prec=10000;(**Numberofrequireddecimals.*.*)(*ClearSystemCache[];*)T0=SessionTime[];expM[pre_]:=Module[{x11,z,t,a,d,s,k,bb,c,end,iprec,xvals,x,pc,cores=32(*=4*numberofphysicalcores*),tsize=32,chunksize,start=1,ll,ctab,pr=Floor[1.005pre]},chunksize=cores*tsize;n=Floor[1.32pr];end=Ceiling[n/chunksize];Print["Iterations required: ",n];Print["Will give ",end," time estimates, each more accurate than the previous."];Print["Will stop at ",end*chunksize," iterations to ensure precsion of around ",pr," decimal places."];d=ChebyshevT[n,3];{b,c,s}={SetPrecision[-1,1.1*n],-d,0};iprec=pr/64;Do[xvals=Flatten[ParallelTable[Table[ll=start+j*tsize+l;x=N[E^(Log[ll]/(ll)),iprec];pc=iprec;While[pc<pr,pc=Min[4pc,pr];x=SetPrecision[x,pc];xll=Power[x,ll];z=(ll-xll)/xll;t=2ll-1;t2=t^2;x*=(1+SetPrecision[4.5,pc](ll-1)/t2+(ll+1)z/(2llt)-SetPrecision[13.5,pc]ll(ll-1)/(3llt2+t^3z))];(**N[Exp[Log[ll]/ll],pr]**)x,{l,0,tsize-1}],{j,0,cores-1},Method"FinestGrained"]];ctab=ParallelTable[Table[c=b-c;ll=start+l-2;b*=2(ll+n)(ll-n)/((ll+1)(2ll+1));c,{l,chunksize}],Method"Automatic"];s+=ctab.(xvals-1);start+=chunksize;st=SessionTime[]-T0;kc=k*chunksize;ti=(st)/(kc+10^-4)*(n)/(3600)/(24);,{k,0,end-1}];N[-s/d,pr]];t2=Timing[MRB1=expM[prec];];Print["Finished on ",DateString[],". Proccessor and actual time were ",t2[[1]]," and ",SessionTime[]-T0," s. respectively"];Print["Enter MRB1 to print ",Floor[Precision[MRB1]]," digits. The error from a 6,500,000 or more digit calculation that used a different method is "];N[m3M-MRB1,20]