「テスト計算」の章で説明した計算に加え、OpenMXの主な機能が正常にインストールされているか確認したい場合には、 自動実行のテストを実施することをお薦めします。この自動実行テストを行うには、 以下のコマンドによりOpenMXを実行します。
MPI並列化の場合:
% mpirun -np 8 openmx -runtestMPI/OpenMP並列化の場合:
% mpirun -np 8 openmx -runtest -nt 2並列計算の実行の際にmpirunの他のオプションを指定することもできます。 このテストにおいて、OpenMXは14個の入力テストファイルを計算し、結果を「work/input_example」に格納されている参照データと比較します。 比較結果(全エネルギーおよび力の差の絶対値)は「work」ディレクトリの「runtest.result」というファイルに格納されます。 参照データは2.6 GHz Xeonシングルプロセッサのコンピュータで計算されたものです。 絶対差分が小数点以下7桁以内であればインストールは正常に行われたと判断できます。 自動実行テストの結果、生成された「runtest.result」の例を以下に示します。
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 |
参照データファイルを御自身で作成する場合には、以下のコマンドによってOpenMXを実行して下さい。
% ./openmx -maketestこれによりOpenMXは「work/input_example」ディレクトリにある「*.dat」入力ファイルに対して、対応する「*.out」ファイルを同ディレクトリに生成します。 新しい入力datファイルを追加することで次回の自動実行テスト時に、対応する「*.out」を利用することができますが、 この手続きにより以前の「work/input_example」にある出力ファイルは上書きされてしまうことに注意して下さい。 開発者やヘビーユーザがコードの信頼性を確認したい場合には「自動フォース・テスター」および「自動メモリリーク・テスター」の章もご参照下さい。
参考までにいくつかの計算機による 'runtest' の結果を以下に示します。
東京大学物性研究所 System B (sekirei) (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 |
東京大学物性研究所 System C (enaga) (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 |
北陸先端科学技術大学 hster (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 |
北陸先端科学技術大学院大学 CRAY-XC40 (Intel Xeon E5-1695v4 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 |
名古屋大学 FX100 (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 |
尾崎研究室 pauli (AMD EPYC 7351P, 2.4GHz)
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 |