Les Programmes sur Pi
Tout bon site sur Pi qui se respecte doit avoir
une page sur les programmes informatiques ! En effet, cause ou conséquence de
l'utilisation des ordinateurs, on a vu fleurir de nombreux algorithmes très
performants depuis celui de Salamin en 1976. Ils sont épaulés par l'utilisation
de méthodes de multiplication toujours plus rapides, en O(n.log(n)), et dérivées
de la transformée de Fourier rapide.
Les progrès dans le calcul des décimales ont ainsi été sensibles.
Mais Kanada et les Chudnovsky ne sont pas, comme on le pense parfois, les seuls intéressés
capables de l'écriture d'un programme efficace. C'est même devenu un sport
international. Ainsi Carey Bloodworth et Xavier Gourdon pour ne citer qu'eux se surpassent
régulièrement et offrent deux logiciels qui sont même plus performants
que celui utilisé par Kanada par exemple !
On trouve maintenant des programmes pour toutes les plates-formes, et c'est l'objet
de cette page de les présenter. De 100 décimales à plusieurs centaines de millions,
vous trouverez je l'espère votre bonheur !
A noter que cette page n'en est qu'aux premiers pas de son existence et que d'autres
adresses et programmes viendront certainement l'enrichir prochainement, histoire
de se démarquer un peu plus des deux pages anglaises de référence
(voir plus bas).
Les princes du calcul
Tout d'abord, deux programmes sortent vraiment
du lot. Le premier est le plus rapide et le second est presque aussi efficace mais
surtout disponible sur toutes les plates formes !
PiFast 3.2 de Xavier Gourdon
Page de Xavier Gourdon - Téléchargement
Ce programme en perpétuelle évolution est développé par un français
qui s'est fait un nom en quelques mois. Le programme est basé sur la série
de Chudnovsky (convergence 14n) et utilise bien sûr la transformée de Fourier
rapide pour les multiplications. Une vérification est assurée par la formule
de Ramanujan (convergence 8n). Ce programme détient le record du nombre de décimales
calculées par un particulier sur un PC, voici le tableau en détail pour
la version 3.1 :
Nbre de décimales |
Qui
|
Temps
|
Date
|
Machine (processeur, memoire)
|
Version de PiFast
|
4,294,960,000
|
Shigeru Kondo
|
246 hours
|
13 Nov 1999
|
PIII 550 (1024 Mo)
|
3.1
|
2,684,354,560
|
Shigeru Kondo
|
245 hours
|
19 Oct 1999
|
PIII 550 (1024 Mo)
|
2.3
|
2,147,483,648
|
Shigeru Kondo
|
157 hours
|
13 Sep 1999
|
PIII 550 (1024 Mo)
|
2.3
|
1,610,612,736
|
Shigeru Kondo
|
119 hours
|
29 Aoû 1999 |
PIII 550 (1024 Mo)
|
2.1
|
1,073,741,824
|
Shigeru Kondo
|
63.5 hours
|
13 Aoû 1999 |
PIII 550 (1024 Mo)
|
2.1
|
268,435,456
|
Stuart Lyster
|
32 h 40 min
|
13 Aoû 1999 |
PII 300 (128 Mo)
|
2.2
|
134,217,728
|
Shigeru Kondo
|
2 h 45 min.
|
4 Aoû 1999 |
PIII 550 (1024 Mo)
|
1.1
|
67,108,864
|
Stuart Lyster
|
8 h 18 min
|
30 Jul 1999
|
PII 300 (128 Mo)
|
1.1
|
67,108,864
|
Stuart Lyster
|
19 h 12 min
|
21 Jul 1999
|
PII 300 (128 Mo)
|
1.0
|
d'après le tableau de Xavier Gourdon
Je vous encourage vivement à aller faire
un tour sur la page de Xavier Gourdon, il explique
pas mal de choses sur la transformée de Fourier rapide et sur le calcul informatique
(exercice : trouver un équivalent de computation !) des plus célèbres
constantes...
PiAGM de Carey Bloodworth
Page
de C. Bloodworth - Les téléchargements
du programme sont regroupés par plate-forme plus bas...
Carey est un des vétérans des programmes de calcul de Pi puisque la première
version de son fameux logiciel PiAGM date de 1996. A l'époque, son ambition
était de faire calculer 1 million de décimales par un processeur 386 en
une journée, exploit mémorable !
Depuis, le programme a bien évolué mais reste axé autour de l'algorithme
de Salamin, ce qui justifie le AGM, pour moyenne arithmético-géométrique
en français, dans le nom. Bien sûr, on retrouve l'utilisation de la fameuse
FFT pour les multiplications des longs entiers. Mais l'originalité de PiAGM
consiste à proposer le calcul au moyen d'un paquet de variantes de la FFT. Au
choix ! Vous trouverez leur description sur la page quasi-officielle
du programme.
Le logiciel est un peu moins rapide que PiFast, mais a un autre avantage certain,
il est disponible sur à peu près toutes les plate-formes du marché et fournit les sources. Les archives sont la plupart du temps au format courant tar/gzip
sauf mention explicite.
Le bazar des OS
Pour contenter tous les systèmes d'exploitations,
voici une grande partie des meilleurs programmes pour les diverses plate-formes
du marché. Le lien du téléchargement renvoie la plupart du
temps au programme présent sur les pages des auteurs, car je n'ai pas
assez de place sur mon compte d'hébergement.
Mais si un lien ne fonctionne pas, demandez-moi de vous envoyer le programme,
je les ai tous sur mon disque. N'hésitez-pas !
Ah, une chose encore, j'ai choisi de différencier les logiciels spécifiques
à une plate-forme et les codes sources qui sont compilables un peu
partout. Pour que l'on ne se retrouve pas comme moi avec la joie d'avoir
téléchargé un programme sans pouvoir le faire marcher faute
de compilateur !
Macintosh
Honneur à mon ordinateur préféré...
Ne figurent ici que les programmes fournis avec un executable Mac. Vous
êtes ensuite libres de compiler les sources C répertoriées
plus bas, mais ce n'est plus un programme spécifique à la plate-forme
PowerPC
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger
PiPrimes - Isabel Georges
Adresse
de l'auteur - Télécharger
Une très bonne surprise, ce programme. Dommage qu'il n'aille pas
au-dela de 29000 décimales... Il utilise le package MPFUN, de David Bailey, qui comprend
des routines de calcul arithmétique de précision.
CalculatePi version 1.5 - Carey
Bloodworth
Page
de l'archive - Télécharger
Sorti le 2/17/95, le programme est optimisé PowerPC et utilise la formule
Pi/4 = 6 tan-1(1/8) + 2 tan-1(1/57) + tan-1(1/239) . Mais pas de FFT pour autant... 20000 décimales
en 30 secondes, mais un temps de calcul en n2
Buffon Needle - George Reese
Page
de l'auteur - Télécharger
Comme son nom l'indique, le programme se
charge d'estimer Pi par la méthode de l'aiguille de Buffon. Bien
sûr, il ne faut pas espérer beaucoup de décimales, mais
c'est une belle adaptation informatique.
Pi and e - J.F. Pautex
Page
de l'auteur - Télécharger
Une interface un peu déroutante, mais
un programme qui marche et permet en plus le calcul de e.
Performances - G3 266MHz 128Mo RAM MacOS 8.6
|
10000 décimales |
PiAGM |
<2 secondes |
PiPrimes |
5 secondes |
CalculatePi |
8 secondes |
Pi and e |
56 secondes |
Buffon Needle |
! |
MacOS X Server
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger
Windows/DOS
Les pages de Stuart Lyster
et Dara sont sans aucun doute les meilleurs site en anglais consacrés aux programmes
calculant Pi. Pour établir une comparaison des programmes, il était
inutile de se casser la tête, rien ne vaut un coup d'oeil aux magnifiques
tableaux qu'il ont concocté. Je ne peux que vous conseiller d'aller
faire un petit saut sur leur page si vous n'êtes pas allergiques à l'anglais.
Sinon, voici une grande liste de programmes suivi d'une petite vue d'ensemble
des performances, faites votre choix ! Sauf superpi, il me semble que tous
les autres programmes sont livrés avec leur code source, le plus généralement
en C/C++.
Pifast 3.2 - Xavier Gourdon
Page
de l'auteur - Télécharger
Voir plus haut !
Pi_css4.exe - Takuya Ooura
Page
de l'auteur - Télécharger
Repose sur la FFT et l'AGM, était à
l'origine un test de rapidité de routines de multi-précision
par la FFT. La base de la FFT utilisée est 8,4,2
Piologie_pi.zip - Sebastian Wedeniwski
Mail
de l'auteur - Télécharger
Basé sur piologie, une bibliothèque
de fonctions arithmétiques
PI4.EXE - Giovanni Ciampa
Mail
de l'auteur - Télécharger
Repose sur le code de Takuya Ooura de l'univ.
de Tokyo. Pi4.exe utilise une FFT de base 4, 2
GioPi - Giovanni Ciampa
Mail
de l'auteur - Télécharger
Un programme qui me semble différent
de celui mentionné dans le tableau. Il est basé sur une formule
d'Arctan et provient du monde Atari dans lequel il a reçu des récompenses.
Ahppi.exe - Alan Pittman
Mail de
l'auteur - Télécharger
Programme XMPPI
utilisant la FFT et fourni comme une source
c avec son éxécutable DOS
Aptest.exe - Mikko Tommila
Page
de l'auteur - Télécharger
Une partie de l'ensemble de programmes de
calcul APFLOAT sur les entiers de Tommila
Superpi.exe - Yasumasa Kanada
Page
de l'auteur - Télécharger
C'est une variante du fameux programme qui
détient le record de calcul des décimales soit 206,158,430,000
décimales en Sept 1999. Maic ce programme ne va que jusqu'à
33,5 millions de décimales.
Pi Program - Terj Mathisen
Télécharger
Ce programme est basé sur une série
d'Arctan et a la particularité d'avoir été écrit en
assembleur, le code est d'ailleurs fourni avec l'éxécutable
DOS.
Pi Bellard - Fabrice Bellard
Page
de l'auteur - Télécharger
Voici notre hacker national au travail pour
ce bon éxécutable utilisant une série d'Arctan et la FFT.
Grande quantités de décimales et temps de travail quasi-linéaire
au programme !
Pi dpmi - Dario Alpern
Page
de l'auteur - Télécharger
Un programme écrit en assembleur 386
qui calcule au passage e et ln(2). Pour Pi, il utilise une formule d'arctan.
Pi dpm - Jan Kraak
Mail
de l'auteur - Télécharger
Une variante du programme précédent
mais utilisant cette fois-ci la formule de Machin. Cela n'enlève
pratiquement rien à la rapidité du programme.
WinPi - Martin Mamo
Page
de l'auteur - Télécharger
Un programme assez connu mais lent. Il est
le résultat d'un portage depuis un autre éxécutable sur
Sun et se base sur la formule d'Arctan de Klingstierna.
PiW - Harry Smith
Mail
de l'auteur - Télécharger
Un programme très lent mais bien documenté avec son code source. Il repose sur une formule d'Arctan.
1-million-of-digits
Télécharger
Exactement 1 million de décimales avec
ce programme vous obtiendrez, Yoda a dit.
Performances
En attendant de faire mes propres essais, voici ceux réalisés
par Stuart Lyster et Dara. Ils comprennent également des programmes
compilés à partir des codes sources disponibles plus bas.
Sur Pentium II 300MHz / 128Mo RAM
Sur 333 MHZ Pentium II sous WindowsNT 4.0 pour 131 072 décimales de
Pi (certains programmes sont des sources, disponibles plus bas, je rappelle...)
Linux
Linux (pour Intel)
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger
Pixlinux - Jorg Arndt
Mail de l'auteur - Télécharger
Basé sur l'algorithme à convergence
quartique des Borwein principalement, ce programme est relativement lent
mais pourtant hautement configurable puisque ce sont pas moins de dix
formules qui sont proposées. Pas de sources, hélas...
LinuxPi - Jorg Arndt
Mail
de l'auteur - Télécharger
Ce programme est un portage de WinPi sur
Linux, il en possède donc les avantages et les inconvénients
comme une certaine lenteur.
Linux (pour Power PC)
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger
Linux (pour Motorola 68k (vieux Macs !))
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger
Linux (pour stations alpha et processeur>21064)
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger
Linux (pour stations SuperSPARCS)
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger
Unix
HP UX, processeurs>64bit PA-RISC et HP UX 10
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger
IRIX, processeurs>64bit MIPS et IRIX
6.X
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger
SUN
SUN SOLARIS, stations UltraSPARCS et Solaris 2.x
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger
BeOS
Processeurs>Pentium avec BeOSR4
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger (zip)
Processeurs PowerPC avec BeOSR4
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger (zip)
OS/2
Pi - Juergen Bohl
Mail
de l'auteur - Télécharger
Amiga
Pour Workbench >2.0.4 et processeur> 68020
PiCalc - Steffen Thorsen
Page
de l'auteur - Télécharger
Script CGI
PiTrainer - Magnus Bodin
Page de l'auteur - Télécharger
Un petit programme de test de vos connaissances
sur les décimales
Sources C
PiAGM - Carey Bloodworth
Page
de l'auteur - Télécharger
BlockPi
Page
de l'auteur - Télécharger
- Explications
Un programme très rapide bien qu'il
utilise une série, en l'occurence celle de Gosper. Facile à comprendre, il peut aller jusqu'à 6 millions de décimales, mais rrequiert un temps de calcul en n2.
Pidecimal.c - Fabrice Bellard
Page
de l'auteur - Télécharger
Calcul du n-ième digit de Pi sans connaître
les précédentes par notre polytechnicien préféré !
Pi.c - Roy Williams
Mail
de l'auteur - Télécharger
Utilise la formule de Machin et est bien
documenté.
Pi3.c - Simon Plouffe
Mail
de l'auteur - Télécharger
Page de Rhoads
Page
de l'auteur - pibis.c - pibis3.c
Pi8.c - Carey Bloodworth
Page
de l'auteur - Télécharger
Programme utilisant les formules d'arctan.
Pi_c50.c - Jason Papadopoulos
Page
de l'auteur - Télécharger
Programme utilisant la formule de Klingenstierna
(1730, voir page de Machin)
Piclassic.c - Xavier Gourdon
Page
de l'auteur - Télécharger
Programme simple utilisant la formule de
Machin
PiHex - Colin Percival
Page
de l'auteur - Télécharger
Calcule les digits en héxadécimal
de Pi.
Pi20 - Kurt Van Branden
Mail
de l'auteur - Télécharger
Basé sur une série de Ramanujan.
Pi9 - Kurt Van Branden
Mail
de l'auteur - Télécharger
Même combat ! Basé sur une série
de Ramanujan. Un tout petit peu plus lent.
Pi3 - Kurt Van Branden
Mail
de l'auteur - Télécharger
Encore un ! Basé sur la série de Machin. Et encore plus lent.
Pi4 - Kurt Van Branden
Mail
de l'auteur - Télécharger
Un petit dernier ? Basé sur la MAG.
Et toujours plus lent.
Pi10 - Kurt Van Branden
Mail
de l'auteur - Télécharger
Eh bien non, encore un... Basé sur l'algorithme
à convergence quartique des Borwein. Et toujours
plus lent.
Algorithme compte-gouttes - Spigot Algorithm
Pi2bisc - Stan Rabinowitz
Page
d'origine - Télécharger
Programmes nains - Tiny Programmes (programmes
les plus courts possibles)
Tinypi - ?
Télécharger
Tiny - Dik T Winter
Télécharger
Le fameux programme de Dik T Winter du
cwi institute de Hollande. Repose sur la même série d'Euler
que les algorithmes compte-gouttes. 158 caractères pour 2400 décimales
!
Tiny2 - Sebastian Wedeniws
Télécharger
Encore plus fort, 142 caractères, mais je n'ai
pas testé le nombre de décimales que le programme obtient
Source Turbo-Pascal
CalcPi (zip)
Télécharger
Classes Java
Buf1.class - George Reese
Page
de l'applet - Télécharger
Une simulation de lancer d'aiguilles dans le cadre du fameux problème
de l'aiguille de Buffon.
Carlo.class - K. Kossert
Page de l'applet - Télécharger
Une simulation de lancer de fléchettes cette fois-ci pour estimer
Pi au moyen de la méthode de Monté-Carlo.
PiGenerator - Gus
Page
de l'applet - Télécharger
Un simple générateur, mais assez pratique.
Ramanujan.class - Gary Talkiewicz
Page
de l'applet - Télécharger
Une jolie interface, et une belle rapidité, mais un peu limité malheureusement.
Machin.class - John Bohr
Page
de l'applet - Télécharger
Un affichage linéaire, et une interface pratique pour ce programme
à base de formule de Machin.
Calculatrices
PICAL - Jean-Christophe BENOIST
Télécharger
Programme pour HP-49 basé sur l'algorithme compte-goutte de Gosper.
Très petit (256 octets), il fournit 1000 décimales en 10
minutes. On entre le nombre de décimales souhaité et on
lance le programme.
Librairies mathématiques - FFT ou multiplication
rapide d'entiers
FFT - Takuya OOURA
Page
de l'auteur - Télécharger
C'est un "package" pour calculer avec les transformations de
Fourier, cosinus et sinus discrètes de séquences de nombres
à une dimension et de longueur 2^N. Contient les sources c et fortran,
et le programme fftpi mentionné plus haut qui est particulièrement
rapide.
FFTW
Page du site - Page
des téléchargements
Un site se fait une spécialité
de la transformée de Fourier rapide, c'est fftw.org, allez y jeter
un coup d'oeil. La majorité des plates formes ont droit à une
version compilée de ces librairies.
HFloat - Jorg Arndt
Page
du site - Mail de l'auteur
Un passionné du calcul informatique,
on trouvera sur sa page une librairie mathématique traitant du calcul
des longs réels.
APFloat - Mikko Tommila
Page
du site - Mail de l'auteur
Des librairies de multiplication rapide,
par l'auteur encore une fois d'un programme de calcul des décimales
de Pi.
CLN - Bruno Hable
Page
du site - Mail de l'auteur
Des librairies de multiplication rapide également,
par un informaticien français, cette fois-ci.
retour à la page d' accueil
|