some benchmarks
Jerry DeLisle
jvdelisle@verizon.net
Sun Nov 27 18:50:00 GMT 2005
Jack Howarth wrote:
> Since gcc 4.1 is building on Darwin again, I decided to benchmark
> it performance at -O3 in the xplor-nih testsuite versus the current
> Fortran XL compiler with full -O5 optimizations. Here are the results
> which are a tad discouraging.
>
> execution time in seconds
>
> xlf gfortran
> vdwoff..........ok 0.3300 0.5391
> carboncshift....ok 0.2500 0.9729
> codetest........ok 0.1500 0.4102
> cooriotes.......ok 0.1700 0.5054
> cormantes.......ok 0.1800 0.5023
> couplings.......ok 0.1700 0.5653
> cv_dihed........ok 0.1600 0.4434
> dgtest1.........ok 0.3300 1.2195
> dgtest2.........ok 0.3200 0.6923
> dgtest3.........ok 0.1700 0.4506
> dgtest4.........ok 0.3100 0.5988
> drigid1.........ok 0.1700 0.4145
> drigid2.........ok 0.1700 0.4118
> drigid3.........ok 0.4600 0.7575
> dsearch.........ok 4.7100 4.2939
> dsele...........ok 0.1800 0.4809
> duplicate.......ok 0.1800 0.4685
> dynanltes.......ok 0.5200 0.8646
> dyniotest.......ok 0.2300 0.6193
> dyntest2........ok 0.3400 0.8014
> dyntest3........ok 0.2100 0.5039
> egrouptes.......ok 0.1900 0.5074
> enertest........ok 0.2000 0.5025
> evaluate........ok 0.1500 0.3840
> grid............ok 0.6300 1.1102
> hbondtest.......ok 0.1600 0.4481
> hbuildtes.......ok 0.1900 0.4759
> ictest..........ok 0.1700 0.4245
> lang1test.......ok 0.2700 0.6199
> lang2test.......ok 0.1500 0.3881
> mrigid..........ok 0.2300 0.5395
> mvectortes......ok 0.1700 0.4173
> nbforceshift....ok 0.2400 0.6567
> noetest.........ok 0.1800 0.4619
> noetest2........ok 0.2800 0.6270
> noetest3........ok 0.1700 0.4390
> noetest4........ok 0.6500 1.4633
> noetest5........ok 0.3200 0.6835
> noetest6........ok 0.1700 0.4353
> onebcoupling....ok 0.1600 0.4089
> orient1.........ok 1.3300 4.3440
> orient2.........ok 1.8400 6.4925
> packing.........ok 0.3000 0.6267
> param1..........ok 0.2000 0.5213
> param2..........ok 0.3100 0.8376
> param3..........ok 0.1800 0.4791
> param4..........ok 0.1700 0.4589
> param5..........ok 0.1500 0.3939
> param6..........ok 0.1900 0.4864
> pariotest.......ok 0.1500 0.3784
> parsertest......ok 0.2000 0.4553
> patchtest.......ok 0.1700 0.4431
> picktest........ok 0.1800 0.4618
> plancons........ok 0.1800 0.4717
> powelltes.......ok 0.2600 0.5847
> protoncshift....ok 0.1700 0.4621
> protoncshift2...ok 0.3400 1.1532
> psftest.........ok 0.1700 0.4718
> qrmtest.........ok 0.1900 0.4743
> rama............ok 3.4000 6.2681
> rama_quarts.....ok 6.4300 13.8438
> refltest........ok 0.1500 0.3997
> restncs.........ok 0.4200 0.7813
> rnasetest.......ok 0.6900 1.0777
> rotman..........ok 0.1500 0.3820
> rsearch.........ok 0.5500 0.9553
> rtfiotest.......ok 0.1500 0.3935
> rxcv............ok 0.6400 1.1023
> rxfinite........ok 0.5500 0.9020
> rxmini..........ok 0.6200 0.8702
> rxmmini.........ok 0.7800 1.0414
> rxspectrum......ok 0.1600 0.4002
> sbound..........ok 0.1900 0.4629
> skel4...........ok 0.3200 0.7539
> strictncs.......ok 0.8000 1.0838
> surftest........ok 0.2100 0.4723
> symbols.........ok 0.1600 0.4152
> tconnect........ok 0.1500 0.3849
> test............ok 0.1900 0.4803
> test_ratt.......ok 0.2000 0.5877
> testcons........ok 0.1800 0.4647
> testensemble....ok 0.1900 0.4813
> testfirs........ok 0.2000 0.4814
> testpowe........ok 0.1800 0.4567
> testsel2........ok 0.2200 0.5511
> testvol.........ok 0.1500 0.3747
> tipstest1.......ok 0.1800 0.4252
> toppar19........ok 0.1900 0.4835
> topparnah.......ok 0.1900 0.4662
> torsiontest2....ok 0.1700 0.4138
> torsiontest3....ok 0.5300 0.8356
> tsearch.........ok 0.5100 0.7638
> vectorid........ok 0.1500 0.3875
> vectortes.......ok 0.1500 0.3985
> xanom...........ok 0.2500 0.5320
> xasymm..........ok 0.2000 0.4286
> xcvtest.........ok 0.7600 1.2788
> xdeclare........ok 0.1700 0.4196
> xdo.............ok 0.7900 1.0336
> xdo2............ok 0.3000 0.5859
> xdo3............ok 0.3200 0.6023
> xdo4............ok 0.4400 0.9470
> xdofft..........ok 0.4900 0.8207
> xdofft2.........ok 0.2400 0.5079
> xdoscale........ok 0.3400 0.6803
> xfftest.........ok 0.2200 0.4921
> xfinite.........ok 0.1900 0.4377
> xgenerate.......ok 0.1800 0.4261
> xmap............ok 0.2200 0.5404
> xmaverage.......ok 0.6100 1.2126
> xmphist.........ok 0.2300 0.6826
> xmread..........ok 0.2400 0.6221
> xpack...........ok 0.1800 0.4595
> xpat............ok 0.3600 0.6537
> xpeakpik........ok 0.3700 0.5716
> xpred...........ok 0.3400 0.5975
> xprobab.........ok 0.3900 0.8213
> xprox...........ok 0.2900 0.6205
> xrama...........ok 0.5000 2.6611
> xreduce.........ok 0.1500 0.3844
> xrefin..........ok 1.0400 1.2132
> xrefin2.........ok 0.7900 1.0606
> xrefio..........ok 0.1600 0.3914
> xroptff.........ok 0.3800 0.6017
> xropti..........ok 0.9900 1.1429
> xscale..........ok 0.9600 1.3260
> xsolmask........ok 0.3300 0.6642
> xstats..........ok 0.3300 0.6238
> xsymm...........ok 0.1500 0.3806
> xtarget.........ok 6.6000 6.0481
> gborn...........ok 0.2200 0.5666
> hbda............ok 0.2300 0.5721
> pmagtest........ok 0.2600 0.5996
> paraRestr.......ok 0.2700 0.6172
> hbdb............ok 4.0600 6.8734
> hbdb2...........ok 4.0000 6.8356
> ivm1............ok 0.1900 0.4509
> ivm2............ok 0.6500 1.1168
> dipCoup.........ok 0.7200 1.2651
> sani............ok 1.3700 2.4823
> isac............ok 1.3000 2.4297
>
> Overall the xlf -O5 build outperforms the gfortran -O3 build by
> a factor of two however some individual test can be as bad as a
> factor of 4 or 5.
> Jack
>
This kind of test data can be very useful.
Can you also try this with -O3 -funroll-loops? Also, the next step might be to
do some profiling and see where it is spending time.
Jerry
More information about the Fortran
mailing list