How big is the measured performance difference?

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

 n-body benchmark N=50,000,000

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

Compare how much Memory the n-body programs used - sort Memory KB. Compare how much Code the programs used - sort Code B

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

    sort sort sort sort
  ×   Program Source Code CPU secs Elapsed secs Memory KB Code B ~ CPU Load
1.0GNU gcc 20.3720.374881173  0% 0% 0% 100%
1.0C++ GNU g++ #4 20.5720.569321428  0% 0% 0% 100%
1.0GNU gcc #5 20.7420.744881429  0% 0% 0% 100%
1.0Fortran Intel 21.2521.244961389  0% 1% 0% 100%
1.0Fortran Intel #2 21.3721.374921244  0% 0% 0% 100%
1.1ATS #2 21.8421.845282088  0% 0% 0% 100%
1.1Java 6 steady state #2 23.0723.0614,9361498  0% 0% 0% 100%
1.1Scala 23.0723.0817,8641420  0% 0% 0% 100%
1.1Lisp SBCL 23.1323.1319,5601363  0% 0% 0% 100%
1.1Java 6 -server #2 23.1823.1815,0881424  0% 0% 0% 100%
1.2Ada 2005 GNAT #2 24.1024.101,5401723  0% 0% 0% 100%
1.3Ada 2005 GNAT 27.4227.421,5361608  0% 0% 0% 100%
1.5Haskell GHC 31.4431.442,0561687  0% 0% 0% 100%
1.6OCaml 32.6532.658161239  0% 0% 0% 100%
1.6Go 6g 8g 32.7232.727681329  0% 0% 0% 100%
1.6Clean 33.1333.135681587  0% 1% 0% 100%
1.8Pascal Free Pascal 36.4636.452041308  0% 0% 0% 100%
1.8C# Mono #2 37.3837.385,7321410  0% 0% 0% 100%
2.2F# Mono 44.8744.878,1041373  0% 0% 0% 100%
2.3C# Mono 46.8346.835,7321403  0% 1% 5% 100%
6.2Erlang HiPE #3 126.34126.347,9561399  2% 0% 100% 0%
9.1Scheme PLT 185.92185.9113,5361558  0% 0% 0% 100%
11JavaScript V8 230.73230.7121,4801287  0% 0% 0% 100%
13Java 6 -Xint #2 257.48257.4912,4001424  0% 0% 0% 100%
25Lua 8 min8 min1,1081197  1% 0% 0% 100%
25Lua #2 8 min8 min1,0961265  0% 0% 0% 100%
52PHP #2 17 min17 min4,2841255  0% 0% 0% 100%
62Python CPython #4 21 min21 min3,8321105  0% 0% 0% 100%
69Ruby JRuby #2 23 min23 min134,6241137  0% 0% 0% 100%
80Perl 27 min27 min2,5721140  0% 0% 0% 100%
106PHP 36 min36 min4,3241289  0% 0% 0% 100%
199Ruby MRI #2 1h 07 min1h 07 min2,1681137  0% 0% 0% 100%
JavaScript TraceMonkey Failed1287
Smalltalk VisualWorks Failed1652

 n-body benchmark : Double-precision N-body simulation

ndiff -abserr 1.0e-8 program output N = 1000 with this output file to check your program is correct before contributing.

Each program should model the orbits of Jovian planets, using the same simple symplectic-integrator - see the Java program.

For background information see N-body problem. Useful symplectic integrators are freely available, for example the HNBody Symplectic Integration Package.

Thanks to Mark C. Lewis for this benchmark.

Revised BSD license