Test-set
From wiki.gromacs.org
A new test set has been released for testing the upcoming GROMACS 3.3.2. You should run the tests after you compiled GROMACS to verify your installation. The test contains of four parts.
- simple: a number of tests aimed at checking the different bonded potentials
- complex: complete systems of varying composition and with different mdp options (cut-offs etc.)
- kernel: a set of systems testing all the nonbonded kernels (63 at the time of writing) in their various forms
- pdb2gmx: runs pdb2gmx on a few pdb files with different flags and force fields, does an energy minimization and compares the resulting energy
All these tests can be run in single and double precision (reference results are provided) and in parallel. The results are checked by comparing energies and forces, for runs varying between 1 and 50-100 time steps. In some cases the results from a free energy calculation are compared to reference values as well. By doing these short simulations we effectively also test reproducibility of integrators, constraint algorithms, temperature and pressure scaling, and so on. The ambition is to add more tests, in order to cover all potentials present in GROMACS. There should also be tests for analysis tools, but these have not be made yet. Within the test set there is a README file with some additional information.
[edit] Obtaining the test set
A distribution can be found at the GROMACS ftp site:
You can also get the test through the CVS interface. See the CVS_Howto for more information. Then:
cvs co gmxtest
[edit] Running the tests
The whole test is run from a single Perl script (gmxtest.pl). If run without arguments it will give you usage information:
Usage: ./gmxtest.pl [ -np N ] [-verbose ] [ -double ] [ simple | complex | kernel | pdb2gmx | all ] or: ./gmxtest.pl clean | refclean | dist
Typically one should run all tests at once (./gmxtest.pl all) and get a PASSED or FAILED result. Note however that passing the test is not a guarantee that everything is hunky-dory, because not all combination of options can be tested. Failing the test on the other hand should lead to an investigation of the particular component of the test that failed.
If the tests fail, then you should start by doing a fresh install (unless you just did one), by either unpacking the distribution in a fresh directory or running make distclean in the GROMACS directory. After re-installation you should run the tests again.
[edit] Example test session
A typical testing session might look like this:
[kahlo:~/GROMACS/gmxtest] % ./gmxtest.pl all All 16 simple tests PASSED All 13 complex tests PASSED All 63 kernel tests PASSED [kahlo:~/GROMACS/gmxtest] % ./gmxtest.pl -double all All 16 simple tests PASSED All 13 complex tests PASSED All 63 kernel tests PASSED [kahlo:~/GROMACS/gmxtest] % ./gmxtest.pl -np 2 all Will test on 2 processors All 16 simple tests PASSED FAILED. Check files in dec+water 1 out of 13 complex tests FAILED All 63 kernel tests PASSED [kahlo:~/GROMACS/gmxtest] % setenv NOASSEMBLYLOOPS 1 [kahlo:~/GROMACS/gmxtest] % ./gmxtest.pl all All 16 simple tests PASSED FAILED. Check files in dec+water 1 out of 13 complex tests FAILED All 63 kernel tests PASSED [kahlo:~/GROMACS/gmxtest] % ./gmxtest.pl -double all All 16 simple tests PASSED All 13 complex tests PASSED All 63 kernel tests PASSED
Here we have performed all tests on mdrun, in single and double precision and with and without assembly inner loops, and we got errors one one system. When we investigate the error, by first re-running only the complex tests (since the double precision test did not give any errors all output files have been removed):
[kahlo:~/GROMACS/gmxtest] % ./gmxtest.pl complex FAILED. Check files in dec+water 1 out of 13 complex tests FAILED
We then chdir complex/dec+water and check the file checkpot.out, where we find:
There are 5 terms to compare in the energy files LJ (SR) step 34: -0.176025, step 34: -0.21167 LJ (SR) step 49: 3.21021, step 49: 3.04639
In the parellel test the error was very similar:
There are 5 terms to compare in the energy files LJ (SR) step 34: -0.176025, step 34: -0.161865
This means that we have a small deviation in the Lennard Jones energy at two time steps, however in this particular case the forces and virial have not generated errors. We got this error because of numerical accuracy in adding up many interactions. We always compare numbers such that they should be identical within a certain tolerance (specified in the script), and the reason the current tests failed is because the numbers are very close to zero, while the energy fluctuations are on the order of hunndreds of kJ/mol. In other words we can disregard this error as unimportant.

