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