![]() |
|
|
#67 | |
|
Serpentine Vermin Jar
Jul 2014
2·13·131 Posts |
Quote:
When I've looked at the bad/good ratio (and came up with my 4-5%) I tried to only look at exponents below the DC milestones. Right now, if I look at exponents < 40E6 I come up with: 1,789,553 good 69,308 bad 131,878 unknown (1 or more LL tests run, but a factor was turned in later) That bad/good right there is 3.87% but honestly, I've managed to skew the numbers a great deal myself since I did a ton of (unnecessary) triple-checks of smaller exponents (made sure everything < 2E6 got at least 3 checks done). There are 844,751 exponents below 40E6 that were proven composite by LL (not factored). If we just assume each got only 2 matching results instead of my spurious 3rd checks, we could estimate 1,689,502 verified results. That's over 100K less. Using that figure gives a bad/good of 4.1% Looking again at the exponents that were later factored, 51,230 out of 63,878 exponents have 2 or more matching residues, meaning they are good results. Adding 51,230 x 2 to our total estimated good results means we wind up with a bad/good of 3.87% (oddly about the same as when I included all the redundant triple-checks). Of course that still leaves 12,648 exponents that only had one result turned in before it was factored... who knows about those. Probably about the same avg error rate. A while back I ran my own double-checks on a bunch of those to see if I matched the solo check. That probably accounts for a good # of those "matched but factored" counts, so once again I've single-handedly skewed the average. - I mainly did that on the small exponents, < 10e6.Actually if I exclude my own results < 40e6 it only raises the "besides Madpoo" error rate by about 0.03%. ![]() And finally, if I ignore the < 40e6 and look at all bad & good results of any size, it's about 4.22%, reflecting that "suspect results get DC'd first" bias. And since I've made it my mission to do triple-checks on all mismatches, we've been able to show goodness/badness of those rather than lingering in "unknown" limbo for years. |
|
|
|
|
|
|
#68 | |||
|
"Mihai Preda"
Apr 2015
22×3×112 Posts |
Quote:
Quote:
A secondary benefit of pushing the Jacobi check on the CPU is that the GPU performance does not decrease when the check is on. (at the cost of more CPU cycles). Quote:
|
|||
|
|
|
|
|
#69 |
|
Einyen
Dec 2003
Denmark
22·863 Posts |
https://en.wikipedia.org/wiki/Jacobi_symbol
I went through the argument just to check, and it looks ok to me: |
|
|
|
|
|
#70 | |
|
"Mihai Preda"
Apr 2015
5AC16 Posts |
Quote:
The issue with automatically rolling back on a Jacobi-error, is that the only previous point that's guaranteed to be correct is the very beginning. Talking about "wrong LL" probabilities, while the overall error rate as you say is small (about 4% or less), I would suspect a very skewed distribution from the POV of the hardware involved: I think there is a big number of producers with 0% errors, and a small number of producers with a very high error rate (let's say, 50% errors). Intuitively, I say that the hardware is split in two distinct categories, "good" which produces only correct LL, and "broken" which produces mostly wrong LL. Now, the moment when a self-check detects a Jacobi-error, it places this particular instance of hardware in the "broken" category, with very high expected error rate. (Not the 4% average error rate, but much higher) |
|
|
|
|
|
|
#71 | |
|
"Mihai Preda"
Apr 2015
22×3×112 Posts |
Quote:
|
|
|
|
|
|
|
#72 |
|
"Forget I exist"
Jul 2009
Dartmouth NS
8,461 Posts |
|
|
|
|
|
|
#73 | |
|
"Serge"
Mar 2008
San Diego, Calif.
32×7×163 Posts |
Quote:
Re: preda. Easy to demonstrate by induction for all odd n (we are not interested in even n's, you know) |
|
|
|
|
|
|
#74 |
|
"Mihai Preda"
Apr 2015
26548 Posts |
|
|
|
|
|
|
#75 |
|
∂2ω=0
Sep 2002
República de California
22·2,939 Posts |
Like other LL-immplementers hereabouts, I've been following this thread with interest - kudos to 'error' for the original idea, and to preda for the quick turnaround w.r.to GMP timings. I'd like to also start playing with this check, but never having interfaced my LL code with GMP, a couple of questions:
[1] Which minimal GMP version do I need to get the fast Jacobi-symbol functionality? Assuming a working GMP install on my system, is gmp.h the only added header I need to include? [2] AFAICT the mpz_t type is basically a uint64 array to hold the base-2^64 words of a bignum, plus whatever dimension/allocation data GMP uses internally. I already convert LL residues from the doubles used by the FFT-mul to base-2^64 unsigned multiword array form as part of the checkpoint-writing step. Is there a way to init an mpz_t object whose array-object subdatum points to the uint64 array I already use, to avoid needless mem-alloc and data-copying? @GP2: In response to you 'how was this missed?': [a] Such misses are far from unusual - consider e.g. the AKS primality test; [b] Even had the idea occurred to someone previously, as the Brent-Zimmerman paper notes, it's only been quite recently that a subquadratic Jacobi-symbol algorithm became known/realized. |
|
|
|
|
|
#76 |
|
"Mihai Preda"
Apr 2015
22·3·112 Posts |
For interfacing with GMP, see e.g. jacobiCheck() :
https://github.com/preda/gpuowl/blob...puowl.cpp#L381 Yes, gmp.h is the only header needed, and link with -lgmp if using GMP as a library. mpz_import() reads compacted bits. It does a copy though, won't use your buffer (which is probably a good design, and not costly relatively speaking). |
|
|
|
|
|
#77 | |
|
"Mihai Preda"
Apr 2015
22·3·112 Posts |
Quote:
(sorry, just shows my ignorance, I posted the link previously but forgot the authors' names. silly) Last fiddled with by preda on 2017-08-11 at 02:14 |
|
|
|
|
![]() |
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 |