next up previous
Next: Discussion Up: Long Write-Up Previous: Limitations

Tests

We conducted certain tests to measure the efficiency of AUTO_DERIV. We have calculated the elapsed time during the computation of the value and the derivatives of functions for which the corresponding analytic expressions were known. In each test, we use a version of the FORTRAN 90 code with the derivatives computed analytically, ``by hand'', and another incorporating AUTO_DERIV.

The first mathematical function we used is the Potential Energy Surface for the HCP molecule, described in [12]. It is a realistic example of a function depending on three variables and it is sufficiently complex for the purpose of exhibiting the capabilities of AUTO_DERIV. Another test was made with the potential for the HF-dimer [13], a function of six variables. For this we where able to calculate analytically the first derivatives only.

In Table 1 we present the elapsed time, averaged over 1000 evaluations, during the computation of each potential and for the two versions (analytic derivatives and using AUTO_DERIV). The results are tabulated for the compilers we had available. The standard DATE_AND_TIME subroutine was employed.


Table 1: Elapsed times during the calculations of the derivatives of Potential Energy Surfaces for the molecular systems HCP and HF-dimer. Time quoted in ms.
Potential Compiler Order of derivatives
    0 1 2
HCP (analytic) NAG 0.626 1.155 2.612
HCP (AUTO_DERIV) NAG 8.465 38.147 83.975
HCP (analytic) PGI 0.712 1.217 2.451
HCP (AUTO_DERIV) PGI 9.105 355.795 807.796
HCP (analytic) Fujitsu 0.690 1.270 2.703
HCP (AUTO_DERIV) Fujitsu 10.279 66.731 142.812
HCP (analytic) Absoft 0.667 1.288 2.973
HCP (AUTO_DERIV) Absoft 16.075 68.494 156.458
HF dimer (analytic) NAG 0.071 0.752 -
HF dimer (AUTO_DERIV) NAG 1.807 5.302 14.250
HF dimer (analytic) PGI 0.152 0.518 -
HF dimer (AUTO_DERIV) PGI 1.142 39.513 103.397
HF dimer (analytic) Fujitsu 0.075 0.596 -
HF dimer (AUTO_DERIV) Fujitsu 1.903 9.335 23.231
HF dimer (analytic) Absoft 0.086 1.315 -
HF dimer (AUTO_DERIV) Absoft 3.174 10.434 22.812

The tests were performed on an Intel Pentium II processor at 450 MHz, running the GNU/Linux operating system. We have also compiled and run the programs on IBM RS/6000 and on HP-PA 2.0 processors with the system's compilers; these results are not presented here. In the test we used the F90/95 compilers shown in Table 2; the options chosen should be the optimal ones.


Table: FORTRAN 90/95 compilers used for the test runs.
COMPILER OPTIONS
$\textstyle \parbox{5cm}{NAGWare f95 Rel. 4.0(185)\\ gcc 2.95.1}$ $\textstyle \parbox{8cm}{$-$Ounroll=1 $-$O4\\ $-$Wc,$-$funroll-loops,$-$O3,$-$fforce-mem\\
$-$Wc,$-$fforce-addr,$-$march=i686}$
Portland Group, Inc. pgf90 v3.0 -fast -tp p6
Fujitsu F90 -O3 -Kfast,eval,PENTIUM_PRO -AR
Absoft Pro Fortran 6.0 f90 v2.1 -B100 -O

The required memory during the tests, naturally, depends directly on the specific function differentiated. As we use a TYPE (func) variable holding $1 + n + n\,(n+1)/2$ REAL(dpk) numbers for each REAL(dpk) mathematical variable in the original code we expect a roughly proportional increase in memory taken by the program.


next up previous
Next: Discussion Up: Long Write-Up Previous: Limitations
Stavros Farantos
1999-12-11