diff --git a/README.md b/README.md index 5ae916af..89c97c77 100644 --- a/README.md +++ b/README.md @@ -22,21 +22,34 @@ PRPLL implements two primality tests for Mersenne numbers: PRP ("PRobable Prime" PRPLL is an OpenCL (GPU) program for primality testing Mersenne numbers. - ## Build Invoke `make` in the source directory. +Multi-threaded build (`make -j$(nproc)`) is supported for the impatient. + +## Pre-built binaries +You can get pre-built binaries from [nightly.link](https://nightly.link/preda/gpuowl/workflows/ci/master). This is identical to going to the "Actions" tab on GitHub, choosing the latest commit, then to section "Artifacts". ## Use + See `prpll -h` for the command line options. +You may want to copy the `tune.txt` found in project root directory alongside the `prpll` binary. +Alternatively you may want to run `prpll -tune` to generate your own. -## Why LL +`prpll` may have additional dependencies. If you don't have them, the program will not launch. +On Linux and MSYS2 (Windows), you can use `ldd` to list what libraries it requires and that you may be missing. +On macOS `otool -L` can be used. + +## Work types supported For Mersenne primes search, the PRP test is by far preferred over LL, such that LL is not used anymore for search. -But LL is still used to verify a prime found by PRP (which is a very rare occurence). +This is because there is a simple way to verify the results of a PRP computation, unlike LL which is verified by full recomputation. +But PRP does not definitely confirm a number as prime, so LL is still used to verify a probable prime found by PRP (which is a very +rare occurence). +PRPLL supports LL, PRP, and CERT jobs. ### Lucas-Lehmer (LL) This is a test that proves whether a Mersenne number is prime or not, but without providing a factor in the case where it is not prime. @@ -54,3 +67,10 @@ prime is extremely small for large Mersenne candidates. The PRP test is very similar computationally to LL: PRP iterates f(x) = x^2 modulo M(p) starting from 3. If after p iterations the result is 9 modulo M(p), then M(p) is probably prime, otherwise M(p) is certainly not prime. The cost of PRP is exactly the same as LL. + +The PRP test also generates a proof file based on the Pietrzak VDF scheme authenticating the calculation leading to the reported +residue. This file is meant to be uploaded to PrimeNet alongside the JSON result output. + +### CERT +PrimeNet hands out work containing other people's cert files to trusted computers. These computers verify the Pietrzak proof of the +modular exponentiation process. PRPLL is able to process CERT work since October 2024 (version TO_BE_RELEASED).