In[]:=
Needs["SubKernels`LocalKernels`"]​​Block[{$mathkernel=$mathkernel<>" -threadpriority=2"},LaunchKernels[]]
LinkObject
:Unable to communicate with closed link LinkObject["C:\Program Files\Wolfram Research\gridMathematica Server\11.3\WolframKernel" -noicon -subkernel -noinit -nopaclet -wstp -threadpriority=2,322,15].
LinkObject
:Unable to communicate with closed link LinkObject["C:\Program Files\Wolfram Research\gridMathematica Server\11.3\WolframKernel" -noicon -subkernel -noinit -nopaclet -wstp -threadpriority=2,324,17].
LinkObject
:Unable to communicate with closed link LinkObject["C:\Program Files\Wolfram Research\gridMathematica Server\11.3\WolframKernel" -noicon -subkernel -noinit -nopaclet -wstp -threadpriority=2,328,21].
General
:Further output of LinkObject::linkd will be suppressed during this calculation.
Parallel`Developer`ConnectKernel
::failinit
:8 of 16 kernels failed to initialize.
​
Out[]=
{KernelObject[1,local],KernelObject[2,local],KernelObject[3,local],KernelObject[4,local],KernelObject[6,local],KernelObject[8,local],KernelObject[9,local],KernelObject[10,local]}
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=64(*=4*numberofphysicalcores*),tsize=64,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);​​(*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[m-MRB1,20]
Start time is Tue 11 Mar 2025 08:12:01.
Iterations required: 13264
Will give 4 time estimates, each more accurate than the previous.
Will stop at 16384 iterations to ensure precsion of around 10049 decimal places.
Finished on Tue 11 Mar 2025 08:12:06. Proccessor and actual time were 0.75 and 4.8436925 s. respectively
Enter MRB1 to print 10043 digits. The error from a 6,500,000 or more digit calculation that used a different method is
Out[]=
-0.18785964246206712025+m
In[]:=
N[m6M-MRB1,20]
Out[]=
0.×
-10045
10
Out[]=
-0.18785964246206712025+m
In[]:=
Print["Start time is ",ds=DateString[],"."];​​prec=20000;​​(**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]
Start time is Fri 2 Aug 2024 11:28:50.
Iterations required: 26530
Will give 26 time estimates, each more accurate than the previous.
Will stop at 26624 iterations to ensure precsion of around 20099 decimal places.
Finished on Fri 2 Aug 2024 11:29:07. Proccessor and actual time were 4.29688 and 16.0950277 s. respectively
Enter MRB1 to print 20093 digits. The error from a 6,500,000 or more digit calculation that used a different method is
Out[]=
0.×
-20095
10
In[]:=
Print["Start time is ",ds=DateString[],"."];​​prec=30000;​​(**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Automatic]];​​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[m6M-MRB1,20]