Prime95

Developer(s) Prime95 28.7 running on an Intel quad-core Windows 10 system George Woltman 3 January 1996; 23 years ago 29.8 build 3 / May 7, 2019[1] Microsoft Windows, macOS, Linux, FreeBSD Mersenne prime finder / system stability tester Freeware[2] mersenne.org/download

Prime95, also distributed as a command-line utility mprime under FreeBSD and Linux, is a freeware application written by George Woltman used by GIMPS, a distributed computing project dedicated to Mersenne prime hunting. In overclocking circles, its also commonly used for stability testing.

Although it is source available, it does not qualify as Free Open Source Software due to the EULA[3], which states that in the event that the software is used to find a record prime that qualifies for the bounties offered by EFF[4], the bounty is to be split according to the terms of the EULA.

Finding Mersenne primes by distributed computing

Since the foundation of GIMPS in 1996, 17 new Mersenne primes have been found by participants of the project.[5]

To accomplish this, the program implements the following algorithms:

Due to the large volume of candidates and the scarcity of Mersenne primes, the program also implements some computationally cheaper tests to quickly exclude composite candidates:

Use for stress testing

Over the years, Prime95 has become extremely popular among PC enthusiasts and overclockers as a stability testing utility. It includes a "Torture Test" mode designed specifically for testing PC subsystems for errors in order to help ensure the correct operation of Prime95 on that system. This is important because each iteration of the Lucas-Lehmer depends on the previous one; if one iteration is incorrect, so will be the entire primality test.

The stress-test feature in Prime95 can be configured to better test various components of the computer by changing the fast fourier transform (FFT) size. Three pre-set configurations are available: Small FFTs and In-place FFTs, and Blend. Small and In-place modes primarily test the FPU and the caches of the CPU, whereas the Blend mode tests everything, including the memory.

By selecting Custom, the user can gain further control of the configuration. For example, by selecting 8-8 kB as the FFT size, the program stresses primarily the CPU. By selecting 2048-4096 kB and unchecking the "Run FFTs in-place" checkbox, providing the maximum amount of RAM free in the system, the program tests the memory and the chipset. If the amount of memory to use option is set too high, then the system will start using the paging file and the test will not stress the memory.

On an absolutely stable system, Prime95 would run indefinitely. If an error occurs, at which point the stress test would terminate, this would indicate that the system may be unstable. There is an ongoing debate about terms "stable" and "Prime-stable", as Prime95 often fails before the system becomes unstable or crashes in any other application. This is because Prime95 is designed to subject the CPU to an incredibly intense workload, and to halt when it encounters even one minor error, whereas most normal applications do not stress the CPU anywhere near as much, and will continue to operate unless they encounter a fatal error.

In the overclocking community, a rule of thumb is often used to determine how long to run Prime95: test the CPU (8 kB FFT) for 10 hours and the memory (4096 kB FFT) for 10 hours, and if the system passes, there is a high chance that it is stable. Twenty-four hours of testing is recommended to be sure, as errors may show up after 16 or more hours of testing (compared to, say, just four hours of testing).[6] Moreover, a large proportion of system overclockers and enthusiasts favor Prime95 over other benchmarking suites because Prime95 pushes the CPU's floating point units extremely hard, causing the CPU to become extremely hot. In addition, Prime95 stresses a computer far more than the majority of software-based torture suites. The nature of this is because the operating system usually shuts down the floating-point unit when unused by other programs, whereas Prime95 is well-optimized to continuously and effectively thread the FPU, causing it to be deeply pipelined, thereby generating significantly more heat because of elevated power consumption under the massive workload conditions. In CPUs which are not adequately cooled, errors are likely to occur. Prime95 also constantly accesses main memory at up to 60 MB per second. This constant activity will detect memory problems that other programs will not.

Lastly, power supply units of any machine running Prime95 are subject to the consistent ramifications of such harsh conditions. Power must be maintained clean, while providing adequate voltage, particularly to the CPU, RAM, and chipsets (mainboard chipsets such as the Northbridge where the memory controller may or may not reside; see Athlon 64 or Intel Core i7 for on-die memory controllers) to provide peak performance while maintaining stability. Cray Research used programs similar to Prime95 for over a decade for the purpose of stability testing.[7]

Limits

Version 24 and older of Prime95 cannot test Mersenne numbers beyond ${\displaystyle 2^{79,300,000}-1}$, which means that it cannot test exponents above 79,300,000.[8] This is slightly shorter than a 24 million digit number. As of August 14, 2018, all of the numbers up to this threshold have been tested. There is a countdown at https://www.mersenne.org/report_milestones/. Newer versions of Prime95 (version 25, 26, 27 and 28) can handle Mersenne numbers up to the limit ${\displaystyle 2^{596,000,000}-1}$, meaning we can handle exponents up to 596,000,000.[9] However, they can perform Trial Factoring on Mersenne numbers up to ${\displaystyle 2^{2,147,483,647}-1}$.

Prime95 does not fully stress all processor threads when the threads number is more than 64 in Windows, or 32 for the 32-bit version. Windows will manage the processors in groups when the number is beyond 64. Each group will only have a maximum of 64. Prime95 will only load into one processor group.

Release history

More details are located in the whatsnew.txt file.

Color Meaning
Red Former release
Pink Former test release
Green Current stable release
Gold Current test release
Blue Future release
Version Release date Significant changes
1 January 3, 1996
8 April 12, 1996 Trial factoring speeds improved
12 May 22, 1996 Speed increased, memory usage decreased, more self-tests and error checks added, exponent limit increased to 2,630,000
12.2
12.3 Backup files are now generated every 30 minutes
12.4 Improvements in trial factoring and backup file generation
13.0 November 1, 1996 The Lucas-Lehmer assembly code was almost completely rewritten to increase modularity and readability.
13.2
14.0 March 3, 1997 Exponent limit increased to 5,250,000
14.1 Pentium code improved
14.2 Trial factoring improved
15.0 February 2, 1998 Prime95 can now automatically obtain assignments, configuration file system reworked
15.1
15.2 New HTTP protocol, support for Windows 95 services
15.3
15.4 More support for firewalls and proxies
16.1 May 22, 1998 Exponent limit increased to 20,500,000, factoring limit increased to 64 bits
16.2
16.3 Safety check added to prevent accidental credit transfer
16.4 Prime95 now shows progress in percentage
16.5 Networking code updated
17.0 Support for double checking
17.1 Prime95 can now do ECM factoring for numbers of the form 2n + 1
17.2 ECM speeds improved for 2n + 1
18.0 April 3, 1999
18.1 April 13, 1999 Change added to allow server to distinguish versions
19.0 October 10, 1999 Exponents of up to 79,300,000 supported, P-1 factoring added, save files for ECM factoring
19.1 AMD K6 optimizations
19.2 December 17, 1999
20.0 ECM and P-1 improvements
20.1 P-1 improvements
20.1 P-1 improvements
20.2
20.3
20.4
20.5
20.6 June 16, 2000
21.2 SSE2 support
21.3 Ability to skip redundant P-1 factoring
21.4 September 23, 2001 Torture test improved
22.1 Server and network code improved
22.2 Assignment optimizations
22.3 More FFT sizes, better error checking
22.4
22.5
22.6 Windows service support
22.7 SSE2 support for trial factoring on Pentium 4
22.8 August 15, 2002[10] Crossover FFTs
22.9 September 7, 2002[11] Windows tray UI improvements
22.10 October 8, 2002[12] More support for automatic start at bootup
22.11
22.12 November 9, 2002
22.13 December 29, 2002
23.1 February 10, 2003[13] SSE2 optimizations
23.2 February 20, 2003[14] More SSE2 optimizations
23.3 April 29, 2003[15] More SSE2 optimizations
23.4 More SSE2 optimizations
23.5 July 3, 2003 More error-checking
23.6 July 15, 2003[16]
23.7 September 6, 2003[17] Changes in memory settings
23.8 February 17, 2004
23.9 September 16, 2003 Reduced memory requirement in torture tests
24.6 December 7, 2004[18] AMD Athlon CPU optimizations
24.9
24.10 Support for 64-bit Windows
24.11 March 30, 2005[19] AMD CPU optimizations
24.12 June 8, 2005[20] SSE2 optimizations
24.13 July 5, 2005 Different FFT implementations for certain processors
24.14 August 5, 2005[21]
24.15
25.3 June 16, 2007[22] True multi-core support, added PRP tests, various other changes
25.4 August 10, 2007[23]
25.5 September 24, 2007[24]
25.6 December 22, 2007[25]
25.7 October 7, 2008[26]
25.8 December 14, 2008[27]
25.9 March 16, 2009[28] Speed improvements
25.10 May 3, 2009[29] Mac OS X and FreeBSD GUI support
25.11 July 14, 2009 Faster PRP tests
25.12 July 29, 2009
25.13 October 6, 2009
25.14 March 22, 2010
26.2 September 14, 2010[30] Optimized FFT code for many architectures; file size is greatly increased as a result
26.3 October 13, 2010[31]
26.4 November 15, 2010 Support of up to 64 cores (for 64-bit systems)
26.5 February 23, 2011
26.6 April 8, 2011[32]
27.1 alpha December 5, 2011[33] Intel AVX support (32 bit only)
27.2 alpha December 19, 2011[34] Includes all FFT lengths; first Linux/MPrime test version
27.3 beta February 16, 2012[35] 64 bit AVX support
27.4 beta March 9, 2012[36]
27.6 beta April 24, 2012[37] Bug fixes; (v27.5 was skipped;[38] the underlying math libraries went through a revision, but Prime95 was not modified.)
27.7 beta May 3, 2012[39] More bug fixes
27.7 May 15, 2012 Stable AVX support (for Sandy Bridge and Ivy Bridge CPUs, Core i3/i5/i7-2xxx and 3xxx models) totaling a ~30% performance increase relative to version 26.[40]
27.9 December 12, 2012 Minor bug fixes.
28.5 May 30, 2014 AVX2 and FMA3 support for Haswell-based CPUs (Core i3/i5/i7-4xxx models), additional memory caching optimizations for Sandy Bridge and Ivy Bridge-based CPUs.
28.6 April 5, 2015 AVX2 support for trail factoring, 50% speedup over version 28.5.
28.9 March 29, 2016 Some algorithm changes.
29.1 March 19, 2017 AVX-512 support for trail factoring. Better detection for Hyperthreading.
29.2 June 10, 2017 Default FFT implementations for Ryzen added.
29.3 September 8, 2017
29.4 November 3, 2017 Performance tweaks.
29.5 October 20, 2018 AVX-512 support.

References

1. ^ "Free Software - GIMPS". Mersenne.org. Retrieved 2019-05-07.
2. ^ "GIMPS Legalese - PrimeNet". www.mersenne.org. Retrieved 2019-05-10.
3. ^ "GIMPS Legalese - PrimeNet". www.mersenne.org. Retrieved 2019-05-08.
4. ^ "EFF Cooperative Computing Awards". Electronic Frontier Foundation. 2008-02-29. Retrieved 2019-05-08.
5. ^ "GIMPS History - PrimeNet". www.mersenne.org. Retrieved 2019-05-09.
6. ^ "Guidelines for Thorough Stability Testing - Overclockers Forums". Ocforums.com. Retrieved 2013-02-06.
8. ^ "Team StarQwest". Web.archive.org. Archived from the original on June 6, 2008. Retrieved 2013-02-06.CS1 maint: Unfit url (link)
9. ^ "P-1 factoring anyone? - Page 22". mersenneforum.org. Retrieved 2013-02-06.
10. ^ "View Single Post - Detailed client software thread". mersenneforum.org. Retrieved 2013-02-06.
11. ^ "View Single Post - Detailed client software thread". mersenneforum.org. Retrieved 2013-02-06.
12. ^ "View Single Post - Detailed client software thread". mersenneforum.org. Retrieved 2013-02-06.
13. ^ "View Single Post - Detailed client software thread". mersenneforum.org. Retrieved 2013-02-06.
14. ^ "View Single Post - Detailed client software thread". mersenneforum.org. Retrieved 2013-02-06.
15. ^ "View Single Post - Detailed client software thread". mersenneforum.org. Retrieved 2013-02-06.
16. ^ "version 23.6 - don't bother to download it". mersenneforum.org. 2003-09-23. Retrieved 2013-02-06.
17. ^ "23.7 - not much of interest". mersenneforum.org. Retrieved 2013-02-06.
18. ^ "Beta version 24.6 - Athlon users wanted". mersenneforum.org. Retrieved 2013-02-06.
19. ^ "Early Beta of version 24.11". mersenneforum.org. Retrieved 2013-02-06.
20. ^ "Beta version 24.12 available". mersenneforum.org. Retrieved 2013-02-06.
21. ^ "Version 24.14". mersenneforum.org. Retrieved 2013-02-06.
22. ^ "Prime95 v25.3". mersenneforum.org. Retrieved 2013-02-06.
23. ^ "Prime95 version 25.4". mersenneforum.org. Retrieved 2013-02-06.
24. ^ "Prime95 version 25.5". mersenneforum.org. Retrieved 2013-02-06.