n-body benchmark hypotheses non fingo

↓ Double-precision N-body simulation, N=20,000,000.

Which programs used least Code? Which programs use highly optimised assembly code libraries? Which programs make use of all the processor cores?

    sort sort sort sort
  ×   Program & Logs CPU secs Elapsed secs Memory KB Code B ~ CPU Load
1.0Oberon-2 OO2C 14.601,6961465  
1.0C++ GNU g++ #2 14.629321705  
1.0Java 6 -server #2 14.7511,5241424  
1.0Eiffel SmartEiffel 14.815201465  
1.0GNU gcc 14.843961173  
1.0Java 6 -Xms64m #2 14.8411,6521424  
1.1C++ GNU g++ #3 15.498041344  
1.1Java 1.4 -server 15.7510,2961404  
1.1C++ GNU g++ 15.848481349  
1.1Java 6 -server 15.9312,0121430  
1.1Java 6 -Xms64m 16.0912,1161430  
1.1Java GNU gcj 16.1415,5881404  
1.1Fortran Intel #2 16.364401244  
1.1Scala 16.4320,7961420  
1.1Intel 16.604441173  
1.1Fortran Intel 16.684401389  
1.2Pascal Free Pascal 16.912721308  
1.2Nice #2 17.0712,0641313  
1.2C++ Intel #3 17.162361344  
1.2Clean 17.285201587  
1.2GNU gcc #3 17.453961315  
1.2Intel #3 17.744401315  
1.2Lisaac 17.774801615  
1.3Java 6 -client #2 18.7910,0881424  
1.4Java 6 -client 20.3910,2801430  
1.4Fortran G95 20.405401389  
1.4Digital Mars 20.676881308  
1.4CAL 20.9314,3642356  
1.5SML SML/NJ 21.512,6241314  
1.5Lisp SBCL 22.5316,9521363  
1.6C# Mono #2 23.205,0721410  
1.6C++ Intel 23.934201349  
1.8Digital Mars #2 25.916801193  
1.8Ada 2005 GNAT 26.384801608  
1.9SML MLton #2 27.277401327  
1.9Nice 28.3312,6401304  
2.0C# Mono 29.395,0601403  
2.3BASIC FreeBASIC #4 33.847721426  
2.4Zonnon Mono 34.615,1681524  
3.3Haskell GHC 48.721,6481687  
3.5Forth bigForth 51.007201097  
3.7OCaml 54.006441239  
7.2F# Mono 105.177,6361364  
8.7Lua LuaJIT #2 127.439561265  
9.6C++ Intel #2 140.494441705  
10Erlang HiPE #3 147.594,7361399  
11Fortran G95 #2 161.995441244  
15Scheme Ikarus 225.3228,0161598  
21Scheme Chicken 5 min1,9881394  
23Scheme Chicken #3 5 min2,3001337  
27Mercury 6 min5,0281781  
27Forth GNU GForth 6 min8881304  
27Java 6 -Xint #2 6 min9,5561424  
33Scheme PLT #2 7 min8,0361423  
33Smalltalk VisualWorks 8 min12,7201652  
33Java 6 -Xint 8 min9,6921430  
34Python Psyco #4 8 min3,6441185  
36Scheme PLT 8 min7,0961544  
40Lua #2 9 min8721265  
44Python Psyco #2 10 min3,2561044  
86Mozart/Oz 20 min4,3441444  
96Pike 23 min3,4161260  
99Prolog YAP #2 24 min22,8001455  
105Groovy 25 min55,0201214  
116Perl 28 min1,9361140  
121Ruby JRuby #2 29 min41,9641137  
135JavaScript Rhino 32 min13,6361287  
138Python CPython #2 33 min2,4401027  
140Icon 34 min1,2281287  
145Python IronPython 35 min16,7041072  
148Python CPython 36 min2,4401072  
163PHP 39 min5,6361289  
166Smalltalk GNU 40 min4,2881657  
169Python IronPython #2 41 min16,7921027  
186Ruby 1.9 #2 45 min2,4681137  
236JavaScript SpiderMonkey 57 min66,4521287  
319Prolog SWI #2 1h 17 min2,4881573  
320Tcl #2 1h 17 min1,9601454  
332Ruby MRI #2 1h 20 min1,7121137  
595Prolog SWI 2h 24 min2,5241586  
916Rebol 3h 42 min2,7801164  
CINT Timed Out1173
Io Failed1106
Scala #2 Failed1430
interesting alternative programs
0.9GNU gcc #2 13.860.003961186
1.1Intel #2 15.900.004441186
13Smalltalk Squeak 193.640.0020,0841652
missing programs
Smalltalk Squeak No program

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

ndiff 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