From f649d52449519e43f65ea20ba6f2bb83953d8ef8 Mon Sep 17 00:00:00 2001 From: Mingye Wang Date: Mon, 10 Nov 2025 01:00:19 +0800 Subject: [PATCH 1/3] README: mention CERT, mention make -j * Added details about supported work types and clarified the use of LL and PRP tests. * make -j$(nproc), because I just used it to save some time --- README.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5ae916af..40af255c 100644 --- a/README.md +++ b/README.md @@ -26,17 +26,21 @@ 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. ## Use See `prpll -h` for the command line options. -## Why LL +## 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 +58,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). From edde09babafb4a6bc9388c3925cc16f26cccd379 Mon Sep 17 00:00:00 2001 From: Mingye Wang Date: Thu, 20 Nov 2025 19:44:29 +0800 Subject: [PATCH 2/3] Update README with pre-built binaries and usage info Added section for pre-built binaries and usage instructions. --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 40af255c..472aa32e 100644 --- a/README.md +++ b/README.md @@ -22,16 +22,25 @@ 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 the "Actions" tab on GitHub. Click the commit you want and go 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. + +`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 From 3f4497fdd578c53b62693037a84d8ea4c3f0b5ef Mon Sep 17 00:00:00 2001 From: Mingye Wang Date: Fri, 21 Nov 2025 13:29:21 +0800 Subject: [PATCH 3/3] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 472aa32e..89c97c77 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Multi-threaded build (`make -j$(nproc)`) is supported for the impatient. ## Pre-built binaries -You can get pre-built binaries from the "Actions" tab on GitHub. Click the commit you want and go to section "Artifacts". +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