The Great Internet Mersenne Prime Search (GIMPS) is a collaborative project of volunteers who use freely available software to search for Mersenne prime numbers.

GIMPS was founded in 1996 by George Woltman, who also wrote the Prime95 client and its Linux port MPrime. Scott Kurowski wrote the back-end PrimeNet server to demonstrate volunteer computing software by Entropia, a company he founded in 1997. GIMPS is registered as Mersenne Research, Inc. with Kurowski as Executive Vice President and board director. GIMPS is said to be one of the first large-scale volunteer computing projects over the Internet for research purposes.

, the project has found 18 Mersenne primes, 16 of which were the largest known prime number when they were discovered. The largest known prime is 2<sup>136,279,841</sup>&nbsp;−&nbsp;1 (or M<sub>136,279,841</sub> for short) and was discovered on October 12, 2024, by Luke Durant. On June 18, 2025, the project passed a milestone after all exponents below 136,279,841 were checked at least once.

Algorithm

From its inception until 2018, the project relied primarily on the Lucas–Lehmer primality test (LL), an algorithm that is both specialized for testing Mersenne primes and particularly efficient on binary computer architectures. Before applying it to a given Mersenne number, there was a trial division phase, used to rapidly eliminate many Mersenne numbers with small factors. Pollard's p&nbsp;−&nbsp;1 algorithm is also used to search for smooth factors. The variant of LL used in the main implementation (Prime95) is specifically based on irrational base discrete weighted transform with double-precision floating-point numbers, which provide an efficient way to square a large number modulo 2<sup>P</sup>&nbsp;−&nbsp;1. with a 50% chance of catching an error. On top of these, each completed LL calculation is repeated by a different hardware for "double-checking". Based on historical double-check data, each LL calculation without any serious error reported had an error rate of 1.5%; those with at least one serious error reported had an error rate of 50%. as an alternative option for primality testing, while keeping the LL test as a double-check for Mersenne numbers detected as probable primes by the Fermat test. This new test is called PRP (probable prime) in GIMPS parlance. Using a method devised by Robert Gerbicz, GIMPS can be "99.999+%" sure that a PRP result is generated correctly. As a result, even though the LL test is deterministic and the Fermat test only probabilistic, the probability of the Fermat test finding a Fermat pseudoprime that is not prime is vastly lower than the error rate of the LL test due to computer hardware errors.

In September 2020, GIMPS began to support primality proofs based on verifiable delay functions countributed by Krzysztof Pietrzak. The proof files are generated while the Fermat primality test is in progress. These proofs, together with Gerbicz's error-checking algorithm, provide complete confidence in the correctness of the test result and eliminate the need for double checks (check of proof could be run in 1/100 of the time of the original Fermat computation). PRP and LL have similar runtimes; the preference comes from higher confidence in PRP results.

History

The project began in January 1996 with a program that ran on i386 computers. The project's name was coined by Luke Welsh, one of its early searchers and the co-discoverer of the 29th Mersenne prime. Several dozen people joined within a few months and over 1,000 by the end of the first year. Joel Armengaud, a participant, discovered the primality of M<sub>1,398,269</sub> on November 13, 1996. Since then, GIMPS has discovered a new Mersenne prime every 1 to 2 years on average, but the most recent largest prime, found in October 2024, took nearly six years to find.

Status

, GIMPS has a sustained average aggregate throughput of approximately 4.71 PetaFLOPS (or PFLOPS). In November 2012, GIMPS maintained 95 TFLOPS, theoretically earning the GIMPS virtual computer a rank of 330 among the world's TOP500 most powerful computer systems. The preceding place was then held by an 'HP Cluster Platform 3000 BL460c G7' of Hewlett-Packard. As of July 2021 TOP500 results, the current GIMPS numbers would no longer make the list.

This was about 50 TFLOPS in early 2010, 30 TFLOPS in mid-2008, 20 TFLOPS in mid-2006, and 14 TFLOPS in early 2004.

Software

Prime95

The primary software GIMPS uses is Prime95, which implements all algorithms for an x86 or x86-64 CPU: trial factoring (usually left to GPUs), PRP, P-1, P+1, ECM, and PRP certification. Although the Prime95 software's source code is publicly available, technically it is not free software, since it requires that users abide by the project's distribution terms. Specifically, if the software is used to discover a prime number with at least 100,000,000 decimal digits, the user will win only $50,000 of the $150,000 prize offered by the Electronic Frontier Foundation. On the other hand, they will win $3,000 when discovering a smaller prime not qualifying for the prize.

GIMPS also "reserves the right to change this EULA without notice and with reasonable retroactive effect."

  • Mlucas, which implements LL, Fermat PRP, and Pépin's test. Shipped with MFactor for trial-factoring. Able to run on x86, x86-64, ARM, and most other CPU architectures. Uses double-precision IBDWT.
  • Glucas, outdated implementation of LL for x86 and non-x86 CPUs. Uses double-precision IBDWT.
  • GPUowl and PRPLL, OpenCL programs for running PRP and LL intended for GPUs. Uses double-precision IBDWT. George Woltman maintains a fork that uses IBDWT in double-precision, single-precision, NTT over GF((2<sup>31</sup>&nbsp;−&nbsp;1)<sup>2</sup>), NTT over GF((2<sup>61</sup>&nbsp;−&nbsp;1)<sup>2</sup>), or a combination thereof.
  • mfaktc (CUDA) / mfakto (OpenCL), programs for GPU trial factoring using 32-bit integer arithmetic.
  • CUDALucas, outdated implementation of LL for CUDA. Uses double-precision IBDWT.
  • PrMers/Marin, implements LL and PRP. Uses IBDWT with number-theoretic transform over Z&nbsp;/&nbsp;(2<sup>64</sup>&nbsp;−&nbsp;2<sup>32</sup>&nbsp;+&nbsp;1)&nbsp;Z using 64-bit integer arithmetic.

In addition, PrimeNet accepts other forms of data contributions from projects such as TJOAI (Tadashi Taura's custom software to trial-factor many Mersenne numbers at once).

Primes found

All Mersenne primes are of the form , where p is a prime number. The smallest Mersenne prime in this table is

The first column is the rank of the Mersenne prime in the (ordered) sequence of all Mersenne primes; GIMPS has found all known Mersenne primes beginning with the 35th.

{| class="wikitable sortable"

|- style="line-height:133%"

! # || Discovery<br>date || Prime M<sub>p</sub> || Digits<br>count || Processor || Method

|-

| style="text-align:center;"| 35 || Nov 13, 1996 || style="text-align:left;"| M<sub>1&nbsp;398&nbsp;269</sub> || style="text-align:right;"| 420,921 || Pentium (90 MHz) ||rowspan="17"| Prime95 LL

|-

| style="text-align:center;"| 36 || Aug 24, 1997 || style="text-align:left;"| M<sub>2&nbsp;976&nbsp;221</sub> || style="text-align:right;"| 895,932 || Pentium (100&nbsp;MHz)

|-

| style="text-align:center;"| 37 || Jan 27, 1998 || style="text-align:left;"| M<sub>3&nbsp;021&nbsp;377</sub> || style="text-align:right;"| 909,526 || Pentium (200&nbsp;MHz)

|-

| style="text-align:center;"| 38 || Jun 1, 1999 || style="text-align:left;"| M<sub>6&nbsp;972&nbsp;593</sub> || style="text-align:right;"| 2,098,960 || Pentium (350&nbsp;MHz)

|-

| style="text-align:center;"| 39 || Nov 14, 2001 || style="text-align:left;"| M<sub>13&nbsp;466&nbsp;917</sub> || style="text-align:right;"| 4,053,946 || AMD T-Bird (800&nbsp;MHz)

|-

| style="text-align:center;"| 40 || Nov 17, 2003 || style="text-align:left;"| M<sub>20&nbsp;996&nbsp;011</sub> || style="text-align:right;"| 6,320,430 || Pentium (2&nbsp;GHz)

|-

| style="text-align:center;"| 41 || May 15, 2004 || style="text-align:left;"| M<sub>24&nbsp;036&nbsp;583</sub> || style="text-align:right;"| 7,235,733 || Pentium 4 (2.4&nbsp;GHz)

|-

| style="text-align:center;"| 42 || Feb 18, 2005 || style="text-align:left;"| M<sub>25&nbsp;964&nbsp;951</sub> || style="text-align:right;"| 7,816,230 || Pentium 4 (2.4&nbsp;GHz)

|-

| style="text-align:center;"| 43 || Dec 15, 2005 || style="text-align:left;"| M<sub>30&nbsp;402&nbsp;457</sub> || style="text-align:right;"| 9,152,052 || Pentium 4 (2&nbsp;GHz overclocked to 3&nbsp;GHz)

|-

| style="text-align:center;"| 44 || Sep 4, 2006 || style="text-align:left;"| M<sub>32&nbsp;582&nbsp;657</sub> || style="text-align:right;"| 9,808,358 || Pentium 4 (3&nbsp;GHz)

|-

| style="text-align:center;"| 45 || Sep 6, 2008 || style="text-align:left;"| M<sub>37&nbsp;156&nbsp;667</sub> || style="text-align:right;"| 11,185,272 || Intel Core 2 Duo (2.83&nbsp;GHz)

|-

| style="text-align:center;"| 46 || Jun 4, 2009 || style="text-align:left;"| M<sub>42&nbsp;643&nbsp;801</sub> || style="text-align:right;"| 12,837,064 || Intel Core 2 Duo (3&nbsp;GHz)

|-

| style="text-align:center;"| 47 || Aug 23, 2008 || style="text-align:left;"| M<sub>43&nbsp;112&nbsp;609</sub> || style="text-align:right;"| 12,978,189 || Intel Core 2 Duo E6600 CPU (2.4&nbsp;GHz)

|-

| style="text-align:center;"| 48 || Jan 25, 2013 || style="text-align:left;"| M<sub>57&nbsp;885&nbsp;161</sub> || style="text-align:right;"| 17,425,170 || Intel Core 2 Duo E8400 @ 3.00&nbsp;GHz

|-

| style="text-align:center;"| 49 || Jan 7, 2016 || style="text-align:left;"| M<sub>74&nbsp;207&nbsp;281</sub> || style="text-align:right;"| 22,338,618 || Intel Core i7-4790

|-

| style="text-align:center;"| 50 || Dec 26, 2017 || style="text-align:left;"| M<sub>77&nbsp;232&nbsp;917</sub> || style="text-align:right;"| 23,249,425 || Intel Core i5-6600

|-

| style="text-align:center;"| 51 || Dec 7, 2018 || style="text-align:left;"| M<sub>82&nbsp;589&nbsp;933</sub> || style="text-align:right;"| 24,862,048 || Intel Core i5-4590T

|-

| style="text-align:center;"| 52 || Oct 21, 2024 || style="text-align:left;"| M<sub>136&nbsp;279&nbsp;841</sub> || style="text-align:right;"| 41,024,320 || Nvidia A100 ||style="max-width:160px"| Gpuowl PRP (verified using LL on Prime95, PRPLL, CUDALucas, etc.)

|-

|}

, 80,611,771 is the largest exponent below which all other prime exponents have been checked twice, so it is not verified whether any undiscovered Mersenne primes exist between the 50th (M<sub>77232917</sub>) and the 52nd (M<sub>136279841</sub>) on this chart; the ranking is therefore provisional. Furthermore, 140,455,177 is the largest exponent below which all other prime exponents have been tested at least once, so all Mersenne numbers below the 52nd Mersenne prime have been tested.

The number M<sub>136279841</sub> has 41,024,320 decimal digits. To help visualize the size of this number, if it were to be saved to disk, the resulting text file would be nearly 42 megabytes long (most books in plain text format are under two megabytes). A standard word processor layout (50 lines per page, 75 digits per line) would require 10,940 pages to display it. If one were to print it out using standard printer paper, single-sided, it would require approximately 22 reams (22 × 500 = 11,000 sheets) of paper.

As mentioned above, every Lucas-Lehmer result undergoes double-checking to avoid both false positives and false negatives. Positive results are given more scrutiny. The importance of this was illustrated in 2003, when a false positive was reported to the server as being a Mersenne prime but verification failed.

The official "discovery date" of a prime is the date that a human first noticed the result for the prime, which may differ from the date that the result was first reported to the server. For example, M<sub>74207281</sub> was reported to the server on September 17, 2015, but the report was overlooked until January 7, 2016.

See also

  • Berkeley Open Infrastructure for Network Computing
  • List of volunteer computing projects
  • PrimeGrid

References