Tel: +44(0)1865 300 579
Fax: +44(0)1865 300 232
Customers regularly inquire if code runs faster on 32-bit or 64-bit systems. The answer ultimately depends on the code and will vary by application. As a general guideline, 32-bit code benefits from smaller code size while 64-bit code benefits from expanded addressable memory. Buss speeds, RAM and other variables can also influence performance.
Those cavets not withstanding, we have reproduced below the comparative performance of various compilers running the well-known Polyhedron Benchmark 2005 benchmark suite. For those unfamiliar with Polyhedron, they are a UK company with a long history of developing, debugging and supporting Fortran programs. Their benchmark suite is very well regarded and comprised of different programs they consider representative of the different types of code Fortran the typical customer encounters.
The charts in the links below list columns for both 32-bit and 64-bit versions of the programs, all run on the same hardware using 32-bit and 64-bit versions of Mac OS X/Intel.
Absoft Pro Fortran v9.2 (G5 based) was also included on the 32-bit table to demonstrate the potential performance increase available by running native code rather than G5 code under Rosetta (emulation).
All times are in seconds so lower numbers are faster. Underlined numbers are fastest.
| Polyhedron 2005 |
32-Bit
|
64-Bit
|
||||||
| Benchmark | Absoft 9.2 | Absoft 10.0 | G95 | Gfortran | Absoft 10.0 | Gfortran | ||
| AC | 70.07 | 13.63 |
23.99 |
15.96 |
9.98 |
12.27 | ||
| AERMOD | 154.44 | 23.76 | 63.47 | 39.87 | 22.35 | 37.19 | ||
| AIR | 21.01 | 8.95 | 13.68 | 11.58 | 8.31 | 10.03 | ||
| CAPACITA | 135.6 | 44.17 | 57.39 | 48.71 | 37.71 | 60.24 | ||
| CHANNEL | 11.26 | 4.49 | 25.01 | 5.79 | 3.34 | 2.28 | ||
| DODUC | 122.65 | 43.71 | 68.22 | 52.35 | 39.24 | 45.58 | ||
| FATIGUE | 32.83 | 8.09 | 51.84 | 17.67 | 6.99 | 13.55 | ||
| GAS_DYN | 73.98 | 4.43 | 47.73 | 23.75 | 3.7 | 22.43 | ||
| INDUCT | 165.12 | 57.31 | 107.37 | 62.44 | 55.12 | 57.86 | ||
| LINPAK | 28.5 | 27.45 | 27.39 | 27.3 | 27.33 | 27.28 | ||
| MDBX | 44.63 | 17.11 | 16.79 | 14.52 | 15.89 | 13.72 | ||
| NF | 39.98 | 26.7 | 53.22 | 33.22 | 24.61 | 31.8 | ||
| PROTEIN | 97.84 | 35.65 | 60.37 | 48.58 | 33.82 | FAILED | ||
| RNFLOW | 98.42 | 26.93 | 38.05 | 35.01 | 25.97 | 30.04 | ||
| TEST_FPU | FAILED | 12.78 | 23.57 | 14.68 | 10.7 | 13.61 | ||
| TFFT | 7.07 | 2.9 | 3.08 | 2.7 | 2.42 | 2.43 | ||
| Geometric Mean | 50.47 | 16.22 | 33.23 | 21.76 | 14.33 | 18.86 | ||
Observations:
1. As shown in the links above, performance on these tests was faster in 64-bit mode for all programs.
2. On these tests 64-bit code ran 10+% faster compared to the 32-bit version.
3. Native code performance was 3X faster than G5 code run under emulation (Rosetta - v9.2)
Legend:
Green = Fast: Results within 10% of the fastest highlighted are in green
White = Average: Average results are not highlighted
Red = Slow: Results more than 50% slower than fastest highlighted are in red