How big is the measured performance difference?

Each chart bar shows how many times more Time or how many times more Memory one unidentified ↓ pidigits program used, compared to the benchmark program that used least Time or the program that used least Memory.

 pidigits benchmark N=10,000

This table shows 5 measurements - CPU Time, Elapsed Time, Memory, Code and ≈ CPU Load.

Compare how much Memory the pidigits programs used - sort Memory KB. Compare how much Code the benchmark programs used - sort Code B

Column × shows how many times more each program used compared to the benchmark program that used least.

    sort sort sort sort
  ×   Program Source Code CPU secs Elapsed secs Memory KB Code B ≈ CPU Load
1.0Haskell GHC #4 2.252.255,456332  0% 100% 0% 3%
1.0Ada 2005 GNAT #2 2.292.292,2041254  0% 100% 0% 1%
1.0ATS #3 2.292.291,1881154  0% 0% 0% 91%
1.0GNU gcc #4 2.292.291,172541  0% 100% 3% 1%
1.0C++ GNU g++ #3 2.302.311,692682  0% 100% 1% 0%
1.1ATS #2 2.452.461,092942  0% 0% 0% 100%
1.3Scheme PLT #4 2.872.8717,5481131  99% 0% 0% 0%
1.6ATS 3.673.671,204671  1% 0% 1% 100%
1.7Pascal Free Pascal #2 3.843.841,156785  1% 0% 100% 1%
1.8C# Mono #3 3.933.946,4761026  0% 0% 0% 100%
5.0Scala #2 12.6811.30620,628632  3% 3% 96% 9%
5.7OCaml #2 12.6812.693,196510  0% 0% 100% 0%
12Pascal Free Pascal 27.0727.088963042  0% 0% 0% 100%
13Scheme PLT #3 29.3629.3624,880454  0% 0% 0% 100%
18Java 6 -server 41.0140.56222,872800  2% 0% 0% 99%
20C# Mono #2 46.5345.447,744856  0% 3% 96% 1%
38Ada 2005 GNAT 85.7685.762,4921143  0% 100% 0% 0%
38F# Mono #3 85.8785.877,012984  1% 0% 100% 1%
38F# Mono 93.1186.0912,308578  0% 89% 17% 0%
184Java 6 -Xint 6 min6 min28,608800  1% 0% 0% 99%
Go 6g 8g Make Error575
Haskell GHC #3 Make Error331
Java 6 -server #2 Failed938
Java 6 -server #4 Failed1816
Java 6 -Xint #2 Failed938
Java 6 -Xint #4 Failed1816
Java 6 steady state #2 Failed983
Java 6 steady state #4 Failed1836
OCaml Make Error560

 pidigits benchmark : Streaming arbitrary-precision arithmetic

diff program output N = 27 with this output file to check your program is correct before contributing.

Each program should use the same step-by-step spigot algorithm to calculate digits of Pi.

Each program should

Programs should adapt the step-by-step algorithm given on pages 4,6 & 7 of Unbounded Spigot Algorithms for the Digits of Pi (156KB pdf). (Not the deliberately obscure version given on page 2.)(Not the Rabinowitz-Wagon algorithm.)

In addition to language specific multiprecision arithmetic, we will accept programs that use GMP.

For more information see Eric W. Weisstein, "Pi Digits." From MathWorld--A Wolfram Web Resource.
http://mathworld.wolfram.com/PiDigits.html

Revised BSD license

  Home   Flawed   Fastest   License   Help