[Fortran] Another array reference dependency improvement

Janne Blomqvist jblomqvi@cc.hut.fi
Mon Mar 6 20:45:00 GMT 2006


On Sun, Mar 05, 2006 at 02:32:25PM +0100, Paul Thomas wrote:
> Roger,
> 
> Following the submission of your two dependency checking patches, I have 
> run the Polyhedron -2005 testsuite on an Athlon1700 running FC3.

I have done some testing as well, with an 1.8 GHz Athlon64 running
i686-pc-linux-gnu.

> The compilers and compiler options are:
> _______________________________________
> 
> GNU Fortran 95 (GCC) 4.2.0 20060303 (experimental)
> gfc %n.f90 -O3 -ffast-math -malign-double -static -o %n

I did some tedious testing with the usual suspects and found out that
at least for me

-O3 -funroll-loops -ffast-math -march=k8

produces pretty good results. -mfpmath=sse is a wash.

> NB: gfc#1 is the pre-patch gfortran, gfc#2 has the first patch and gfc#3 
> has both patches.
> 
> ifort (IFORT) 9.0  20050430
> ifort %n.f90 -O3 -ipo -o %n

I used -O3 -ipo -xW

For gfortran 2006-03-02 I get

   Benchmark   Compile  Executable   Ave Run  Number   Estim
        Name    (secs)     (bytes)    (secs) Repeats   Err %
   ---------   -------  ----------   ------- -------  ------
          ac      3.42       36305     25.85       1100.0000
         air      8.70       62528     22.40       1100.0000
      aermod    164.79     1006059     86.08       1100.0000
       doduc     14.77      143332     60.74       1100.0000
       linpk      1.04       30248     30.17       1100.0000
        mdbx      3.45       61092     39.09       1100.0000
        tfft      0.88       25202     10.80       1100.0000
    capacita      3.03       57427    112.09       1100.0000
     channel      2.00       31273     16.91       1100.0000
     fatigue     10.06       68419     20.16       1100.0000
     gas_dyn      5.50       73609     35.89       1100.0000
      induct     17.89      147913     61.47       1100.0000
          nf      2.50       42823     56.72       1100.0000
     protein      8.27       90042     83.81       1100.0000
      rnflow      8.24      109888     62.48       1100.0000
    test_fpu      5.69       88836     27.50       1100.0000

Geometric Mean Execution Time =      38.82 seconds


and for ifort

   Benchmark   Compile  Executable   Ave Run  Number   Estim
        Name    (secs)     (bytes)    (secs) Repeats   Err %
   ---------   -------  ----------   ------- -------  ------
          ac      1.42      398632     21.32       1100.0000
         air      7.72      482090     19.62       1100.0000
      aermod     68.02     2003492     73.70       1100.0000
       doduc      3.63      570884     63.78       1100.0000
       linpk      0.29      400948     30.17       1100.0000
        mdbx      1.23      453463     28.33       1100.0000
        tfft      0.37      409087     11.15       1100.0000
    capacita      1.30      434881    127.19       1100.0000
     channel      1.14      424275     15.50       1100.0000
     fatigue      9.73      552131     21.76       1100.0000
     gas_dyn      3.31      492046     16.25       1100.0000
      induct     12.69      658897    108.73       1100.0000
          nf      1.21      439442     34.38       1100.0000
     protein      7.21      522280     80.51       1100.0000
      rnflow      5.37      526581     54.26       1100.0000
    test_fpu      2.07      474537     22.82       1100.0000

Geometric Mean Execution Time =      34.91 seconds

> It can be seen that gfortran is doing quite well;

Yes, I agree.

> ac, fatigue and nf all 
> warrant looking at.

From my results above, it seems that gas_dyn is the biggest issue. nf
is not doing that well either. Funny how different the conclusions are
with slighly different options and cpu:s.

> Disappointingly, it seems that none of the codes in the suite can take 
> advantage of the first patches.  I have no idea what happened with 
> channel in gfc#2 - I suspect that a rerun would show the same result as 
> gfc#1 and gfc#3.

No, it seems to be a real regression, I'm seeing it on trunk too, now
that Roger backed out the second patch. My time for channel went up
from 16.91 to 24.86.


-- 
Janne Blomqvist
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 185 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20060306/d9f83d03/attachment.sig>


More information about the Fortran mailing list