Polyhedron comparison of gfortran 4.5 vs. older releases
Steven Bosscher
stevenb.gcc@gmail.com
Wed Dec 23 22:28:00 GMT 2009
Hi all,
Since we're getting closer to the GCC 4.5 release, I thought it would
be nice to see where gfortran 4.5 is for polyhedron, compared to older
gfortran releases.
I downloaded the "Polyhedron 2007 Fortran Benchmarks" from
http://www.polyhedron.com and compiled a bunch of GCC versions:
gfortran-4.2.4, gfortran-4.3.3, gfortran-4.4.2, and
gfortran-4.5.0-r155406. I used the following compiler options for all
benchmarks: "-march=native -mtune=native -ffast-math -funroll-loops
-O3". For gfortran-4.5 I also used -fwhopr (which also implies
-fwhole-file).
The target is x86_64 Ubuntu Linux 9.10, the CPU is an AMD Turion 64X2
(800MHz, 512KB L1 cache, 2GB RAM).
Results are below (average run times using standard.par from the
Polyhedron distribution):
4.2 4.3 4.4 4.5
ac 41.40 14.04 13.20 13.11
aermod 43.41 46.79 44.88 41.25
air 16.49 13.26 13.22 13.75
capacita 91.27 93.66 90.36 80.33
channel 10.90 10.97 10.91 10.99
doduc 39.87 40.75 39.16 40.59
fatigue 12.80 9.55 9.05 9.13
gas_dyn 18.60 13.88 13.96 13.67
induct 39.40 49.35 37.34 32.86
linpk 22.51 22.48 22.14 21.80
mdbx 24.39 18.82 18.45 19.48
nf 29.45 29.74 29.40 25.89
protein 58.65 58.54 59.89 58.88
rnflow 44.59 37.87 36.41 37.39
test_fpu 20.97 20.97 21.08 21.19
tfft 9.50 9.51 9.50 8.78
geo.mean 27.26 24.14 23.29 22.69
Run times relative to gfortran-4.2 are given below:
4.2 4.3 4.4 4.5
ac 0% -66% -68% -68%
aermod 0% 8% 3% -5%
air 0% -20% -20% -17%
capacita 0% 3% -1% -12%
channel 0% 1% 0% 1%
doduc 0% 2% -2% 2%
fatigue 0% -25% -29% -29%
gas_dyn 0% -25% -25% -27%
induct 0% 25% -5% -17%
linpk 0% 0% -2% -3%
mdbx 0% -23% -24% -20%
nf 0% 1% 0% -12%
protein 0% 0% 2% 0%
rnflow 0% -15% -18% -16%
test_fpu 0% 0% 1% 1%
tfft 0% 0% 0% -8%
tfft 0% -11% -15% -17%
I have also compared the average run times of gfortran-4.5 relative to
gfortran-4.3. I compared with gfortran-4.3 because this is the
compiler used in the latest "official" Polyhedron benchmark on their
website (http://www.polyhedron.com/pb05-linux-f90bench_AMD0html at the
moment). The numbers show gfortran-4.5 is a bit better again:
4.3 4.5 4.5 / 4.3
ac 14.04 13.11 -7%
aermod 46.79 41.25 -12%
air 13.26 13.75 4%
capacita 93.66 80.33 -14%
channel 10.97 10.99 0%
doduc 40.75 40.59 0%
fatigue 9.55 9.13 -4%
gas_dyn 13.88 13.67 -2%
induct 49.35 32.86 -33%
linpk 22.48 21.80 -3%
mdbx 18.82 19.48 4%
nf 29.74 25.89 -13%
protein 58.54 58.88 1%
rnflow 37.87 37.39 -1%
test_fpu 20.97 21.19 1%
tfft 9.51 8.78 -8%
geo.mean 24.14 22.69 -6%
In other words: gfortran-4.5 with WHOPR gives a potential ~10%
improvement on aermod, capacita, induct, nf, and tfft. This is
especially good because gfortran-4.4 is worse than competing
commercial compilers for aermod, capacita, and induct.
Assume that 6% improvement on the geometric mean may be extrapolated
to the results for gfortran-4.3 on the Polyhedron web site, then the
geometric mean on their page will be ~20.81, or 17% worse than the
fastest compiler.
Gfortran still has big problems with capacita, which is unfortunate
because it contributes so much to the geometric mean. Does anyone know
what the other compilers do to make them ~25% faster than gfortran?
Still, it looks like gfortran-4.5 will be closer again to the
competition than gfortran-4.3 is. Bravo!
Ciao!
Steven
More information about the Fortran
mailing list