Testing.

We have installed and tested AMBER 6 on a number of machines, using UNIX machines from IBM, Sun, Hewlett-Packard, DEC(Compaq), and Silicon Graphics, and on Red Hat Linux and Windows 95/98/NT (running on Intel Pentium machines). However, owing to time and access limitations, not all combinations of code, compilers, and operating systems have been tested. Therefore we recommend running the test suites.

The distribution contains a validation suite that can be used to help verify correctness. The nature of molecular dynamics, is such that the course of the calculation is very dependent on the order of arithmetical operations and the machine arithmetic implementation, i.e. the method used for roundoff. Because each step of the calculation depends on the results of the previous step, the slightest difference will eventually lead to a divergence in trajectories. As an initially identical dynamics run progresses on two different machines, the trajectories will eventually become completely uncorrelated. Neither of them are ``wrong;'' they are just exploring different regions of phase space. Hence, states at the end of long simulations are not very useful for verifying correctness. Averages are meaningful, provided that normal statistical fluctuations are taken into account. ``Different machines'' in this context means any difference in floating point hardware, word size, or rounding modes, as well as any differences in compilers or libraries. Differences in the order of arithmetic operations will affect roundoff behavior; (a + b) + c is not necessarily the same as a + (b + c). Different optimization levels will among other things affect operation order, and may therefore affect the course of the calculations.

All initial values reported as integers should be identical. The energies and temperatures on the first cycle should be identical. The RMS and MAX gradients reported in sander are often more precision sensitive than the energies, and may vary by 1 in the last figure on some machines. As is the case with sander, the trajectory in a Gibbs simulation will diverge, but the resulting free energy should not if the simulation is run to convergence (this is not done because of the time involved). In minimization and dynamics calculations, it is not unusual to to see small divergences in behavior after as little as 100-200 cycles.

In general, compiler and optimizer errors are fairly obvious, and result in rather large changes in the output, if you get any output at all. See test/0README for examples of acceptable output differences and discussion of peculiarities of various machines.


[Contents] [Previous] [Next]
Updated on January 5, 2000. Comments to case@scripps.edu