Ubuntu : Intel® Q6600® quad-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 | 100% 0% 0% 0% |
| 1.0 | C GNU gcc | 23.61 | 23.61 | 416 | 1173 | 0% 0% 0% 100% |
| 1.0 | C++ GNU g++ #4 | 23.82 | 23.82 | 788 | 1428 | 100% 0% 0% 0% |
| 1.0 | Fortran Intel | 23.99 | 23.99 | 440 | 1389 | 0% 100% 0% 0% |
| 1.0 | Scala | 24.26 | 24.28 | 14,392 | 1420 | 84% 0% 0% 16% |
| 1.0 | Java 6 steady state #2 | 24.69 | 24.69 | 12,172 | 1498 | 75% 11% 14% 0% |
| 1.1 | ATS #2 | 24.89 | 24.89 | 456 | 2088 | 0% 100% 0% 0% |
| 1.1 | Java 6 -server #2 | 25.03 | 25.03 | 12,408 | 1424 | 100% 0% 0% 0% |
| 1.1 | Ada 2005 GNAT #2 | 25.69 | 25.69 | 1,264 | 1723 | 0% 0% 100% 0% |
| 1.1 | Fortran Intel #2 | 26.33 | 26.33 | 432 | 1244 | 0% 100% 0% 0% |
| 1.2 | Clean | 28.61 | 28.60 | 544 | 1587 | 0% 100% 0% 0% |
| 1.3 | Ada 2005 GNAT | 30.58 | 30.58 | 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.68 | 35.69 | 17,828 | 1363 | 0% 0% 99% 0% |
| 1.6 | C# Mono #2 | 37.20 | 37.20 | 5,008 | 1410 | 0% 0% 0% 100% |
| 1.9 | Lua LuaJIT | 45.43 | 45.43 | 868 | 1197 | 0% 100% 0% 0% |
| 1.9 | C# Mono | 45.55 | 45.55 | 5,036 | 1403 | 0% 0% 100% 0% |
| 1.9 | Lua LuaJIT #2 | 45.78 | 45.78 | 868 | 1265 | 0% 100% 0% 0% |
| 2.1 | F# Mono | 49.83 | 49.85 | 7,004 | 1373 | 97% 8% 3% 0% |
| 2.3 | Haskell GHC | 53.79 | 53.79 | 1,764 | 1687 | 100% 0% 0% 0% |
| 2.6 | OCaml | 60.14 | 60.14 | 680 | 1239 | 0% 100% 0% 0% |
| 7.6 | Go 6g 8g | 177.61 | 177.61 | 620 | 1329 | 0% 100% 0% 0% |
| 8.2 | Erlang HiPE #3 | 192.12 | 192.13 | 5,728 | 1399 | 100% 0% 0% 0% |
| 8.5 | JavaScript V8 | 199.74 | 199.72 | 20,308 | 1287 | 0% 0% 0% 100% |
| 11 | Scheme PLT | 269.67 | 269.69 | 9,844 | 1558 | 0% 100% 0% 0% |
| 14 | Smalltalk VisualWorks | 5 min | 5 min | 12,796 | 1652 | 0% 100% 0% 1% |
| 23 | Lua | 8 min | 8 min | 928 | 1197 | 1% 0% 0% 99% |
| 23 | Lua #2 | 9 min | 9 min | 928 | 1265 | 0% 100% 0% 0% |
| 25 | Java 6 -Xint #2 | 9 min | 9 min | 10,404 | 1424 | 0% 75% 0% 25% |
| 41 | Mozart/Oz | 15 min | 15 min | 5,376 | 1440 | 100% 0% 0% 0% |
| 53 | PHP #2 | 20 min | 20 min | 3,412 | 1255 | 0% 0% 100% 0% |
| 60 | Ruby JRuby #2 | 23 min | 23 min | 96,632 | 1137 | 1% 1% 99% 1% |
| 64 | Python CPython #4 | 25 min | 25 min | 2,940 | 1105 | 100% 0% 0% 0% |
| 65 | Python 3 #4 | 25 min | 25 min | 4,000 | 1106 | 0% 0% 100% 0% |
| 81 | Perl | 31 min | 31 min | 2,128 | 1140 | 0% 0% 0% 100% |
| 112 | PHP | 43 min | 43 min | 3,440 | 1289 | 0% 0% 0% 100% |
| 147 | Ruby 1.9 #2 | 57 min | 57 min | 2,872 | 1137 | 1% 0% 0% 99% |
| 169 | Ruby MRI #2 | 1h 06 min | 1h 06 min | 1,652 | 1137 | 0% 100% 0% 0% |
| 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.