Licence CC BY

62 831 853 071 750 décimales de π. Et maintenant ?

Les dix derniers chiffres sont : 7817924264

Un nouveau record de décimales de π

Le record

Plus de soixante-deux-mille-milliards de décimales de π calculées – 62 831 853 071 750 pour être exact.

C’est le record du monde actuel, et le résultat auquel est l’arrivée, ce samedi 14 aout 2021, l’équipe de l’Université des Sciences Appliquées des Grisons, en Suisse. Vous pouvez retrouver tous les détails de cette aventure sur leur site Internet (en anglais).

Le précédent était de 50 000 milliards de décimales (tout rond), par Timothy Mullican, le 29 janvier 2020.

Comment ?

En une centaine de jours, avec un seul serveur de calcul et un seul serveur de stockage.

Le serveur de calcul possédait 2 AMD EPYC 7542 pour un total de 64 cœurs et 128 threads, et 1 To (1024 Go) de mémoire vive. Si ce dernier chiffre peut paraitre énorme, c’est pourtant trop peu de RAM pour contenir π avec toute la précision voulue (on peut y calculer 100 milliards de décimales, mais on en veut 62 800 milliards – 628 fois plus)…

C’est pour ça qu’à la machine de calcul a été adjoint un serveur de stockage constitué de 38 disques de 16 To chacun. Il a fourni 63 To pour conserver π, 91 To pour les éléments intermédiaires, 310 To de swap, qui agit comme une extension de la mémoire vive, et 180 To de sauvegardes diverses.

La puissance nécessaire n’était pas démesurée : l’équipe indique une consommation de 300 W pour le serveur de calcul, 430 W pour celui de stockage et 950 W pour la climatisation de l’ensemble, soit un total de 1700 W. Cela donne une consommation totale d’environ 15 GJ (4100 kWh pour rester dans des unités habituelles quand on parle d’électricité). La puissance nécessaire consommée est proche de celle d’un petit sèche-cheveux ; et l’énergie totale est du même ordre de grandeur que l’électricité consommée sur une année par un foyer moyen en France en 2016.

Autant de décimales de π, pour quoi faire ?

π et le monde physique

D’accord, on dispose maintenant de plus de 62 000 milliards de décimales de π. Mais dans la vraie vie, à quoi est-ce que ça peut servir ?

Eh bien, la NASA, via sa section du JPL, répond à cette question (en anglais). La valeur de π qu’ils utilisent est : 3,141 592 653 589 793… soit 15 décimales « seulement ». Et pourtant, cette valeur, qui peut sembler ridiculement faible, est largement suffisante dans le monde réel :

  • La sonde spatiale Voyager 1, qui est l’objet humain le plus lointain, est à plus de 20 milliards de kilomètres (plus d’un jour-lumière) de la Terre. π arrondi à la 15ème décimale donne une erreur de moins de 4 centimètres sur le diamètre d’un cercle de 20 milliards de kilomètres.
  • La circonférence terrestre est de 40 000 km environ ; l’approximation de π utilisée par la NASA premet une imprécision de la taille d’une molécule sur une telle distance (donc bien inférieure à toutes les irrégularités de la surface de la planète).
  • Le rayon de l’Univers visible1 est de l’ordre de 46,5 milliards d’années-lumière. 40 décimales de π sont pourtant suffisantes pour calculer son périmètre avec une erreur de la taille d’un atome d’hydrogène – le plus petit existant.

Tous ces calculs supposent aussi que l’on ait des données d’une précision similaire à celle de la valeur de π utilisée.

On peut même s’amuser à pousser encore le calcul. La plus grande taille qui ait un sens physique, c’est celle de l’Univers observable, soit 46,5 milliards d’années-lumière de rayon, donc environ 4,4×10264,4 \times 10^{26} mètres. La plus petite longueur qui ait encore un sens physique est la longueur de Planck, qui vaut 1,616255×10351,616 255 \times 10^{-35} mètres. Il y a donc un rapport de 2,7×10612,7 \times 10^{61} entre ces deux valeurs2. Ainsi, une soixantaine de décimales de π sont suffisantes pour calculer la taille de l’Univers avec la plus grande précision qui ait un sens physique, même en imaginant des données infiniment précises (dans les limites de la physique) en entrée. On peut raisonnablement en déduire qu’une poignée de centaines de décimales seront largement suffisantes pour toute forme de calcul portant sur une réalité physique quelconque.

Or, on connait π avec une précision à des centaines de milliards d’ordres de grandeur supérieure3.

Alors, quelle utilité ?

L’équipe répond elle-même à cette question : en soi, une telle débauche de décimales de π ne sert à rien.

Par contre, c’est un bon test pour essayer et valider des solutions de calcul haute performance, ici sur du matériel intermédiaire entre le petit serveur personnel et de grosses installations de type superordinateur. Si le matériel utilisé est très accessible (y compris à des PME), il a fallu des configurations et des compétences assez spécifiques pour y parvenir. Ce type de projet permet aussi de certifier le fonctionnement du matériel et du logiciel dans les conditions inhabituelles nécessaires à ce genre d’exploit, avant de les employer pour des tâches précieuses.

Et bien entendu, pour la fierté d’avoir battu le record du nombre de décimales connues de π.


  1. L’Univers n’a « que » 13,8 milliards d’années, mais l’horizon cosmologique est plus lointain du fait de l’expansion de l’Univers.
  2. Exprimé autrement, l’univers observable a un rayon de 2,72×10612,72 \times 10^{61} fois la longueur de Planck.
  3. Ce qui est littéralement impossible à imaginer. Trois ordres de grandeur, 3 décimales, c’est déjà une multiplication par mille. Neuf, c’est une multiplication par un milliard, un nombre déjà si titanesque qu’on a énormément de difficultés à l’appréhender. Dans notre cas, la seule différence entre la taille de l’écriture des chiffres est hors de portée…


Merci à @melepe pour la validation et à @Aabu pour les commentaires !

Le logo est une création personnelle et mis à disposition sous licence CC BY 4.0 (si tant est qu’une licence s’applique réellement à une création aussi simple).

Ces contenus pourraient vous intéresser

5 commentaires

Je vous rajoute ceci en remarque face à une incompréhension par rapport à la consommation énergétique somme toute importante pour quelque chose qui peut sembler inutile.


Le but n’est pas de calculer π, mais de valider un système. C’est pas moi qui le dit, mais l’équipe en charge du test :

We would like to demonstrate that Pi can be efficiently calculated to 62.8 trillion decimal places with limited hardware, personnel and budgetary resources. The current world record for the most accurate number of Pi will serve as a reference for our performance.

Calculating the most accurate number of Pi is an unofficial benchmark in the area of high-performance computing. Although there is no practical application in knowing trillions of decimal places of a transcendental number, this is however, a useful test of our abilities to run extremely resource-demanding computations.

Les deux premiers paragraphes du site de présentation des résultats (le gras est de moi).

En ce sens, on peut comparer cette performance à la mise en orbite de la Tesla Roadster par une Falcon 9 Heavy. Le résultat apparent est spectaculaire, facile à communiquer et totalement inutile en soi. Parce qu’il n’est pas important.

Ce qui est important, c’est ce qu’il y a en-dessous. La démonstration d’Elon Musc l’autorise de dire : « Ma fusée permet d’envoyer une charge de plusieurs tonnes sur orbite martienne. ». La démonstration de la FHGR leur permet de dire : « Regardez, on peut faire des calculs de cette complexité avec du matériel somme toute très limité » (cf le paragraphe sur l’efficacité énergétique, dans le lien).

Et c’est ces démonstrations qui sont importantes.

Alors, pourquoi avoir choisi un truc aussi inutile que les décimales de π pour l’exemple, et pas un calcul utile ?

  • Parce que les décimales de π, c’est pas grave si ça échoue (aucun projet de recherche n’en a vraiment besoin, tout comme personne n’a besoin d’envoyer une voiture en orbite),
  • parce que c’est facilement vérifiable (cf toute la partie sur la validation des résultats),
  • et parce que ça permet une métrique connue sur la puissance de calcule atteinte (cf la notion de benchmark dans les premiers paragraphes, et la section dédiée aux applications).

Moui, les justifications postées en commentaires ne sont quand même pas complètement convaincantes.

  1. "On fait un truc qui ne sert à rien, donc ce n’est pas grave si ça échoue". Leur truc ne sert à rien s’il échoue et à rien s’il réussit. Calculer des quantités utiles est inutile si le calcul choue, et utile s’il réussit, donc c’est strictement mieux, non ?

  2. "C’est facilement vérifiable": On ne sait pas vraiment (à partir de leur article) comment est faite la validation, quelle est la partie du résultat qui a été validée, mais on dirait que c’est seulement une petite partie de la sortie.

  3. "c’est un benchmark": j’ai l’impression que pour fournir un benchmark on n’a pas besoin de prendre un calcul qui dure 200 jours, on pourrait benchmarker une approche (un système matériel) sur un calcul durant quelques heures ou quelques jours.

"On fait un truc qui ne sert à rien, donc ce n’est pas grave si ça échoue". Leur truc ne sert à rien s’il échoue et à rien s’il réussit. Calculer des quantités utiles est inutile si le calcul choue, et utile s’il réussit, donc c’est strictement mieux, non ?

C’est une question de balance bénéfice/risque de la part de la personne qui a besoin de la charge utile (au sens large, la réflexion est valable pour tous les cas de charge utile lors de test, que ça soit des systèmes de calcul, des fusées, ou autre). Est-ce que ce besoin de résultat peut supporter le délais et les surcouts introduits par l’échec de la méthode expérimentale (gestion du cas en mode « test » + constat de l’échec + nouvelle gestion sur un autre système éprouvé) ?

La réponse est généralement « non », donc tes charges de test sont des charges inutiles, ou utiles à la communication. Ou, si ton activité est assez intégrée pour que ça soit possible, tu utilises tes propres tests pour tes propres tests (envoi d’une maquette avec la première fusée d’une série, etc).

"C’est facilement vérifiable": On ne sait pas vraiment (à partir de leur article) comment est faite la validation, quelle est la partie du résultat qui a été validée, mais on dirait que c’est seulement une petite partie de la sortie.

De ce que j’ai compris, et ça vaut que que ça vaut donc, la vérification est un coup en deux bandes :

  1. Le calcul de la décimale N+1 nécessite que le calcul de la décimale N soit correct
  2. On peut calculer une décimale D arbitraire de π, mais c’est très long.
  3. Donc en ne vérifiant que les 10 dernières du calcul, on a une bonne garantie que toutes les précédentes sont bonnes avec un temps de vérification raisonnable1 parce que tomber sur les 10 deniers chiffres corrects mais avec des erreurs au milieu serait quand même très improbable.

"c’est un benchmark": j’ai l’impression que pour fournir un benchmark on n’a pas besoin de prendre un calcul qui dure 200 jours, on pourrait benchmarker une approche (un système matériel) sur un calcul durant quelques heures ou quelques jours.

Là dans l’absolu je suis assez d’accord, ça fait beaucoup d’énergie « juste pour ça », un test de moins de 100 jours aurait peut-être été tout aussi utile. Ou pas, selon ce qu’ils voulaient tester et benchmarker réellement, en fonction des capacités disques, RAM, etc. qu’ils avaient. Là je n’ai pas de réponse absolue.

Pour comparaison, l’énergie dépensée correspond grosso modo à la consommation électrique d’un foyer français moyen en 2016 (ce que je dis dans l’article) mais aussi à l’énergie de combustion d’un peu plus de 400 litres d’essence.


  1. Enfin, « raisonnable », ce screenshot montre quand même plusieurs jours de vérifications diverses.

Est-ce que ce besoin de résultat peut supporter le délais et les surcouts introduits par l’échec de la méthode expérimentale (gestion du cas en mode « test » + constat de l’échec + nouvelle gestion sur un autre système éprouvé) ?

Tu fais une dichotomie entre "complètement inutile" et "j’en ai besoin bientôt". Voici quelques exemples de calculs qui sont utiles, mais dont la non-disponibilité à une date donnée ne pose pas de gros problèmes:

  • des simulations météorologiques dans des régions du monde où n’en a pas fait très finement pour l’instant
  • des évaluations d’ouvertures aux échecs (ou dans tout autre jeu, de préférence un peu moins étudié) qui n’ont pas encore été explorées très en profondeur
  • des calculs de représentations 3D de protéines qui n’ont pas été étudiées précédemment (je crois qu’il existe aussi tout un tas de questions de simulation en chimie quantique, mais je ne maîtrise pas du tout)
  • du pré-calcul de routes sur OpenStreetMap (ou toute autre activité coûteuse en calcul dont les données en entrée sont un bien commun et la sortie est utile à des gens)

De ce que j’ai compris, et ça vaut que que ça vaut donc, la vérification est un coup en deux bandes :

  • Leur calcul de la décimale N+1 nécessite que le calcul de la décimale N soit correct
  • [..]
  • Donc en ne vérifiant que les 10 dernières [décimales] du calcul, on a une bonne garantie que toutes les précédentes sont bonnes avec un temps de vérification raisonnable1 parce que tomber sur les 10 deniers chiffres corrects mais avec des erreurs au milieu serait quand même très improbable.

En fait ce raisonnement ne tient pas vraiment. Le logiciel utilisé par les auteurs est le même que celui utilisé pour les deux précédents records du monde; en particulier on suppose que les 50 premiers milliards de décimales ont été calculées correctement. Je pense qu’on peut raisonnablement supposer que l’algorithme utilisé est correctement implémenté (s’il ne s’est pas trompé sur les 50 premiers milliards, ce serait vraiment extraordinaire qu’une erreur de programmation apparaisse sur la bande 50–62). Des erreurs peuvent tout de même être introduites après le calcul, par le reste du système: l’écriture en RAM, puis dans leurs disques durs de stockage. Mais sur cette partie le raisonnement ne tient pas: on peut tout à fait écrire dans le disque la mauvaise décimale en position 10-milliards, alors que la décimale calculée par le CPU était correcte et permet de continuer correctement les calculs. Pour repérer ce genre d’erreurs matérielles il faut essayer de vérifier une plage importante de la sortie (au moins de manière probabiliste), et l’article n’en parle pas du tout.

Je te dis ce que moi j’en ai compris.

Si tu n’es pas d’accord avec ça, c’est des remarques à faire aux concepteurs du test en question, qui auront peut-être des réponses à y apporter. Personnellement je n’ai aucune implication dans ce record, je n’ai donc aucun élément supplémentaire à rajouter à ces points.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte