mersenneforum.org  

Go Back   mersenneforum.org > Great Internet Mersenne Prime Search > Hardware > GPU Computing

Reply
 
Thread Tools
Old 2020-02-27, 07:02   #287
Fan Ming
 
Oct 2019

5×19 Posts
Default

A simple PARI/GP script imitated from what Gerbicz wrote from Gerbicz error checking.
Note I've never used PARI/GP, so notify me if any errors in the script.
(WARNING: this code take a long time to run, it perform LL test of 2^1277-1 50000+times)
Code:
myrand(r,N)={local(tmp);while(1,tmp=random(N);if(tmp!=0&&lift(tmp+r)!=0,return(tmp+r)))}
cccheck(errpos, printres=0)={
u0=Mod(4,3^41 * (2^1277-1)); u1 = Mod(4, 3^41);
a = Mod(0,2);
for (i = 0,1274,u0 = u0^2-2; u1 = u1^2-2; if(i == errpos, u0 = myrand(u0, 3^41*(2^1277-1)));if (Mod(u0, 3^41) != u1, a = Mod(1,2)););
if (printres == 1 && a == Mod(0,2), print(lift(Mod(u0, 2^1277-1))));
return (lift(a))
}
print(sum(h=0,50000,cccheck(h % 1275)));
print(cccheck(-1, 1));
It first perform LL-test of 2^1277-1 for 50001 times, with errors injected at different iteration as ramdom numbers, then perform a normal LL test of 2^1277-1 without errors injected.
Output:
Code:
50001
1276580757103092030698405415644269102473425184411696162236230044356664379765394328578804595599481448575661439604643644368353878452992502625008757464126785368605418329854744274283527635433468884154209759574142736710981207231898196954942930683501084241462546175107408752383678006198687510092882184165074584964964233439141669589060010419102528539033939843588227313553975636211664535058618
0
The first line is the times detected with errors, so all 50001 errors were detected.
The second line is the result (full LL residue of 2^1277-1) of the run without errors injected, and the third line 0 means no errors deteced in this run(this run is without errors injected, so expected result).
So the only problem is whether acutally feasible with LL iterations modulo k*Mp using IBDWT, if yes, how much overhead will be(I guess less than 10%, though involves FFT length rechoose).

Last fiddled with by Fan Ming on 2020-02-27 at 07:08
Fan Ming is offline   Reply With Quote
Old 2020-02-27, 14:13   #288
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

17·487 Posts
Default

Quote:
Originally Posted by Fan Ming View Post
So the only problem is whether acutally feasible with LL iterations modulo k*Mp using IBDWT, if yes, how much overhead will be(I guess less than 10%, though involves FFT length rechoose).
Prime95 can do IBDWT on k*2^n-1. It would need to be optimized to handle k=3^(large power).

You can test how much slower it would be. Simply get iteration timings on a several samples of a PRP test on 3*2^x-1 compared to iteration timings on an LL test of 2^x-1. Note that the biggest penalty is likely to come from 3*2^x-1 using larger FFT sizes.
Prime95 is offline   Reply With Quote
Old 2020-02-27, 17:31   #289
R. Gerbicz
 
R. Gerbicz's Avatar
 
"Robert Gerbicz"
Oct 2005
Hungary

110011010012 Posts
Default

Quote:
Originally Posted by Prime95 View Post
Prime95 can do IBDWT on k*2^n-1. It would need to be optimized to handle k=3^(large power).

You can test how much slower it would be. Simply get iteration timings on a several samples of a PRP test on 3*2^x-1 compared to iteration timings on an LL test of 2^x-1. Note that the biggest penalty is likely to come from 3*2^x-1 using larger FFT sizes.
Correction, you need k*Mn=k*2^n-k, likely it is not worth.
It was already suggested, for general number it is still worth, say for N=n! [it has short form, but the prp test isn't faster on this], openPfgw could use it. (You can also use even larger c value for N'=c*N).
R. Gerbicz is offline   Reply With Quote
Old 2020-02-27, 18:03   #290
Fan Ming
 
Oct 2019

5·19 Posts
Default

Quote:
Originally Posted by Prime95 View Post
Prime95 can do IBDWT on k*2^n-1. It would need to be optimized to handle k=3^(large power).

You can test how much slower it would be. Simply get iteration timings on a several samples of a PRP test on 3*2^x-1 compared to iteration timings on an LL test of 2^x-1. Note that the biggest penalty is likely to come from 3*2^x-1 using larger FFT sizes.
I took a rough test on single core colab instances. Here is the comparsion.
Code:
Your choice: [Work thread Feb 27 14:47] Worker starting
[Work thread Feb 27 14:47] Starting primality test of M88693651 using FMA3 FFT length 4800K, Pass1=640, Pass2=7680, clm=2
[Work thread Feb 27 14:53] Iteration: 10000 / 88693651 [0.01%], ms/iter: 32.722, ETA: 33d 14:04
[Work thread Feb 27 14:58] Iteration: 20000 / 88693651 [0.02%], ms/iter: 32.783, ETA: 33d 15:29
[Work thread Feb 27 15:04] Iteration: 30000 / 88693651 [0.03%], ms/iter: 32.706, ETA: 33d 13:30

Your choice: [Main thread Feb 27 15:12] Starting worker.
[Work thread Feb 27 15:12] Worker starting
[Work thread Feb 27 15:12] Trying backup intermediate file: p3_88693651.bad1
[Work thread Feb 27 15:12] Error reading intermediate file: p3_88693651.bad1
[Work thread Feb 27 15:12] Starting Gerbicz error-checking PRP test of 3*2^88693651-1 using FMA3 FFT length 5M, Pass1=1280, Pass2=4K, clm=1
[Work thread Feb 27 15:18] Iteration: 10000 / 88693652 [0.01%], ms/iter: 36.078, ETA: 37d 00:45
[Work thread Feb 27 15:24] Iteration: 20000 / 88693652 [0.02%], ms/iter: 35.722, ETA: 36d 15:52
[Work thread Feb 27 15:30] Iteration: 30000 / 88693652 [0.03%], ms/iter: 35.554, ETA: 36d 11:39
[Work thread Feb 27 15:36] Iteration: 40000 / 88693652 [0.04%], ms/iter: 35.281, ETA: 36d 04:49


Your choice: [Work thread Feb 27 14:49] Worker starting
[Work thread Feb 27 14:49] Starting primality test of M88693651 using FMA3 FFT length 4800K, Pass1=640, Pass2=7680, clm=2
[Work thread Feb 27 14:54] Iteration: 10000 / 88693651 [0.01%], ms/iter: 32.742, ETA: 33d 14:35
[Work thread Feb 27 15:00] Iteration: 20000 / 88693651 [0.02%], ms/iter: 33.000, ETA: 33d 20:50
[Work thread Feb 27 15:05] Iteration: 30000 / 88693651 [0.03%], ms/iter: 32.097, ETA: 32d 22:31

Your choice: [Work thread Feb 27 15:14] Worker starting
[Work thread Feb 27 15:14] Trying backup intermediate file: p3_88693651.bad1
[Work thread Feb 27 15:14] Error reading intermediate file: p3_88693651.bad1
[Work thread Feb 27 15:14] Starting Gerbicz error-checking PRP test of 3*2^88693651-1 using FMA3 FFT length 5M, Pass1=1280, Pass2=4K, clm=1
[Work thread Feb 27 15:20] Iteration: 10000 / 88693652 [0.01%], ms/iter: 35.853, ETA: 36d 19:13
[Work thread Feb 27 15:25] Iteration: 20000 / 88693652 [0.02%], ms/iter: 35.412, ETA: 36d 08:15
[Work thread Feb 27 15:31] Iteration: 30000 / 88693652 [0.03%], ms/iter: 35.034, ETA: 35d 22:51
[Work thread Feb 27 15:37] Iteration: 40000 / 88693652 [0.04%], ms/iter: 35.155, ETA: 36d 01:43


Your choice: [Work thread Feb 27 15:44] Worker starting
[Work thread Feb 27 15:44] Starting primality test of M90694787 using FMA3 FFT length 4800K, Pass1=640, Pass2=7680, clm=2
[Work thread Feb 27 15:49] Iteration: 10000 / 90694787 [0.01%], ms/iter: 31.938, ETA: 33d 12:31
[Work thread Feb 27 15:55] Iteration: 20000 / 90694787 [0.02%], ms/iter: 31.585, ETA: 33d 03:33
[Work thread Feb 27 16:00] Iteration: 30000 / 90694787 [0.03%], ms/iter: 32.034, ETA: 33d 14:45

Your choice: [Work thread Feb 27 16:09] Worker starting
[Work thread Feb 27 16:09] Trying backup intermediate file: p3_90694787.bad1
[Work thread Feb 27 16:09] Error reading intermediate file: p3_90694787.bad1
[Work thread Feb 27 16:09] Starting Gerbicz error-checking PRP test of 3*2^90694787-1 using FMA3 FFT length 5M, Pass1=1280, Pass2=4K, clm=1
[Work thread Feb 27 16:15] Iteration: 10000 / 90694788 [0.01%], ms/iter: 35.684, ETA: 37d 10:53
[Work thread Feb 27 16:21] Iteration: 20000 / 90694788 [0.02%], ms/iter: 35.282, ETA: 37d 00:40
[Work thread Feb 27 16:27] Iteration: 30000 / 90694788 [0.03%], ms/iter: 35.156, ETA: 36d 21:23
[Work thread Feb 27 16:32] Iteration: 40000 / 90694788 [0.04%], ms/iter: 35.087, ETA: 36d 19:32

Your choice: [Work thread Feb 27 15:43] Worker starting
[Work thread Feb 27 15:43] Starting primality test of M90694787 using FMA3 FFT length 4800K, Pass1=640, Pass2=7680, clm=2
[Work thread Feb 27 15:49] Iteration: 10000 / 90694787 [0.01%], ms/iter: 33.529, ETA: 35d 04:35
[Work thread Feb 27 15:55] Iteration: 20000 / 90694787 [0.02%], ms/iter: 33.561, ETA: 35d 05:18
[Work thread Feb 27 16:00] Iteration: 30000 / 90694787 [0.03%], ms/iter: 33.455, ETA: 35d 02:32

Your choice: [Work thread Feb 27 16:07] Worker starting
[Work thread Feb 27 16:07] Starting Gerbicz error-checking PRP test of 3*2^90694787-1 using FMA3 FFT length 5M, Pass1=1280, Pass2=4K, clm=1
[Work thread Feb 27 16:13] Iteration: 10000 / 90694788 [0.01%], ms/iter: 36.393, ETA: 38d 04:44
[Work thread Feb 27 16:19] Iteration: 20000 / 90694788 [0.02%], ms/iter: 35.935, ETA: 37d 17:06
[Work thread Feb 27 16:25] Iteration: 30000 / 90694788 [0.03%], ms/iter: 36.206, ETA: 37d 23:50
[Work thread Feb 27 16:31] Iteration: 40000 / 90694788 [0.04%], ms/iter: 35.812, ETA: 37d 13:49


Your choice: [Work thread Feb 27 16:48] Worker starting
[Work thread Feb 27 16:48] Starting primality test of M95046071 using FMA3 FFT length 5M, Pass1=1280, Pass2=4K, clm=1
[Work thread Feb 27 16:54] Iteration: 10000 / 95046071 [0.01%], ms/iter: 34.930, ETA: 38d 10:07
[Work thread Feb 27 17:00] Iteration: 20000 / 95046071 [0.02%], ms/iter: 35.271, ETA: 38d 19:01
[Work thread Feb 27 17:05] Iteration: 30000 / 95046071 [0.03%], ms/iter: 34.822, ETA: 38d 07:03

Your choice: [Work thread Feb 27 17:11] Worker starting
[Work thread Feb 27 17:11] Trying backup intermediate file: p3_95046071.bad1
[Work thread Feb 27 17:11] Error reading intermediate file: p3_95046071.bad1
[Work thread Feb 27 17:11] Starting Gerbicz error-checking PRP test of 3*2^95046071-1 using FMA3 FFT length 5376K, Pass1=896, Pass2=6K, clm=2
[Work thread Feb 27 17:17] Iteration: 10000 / 95046072 [0.01%], ms/iter: 36.443, ETA: 40d 02:04
[Work thread Feb 27 17:23] Iteration: 20000 / 95046072 [0.02%], ms/iter: 35.522, ETA: 39d 01:38
[Work thread Feb 27 17:29] Iteration: 30000 / 95046072 [0.03%], ms/iter: 35.560, ETA: 39d 02:32
[Work thread Feb 27 17:35] Iteration: 40000 / 95046072 [0.04%], ms/iter: 35.273, ETA: 38d 18:51

Your choice: [Work thread Feb 27 17:06] Worker starting
[Work thread Feb 27 17:06] Starting primality test of M95046071 using FMA3 FFT length 5M, Pass1=1280, Pass2=4K, clm=1
[Work thread Feb 27 17:12] Iteration: 10000 / 95046071 [0.01%], ms/iter: 35.555, ETA: 39d 02:36
[Work thread Feb 27 17:18] Iteration: 20000 / 95046071 [0.02%], ms/iter: 35.714, ETA: 39d 06:43
[Work thread Feb 27 17:24] Iteration: 30000 / 95046071 [0.03%], ms/iter: 35.829, ETA: 39d 09:38

Your choice: [Work thread Feb 27 17:31] Worker starting
[Work thread Feb 27 17:31] Trying backup intermediate file: p3_95046071.bad1
[Work thread Feb 27 17:31] Error reading intermediate file: p3_95046071.bad1
[Work thread Feb 27 17:31] Starting Gerbicz error-checking PRP test of 3*2^95046071-1 using FMA3 FFT length 5376K, Pass1=896, Pass2=6K, clm=2
[Work thread Feb 27 17:38] Iteration: 10000 / 95046072 [0.01%], ms/iter: 36.528, ETA: 40d 04:17
[Work thread Feb 27 17:44] Iteration: 20000 / 95046072 [0.02%], ms/iter: 35.815, ETA: 39d 09:22
[Work thread Feb 27 17:50] Iteration: 30000 / 95046072 [0.03%], ms/iter: 36.032, ETA: 39d 15:00
[Work thread Feb 27 17:56] Iteration: 40000 / 95046072 [0.04%], ms/iter: 36.068, ETA: 39d 15:51
The timings first x iterations is generally known to be a little slower in PRP tests.
About 3% ~ 10% overhead for FFT length rechoose.

For 3^m*(2^p-1)=3^m*2^p-3^m, according to the rules in Percival, C.'s paper, the base in every word seems slightly smaller, and the weight seems slightly larger compared to 3*2^p-1. Not need too larger FFT I guess, likely near to what 3*2^p-1 chooses.

Last fiddled with by Fan Ming on 2020-02-27 at 18:08
Fan Ming is offline   Reply With Quote
Old 2020-02-27, 18:19   #291
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

17·487 Posts
Default

Quote:
Originally Posted by Fan Ming View Post
For 3^m*(2^p-1)=3^m*2^p-3^m, according to the rules in Percival, C.'s paper, the base in every word seems slightly smaller, and the weight seems slightly larger compared to 3*2^p-1. Not need too larger FFT I guess, likely near to what 3*2^p-1 chooses.
Two problems:

1) IBDWT on k*2^n+c, the impact on FFT size for c is much greater than the impact on FFT size for k. To see this, rerun your example on 2^88693651-3.
2) I'm not sure prime95 can handle numbers 3*2^n-3 (it may refuse to, I'm not sure). When the entire number is divisible by small primes, the FFT data sometimes does not behave in a random way which increases the roundoff error in hard to predict ways.

Congratulations on your efforts though. To my knowledge, no one has proposed such an effective error check to date. Sadly, the 10% or more overhead is too great.
Prime95 is offline   Reply With Quote
Old 2020-02-28, 07:05   #292
Fan Ming
 
Oct 2019

5×19 Posts
Default

Quote:
Originally Posted by Prime95 View Post
Two problems:

1) IBDWT on k*2^n+c, the impact on FFT size for c is much greater than the impact on FFT size for k. To see this, rerun your example on 2^88693651-3.
I did a rough test on several 2^x-3, sometimes the FFT length is the same as that of 3*2^x-1, sometimes the FFT is indeed larger, thus cost more time:
Code:
Your choice: [Work thread Feb 28 04:23] Worker starting
[Work thread Feb 28 04:23] Starting Gerbicz error-checking PRP test of 2^88693651-3 using FMA3 FFT length 5M, Pass1=1280, Pass2=4K, clm=1
[Work thread Feb 28 04:29] Iteration: 10000 / 88693651 [0.01%], ms/iter: 34.705, ETA: 35d 14:56
[Work thread Feb 28 04:35] Iteration: 20000 / 88693651 [0.02%], ms/iter: 34.295, ETA: 35d 04:44
[Work thread Feb 28 04:41] Iteration: 30000 / 88693651 [0.03%], ms/iter: 34.296, ETA: 35d 04:39
[Work thread Feb 28 04:46] Iteration: 40000 / 88693651 [0.04%], ms/iter: 34.175, ETA: 35d 01:36

Your choice: [Main thread Feb 28 04:50] Starting worker.
[Work thread Feb 28 04:50] Worker starting
[Work thread Feb 28 04:50] Starting Gerbicz error-checking PRP test of 2^88693651-3 using FMA3 FFT length 5M, Pass1=1280, Pass2=4K, clm=1
[Work thread Feb 28 04:55] Iteration: 10000 / 88693651 [0.01%], ms/iter: 34.203, ETA: 35d 02:33
[Work thread Feb 28 05:01] Iteration: 20000 / 88693651 [0.02%], ms/iter: 33.726, ETA: 34d 14:44
[Work thread Feb 28 05:07] Iteration: 30000 / 88693651 [0.03%], ms/iter: 33.960, ETA: 34d 20:23
[Work thread Feb 28 05:12] Iteration: 40000 / 88693651 [0.04%], ms/iter: 34.221, ETA: 35d 02:44


Your choice: [Work thread Feb 28 04:56] Worker starting
[Work thread Feb 28 04:56] Starting Gerbicz error-checking PRP test of 2^90694787-3 using FMA3 FFT length 5376K, Pass1=896, Pass2=6K, clm=2
[Work thread Feb 28 05:02] Iteration: 10000 / 90694787 [0.01%], ms/iter: 35.293, ETA: 37d 01:02
[Work thread Feb 28 05:07] Iteration: 20000 / 90694787 [0.02%], ms/iter: 34.805, ETA: 36d 12:38
[Work thread Feb 28 05:13] Iteration: 30000 / 90694787 [0.03%], ms/iter: 34.814, ETA: 36d 12:46
[Work thread Feb 28 05:19] Iteration: 40000 / 90694787 [0.04%], ms/iter: 34.829, ETA: 36d 13:03

Your choice: [Work thread Feb 28 05:25] Worker starting
[Work thread Feb 28 05:25] Starting Gerbicz error-checking PRP test of 2^90694787-3 using FMA3 FFT length 5376K, Pass1=896, Pass2=6K, clm=2
[Work thread Feb 28 05:31] Iteration: 10000 / 90694787 [0.01%], ms/iter: 34.476, ETA: 36d 04:27
[Work thread Feb 28 05:36] Iteration: 20000 / 90694787 [0.02%], ms/iter: 33.974, ETA: 35d 15:43
[Work thread Feb 28 05:42] Iteration: 30000 / 90694787 [0.03%], ms/iter: 34.451, ETA: 36d 03:38
[Work thread Feb 28 05:48] Iteration: 40000 / 90694787 [0.04%], ms/iter: 34.636, ETA: 36d 08:12


Your choice: [Work thread Feb 28 05:23] Worker starting
[Work thread Feb 28 05:23] Starting Gerbicz error-checking PRP test of 2^95046071-3 using FMA3 FFT length 5760K, Pass1=1536, Pass2=3840, clm=2
[Work thread Feb 28 05:30] Iteration: 10000 / 95046071 [0.01%], ms/iter: 40.401, ETA: 44d 10:32
[Work thread Feb 28 05:36] Iteration: 20000 / 95046071 [0.02%], ms/iter: 39.938, ETA: 43d 22:11
[Work thread Feb 28 05:43] Iteration: 30000 / 95046071 [0.03%], ms/iter: 39.854, ETA: 43d 19:53
[Work thread Feb 28 05:49] Iteration: 40000 / 95046071 [0.04%], ms/iter: 39.849, ETA: 43d 19:38

Your choice: [Work thread Feb 28 05:58] Worker starting
[Work thread Feb 28 05:58] Starting Gerbicz error-checking PRP test of 2^95046071-3 using FMA3 FFT length 5760K, Pass1=1536, Pass2=3840, clm=2
[Work thread Feb 28 06:05] Iteration: 10000 / 95046071 [0.01%], ms/iter: 39.865, ETA: 43d 20:24
[Work thread Feb 28 06:11] Iteration: 20000 / 95046071 [0.02%], ms/iter: 39.454, ETA: 43d 09:25
[Work thread Feb 28 06:18] Iteration: 30000 / 95046071 [0.03%], ms/iter: 39.867, ETA: 43d 20:12
[Work thread Feb 28 06:25] Iteration: 40000 / 95046071 [0.04%], ms/iter: 39.577, ETA: 43d 12:27

Quote:
2) I'm not sure prime95 can handle numbers 3*2^n-3 (it may refuse to, I'm not sure). When the entire number is divisible by small primes, the FFT data sometimes does not behave in a random way which increases the roundoff error in hard to predict ways.
It will deny because it's divisble by 3. Add a known factor "3^k" (usually 3) will work. However, it will treat this as general number and using gengeral modular reduction.

k = 2^m will also work, ramdom errors will also be all caught:
Code:
myrand(r,N)={local(tmp);while(1,tmp=random(N);if(tmp!=0&&lift(tmp+r)!=0,return(tmp+r)))}
cccheck(errpos, printres=0)={
u0=Mod(4,2^41 * (2^1277-1)); u1 = Mod(4, 2^41);
a = Mod(0,2);
for (i = 0,1274,u0 = u0^2-2; u1 = u1^2-2; if(i == errpos, u0 = myrand(u0, 2^41*(2^1277-1)));if (Mod(u0, 2^41) != u1, a = Mod(1,2)););
if (printres == 1 && a == Mod(0,2), print(lift(Mod(u0, 2^1277-1))));
return (lift(a))
}
print(sum(h=0,50000,cccheck(h % 1275)));
print(cccheck(-1, 1));
Output:
Code:
50001
1276580757103092030698405415644269102473425184411696162236230044356664379765394328578804595599481448575661439604643644368353878452992502625008757464126785368605418329854744274283527635433468884154209759574142736710981207231898196954942930683501084241462546175107408752383678006198687510092882184165074584964964233439141669589060010419102528539033939843588227313553975636211664535058618
0
However, LL sequence seems stucked at 0, -2, 2, 2, 2, 2,... when modulo 2^m. Don't know if real errors tend to morph the data to smaller numbers(for example, 2) modulo 2^m. If these errors can be easily recognized, then 2^m can be used and the FFT length can be smaller and so as the cost:

Code:
Your choice: [Main thread Feb 28 06:04] Starting worker.
[Work thread Feb 28 06:04] Worker starting
[Work thread Feb 28 06:04] Starting PRP test of (2^95046071-2)/6 using FMA3 FFT length 5376K, Pass1=896, Pass2=6K, clm=2
[Work thread Feb 28 06:11] Iteration: 10000 / 95046068 [0.01%], ms/iter: 36.769, ETA: 40d 10:39
[Work thread Feb 28 06:17] Iteration: 20000 / 95046068 [0.02%], ms/iter: 36.010, ETA: 39d 14:30
[Work thread Feb 28 06:23] Iteration: 30000 / 95046068 [0.03%], ms/iter: 36.064, ETA: 39d 15:50
[Work thread Feb 28 06:29] Iteration: 40000 / 95046068 [0.04%], ms/iter: 36.229, ETA: 39d 20:05

[Work thread Feb 28 06:36] Starting PRP test of (2^90694787-2)/6 using FMA3 FFT length 5M, Pass1=1280, Pass2=4K, clm=1

[Work thread Feb 28 06:51] Starting PRP test of (2^88693651-2)/162 using FMA3 FFT length 5M, Pass1=1280, Pass2=4K, clm=1
This error check can also be applied to P-1, and PRP of numbers other than base 2.

Last fiddled with by Fan Ming on 2020-02-28 at 07:22
Fan Ming is offline   Reply With Quote
Old 2020-03-01, 14:11   #293
Fan Ming
 
Oct 2019

5F16 Posts
Default

I (roughly) tested more exponents PRP (2^x-2) with FFT size manually set to the same as that of LL test. To my surprise, the ROE of many exponents were not so worse:
Code:
87353681
[FATAL ROE]
87807497
Starting PRP test of (2^87807497-2)/6 using FMA3 FFT length 4800K, Pass1=640, Pass2=7680, clm=2, 2 threads
Iteration: 10000 / 87807494 [0.01%], roundoff: 0.227, ms/iter:xxx, ETA: xxx
Iteration: 20000 / 87807494 [0.02%], roundoff: 0.250, ms/iter:xxx, ETA: xxx
Iteration: 30000 / 87807494 [0.03%], roundoff: 0.250, ms/iter:xxx, ETA: xxx
Iteration: 40000 / 87807494 [0.04%], roundoff: 0.250, ms/iter:xxx, ETA: xxx
Iteration: 50000 / 87807494 [0.05%], roundoff: 0.250, ms/iter:xxx, ETA: xxx
88693651
Resuming PRP test of (2^88693651-2)/162 using FMA3 FFT length 4800K, Pass1=640, Pass2=7680, clm=2, 2 threads
Iteration: 10556 / 88693643.
Iteration: 20000 / 88693643 [0.02%], roundoff: 0.313, ms/iter:xxx, ETA: xxx
Iteration: 30000 / 88693643 [0.03%], roundoff: 0.344, ms/iter:xxx, ETA: xxx
Iteration: 40000 / 88693643 [0.04%], roundoff: 0.344, ms/iter:xxx, ETA: xxx
Iteration: 50000 / 88693643 [0.05%], roundoff: 0.344, ms/iter:xxx, ETA: xxx
Iteration: 60000 / 88693643 [0.06%], roundoff: 0.344, ms/iter:xxx, ETA: xxx
Iteration: 70000 / 88693643 [0.07%], roundoff: 0.344, ms/iter:xxx, ETA: xxx
Iteration: 80000 / 88693643 [0.09%], roundoff: 0.344, ms/iter:xxx, ETA: xxx
Iteration: 90000 / 88693643 [0.10%], roundoff: 0.344, ms/iter:xxx, ETA: xxx
90694787
[FATAL ROE]
91756043
Starting PRP test of (2^91756043-2)/6 using FMA3 FFT length 5M, Pass1=512, Pass2=10K, clm=2, 2 threads
Iteration: 10000 / 91756040 [0.01%], roundoff: 0.150, ms/iter:xxx, ETA: xxx
Iteration: 20000 / 91756040 [0.02%], roundoff: 0.156, ms/iter:xxx, ETA: xxx
Iteration: 30000 / 91756040 [0.03%], roundoff: 0.156, ms/iter:xxx, ETA: xxx
Iteration: 40000 / 91756040 [0.04%], roundoff: 0.156, ms/iter:xxx, ETA: xxx
92219539
Starting PRP test of (2^92219539-2)/18 using FMA3 FFT length 5M, Pass1=512, Pass2=10K, clm=2, 2 threads
Iteration: 10000 / 92219534 [0.01%], roundoff: 0.172, ms/iter:xxx, ETA: xxx
Iteration: 20000 / 92219534 [0.02%], roundoff: 0.172, ms/iter:xxx, ETA: xxx
Iteration: 30000 / 92219534 [0.03%], roundoff: 0.179, ms/iter:xxx, ETA: xxx
Iteration: 40000 / 92219534 [0.04%], roundoff: 0.188, ms/iter:xxx, ETA: xxx
93952787
Starting PRP test of (2^93952787-2)/6 using FMA3 FFT length 5M, Pass1=512, Pass2=10K, clm=2, 2 threads
Iteration: 10000 / 93952784 [0.01%], roundoff: 0.259, ms/iter:xxx, ETA: xxx
Iteration: 20000 / 93952784 [0.02%], roundoff: 0.281, ms/iter:xxx, ETA: xxx
Iteration: 30000 / 93952784 [0.03%], roundoff: 0.281, ms/iter:xxx, ETA: xxx
Iteration: 40000 / 93952784 [0.04%], roundoff: 0.281, ms/iter:xxx, ETA: xxx
94481897
Starting PRP test of (2^94481897-2)/6 using FMA3 FFT length 5M, Pass1=512, Pass2=10K, clm=2, 2 threads
Iteration: 10000 / 94481894 [0.01%], roundoff: 0.313, ms/iter:xxx, ETA: xxx
Iteration: 20000 / 94481894 [0.02%], roundoff: 0.330, ms/iter:xxx, ETA: xxx
Iteration: 30000 / 94481894 [0.03%], roundoff: 0.330, ms/iter:xxx, ETA: xxx
Iteration: 40000 / 94481894 [0.04%], roundoff: 0.330, ms/iter:xxx, ETA: xxx
95046071
Starting PRP test of (2^95046071-2)/6 using FMA3 FFT length 5M, Pass1=512, Pass2=10K, clm=2, 2 threads
Iteration: 10000 / 95046068 [0.01%], roundoff: 0.375, ms/iter:xxx, ETA: xxx
Iteration: 20000 / 95046068 [0.02%], roundoff: 0.375, ms/iter:xxx, ETA: xxx
Iteration: 30000 / 95046068 [0.03%], roundoff: 0.375, ms/iter:xxx, ETA: xxx
Iteration: 40000 / 95046068 [0.04%], roundoff: 0.375, ms/iter:xxx, ETA: xxx
Iteration: 50000 / 95046068 [0.05%], roundoff: 0.375, ms/iter:xxx, ETA: xxx
Iteration: 60000 / 95046068 [0.05%], roundoff: 0.409, ms/iter:xxx, ETA: xxx
[FATAL ROE, ROE > 0.45]
Don't know if the gaps between different FFT sizes can be shorter(thus more FFT length candidates can be chosen), if so, the cost of FATAL ROE exponents can also be reduced(but I guess can't since Prime95 is highly optimized, the gaps between 5M and 5376K cause about 3%~5% overhead, and larger gaps such as 4800K to 5M cause ~10% overhead).

Last fiddled with by Fan Ming on 2020-03-01 at 14:14
Fan Ming is offline   Reply With Quote
Old 2020-03-02, 13:30   #294
Fan Ming
 
Oct 2019

9510 Posts
Default

Quote:
Originally Posted by Fan Ming View Post
k = 2^m will also work, ramdom errors will also be all caught:
Code:
Omitted
Output:
Code:
50001
1276580757103092030698405415644269102473425184411696162236230044356664379765394328578804595599481448575661439604643644368353878452992502625008757464126785368605418329854744274283527635433468884154209759574142736710981207231898196954942930683501084241462546175107408752383678006198687510092882184165074584964964233439141669589060010419102528539033939843588227313553975636211664535058618
0
However, LL sequence seems stucked at 0, -2, 2, 2, 2, 2,... when modulo 2^m. Don't know if real errors tend to morph the data to smaller numbers(for example, 2) modulo 2^m. If these errors can be easily recognized, then 2^m can be used and the FFT length can be smaller and so as the cost:
2^m indeed cannot used. For standard LL test modulo 2^p-1 (or 2^(p+m)-2^m), any errors which change other words but not the first few (in FFT) will cause it congruent to correct results modulo 2^m.
So 2^m is not a good choice. Thus the first candidate is 3^k as described in the last post. The extra overhead (~10%) of 2^p-3 is indeed a problem. However, there may exist a few part of exponents p which is far from exponent limit of specific FFT length, and for these exponents, if doing modulo 2^p-3 operations using same FFT length, the ROE may be acceptable and thus the check is free.

But the 2^m can be used in 3-PRP tests of numbers other than base 2. The overhead of modulo 2^m*(number) is not so much (5%-10%? I guess) and the rate of errors that pass the check is near null. Thus maybe an alternative error check for these numbers(like existed doing 2 times per iteration and rollback if mismatch occurs).

Last fiddled with by Fan Ming on 2020-03-02 at 13:39
Fan Ming is offline   Reply With Quote
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
Stockfish / Lutefisk game, move 14 poll. Hungry for fish and black pieces. MooMoo2 Other Chess Games 0 2016-11-26 06:52
Redoing factoring work done by unreliable machines tha Lone Mersenne Hunters 23 2016-11-02 08:51
Unreliable AMD Phenom 9850 xilman Hardware 4 2014-08-02 18:08
[new fish check in] heloo mwxdbcr Lounge 0 2009-01-14 04:55
The Happy Fish thread xilman Hobbies 24 2006-08-22 11:44

All times are UTC. The time now is 15:25.


Fri Jul 7 15:25:29 UTC 2023 up 323 days, 12:54, 0 users, load averages: 1.37, 1.18, 1.12

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.

≠ ± ∓ ÷ × · − √ ‰ ⊗ ⊕ ⊖ ⊘ ⊙ ≤ ≥ ≦ ≧ ≨ ≩ ≺ ≻ ≼ ≽ ⊏ ⊐ ⊑ ⊒ ² ³ °
∠ ∟ ° ≅ ~ ‖ ⟂ ⫛
≡ ≜ ≈ ∝ ∞ ≪ ≫ ⌊⌋ ⌈⌉ ∘ ∏ ∐ ∑ ∧ ∨ ∩ ∪ ⨀ ⊕ ⊗ 𝖕 𝖖 𝖗 ⊲ ⊳
∅ ∖ ∁ ↦ ↣ ∩ ∪ ⊆ ⊂ ⊄ ⊊ ⊇ ⊃ ⊅ ⊋ ⊖ ∈ ∉ ∋ ∌ ℕ ℤ ℚ ℝ ℂ ℵ ℶ ℷ ℸ 𝓟
¬ ∨ ∧ ⊕ → ← ⇒ ⇐ ⇔ ∀ ∃ ∄ ∴ ∵ ⊤ ⊥ ⊢ ⊨ ⫤ ⊣ … ⋯ ⋮ ⋰ ⋱
∫ ∬ ∭ ∮ ∯ ∰ ∇ ∆ δ ∂ ℱ ℒ ℓ
𝛢𝛼 𝛣𝛽 𝛤𝛾 𝛥𝛿 𝛦𝜀𝜖 𝛧𝜁 𝛨𝜂 𝛩𝜃𝜗 𝛪𝜄 𝛫𝜅 𝛬𝜆 𝛭𝜇 𝛮𝜈 𝛯𝜉 𝛰𝜊 𝛱𝜋 𝛲𝜌 𝛴𝜎𝜍 𝛵𝜏 𝛶𝜐 𝛷𝜙𝜑 𝛸𝜒 𝛹𝜓 𝛺𝜔