This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Polyhedron comparison of gfortran 4.5 vs. older releases


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]