In[]:=
Needs["SubKernels`LocalKernels`"]Block[{$mathkernel=$mathkernel<>" -threadpriority=2"},LaunchKernels[]]
Out[]=
$Failed
In[]:=
Print["Start time is ",ds=DateString[],"."];prec=6995;(**Numberofrequireddecimals.*.*)ClearSystemCache[];T0=SessionTime[];expM[pre_]:=Module[{a,d,s,k,bb,c,end,iprec,xvals,x,pc,cores=32(*=4*numberofphysicalcores*),tsize=2^7,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=Ceiling[pr/27];Do[xvals=Flatten[ParallelTable[Table[ll=start+j*tsize+l;x=N[E^(Log[ll]/(ll)),iprec];pc=iprec;While[pc<pr,pc=Min[3pc,pr];x=SetPrecision[x,pc];y=x^ll-ll;x=x(1-2y/((ll+1)y+2llll));];(**N[Exp[Log[ll]/ll],pr]**)x,{l,0,tsize-1}],{j,0,cores-1},Method"EvaluationsPerKernel"64(*apowerof2commensuratewithprocessorstrength*)]];ctab=ParallelTable[Table[c=b-c;ll=start+l-2;b*=2(ll+n)(ll-n)/((ll+1)(2ll+1));c,{l,chunksize}],Method"EvaluationsPerKernel"16(*apowerof2commensuratewithprocessorstrength*)];s+=ctab.(xvals-1);start+=chunksize;st=SessionTime[]-T0;kc=k*chunksize;ti=(st)/(kc+10^-4)*(n)/(3600)/(24);If[kc>1,Print[kc," iterations done in ",N[st,3]," seconds."," Should take ",N[ti,2]," days or ",N[ti*24*3600,2],"s, finish ",DatePlus[ds,ti],"."]];,{k,0,end-1}];N[-s/d,pr]];t2=Timing[MRBtest2=expM[prec];];Print["Finished on ",DateString[],". Processor time was ",t2[[1]]," s. Actual time was ",SessionTime[]-T0,"."];(*Print[*)MRBtest2(*]*)(*Remove(**)orenterMRBtest2toprintoutput*);Print["Enter MRBtest2 to print ",Floor[Precision[MRBtest2]]," digits"];Print["If you saved m3M, the difference between this and 3,014,991 known digits is ",N[MRBtest2-CMRB,10]];Print[];Print[];Print[];Print[];Print[];
Start time is Thu 7 Jul 2022 02:15:32.
Iterations required: 9278
Will give 3 time estimates, each more accurate than the previous.
Will stop at 12288 iterations to ensure precsion of around 7029 decimal places.
4096 iterations done in 1.68 seconds. Should take 0.000044 days or 3.8s, finish Thu 7 Jul 2022 02:15:35.
8192 iterations done in 2.46 seconds. Should take 0.000032 days or 2.8s, finish Thu 7 Jul 2022 02:15:34.
Finished on Thu 7 Jul 2022 02:15:34. Processor time was 2.17188 s. Actual time was 2.4629175.
Enter MRBtest2 to print 7024 digits
If you saved m3M, the difference between this and 3,014,991 known digits is 0.×
-7025
10
In[]:=
Pause[60]
In[]:=
Start time is Sun 3 Jul 2022 00:20:43.
Iterations required: 1325
Will give 1 time estimates, each more accurate than the previous.
Will stop at 4096 iterations to ensure precsion of around 1004 decimal places.
Finished on Sun 3 Jul 2022 00:20:43. Processor time was 0.109375 s. Actual time was 0.1496150.
Enter MRBtest2 to print 999 digits
If you saved m3M, the difference between this and 3,014,991 known digits is 0.1878596425-1.000000000m3M
Start time is Sun 3 Jul 2022 00:21:43.
Iterations required: 3315
Will give 1 time estimates, each more accurate than the previous.
Will stop at 4096 iterations to ensure precsion of around 2512 decimal places.
Finished on Sun 3 Jul 2022 00:21:43. Processor time was 0.234375 s. Actual time was 0.2656112.
Enter MRBtest2 to print 2507 digits
If you saved m3M, the difference between this and 3,014,991 known digits is 0.1878596425-1.000000000m3M
Start time is Sun 3 Jul 2022 00:22:43.
Iterations required: 6631
Will give 2 time estimates, each more accurate than the previous.
Will stop at 8192 iterations to ensure precsion of around 5024 decimal places.
4096 iterations done in 1.06 seconds. Should take 0.000020 days or 1.7s, finish Sun 3 Jul 2022 00:22:44.
Finished on Sun 3 Jul 2022 00:22:44. Processor time was 0.9375 s. Actual time was 1.0625974.
Enter MRBtest2 to print 5019 digits
If you saved m3M, the difference between this and 3,014,991 known digits is 0.1878596425-1.000000000m3M
Start time is Sun 3 Jul 2022 00:23:44.
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.
4096 iterations done in 2.23 seconds. Should take 0.000084 days or 7.2s, finish Sun 3 Jul 2022 00:23:51.
8192 iterations done in 3.31 seconds. Should take 0.000062 days or 5.4s, finish Sun 3 Jul 2022 00:23:49.
12288 iterations done in 4.36 seconds. Should take 0.000054 days or 4.7s, finish Sun 3 Jul 2022 00:23:48.
Finished on Sun 3 Jul 2022 00:23:49. Processor time was 3.85938 s. Actual time was 4.3601890.
Enter MRBtest2 to print 10043 digits
If you saved m3M, the difference between this and 3,014,991 known digits is 0.1878596425-1.000000000m3M
Start time is Sun 3 Jul 2022 00:24:49.
Iterations required: 26530
Will give 7 time estimates, each more accurate than the previous.
Will stop at 28672 iterations to ensure precsion of around 20099 decimal places.
4096 iterations done in 5.25 seconds. Should take 0.00039 days or 34.s, finish Sun 3 Jul 2022 00:25:23.
8192 iterations done in 7.91 seconds. Should take 0.00030 days or 26.s, finish Sun 3 Jul 2022 00:25:14.
12288 iterations done in 10.6 seconds. Should take 0.00027 days or 23.s, finish Sun 3 Jul 2022 00:25:11.
16384 iterations done in 13.2 seconds. Should take 0.00025 days or 21.s, finish Sun 3 Jul 2022 00:25:10.
20480 iterations done in 15.8 seconds. Should take 0.00024 days or 21.s, finish Sun 3 Jul 2022 00:25:09.
24576 iterations done in 18.3 seconds. Should take 0.00023 days or 20.s, finish Sun 3 Jul 2022 00:25:08.
Finished on Sun 3 Jul 2022 00:25:07. Processor time was 16.2969 s. Actual time was 18.2975319.
Enter MRBtest2 to print 20093 digits
If you saved m3M, the difference between this and 3,014,991 known digits is 0.1878596425-1.000000000m3M
Start time is Sun 3 Jul 2022 00:26:07.