next up previous contents
Next: Source Code Up: Computer resources and informatics Previous: Computer resources and informatics   Contents

An example of numerical computation

Most of results of this thesis are based on numerical computations carried out in a computer. In some sections we have discussed the efficiency of a strategy depending on the number of steps to converge or on the CPU time that the process requires. But we must know that these results have a certain level of uncertainty. The performance of a numerical computation goes through several steps that have its own numerical error. The writing of the source code can be critic. Moreover, we need some external libraries such as diagonalization subroutines as well as the compiler and the compiling options that must have to be chosen with care.

In order to exemplify this fact we have performed two type of systematic benchmarks. The first type is a comparison of diagonalization subroutines and the second a minimization of a QM/MM model of Mandelate Racemase.

Diagonalization of an Augmented Hessian:
We have diagonalized an Augmented Hessian matrix with a dimension of 445$ \times $445. In table A.1 we show the RMS between the first six eigenvectors obtained by three standard diagonalizers. The jacobi, MHQRII (the standard diagonalizer from mopac 4.0 source code) and DSPEV from LAPACK[246] have been compiled at four different levels of optimization with the GNU-g77 Fortran compiler 2.95.

The only conclusions that we want to extract from table A.1 is that although there is small difference between the results obtained at different compiler options and by different subroutines, it is not always zero. Therefore, a process such as the optimization of a structure that needs to diagonalize many matrices will accumulate a numerical error that will influence the final results.

Table A.1: Benchmarks testing the compiler optimization level and the subroutine of a matrix diagonalization . The RMS between the two eigenvectors obtained with two different subroutines and compiled with different options is given.
  Optimization Level in g77
Diagonalizer -O -O2 -O3 -O6
614mmJacobi vs MHQRII 0.00449 0.00449 0.00449 0.00449
  0.00449 0.00449 0.00449 0.00449
  0.00449 0.00449 0.00449 0.00449
  0.00449 0.00449 0.00449 0.00449
  3.89E-13 3.89E-13 3.89E-13 3.89E-13
  0.00449 0.00449 0.00449 0.00449
614mmJacobi vs DSPEV 0.00449 0. 0.00449 0.00449
  0. 0. 0. 0.
  5.02E-13 5.02E-13 5.02E-13 5.02E-13
  3.17E-13 3.17E-13 3.17E-13 3.17E-13
  3.89E-13 3.17E-13 3.17E-13 3.17E-13
  0.00449 0.00449 0.00449 0.00449
614mmMHQRII vs DSPEV 0. 0.00449 0. 0.
  0.00449 0.00449 0.00449 0.00449
  0.00449 0.00449 0.00449 0.00449
  0.00449 0.00449 0.00449 0.00449
  0. 2.242E-13 2.247E-13 2.247E-13
  0. 0. 0. 0.


Minimization of a QM/MM system:
In table A.2 we show a minimization of Mandelate Racemase model studied in section 2.3 by LBFGS procedure. We can see that different compilers take a different number of iterations to converge and different CPU time. In any case, all processes find the same stationary point with the same energy. In a systematic study on the efficiency of a method the compiler and compiler options must be kept fixed in order to obtain reliable results.

Table A.2: Number of steps required to minimize the Mandelate Racemase QM/MM system shown in section 2.3. In brackets the CPU time spent. The convergence criteria is 5$ \cdot $10$ ^{-3}$ kcal/(mol$ \cdot $Å).
  Compiler
Optimization level g77$ ^1$ ifc$ ^2$ pgf77$ ^3$
-O 496(4315.70) 475(1434.23) 493(1761.34)
-O2 484(4453.83) 475(1435.54) 493(1755.41)
-O3 525(4577.82) 465(1424.35) 493(1761.15)
$ ^1$ GNU fotran compiler 2.95
$ ^2$ Intel fortran compiler 5.0.1
$ ^3$ Portland Group Fortran compiler 4.0-2



next up previous contents
Next: Source Code Up: Computer resources and informatics Previous: Computer resources and informatics   Contents
Xavier Prat Resina 2004-09-09