Ubuntu : Intel® Q6600® one core |
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.
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.0 | C GNU gcc #5 | 23.52 | 23.52 | 416 | 1429 | 0% 0% 0% 100% |
| 1.0 | C GNU gcc | 23.60 | 23.60 | 416 | 1173 | 0% 0% 0% 100% |
| 1.0 | C++ GNU g++ #4 | 23.81 | 23.81 | 788 | 1428 | 0% 1% 0% 100% |
| 1.0 | Fortran Intel | 23.99 | 23.99 | 440 | 1389 | 0% 1% 0% 100% |
| 1.0 | Scala | 24.30 | 24.33 | 14,340 | 1420 | 0% 1% 0% 100% |
| 1.1 | Java 6 steady state #2 | 24.70 | 24.70 | 12,152 | 1498 | 0% 0% 0% 100% |
| 1.1 | ATS #2 | 24.85 | 24.85 | 456 | 2088 | 0% 1% 0% 100% |
| 1.1 | Java 6 -server #2 | 25.05 | 25.08 | 12,412 | 1424 | 1% 0% 0% 100% |
| 1.1 | Ada 2005 GNAT #2 | 25.69 | 25.68 | 1,268 | 1723 | 0% 0% 0% 100% |
| 1.1 | Fortran Intel #2 | 26.33 | 26.33 | 432 | 1244 | 0% 0% 0% 100% |
| 1.2 | Clean | 28.57 | 28.57 | 544 | 1587 | 0% 0% 0% 100% |
| 1.3 | Ada 2005 GNAT | 30.56 | 30.56 | 1,276 | 1608 | 0% 0% 0% 100% |
| 1.5 | Pascal Free Pascal | 35.04 | 35.04 | 192 | 1308 | 0% 0% 0% 100% |
| 1.5 | Lisp SBCL | 35.69 | 35.69 | 17,828 | 1363 | 0% 0% 0% 100% |
| 1.6 | C# Mono #2 | 37.19 | 37.20 | 5,008 | 1410 | 0% 0% 0% 100% |
| 1.9 | Lua LuaJIT | 45.44 | 45.43 | 868 | 1197 | 0% 0% 0% 100% |
| 1.9 | C# Mono | 45.55 | 45.55 | 5,004 | 1403 | 0% 0% 0% 100% |
| 1.9 | Lua LuaJIT #2 | 45.78 | 45.78 | 872 | 1265 | 0% 0% 0% 100% |
| 2.1 | F# Mono | 49.58 | 49.58 | 7,016 | 1373 | 0% 0% 0% 100% |
| 2.3 | Haskell GHC | 53.82 | 53.82 | 1,764 | 1687 | 0% 0% 0% 100% |
| 2.4 | OCaml | 56.89 | 56.89 | 684 | 1239 | 0% 0% 0% 100% |
| 7.4 | Erlang HiPE #3 | 172.97 | 172.96 | 5,044 | 1399 | 0% 0% 100% 0% |
| 7.6 | Go 6g 8g | 177.79 | 177.78 | 620 | 1329 | 0% 0% 0% 100% |
| 8.5 | JavaScript V8 | 200.11 | 200.10 | 20,312 | 1287 | 0% 0% 0% 100% |
| 12 | Scheme PLT | 280.05 | 280.03 | 9,812 | 1558 | 0% 0% 0% 100% |
| 14 | Smalltalk VisualWorks | 5 min | 5 min | 12,800 | 1652 | 0% 0% 0% 100% |
| 23 | Lua | 8 min | 8 min | 928 | 1197 | 0% 0% 0% 100% |
| 23 | Lua #2 | 9 min | 9 min | 928 | 1265 | 0% 0% 0% 100% |
| 26 | Java 6 -Xint #2 | 10 min | 10 min | 10,404 | 1424 | 0% 0% 0% 100% |
| 41 | Mozart/Oz | 15 min | 15 min | 5,452 | 1440 | 0% 0% 0% 100% |
| 60 | Ruby JRuby #2 | 23 min | 23 min | 91,776 | 1137 | 0% 0% 0% 100% |
| 60 | Python CPython #4 | 23 min | 23 min | 2,940 | 1105 | 0% 0% 0% 100% |
| 61 | PHP #2 | 23 min | 23 min | 3,424 | 1255 | 0% 0% 0% 100% |
| 66 | Python 3 #4 | 25 min | 25 min | 3,996 | 1106 | 0% 0% 0% 100% |
| 81 | Perl | 31 min | 31 min | 2,128 | 1140 | 0% 0% 0% 100% |
| 114 | PHP | 44 min | 44 min | 3,452 | 1289 | 0% 0% 0% 100% |
| 148 | Ruby 1.9 #2 | 58 min | 58 min | 2,872 | 1137 | 0% 0% 0% 100% |
| 170 | Ruby MRI #2 | 1h 06 min | 1h 06 min | 1,648 | 1137 | 0% 0% 0% 100% |
| JavaScript TraceMonkey | Failed | 1287 | ||||
| Lisaac | Make Error | 1615 |
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.