Prime95 Changelog

What's new in Prime95 30.19 Build 13

Mar 9, 2024
  • PRP proofs. This allows GIMPS to double-check a PRP test at less than 1% of the cost of a full PRP test! PRP proofs require lots of temporary disk space. See readme.txt for details. PRP proofs require uploading a large proof file. See readme.txt for details.
  • PRP proof verifications require downloading a modest verification file. See readme.txt for details. Proofs automatically uploaded to server in 30.2.
  • First time LL, World-record LL, 100M-digit LL work preference is deprecated.
  • New resource limits menu choice and dialog box. Consult readme.txt before making changes to these settings. Some options previously in Test/Worker Windows and Options/CPU are moved to the resources dialog box.
  • LL-DC and PRP-DC combined into a single work preference.
  • Warning raised if temporary disk space is less than 1.5GB -- you may not get first time prime tests.
  • Thanks to Mihai Preda, the P-1 probability calculator has been improved. This change results in alower optimal B1 value and higher optimal B2 value.

New in Prime95 30.7 Build 9 (Nov 29, 2021)

  • Intel Alder Lake support. Improvements to stage 2 of P-1, ECM. Added P+1 factoring.
  • Warning: upgrading in the middle of P-1 stage 2 will restart P-1 stage 2 from scratch

New in Prime95 30.7 Build 7 (Oct 28, 2021)

  • Better prime pairing in stage 2 of ECM/P-1/P+1. This usually results in slightly better stage 2 timings or less memory used. Save file formats changed - upgrading to 30.7 while ECM/P-1/P+1 work is in stage 2 will result in stage 2 being restarted from scratch.
  • P-1 converted to use P+1 style stage 2. From the users perpective there is no difference. Internally a modular inverse is required at stage 2 init, but there is one multiplication saved for every D-block processed. For all common P-1 cases, this is a little faster.
  • ECM/P-1/P+1 no longer use a bit map for prime pairs. Instead a compressed pairing map is created to save memory. For large B2 values this also results in fewer calls to generate pairing maps. It also makes stage 2 save files smaller.
  • Some minor changes in AVX-512 FFT crossovers. ECM/P-1/P+1 all changed to rollback to the last save file and switch to a larger FFT size should an excessive roundoff error be encountered.
  • Support for asymmetric processor architectures such as Intel's Alder Lake.
  • Torture test dialog now asks for number of cores to test along with a "Use hyperthreading" checkbox. Previously, the dialog box asked for total number of torture threads to execute.
  • Versions 30.4/30.5/30.6 were underestimating the cost of P-1 stage 2 relative to P-1 stage 1. Expect this version to use lower stage 2 bounds in P-1.

New in Prime95 30.5 Build 1 (Mar 13, 2021)

  • Faster P-1 stage 2.
  • Faster ECM stage 1 and stage 2.
  • Gwnum library overhauled. Many functions deprecated. Replaced by more powerful gwmul3. New functions that compute (a+b)*c and (a-b)*c with less memory accesses. Faster conversion to and from binary.
  • ECM and P-1 can find the best B2 value for the amount of memory prime95 is allowed to use. For ECM, this happens when the worktodo.txt line sets B2=100*B1 which is the default assignment from the PrimeNet server. For P-1, the best B2 is chosen when the worktodo.txt line specifies the trial factoring depth. For example, "Pminus1=1,2,20000003,-1,500000,0,70" chooses the best B2 bound for B1=500000 given that M20000003 has been trial factored to 2^70.

New in Prime95 30.3 Build 6 (Jan 4, 2021)

  • PRP proofs. This allows GIMPS to double-check a PRP test at less than 1% of the cost of a full PRP test!
  • PRP proofs require lots of temporary disk space. See readme.txt for details.
  • PRP proofs require uploading a large proof file. See readme.txt for details.
  • PRP proof verifications require downloading a modest verification file. See readme.txt for details.
  • Proofs automatically uploaded to server in 30.2.
  • First time LL, World-record LL, 100M-digit LL work preference is deprecated.
  • New resource limits menu choice and dialog box. Consult readme.txt before making changes to these settings.
  • Some options previously in Test/Worker Windows and Options/CPU are moved to the resources dialog box.
  • LL-DC and PRP-DC combined into a single work preference.
  • Warning raised if temporary disk space is less than 1.5GB -- you may not get first time prime tests.
  • Thanks to Mihai Preda, the P-1 probability calculator has been improved. This change results in a lower optimal B1 value and higher optimal B2 value.

New in Prime95 29.8 Build 3 (Apr 23, 2019)

  • Since GPUs are so much better at trial factoring than CPUs, benchmarking no longer times prime95's trial factoring by default. Two new benchmarking options are available: OnlyBenchThroughput and OnlyBenchMaxCPUs. See undoc.txt for details.
  • Slightly reduced the memory bandwidth requirements for several large FFTs. May lead to a very small speed increase for users testing 100 million digit numbers.
  • If running more than worker, prime95 looks for any sin/cos data that it can share among the workers. Depending on the FFT sizes you are running, this could lead to a very slight reduction in needed memory bandwidth.
  • Method for choosing the best FFT implementation changed. In previous versions, the FFT implementation that resulted in the fastest single worker timing was used. In this version the FFT implementation that had the best throughput was selected. For FMA3 FFTs I used a 4-core Skylake to measure best throughput. For AVX FFTs I used a 4-core Sandy Bridge to measure best throughput. Not many FFTs were affected, but you may see a few percent variation in throughput with this version.
  • Improved AVX2 trial factoring in 64-bit executable. Trial factoring should still be done on a GPU. A GPU is on the order of 100 times more efficient at trial factoring than a CPU!!!
  • Trial factoring now defines one "iteration" as processing 128KB of sieve, or 1M possible
  • factors. In previous versions an iteration was defined as 16KB of sieve in 32-bit executables and 48KB in 64-bit executables. The trial factoring benchmark still times processing 16KB of sieve.
  • Trial factoring in 64-bit executables is now multi-threaded.
  • On initial install, the default settings for number of worker windows will be set to the number of cores / 4 with multithreading turned on.
  • The worker windows dialog box now enforces a minimum number of multi-threaded cores for some work types to ensure timely completion of assignments. Also, the worker windows menu choice no longer allows assigning work to hyperthreads (they are rarely beneficial in prime95).
  • This behavior can be overridden with the ConfigureHyperthreads undoc.txt feature.

New in Prime95 29.4 Build 3 (Nov 3, 2017)

  • GIMPS has a new sub-project -- finding (probableprime Mersenne cofactors.
  • This sub-project has two parts: 1Running PRP tests, and 2Finding
  • additional factors. To support this new sub-project there are three
  • new work preferences: PRP on Mersenne cofactors, PRP double-checking on
  • Mersenne cofactors, ECM on Mersenne cofactors.
  • Like LL tests, PRP tests now support shift counts to aid in running double-checks.
  • Shift counts are only supported for Mersenne numbers and Mersenne cofactors.
  • PRP tests now support a type of low overhead error checking that almost guarantees
  • correct results even on flaky hardware. We call this Gerbicz error-checking after
  • it was proposed by Robert Gerbicz at mersenneforum.org. This error-check only
  • works for base-2 numbers.
  • Because PRP tests are highly reliable, we now offer the option to do PRP tests
  • instead of Lucas-Lehmer primality tests. There are 3 new work preferences
  • similar to LL work preferences: first-time PRP tests, world record PRP tests,
  • PRP tests on 100 million digit numbers, and PRP double-checking.
  • If you are looking for a 100 million digit prime, PRP testing is recommended
  • rather than LL testing.
  • For non-base-2 PRP tests, there is a new option to run each iteration twice and
  • rollback if a mismatch occurs. Useful only on flaky hardware due to the obvious
  • high overhead.

New in Prime95 29.3 Build 1 (Sep 12, 2017)

  • A new error check for LL testing has been implemented. This error check, called a Jacobi error check, has a 50% chance of detecting hardware error(s) since the last time a Jacobi error check was performed. This error check takes roughly 30 seconds and is scheduled to run twice a day. The program now saves two additional intermediate files that have passed the Jacobi error check. This test requires use of the GMP (GNU multi-precision) library.
  • The GCD step in P-1 and ECM factoring is faster.

New in Prime95 29.1 Build 13 (Mar 27, 2017)

  • Faster trial factoring for machines that support FMA (Haswell and later). Multi-threaded trial factoring now supports more than one thread sieving for small primes. Several tuning parameters added - see undoc.txt.
  • The portable library, hwloc, for analyzing a machine's topology is now used. This replaces the buggy code prime95 used to detect hyperthreading. It also eliminates the need for AffinityScramble2. Running a benchmark will output this topology information to results.txt.
  • AVX-512 trial factoring support added.
  • Dialog box for benchmarking added.
  • In the Test/Worker Windows dialog box you no longer choose how many threads each worker uses. Instead, you choose how many CPU cores each worker uses. There affinity options have been removed. There are two new options that will decide if each worker also uses hyperthreading.

New in Prime95 28.9 Build 2 (Mar 30, 2016)

  • Since GPUs are so much better at trial factoring than CPUs, benchmarking no longer times prime95's trial factoring by default. Two new benchmarking options are available: OnlyBenchThroughput and OnlyBenchMaxCPUs. See undoc.txt for details.
  • Slightly reduced the memory bandwidth requirements for several large FFTs. May lead to a very small speed increase for users testing 100 million digit numbers.
  • If running more than worker, prime95 looks for any sin/cos data that it can share among the workers. Depending on the FFT sizes you are running, this could lead to a very slight reduction in needed memory bandwidth.
  • Method for choosing the best FFT implementation changed. In previous versions, the FFT implementation that resulted in the fastest single worker timing was used. In this version the FFT implementation that had the best throughput was selected. For FMA3 FFTs I used a 4-core Skylake to measure best throughput. For AVX FFTs I used a 4-core Sandy Bridge to measure best throughput. Not many FFTs were affected, but you may see a few percent variation in throughput with this version.
  • Improved AVX2 trial factoring in 64-bit executable. Trial factoring should still be done on a GPU. A GPU is on the order of 100 times more efficient at trial factoring than a CPU!!!
  • Trial factoring now defines one "iteration" as processing 128KB of sieve, or 1M possible factors. In previous versions an iteration was defined as 16KB of sieve in 32-bit executables and 48KB in 64-bit executables. The trial factoring benchmark still times processing 16KB of sieve.
  • Trial factoring in 64-bit executables is now multi-threaded.
  • On initial install, the default settings for number of worker windows will be set to the number of cores / 4 with multithreading turned on.
  • The worker windows dialog box now enforces a minimum number of multi-threaded cores for some work types to ensure timely completion of assignments. Also, the worker windows menu choice no longer allows assigning work to hyperthreads (they are rarely beneficial in prime95). This behavior can be overridden with the ConfigureHyperthreads undoc.txt feature.

New in Prime95 28.6 Build 1 (Apr 17, 2015)

  • The "days between sending new end dates" preference now accepts values between 0.125 and 7.0 (was between 1 and 7). This lets you contact the server as frequently as every three hours. This can be useful in conjunction with the server feature that sends an email to you if the computer is more than one hour late contacting the server. To turn on that server feature, go to the CPUs web page, and click on the CPU, there you can turn on a couple of email features.
  • AVX2 support for trial factoring. About a 50% speedup over the previous version. However, all trial factoring should still be done on a GPU. A GPU is on the order of 100 times more efficient at trial factoring than a CPU!!!

New in Prime95 28.5 Build 2 (Aug 16, 2014)

  • Changed the output to the worker windows during LL and PRP tests. The new output includes
  • the estimated time to complete the test. There are two new options described in undoc.txt:
  • ClassicOutput and OutputRoundoff.
  • Added some new options described in undoc.txt: ScaleOutputFrequency, TitleOutputFrequency,
  • and SilentVictoryPRP.
  • Benchmarking on hyperthreaded machines now times only the most common cases. Specifically,
  • hyperthreading is used only in the one cpu and all cpu cases.
  • Benchmarking trial factoring is now off by default. Prime95 should not be used for trial
  • factoring. GPUs are about 100 times more efficient at that task.
  • On multi-core machines, benchmarks are now run on multiple workers. This measures the effect
  • of memory bandwidth during testing and helps you select the setup that gives you the most throughput.
  • There are many new options described in undoc.txt to customize the benchmarking process.
  • In build 2, added a preference to bypass some of Mac OS X Mavericks' power saving features.

New in Prime95 28.5 Build 1 Beta (Mar 10, 2014)

  • Changed the output to the worker windows during LL and PRP tests. The new output includes the estimated time to complete the test. There are two new options described in undoc.txt: ClassicOutput and OutputRoundoff.
  • Added some new options described in undoc.txt: ScaleOutputFrequency, TitleOutputFrequency, and SilentVictoryPRP.
  • Benchmarking on hyperthreaded machines now times only the most common cases. Specifically, hyperthreading is used only in the one cpu and all cpu cases.
  • Benchmarking trial factoring is now off by default. Prime95 should not be used for trial factoring. GPUs are about 100 times more efficient at that task.
  • On multi-core machines, benchmarks are now run on multiple workers. This measures the effect of memory bandwidth during testing and helps you select the setup that gives you the most throughput.
  • There are many new options described in undoc.txt to customize the benchmarking process.

New in Prime95 28.4 Build 1 Beta (Feb 27, 2014)

  • Reduced memory usage. This may make some single-thread benchmarks slower, but when running several workers on machines where memory is a bottleneck there should be a small performance increase.

New in Prime95 28.3 Build 1 Beta (Jan 13, 2014)

  • Supports Intel's new for fused multiply add instruction introduced with the Haswell CPU. This results in faster FFTs. Note that performance on many Haswell systems is memory-bandwidth limited. This means that when running workers on all cores performance gains will be small.
  • Some minor optimizations may give a very small performance boost for AVX CPUs.
  • All new test torture test data for AVX CPUs. The new data runs more interations, thus more time is spent torturing the CPU rather than initializing the FFT routines.
  • Information added to result lines containing "has a factor". This information may be used by the server's manual web page to give proper TF / P-1 / ECM cpu credit at a future date.

New in Prime95 27.9 Build 1 (Dec 14, 2012)

  • Minor bug fixes

New in Prime95 27.7 Build 2 (May 21, 2012)

  • When an error occurs reading a save file it is renamed with a .bad extension. On rare occasions the file can be read successfully at a later time.

New in Prime95 26.6 Build 3 (Dec 20, 2011)

  • For rare cases where the program cannot figure out the number of cores and hyperthreading, the NumPhysicalCores option may help. See undoc.txt.
  • Faster FFT implementations are now selected for Core 2 CPUs with 1MB L2 cache or less (marketed under the Celeron and Pentium label).
  • New, slightly higher, trial factoring breakeven points.

New in Prime95 26.6 Build 1 (Apr 9, 2011)

  • For rare cases where the program cannot figure out the number of cores and hyperthreading, the NumPhysicalCores option may help. See undoc.txt.
  • Faster FFT implementations are now selected for Core 2 CPUs with 1MB L2 cache or less (marketed under the Celeron and Pentium label).
  • New, slightly higher, trial factoring breakeven points.

New in Prime95 26.5 Build 1 (Apr 9, 2011)

  • Minor bug fixes.
  • Starting in build 2, P-1 work will display the chance of finding a factor. The worktodo.txt line must include how_far_factored using the new syntax:
  • Pminus1=k,b,n,c,B1,B2[,how_far_factored][,B2_start][,"factors"]
  • Starting with build 3, at startup the program tries to determine which hyperthreaded logical CPUs comprise one physical CPU. The previous version's AffinityScramble setting is no longer supported!

New in Prime95 26.4 Build 1 (Apr 9, 2011)

  • The 64-bit version supports 64 threads (up from 32).
  • Each on-screen window can now scroll back 1000 lines of output.
  • ECM time estimates improved. ECM may be a smidge faster.

New in Prime95 26.3 (Apr 9, 2011)

  • A few crash bugs were fixed that affected only some CPU architectures and some FFT lengths. Other minor bugs were fixed.

New in Prime95 26.2 (Apr 9, 2011)

  • Faster FFTs for most SSE2-capable CPU architectures.
  • More FFT lengths supported.
  • Some of the new, faster FFTs don't let us do as much error checking on each iteration. If you don't want to lose this error checking, choose "SUM(INPUTS) error checking" from the Options menu. This will slow down your tests by about 2-5%.
  • When a possible hardware error occurs during a test, the error message would likely scroll off the screen unnoticed. Now, all future progress updates to the screen will be followed by a message containing a count of the errors that have occurred during the test.
  • Worker Windows now stagger their starts. This improves timings for some CPUs and operating systems.

New in Prime95 25.11 Build 2 (Apr 9, 2011)

  • PRP of k*b^n+c where b > 2 will be faster in many cases.
  • Zero-padded FFTs are about 3-4% faster. These FFTs are used in projects like SeventeenOrBust.

New in Prime95 25.10 (Apr 9, 2011)

  • A bug that caused pfactor save file names to begin with the letter p was fixed. It now uses m like all other P-1 efforts. Old save file names are automatically upgraded.
  • Prime95 now recovers gracefully from more out-of-memory conditions when doing ECM or P-1.
  • We now do P-1 factoring one bit level before the trial factoring limit. The previous version started P-1 two bit levels before the trial factoring limit.

New in Prime95 25.9 Build 4 (Apr 9, 2011)

  • Performance increases for the 64-bit version by taking advantage of the eight extra SSE2 registers. The 32-bit version may also be a bit faster by taking advantage of the Core 2 architecture. The FFT code was originally optimized for the Pentium 4 where instructions like "movapd reg,reg" take 6 clocks and should be avoided, whereas on Core 2 the same instruction uses just 1 clock cycle and improves scheduling.
  • The 32-bit version may be slightly faster or slower on the Pentium 4, but not enough to worry about. Preliminary benchmarks indicate:
  • 32-bit Pentium 4: between 2% slower and 1% faster
  • 32-bit Core 2: between 2% and 6% faster
  • 64-bit Pentium 4: between 2% and 4% faster
  • 64-bit Core 2: between 10% and 13% faster
  • 64-bit Core i7: between 7% and 12% faster
  • 64-bit Phenom: between 10% and 13% faster
  • AMD64: between 1% slower and 1% faster
  • Intermediate save files were overhauled. Trial factoring, P-1, and ECM now support multiple save files. The backup save file uses a .bu extension. While a new save file is being written a .write extension is used and renamed when successfully written (thus, briefly there are 3 save files). NOTE #1: LL save files no longer use an initial letter of q and r. The program will automatically use these obsolete files if necessary and delete them when no longer needed. NOTE #2: ECM and P-1 save files on k*2^n+1 no longer use file names beginning with d and l.
  • The -An command line argument no longer appends an extension to save file names. NOTE #3: The client now supports keeping three save files.
  • Miscellaneous minor bug fixes.

New in Prime95 25.8 Build 1 (Nov 24, 2008)

  • Bug fixed in smart affinity on hyperthreaded CPUs
  • Bug fixed in setting a thread priority other than 1
  • Off-by-one-bit bug fixed in the benchmarking of trial factoring

New in Prime95 24.14 (Jun 19, 2007)

  • A bug that caused the torture test to hang on 256K FFTs on SSE2 machines with 128K of L2 cache was fixed.