Les calculs sont faits sur des mots de 32 bits ou de 64 bits suivant les modèles de machine. Les valeurs sont données en secondes décimales, une valeur 0 signifie que le temps de calcul est inférieur à 0.3 seconde.
Le calcul des 707 décimales est la pour l'historique, c'est en effet le dernier calcul des décimales de pi fait à la main par Shank en 1874 dont seulement les 527 premières étaient correctes.
Machines des années 87 - 90 (mots de 32 bits) | ||||
---|---|---|---|---|
TYPE DE MACHINES | SYSTEMES | NOMBRE DE DECIMALES | ||
707 | 2000 | 10000 | ||
VAX 11/750 | Unix BSD 4.3 | 7.6 | 70.2 | 1752 (29 mn 12 s) |
VAX 11/780 | Unix BSD 4.3 | 4.7 | 45.4 | 1216 (20 mn 16 s) |
GOULD 6040 | Gould UTX 32 | 4.2 | 43.3 | 1089 (18 mn 9 s) |
SPS7 300 | unix | 2.9 | 26.8 | 701 (11 mn 41 s) |
sun 3/60 | Sun OS 3.1 | 2.1 | 20.7 | 680 (11 mn 20 s) |
IBM 4381 | MVS | 2 | 17.1 | 419 (6 mn 59 s) |
GOULD NP1 | Gould UTX 32 | 0.7 | 6.6 | 165 (2 mn 45 s) |
Machines des années 95 - 2010 (mots de 32 bits) | |||||
---|---|---|---|---|---|
TYPE DE MACHINES | SYSTEMES | NOMBRE DE DECIMALES | |||
707 | 2000 | 10000 | 100000 | ||
Sun 4/30 IPC (25 MHZ) | Solaris 2.5 | 2 | 18 | 493 (8 mn 13 s) | - |
Sun 4/50 IPX (40 MHZ) | Solaris 2.5 | 1 | 10 | 264 (4 mn 24 s) | - |
Hewlett Packard HP9000/710 | HP UX | 0 | 4.6 | 113. 5 (1 mn 53 s) | - |
Sun Sparc 4 (85 MHZ) | Solaris 2.5 | 0 | 3 | 88 (1 mn 28 s) | - |
Sun Sparc 10 (36 MHZ) | Solaris 2.5 | 0 | 3 | 87 (1 mn 27 s) | - |
IBM RS 6000 | AIX | 0 | 2 | 68 (1 mn 8 s) | - |
Sun Sparc 10 (60 MHZ) | Solaris 2.5 | 0 | 2 | 53 | - |
Sun Sparc 20 (75 MHZ) | Solaris 2.5 | 0 | 1 | 47 | - |
Sun Sparc 5 (170 MHZ) | Solaris 2.5 | 0 | 1 | 32 | - |
Sun Sparc Ultra 1 (167 MHZ) | Solaris 2.5 | 0 | 1 | 29 | - |
IBM Power PC | AIX 2.3 | 0 | 1 | 25 | - |
Sun Sparc Ultra 2 (200 MHZ) | Solaris 2.5 | 0 | 0.9 | 24 | - |
Sun Sparc Ultra 2 (248 MHZ) | Solaris 2.5 | 0 | 0.7 | 19 | - |
DEC Alpha 2100 (292 MHZ) | OSF1 | 0 | 0.7 | 18.8 | - |
Sun Sparc Ultra 5 (270 MHZ) | Solaris 2.6 | 0 | 0.7 | 18 | - |
Sun Sparc Ultra 10 (333 MHZ) | Solaris 7 | 0 | 0.6 | 15 | - |
Sun Sparc Ultra 5 (360 MHZ) | Solaris 7 | 0 | 0.6 | 13 | - |
IBM RS 6000 590 | AIX | 0 | 0.5 | 12. 4 | - |
Sun Sparc Ultra 10 (440 MHZ) | Solaris 7 | 0 | 0.4 | 11 | - |
Silicon Graphics O2 IP32 (180 MHZ) | IRIX 6.3 | 0 | 0.4 | 10. 3 | - |
Elonex pentium MMX (200 MHZ) | Solaris 7 (gcc) | 0 | 0.4 | 10 | - |
Hewlett Packard Vectra XA (160 MHZ) | Windows NT (gcc) | 0 | 0 | 8. 6 | - |
Silicon Graphics O2 IP32 (195 MHZ) | IRIX 6.3 | 0 | 0 | 7. 3 | - |
Hewlett Packard HP9000/C180 | HP UX | 0 | 0 | 7. 2 | - |
DELL OPTIPLEX pentium PRO (233 MHZ) | Openstep (gcc) | 0 | 0 | 6. 8 | - |
IEC pentium II (300 MHZ) | Linux (gcc) | 0 | 0 | 5. 6 | - |
Macintosh Power PC 604ev (250 MHZ) | Linux (gcc) | 0 | 0 | 3.86 | - |
IEC bipentium II (400 MHZ) | Linux 2.2.1 (gcc) | 0 | 0 | 3. 7 | - |
Pentium III (450 MHZ) | Linux 2.2.12-20 (gcc) | 0 | 0 | 3. 5 | - |
Pentium III (600 MHZ) | Linux 2.2.16-22 (gcc) | 0 | 0 | 2.43 | 284.75 (4mn 44s) |
Pentium III (700 MHZ) | Linux 2.2.16-22 (gcc) | 0 | 0 | 2.25 | - |
PowerMac3,1 PPC G4 (500 MHZ) | Mac OS X 10.4.11 | 0 | 0 | 1.97 | - |
Pentium III (800 MHZ) | Linux 2.2.16-22 (gcc) | 0 | 0 | 1.85 | 227.16 (3mn 47s) |
Pentium III (933 MHZ) | Linux 2.4.2-2 (gcc) | 0 | 0 | 1.56 | - |
e-mac PPC G4 (700 MHZ) | Mac OS X.2 (gcc) | 0 | 0 | 1.38 | - |
Pentium IV (2.6 GHZ) | Linux 2.4.22 (gcc) | 0 | 0 | 0.91 | 105.58 (1mn 45s) |
Pentium IV (2.9 GHZ) | Linux 2.4.22 (gcc) | 0 | 0 | 0.81 | 93.5 (1mn 33s) |
Pentium Dual-Core (2.50 GHz) | Linux Fedora 10 (gcc) | 0 | 0 | 0.35 | 38.8 |
Pentium Dual-Core (2.60 GHz) DELL T1500 | Ubuntu 10.04 | 0 | 0 | 0.29 | 35.1 |
Pentium Core i7 (2.93 GHz) DELL T1500 | Ubuntu 10.04 | 0 | 0 | 0.28 | 31.2 |
Intel Xeon (3.16 GHZ) | Linux Fedora 8 (gcc) | 0 | 0 | 0.27 | 30.97 |
Dans le cas des machines à mots de 64 bits l'algorithme est plus performant car il peut utiliser la totalité du mot (type long). Il peut aussi n'utiliser que les 32 premiers bits du mot (type int), ce qui permet de voir le gain de performance qu'apportent les 64 bits.
Machines des années 95 - 2010 (mots de 64 bits) | ||||
---|---|---|---|---|
TYPE DE MACHINES | SYSTEMES | calcul sur 32 bits | calcul sur 64 bits | |
10 000 decimales | 10 000 decimales | 500 000 decimales | ||
DEC Alpha EV4 (150 MHZ) | OSF1 | 49 | 33.2 | 19h 40mn |
DEC Alpha EV5.6 (500 MHZ) | OSF1 | 10.9 | 5.9 | 4h 34mn 36s |
Sun Ultra 10 (333 MHZ) | Solaris 7 5/99 | 10 | 3.0 | 2h 58mn 24s |
Sun Ultra 250 (400 MHZ) | Solaris 7 5/99 | 8 | 2.2 | 2h 21mn 22s |
Sun Ultra 10 (440 MHZ) | Solaris 7 5/99 | 7 | 2.0 | 2h 09mn 47s |
Sun Fire 280 (900 MHZ) | Solaris 9 | 5.9 | 1.05 | 49mn 56s |
DELL PE1950 (Intel Xeon 2600 MHZ) | Red Hat ES 4 | 0.45 | 0.31 | 13mn 56s |
Pentium Dual-Core (2.50 GHz) | Ubuntu 8.10 (gcc) | 0.35 | 0.26 | 10mn 11s |
DELL PE1950 (Intel Xeon 3.16 GHZ) | Fedora 8 x86_64 | 0.27 | 0.18 | 8mn 24s |
Si quelqu'un veut lancer le même programme sur d'autres systèmes je serai fortement intéressé par les résultats.
gcc -DS32BITS -o pim2 -O2 pim2.c (pour machine à mots de 32 bits)Remarque: le calcul sur 64 bits étant très spécifique du matériel, se reporter à la
gcc -DS64BITS -m64 -o pim2 -O2 pim2.c (pour mots de 64 bits sur SPARC)
time pim2 10000 > SORTIE
md5sum SORTIE0b91db0e5d4c539af73fc47e56eb7cbe SORTIE (mots de 32 bits)
7343e8435e321d7795a50a7a10bd6133 SORTIE (mots de 64 bits)
8359bfd16f029318a5456d64ac9683d3 SORTIE (mots de 64 bits pour 500 000 décimales)