Record battu pour les nombres premiers !

Le record du plus grand nombre premier a été récemment battu.
Actualités
Mathématiques
Auteur·rice

F. LALLEMAND

Date de publication

5 novembre 2024

La Découverte d’un Nombre Premier Record : Une Nouvelle ère pour GIMPS

Le 21 octobre 2024, le projet GIMPS (Great Internet Mersenne Prime Search) a annoncé la découverte d’un nouveau nombre premier de Mersenne, 2136279841-1, composé de 41 024 320 chiffres. Cette découverte marque un tournant dans l’histoire de GIMPS, car elle met fin à 28 années de domination des ordinateurs personnels dans la recherche de ces nombres rares.

En effet, ce nombre premier record a été découvert grâce à l’utilisation de GPUs (processeurs graphiques), une technologie initialement utilisée pour les cartes vidéo et le minage de cryptomonnaies, mais qui est aujourd’hui au cœur de la révolution de l’intelligence artificielle. Mihai Preda, un contributeur de GIMPS, a développé un logiciel de recherche de nombres premiers de Mersenne compatible avec les GPUs en 2017. Luke Durant, un ancien employé de NVIDIA et fervent partisan des GPUs, a vu en cette technologie une opportunité unique pour GIMPS.

Durant a mis en place une infrastructure pour exécuter et maintenir une suite de logiciels GIMPS sur plusieurs serveurs GPU, créant ainsi un “supercalculateur cloud”. Ce réseau, composé de milliers de GPUs répartis dans 24 centres de données et 17 pays, a permis à Durant de découvrir le nouveau nombre premier après près d’un an de recherche. Le 11 octobre 2024, un GPU NVIDIA A100 à Dublin, en Irlande, a signalé que M136279841 était probablement premier, et le 12 octobre, un GPU NVIDIA H100 à San Antonio, au Texas, a confirmé sa primalité à l’aide d’un test de Lucas-Lehmer.

Une fois le nombre premier probable identifié, plusieurs tests de Lucas-Lehmer ont été effectués par différents contributeurs de GIMPS utilisant différents programmes et matériels pour confirmer la découverte. Cette collaboration a impliqué Aaron Blosser utilisant Prime95 sur des CPUs Intel, ainsi que Durant, James Heinrich, Serge Batalov, Ken Kriesel et Preda utilisant PRPLL/GpuOwl sur des GPUs AMD et NVIDIA. La primalité du nombre a été confirmée le 19 octobre par Serge Batalov utilisant Mlucas sur un CPU Intel.

GIMPS, fondé en 1996 par George Woltman, est un projet collaboratif qui rassemble des milliers de bénévoles à la recherche de nombres premiers de Mersenne. Ces nombres premiers, nommés d’après le moine français Marin Mersenne, sont de la forme 2P-1, où P est un nombre premier. GIMPS a permis de découvrir les 18 derniers nombres premiers de Mersenne, dont le nouveau record. Le projet offre une récompense de 3 000 $ à toute personne découvrant un nouveau nombre premier.

Luke Durant, le découvreur du 52e nombre premier de Mersenne, est l’un des contributeurs les plus prolifiques de GIMPS. Son investissement dans le projet, qui a impliqué des dépenses considérables pour l’utilisation de GPUs dans le cloud, témoigne de son engagement envers la recherche mathématique. Durant prévoit de faire don de sa récompense de 3 000 $ au département de mathématiques de l’Alabama School of Math and Science.

Cette découverte marque une étape importante dans l’histoire de GIMPS et de la recherche de nombres premiers. L’utilisation de GPUs dans le cloud ouvre de nouvelles perspectives pour le projet et pourrait accélérer la découverte de futurs nombres premiers de Mersenne. La collaboration entre les bénévoles et l’utilisation de technologies innovantes ont permis de repousser les limites de la connaissance mathématique.

Que sont les nombres premiers de Mersenne ?

Marin Mersenne

Marin Mersenne

Les nombres premiers de Mersenne sont des nombres premiers de la forme \(2^P-1\), où \(P\) est un nombre premier. Ils sont nommés d’après le moine français Marin Mersenne, qui a étudié ces nombres au 17e siècle. Les nombres premiers de Mersenne sont particulièrement intéressants pour les mathématiciens en raison de leur forme simple et de leurs propriétés mathématiques. Ils ont des applications dans divers domaines des mathématiques et de l’informatique, notamment la cryptographie et la théorie des nombres.

Tous les nombres de la forme \(2^P-1\) ne sont pas des nombres premiers de Mersenne. Par exemple, \(2^{11}-1=2047\) n’est pas un nombre premier, car il peut être décomposé en \(23 \times 89\). La recherche de nombres premiers de Mersenne est un domaine actif de la recherche mathématique, et de nombreux projets, dont GIMPS, sont dédiés à leur découverte.

Quelques explications sur le teste de Lucas-Lehmer

Le test de Lucas-Lehmer est une méthode utilisée pour déterminer si un nombre de Mersenne est premier. Il repose sur une suite récurrente définie par la relation de récurrence suivante :

\[ S_0 = 4, \quad S_{n+1} = S_n^2 - 2 \]

Un nombre de Mersenne \(2^P-1\) est premier si et seulement si \(S_{P-2} \equiv 0 \pmod{2^P-1}\). Autrement dit, si \(S_{P-2}\) est divisible par \(2^P-1\), alors le nombre de Mersenne est premier.

Le test de Lucas-Lehmer est particulièrement efficace pour les nombres de Mersenne, car il permet de vérifier leur primalité en un temps polynomial par rapport à la taille du nombre. Cela en fait un outil précieux pour la recherche de nombres premiers de Mersenne.

Voici une fonction Python qui implémente le test de Lucas-Lehmer pour vérifier si un nombre de Mersenne est premier :

def lucas_lehmer(p):
    s = 4
    m = 2**p - 1
    for _ in range(p - 2):
        s = (s**2 - 2) % m
    return s == 0

# test avec p = 7 (nombre de Mersenne 2^7 - 1 = 127 premier)
p = 7
if lucas_lehmer(p):
    print(f"Le nombre de Mersenne 2^{p} - 1 est premier.")
else:
    print(f"Le nombre de Mersenne 2^{p} - 1 n'est pas premier.")

# test avec p = 11 (nombre de Mersenne 2^11 - 1 = 2047 = 23 * 89)
p = 11
if lucas_lehmer(p):
    print(f"Le nombre de Mersenne 2^{p} - 1 est premier.")
else:
    print(f"Le nombre de Mersenne 2^{p} - 1 n'est pas premier.")
Le nombre de Mersenne 2^7 - 1 est premier.
Le nombre de Mersenne 2^11 - 1 n'est pas premier.

Dans cette fonction, p est l’exposant du nombre de Mersenne, et la fonction renvoie True si le nombre de Mersenne est premier et False sinon.

Évidemment, pour des nombres de Mersenne de taille importante, il est nécessaire d’utiliser des algorithmes et des implémentations plus sophistiqués pour effectuer le test de Lucas-Lehmer de manière efficace.

Vous aussi, participez à la recherche de nombres premiers !

Le site de GIMPS

Le site de GIMPS

Si vous êtes passionné par les mathématiques et que vous souhaitez contribuer à la recherche de nombres premiers, vous pouvez rejoindre le projet GIMPS en téléchargeant le logiciel Prime95 sur votre ordinateur. Le logiciel utilise la puissance de calcul de votre CPU pour effectuer des tests de primalité sur des nombres de Mersenne. En participant à ce projet, vous contribuerez à l’avancement de la recherche mathématique et aurez peut-être la chance de découvrir le prochain nombre premier record ! Vous pourrez alors entrer dans l’histoire des mathématiques en tant que découvreur d’un nombre premier de Mersenne et recevoir une récompense de 3 000 $.

Pour aller plus loin

Deux vidéos qui parlent de cette découverte :