Polyhedron tests on Intel Darwin8/9
Dominique Dhumieres
dominiq@lps.ens.fr
Tue Nov 20 20:22:00 GMT 2007
Results of the Polyhedron benchmark on Intel Core2Duo 2.16Ghz,
OSX 10.4.11, gfortran 4.3.0 revision 130311
Benchmark Compile Executable Ave Run Number Estim
Name (secs) (bytes) (secs) Repeats Err %
--------- ------- ---------- ------- ------- ------
ac 4.72 59364 16.90 4 0.1945
aermod 104.46 1301472 52.23 3 0.1727
air 7.18 93840 12.30 5 1.2487
capacita 3.58 73008 54.69 4 0.2979
channel 2.04 51384 5.51 5 4.1646
doduc 16.29 196140 58.69 2 0.0758
fatigue 10.54 97432 17.71 5 0.0121
gas_dyn 5.55 708648 12.35 5 1.2879
induct 12.01 173104 94.15 2 0.0244
linpk 1.81 59312 27.16 2 0.0074
mdbx 3.88 81416 16.88 2 0.0800
nf 4.59 96344 32.32 5 0.3873
protein 11.30 126788 55.44 2 0.0460
rnflow 11.81 200184 45.43 2 0.1937
test_fpu 11.40 195412 14.72 4 0.1573
tfft 1.66 43176 3.22 5 0.1890
Geometric Mean Execution Time = 23.19 seconds
OSX 10.5.1 , gfortran 4.3.0 revision 130280
Benchmark Compile Executable Ave Run Number Estim
Name (secs) (bytes) (secs) Repeats Err %
--------- ------- ---------- ------- ------- ------
ac 4.49 50628 16.91 2 0.0030
aermod 96.25 1288460 36.75++ 2 0.0054
air 6.57 80956 11.37 2 0.0176
capacita 3.18 60140 62.15- 4 0.0145
channel 1.55 38532 4.04++ 5 0.0871
doduc 13.55 183264 58.08 4 0.0221
fatigue 5.69 84564 14.93+ 2 0.0167
gas_dyn 5.37 695776 11.81 5 0.3293
induct 11.67 160132 93.29 3 0.0191
linpk 1.67 46512 28.16 2 0.0195
mdbx 3.76 72672 16.81 2 0.0030
nf 4.45 87644 32.47 5 0.0353
protein 11.16 113900 55.57 4 0.0424
rnflow 11.58 187316 45.90 5 0.0281
test_fpu 11.23 182544 14.64 3 0.0149
tfft 1.30 34420 3.04 5 0.2467
Geometric Mean Execution Time = 21.98 seconds
+ indicates faster on 10.5, - slower. Note that aermod and channel are
much faster on 10.5 than on 10.4, while capacita is slower. Also
interesting I have looked at some hand-optimized variants, in particular a
variant of channel in which I have hand-inlined the functions ddx and ddy.
On my previous timings (PPC or AMD64) I did not see any improvement with
it. Now I get:
chan_v1 1.85 38500 2.23 5 0.0183
i.e, almost twice faster. I think the good timings on channel may be
related to the cache size, but I don't know how to check it.
I have also a optimized vaerion of induct which almost three time faster:
induct_v3 11.72 164228 34.40 5 0.0189
(the dotproducts have been replaced by mul/adds taking into account the
zero values and I moved some invariant blocks.)
Dominique
More information about the Fortran
mailing list