Automatic running test

In addition to a running test of the Section 'Test calculation', if you want to check whether most functionalities of OpenMX have been successfully installed on your computer or not, we recommend for you to perform an automatic running test. To do this, you can run OpenMX as follows:

For the MPI parallel running

     % mpirun -np 8 openmx -runtest
  
For the MPI/OpenMP parallel running
     % mpirun -np 8 openmx -runtest -nt 2
  

In the parallel execution, you can specify other options for mpirun. Then, OpenMX will run with 14 test files, and compare calculated results with the reference results which are stored in 'work/input_example'. The comparison (absolute difference in the total energy and force) is stored in a file 'runtest.result' in the directory 'work'. The reference results were calculated using a single processor of a 2.6 GHz Xeon machine. If the difference is within last seven digits, we may consider that the installation is successful. As an example, 'runtest.result' generated by the automatic running test is shown below:

mx17 (Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz), a cluster machine in the Ozaki laboratory
icc version 16.0.2, compiler option -O3 -xHOST -ip -no-prec-div -qopenmp
20 processes (MPI) x 1 thread (OpenMP)

1 input_example/Benzene.dat Elapsed time(s)= 3.09 diff Utot= 0.000000000021 diff Force= 0.000000000000
2 input_example/C60.dat Elapsed time(s)= 8.71 diff Utot= 0.000000000000 diff Force= 0.000000000000
3 input_example/CO.dat Elapsed time(s)= 6.77 diff Utot= 0.000000000000 diff Force= 0.000000000004
4 input_example/Cr2.dat Elapsed time(s)= 7.15 diff Utot= 0.000000000001 diff Force= 0.000000000001
5 input_example/Crys-MnO.dat Elapsed time(s)= 20.16 diff Utot= 0.000000000003 diff Force= 0.000000000047
6 input_example/GaAs.dat Elapsed time(s)= 27.89 diff Utot= 0.000000000000 diff Force= 0.000000000000
7 input_example/Glycine.dat Elapsed time(s)= 3.45 diff Utot= 0.000000000001 diff Force= 0.000000000000
8 input_example/Graphite4.dat Elapsed time(s)= 3.75 diff Utot= 0.000000000004 diff Force= 0.000000000152
9 input_example/H2O-EF.dat Elapsed time(s)= 2.93 diff Utot= 0.000000000000 diff Force= 0.000000000000
10 input_example/H2O.dat Elapsed time(s)= 2.80 diff Utot= 0.000000000000 diff Force= 0.000000000000
11 input_example/HMn.dat Elapsed time(s)= 8.84 diff Utot= 0.000000000000 diff Force= 0.000000000000
12 input_example/Methane.dat Elapsed time(s)= 2.38 diff Utot= 0.000000000013 diff Force= 0.000000000001
13 input_example/Mol_MnO.dat Elapsed time(s)= 6.05 diff Utot= 0.000000000001 diff Force= 0.000000000000
14 input_example/Ndia2.dat Elapsed time(s)= 4.98 diff Utot= 0.000000000000 diff Force= 0.000000000000

                                         Total elapsed time (s) 108.96

The comparison was made using 20 MPI processes on the same Xeon cluster machine as used for the calculations to obtain the reference results. Since the floating point operation depends on not only computer environment, but also the number of processors used in parallel execution, we see in the above example that there is a small difference even using the same machine. The elapsed time of each job is also output, so it is helpful in comparing the computational speed depending on computer environment. In the directory 'work/input_example', you can find 'runtest.result' files generated on several platforms.

If you want to make reference files by yourself, please execute OpenMX as follows:

     % ./openmx -maketest
  

Then, for input files '*.dat' in the directory 'work/input_example', OpenMX will generate the output files '*.out' in 'work/input_example'. So, you can add a new dat file which is used in the next running test. But, please make sure that the previous out files in 'work/input_example' will be overwritten by this procedure. For advanced testers for checking the reliability of code, see also the Sections 'Automatic force tester' and 'Automatic memory leak tester'.

For reference, the results of 'runtest' on a couple of machines are given below:

System B (sekirei) at ISSP, Univ. of Tokyo (Intel Xeon E5-2680v3 12core 2.5GHz)
icc version 18.0.5, compiler option: -O3 -xHOST -ip -no-prec-div -qopenmp -Dkcomp -fp-model precise
6 processes (MPI) x 4 thread (OpenMP)

1 input_example/Benzene.dat Elapsed time(s)= 3.69 diff Utot= 0.000000000034 diff Force= 0.000000000005
2 input_example/C60.dat Elapsed time(s)= 11.54 diff Utot= 0.000000000005 diff Force= 0.000000000006
3 input_example/CO.dat Elapsed time(s)= 6.14 diff Utot= 0.000000000106 diff Force= 0.000000001979
4 input_example/Cr2.dat Elapsed time(s)= 5.80 diff Utot= 0.000000000364 diff Force= 0.000000000033
5 input_example/Crys-MnO.dat Elapsed time(s)= 58.73 diff Utot= 0.000000000003 diff Force= 0.000000000005
6 input_example/GaAs.dat Elapsed time(s)= 48.60 diff Utot= 0.000000000010 diff Force= 0.000000000002
7 input_example/Glycine.dat Elapsed time(s)= 3.39 diff Utot= 0.000000000001 diff Force= 0.000000000000
8 input_example/Graphite4.dat Elapsed time(s)= 9.05 diff Utot= 0.000000000016 diff Force= 0.000000000019
9 input_example/H2O-EF.dat Elapsed time(s)= 3.04 diff Utot= 0.000000000002 diff Force= 0.000000000001
10 input_example/H2O.dat Elapsed time(s)= 2.69 diff Utot= 0.000000000000 diff Force= 0.000000000019
11 input_example/HMn.dat Elapsed time(s)= 10.50 diff Utot= 0.000000000085 diff Force= 0.000000000022
12 input_example/Methane.dat Elapsed time(s)= 2.05 diff Utot= 0.000000000003 diff Force= 0.000000000002
13 input_example/Mol_MnO.dat Elapsed time(s)= 6.41 diff Utot= 0.000000000617 diff Force= 0.000000000018
14 input_example/Ndia2.dat Elapsed time(s)= 5.59 diff Utot= 0.000000000000 diff Force= 0.000000000000

                                         Total elapsed time (s) 177.21

System C (enaga) at ISSP, Univ. of Tokyo (Intel Xeon 6148 20core 2.4GHz)
icc version 18.0.5, compiler option: -O3 -xHOST -ip -no-prec-div -qopenmp -Dkcomp -fp-model precise
5 processes (MPI) x 4 thread (OpenMP)

1 input_example/Benzene.dat Elapsed time(s)= 2.92 diff Utot= 0.000000000025 diff Force= 0.000000000002
2 input_example/C60.dat Elapsed time(s)= 9.47 diff Utot= 0.000000000005 diff Force= 0.000000000003
3 input_example/CO.dat Elapsed time(s)= 5.71 diff Utot= 0.000000000072 diff Force= 0.000000001573
4 input_example/Cr2.dat Elapsed time(s)= 5.46 diff Utot= 0.000000000845 diff Force= 0.000000000111
5 input_example/Crys-MnO.dat Elapsed time(s)= 40.05 diff Utot= 0.000000000002 diff Force= 0.000000000066
6 input_example/GaAs.dat Elapsed time(s)= 37.81 diff Utot= 0.000000000009 diff Force= 0.000000000001
7 input_example/Glycine.dat Elapsed time(s)= 2.96 diff Utot= 0.000000000001 diff Force= 0.000000000001
8 input_example/Graphite4.dat Elapsed time(s)= 5.76 diff Utot= 0.000000000002 diff Force= 0.000000000140
9 input_example/H2O-EF.dat Elapsed time(s)= 2.44 diff Utot= 0.000000000000 diff Force= 0.000000000000
10 input_example/H2O.dat Elapsed time(s)= 2.39 diff Utot= 0.000000000002 diff Force= 0.000000003224
11 input_example/HMn.dat Elapsed time(s)= 10.08 diff Utot= 0.000000000129 diff Force= 0.000000000020
12 input_example/Methane.dat Elapsed time(s)= 1.88 diff Utot= 0.000000000001 diff Force= 0.000000000000
13 input_example/Mol_MnO.dat Elapsed time(s)= 6.09 diff Utot= 0.000000000272 diff Force= 0.000000000150
14 input_example/Ndia2.dat Elapsed time(s)= 4.02 diff Utot= 0.000000000000 diff Force= 0.000000000001

                                         Total elapsed time (s) 137.06

hster at JAIST (Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz)
icc compiler Ver. 14.0.2.144, compiler option: -openmp -O3 -xAVX -ip -no-prec-div
20 processes (MPI) x 1 thread (OpenMP)

1 input_example/Benzene.dat Elapsed time(s)= 5.30 diff Utot= 0.000000000038 diff Force= 0.000000000003
2 input_example/C60.dat Elapsed time(s)= 12.53 diff Utot= 0.000000000001 diff Force= 0.000000000002
3 input_example/CO.dat Elapsed time(s)= 10.55 diff Utot= 0.000000000047 diff Force= 0.000000007948
4 input_example/Cr2.dat Elapsed time(s)= 10.74 diff Utot= 0.000000000381 diff Force= 0.000000000102
5 input_example/Crys-MnO.dat Elapsed time(s)= 27.48 diff Utot= 0.000000000001 diff Force= 0.000000000035
6 input_example/GaAs.dat Elapsed time(s)= 38.56 diff Utot= 0.000000000001 diff Force= 0.000000000001
7 input_example/Glycine.dat Elapsed time(s)= 5.76 diff Utot= 0.000000000001 diff Force= 0.000000000000
8 input_example/Graphite4.dat Elapsed time(s)= 6.73 diff Utot= 0.000000000003 diff Force= 0.000000000073
9 input_example/H2O-EF.dat Elapsed time(s)= 5.00 diff Utot= 0.000000000001 diff Force= 0.000000000001
10 input_example/H2O.dat Elapsed time(s)= 4.86 diff Utot= 0.000000000000 diff Force= 0.000000000020
11 input_example/HMn.dat Elapsed time(s)= 13.97 diff Utot= 0.000000000118 diff Force= 0.000000000001
12 input_example/Methane.dat Elapsed time(s)= 4.36 diff Utot= 0.000000000006 diff Force= 0.000000000002
13 input_example/Mol_MnO.dat Elapsed time(s)= 9.83 diff Utot= 0.000000000144 diff Force= 0.000000000079
14 input_example/Ndia2.dat Elapsed time(s)= 8.39 diff Utot= 0.000000000000 diff Force= 0.000000000001

                                         Total elapsed time (s) 164.04

CRAY-XC40 at JAIST (Intel Xeon E5-2695v4 2.1GHz)
icc version 17.0.7, compiler option: -Dxt3 -O3 -axCOMMON-AVX512,CORE-AVX512,CORE-AVX2,CORE-AVX-I,AVX,SSE4.2,SSE4.1,SSE3,SSSE3,SSE2 -qopenmp
18 processes (MPI) x 2 thread (OpenMP)

1 input_example/Benzene.dat Elapsed time(s)= 4.23 diff Utot= 0.000000000040 diff Force= 0.000000000002
2 input_example/C60.dat Elapsed time(s)= 12.40 diff Utot= 0.000000000001 diff Force= 0.000000000001
3 input_example/CO.dat Elapsed time(s)= 9.09 diff Utot= 0.000000000150 diff Force= 0.000000009551
4 input_example/Cr2.dat Elapsed time(s)= 8.56 diff Utot= 0.000000000462 diff Force= 0.000000000004
5 input_example/Crys-MnO.dat Elapsed time(s)= 20.81 diff Utot= 0.000000000001 diff Force= 0.000000000014
6 input_example/GaAs.dat Elapsed time(s)= 31.99 diff Utot= 0.000000000001 diff Force= 0.000000000001
7 input_example/Glycine.dat Elapsed time(s)= 4.71 diff Utot= 0.000000000001 diff Force= 0.000000000002
8 input_example/Graphite4.dat Elapsed time(s)= 4.89 diff Utot= 0.000000000032 diff Force= 0.000000000004
9 input_example/H2O-EF.dat Elapsed time(s)= 4.03 diff Utot= 0.000000000001 diff Force= 0.000000000002
10 input_example/H2O.dat Elapsed time(s)= 3.83 diff Utot= 0.000000000001 diff Force= 0.000000001042
11 input_example/HMn.dat Elapsed time(s)= 12.73 diff Utot= 0.000000000064 diff Force= 0.000000000029
12 input_example/Methane.dat Elapsed time(s)= 3.24 diff Utot= 0.000000000004 diff Force= 0.000000000001
13 input_example/Mol_MnO.dat Elapsed time(s)= 8.32 diff Utot= 0.000000000576 diff Force= 0.000000000032
14 input_example/Ndia2.dat Elapsed time(s)= 6.12 diff Utot= 0.000000000000 diff Force= 0.000000000001

                                         Total elapsed time (s) 134.96

FX100 at Nagoya Univ. (PRIMEHPC FX100, SPARC64b XIfx, 2.2Gz)
mpifccpx, compiler option: -Kfast -Kopenmp -Dnosse -Dkcomp
16 processes (MPI) x 2 thread (OpenMP)

1 input_example/Benzene.dat Elapsed time(s)= 12.29 diff Utot= 0.000000000003 diff Force= 0.000000000005
2 input_example/C60.dat Elapsed time(s)= 29.15 diff Utot= 0.000000000158 diff Force= 0.000000000050
3 input_example/CO.dat Elapsed time(s)= 38.71 diff Utot= 0.000000000125 diff Force= 0.000000003104
4 input_example/Cr2.dat Elapsed time(s)= 25.43 diff Utot= 0.000000001020 diff Force= 0.000000000007
5 input_example/Crys-MnO.dat Elapsed time(s)= 84.38 diff Utot= 0.000000006058 diff Force= 0.000000073199
6 input_example/GaAs.dat Elapsed time(s)= 80.54 diff Utot= 0.000000000011 diff Force= 0.000000015689
7 input_example/Glycine.dat Elapsed time(s)= 14.78 diff Utot= 0.000000000000 diff Force= 0.000000000000
8 input_example/Graphite4.dat Elapsed time(s)= 14.52 diff Utot= 0.000000000016 diff Force= 0.000000000001
9 input_example/H2O-EF.dat Elapsed time(s)= 12.78 diff Utot= 0.000000000001 diff Force= 0.000000000001
10 input_example/H2O.dat Elapsed time(s)= 13.07 diff Utot= 0.000000000001 diff Force= 0.000000000023
11 input_example/HMn.dat Elapsed time(s)= 37.63 diff Utot= 0.000000000153 diff Force= 0.000000000000
12 input_example/Methane.dat Elapsed time(s)= 9.82 diff Utot= 0.000000000007 diff Force= 0.000000000002
13 input_example/Mol_MnO.dat Elapsed time(s)= 26.48 diff Utot= 0.000000000209 diff Force= 0.000000000058
14 input_example/Ndia2.dat Elapsed time(s)= 19.74 diff Utot= 0.000000000000 diff Force= 0.000000000001

                                         Total elapsed time (s) 419.32

pauli (AMD EPYC 7351P, 2.4GHz), a machine in the Ozaki laboratory
gcc version 7.4.0, compiler option: -Dkcomp -O3 -march=znver1 -mtune=znver1 -mfma -mavx2 -m3dnow -fomit-frame-pointer -fopenmp
12 processes (MPI) x 1 thread (OpenMP)

1 input_example/Benzene.dat Elapsed time(s)= 3.32 diff Utot= 0.000000000039 diff Force= 0.000000000002
2 input_example/C60.dat Elapsed time(s)= 13.49 diff Utot= 0.000000000013 diff Force= 0.000000000006
3 input_example/CO.dat Elapsed time(s)= 9.13 diff Utot= 0.000000000064 diff Force= 0.000000000934
4 input_example/Cr2.dat Elapsed time(s)= 8.43 diff Utot= 0.000000002324 diff Force= 0.000000000157
5 input_example/Crys-MnO.dat Elapsed time(s)= 25.40 diff Utot= 0.000000000003 diff Force= 0.000000000070
6 input_example/GaAs.dat Elapsed time(s)= 38.09 diff Utot= 0.000000000002 diff Force= 0.000000000001
7 input_example/Glycine.dat Elapsed time(s)= 4.41 diff Utot= 0.000000000001 diff Force= 0.000000000003
8 input_example/Graphite4.dat Elapsed time(s)= 4.83 diff Utot= 0.000000000015 diff Force= 0.000000000011
9 input_example/H2O-EF.dat Elapsed time(s)= 3.55 diff Utot= 0.000000000000 diff Force= 0.000000000001
10 input_example/H2O.dat Elapsed time(s)= 2.95 diff Utot= 0.000000000001 diff Force= 0.000000000806
11 input_example/HMn.dat Elapsed time(s)= 11.85 diff Utot= 0.000000000113 diff Force= 0.000000000001
12 input_example/Methane.dat Elapsed time(s)= 2.72 diff Utot= 0.000000000006 diff Force= 0.000000000001
13 input_example/Mol_MnO.dat Elapsed time(s)= 8.01 diff Utot= 0.000000000326 diff Force= 0.000000000050
14 input_example/Ndia2.dat Elapsed time(s)= 5.93 diff Utot= 0.000000000000 diff Force= 0.000000000000

                                         Total elapsed time (s) 142.11