Verify Installation

Test sets containing input and corresponding reference output files are available from the Download page. By using these test sets, users can easily verify the validity of the installed GENESIS executables (atdyn/spdyn). This test is recommended after installation.

After downloading tests.tar.bz2 from the Download page, decompress it, move to the regression_test directory, and then execute test.py. This script runs all the test MD simulations in the regression_test directory, and the comparison is done automatically. Currently, tests for atdyn and spdyn are available. Test sets for analysis tools are not available now.

$ tar xvfj tests.tar.bz2
$ cd tests/regression_test

# run atdyn test (single thread)
$ export OMP_NUM_THREADS=1
$ ./test.py "mpirun -np 8 /home/user/genesis/bin/atdyn"

# run spdyn test (single thread)
$ export OMP_NUM_THREADS=1
$ ./test.py "mpirun -np 8 /home/user/genesis/bin/spdyn"

# run REMD test with atdyn (single thread)
$ export OMP_NUM_THREADS=1
$ ./test_remd.py "mpirun -np 8 /home/user/genesis/bin/atdyn"

# run REMD test with spdyn (single thread)
$ export OMP_NUM_THREADS=1
$ ./test_remd.py "mpirun -np 8 /home/user/genesis/bin/spdyn"

# run spdyn GPU version test (single thread)
$ export OMP_NUM_THREADS=1
$ ./test.py "mpirun -np 8 /home/user/genesis/bin/spdyn" gpu

# run parallel I/O test (single thread)
$ export OMP_NUM_THREADS=1
$ ./test.py "mpirun -np 8 /home/user/genesis/bin/spdyn" parallel_io

Notices

General notices about regression_test (# of MPI processes, path of executables)

Note that the user must use 8 MPI processors to perform these tests (otherwise, numerical error might happen). The path to the executables can be either of relative or absolute path. (For GENESIS 1.1.4 or before, the path must be absolute.) In a batch queue system, users may have to login computation node and then run test.py (mpirun command may not be used directly from the login node).

After all tests are finished, the total number of successful, failed, and aborted runs will be displayed in the terminal. The result of the regression tests may look like:

-----------------------------------------------------------------------
Passed 18 / 18
Failed 0 / 18
Aborted 0 / 18
-----------------------------------------------------------------------

If you found aborted jobs, you should check the log files in the aborted tests (the log files exist in the subdirectory of the corresponding name). You may find the cause of errors in those log files.

OpenMP thread number (OMP_THREAD_NUM); PLEASE SET PROPERLY!

OpenMP thread number ($OMP_NUM_THREADS environmental variable) should be properly set before running tests. If OMP_NUM_THREADS is not given, programs will try to use #-of-cpu-cores threads for each process in some systems. Note that you can use multiple threads in the tests if you have enough resources, although number of MPI processes must be 8. The actual thread number will be found in the log file (“test” file might be created in each test directory after running test.py; for example, test_common/bpti/PME/test) as below, please make sure that “total number of CPU cores” does not exceed the actual number of CPU cores.

[STEP2] Setup MPI
 
Setup_Mpi_Md> Summary of Setup MPI
 number of MPI processes = 8
 number of OpenMP threads = 3
 total number of CPU cores = 24

How test works?

The test.py script compares energy in log file between the developer’s and user’s ones. If energy differences are less than the tolerance (default = 3.00e-04), “Passed” is displayed for each test. Please note that the developer’s results were generated from GENESIS that was compiled with Intel compilers, OpenMPI library, and the double precision option on Intel CPUs. Among quantities in the log files, virial is the most sensitive to single/double precision and other numerical factors. Thus, virial may exceed the default tolerance (3.00e-04), if the user environment is significantly different from the developer’s one.