Hello all,
given the optimization work which has gone into 4.6, I thought I would
run the Polyhedron Fortran test suite. The system is
- Intel Core2 Duo CPU E8400 @ 3.00GHz
- CentOS release 5.5 (Final) [x86-64]
Tested compilers:
- GCC 4.6 (recent nightly build)
- Intel Fortran compiler (ifort) 11.1
- PathScale compiler (pathf95) 3.2.99
- Portland Group compiler (pgf90) 10.1
In case of GCC, I have two 'normal' compilations (gfortran64 and
gfortranIMF2) and two using -flto -fwhole-program (gfortranLTO and
gfortranIMF). Additionally, for gfortranIMF and gfortranIMF, LD_PRELOAD
is used to preload Intel's libimf library, which replaces some libm
functions.
Result in a nutshell:
- On geometric average, all compilers do not differ much - for single
benchmarks, the difference can be rather large. On geometric means
maximal difference is 10%
- GCC (using LTO and GLIBC's libm), ifort and pathf95's performance is
almost the same (< 1.5% difference) - pgi is about 6% slower.
- Using Intel's libimf, GCC is (on geometric mean) the fastest compiler
(3% faster than ifort and pathf95), without it is the slowest of the
three (by <1.5%)
The results are up at
http://users.physik.fu-berlin.de/~tburnus/gcc-trunk/benchmark/iff/
Regarding the slow down of rnflow due to LTO, cf. PR
Regarding the gas_dyn slowness, cf. PR 31067
Thanks to all who made it possible!
Tobias
PS: I really miss a GCC vectorization library; I could have used in
addition -mveclibabi=svml, but I have decided that there are already
enough results for GCC.