「テスト計算」の章で説明した計算に加え、OpenMXの主な機能が正常にインストールされているか確認したい場合には、 自動実行のテストを実施することをお薦めします。この自動実行テストを行うには、以下のコマンドでOpenMXを実行します。
MPI並列化の場合:
% mpirun -np 8 openmx -runtestOpenMP/MPI並列化の場合:
% 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)= 4.78 | diff Utot= 0.000000000000 | diff Force= 0.000000000002 |
2 | input_example/C60.dat | Elapsed time(s)= 14.96 | diff Utot= 0.000000000019 | diff Force= 0.000000000004 |
3 | input_example/CO.dat | Elapsed time(s)= 9.86 | diff Utot= 0.000000000416 | diff Force= 0.000000000490 |
4 | input_example/Cr2.dat | Elapsed time(s)= 10.70 | diff Utot= 0.000000000000 | diff Force= 0.000000000044 |
5 | input_example/Crys-MnO.dat | Elapsed time(s)= 19.98 | diff Utot= 0.000000004126 | diff Force= 0.000000001888 |
6 | input_example/GaAs.dat | Elapsed time(s)= 26.39 | diff Utot= 0.000000001030 | diff Force= 0.000000000007 |
7 | input_example/Glycine.dat | Elapsed time(s)= 5.48 | diff Utot= 0.000000000001 | diff Force= 0.000000000000 |
8 | input_example/Graphite4.dat | Elapsed time(s)= 5.00 | diff Utot= 0.000000002617 | diff Force= 0.000000015163 |
9 | input_example/H2O-EF.dat | Elapsed time(s)= 4.88 | diff Utot= 0.000000000000 | diff Force= 0.000000000113 |
10 | input_example/H2O.dat | Elapsed time(s)= 4.60 | diff Utot= 0.000000000008 | diff Force= 0.000000013375 |
11 | input_example/HMn.dat | Elapsed time(s)= 13.44 | diff Utot= 0.000000000001 | diff Force= 0.000000000001 |
12 | input_example/Methane.dat | Elapsed time(s)= 3.64 | diff Utot= 0.000000000001 | diff Force= 0.000000002263 |
13 | input_example/Mol_MnO.dat | Elapsed time(s)= 9.43 | diff Utot= 0.000000003714 | diff Force= 0.000000000540 |
14 | input_example/Ndia2.dat | Elapsed time(s)= 5.67 | diff Utot= 0.000000000004 | diff Force= 0.000000000001 |
Total elapsed time (s) 138.79 |
この比較は同一Xeonクラスタ上で、8 MPIプロセスと2 OpenMPスレッドを用いて行われました。 浮動小数点の演算はコンピュータ環境だけでなく並列計算で使用されたプロセッサ数等にも依存するため、 上記の例では、同じコンピュータを使っているのにも関わらず差が現れているのが分かります。 各ジョブの経過時間も出力されているため、環境によって計算スピードの差を比較することができます。 「work/input_example」ディレクトリには、複数のプラットフォームで生成された「runtest.result」ファイルがあります。
参照データファイルを御自身で作成する場合には、以下のコマンドによってOpenMXを実行してください。
% ./openmx -maketest
これによりOpenMXは「work/input_example」ディレクトリにある「*.dat」入力ファイルに対して、対応する「*.out」ファイルを同ディレクトリに生成します。 新しい入力datファイルを追加することで次回の自動実行テスト時に、対応する「*.out」を利用することができますが、 この手続きにより以前の「work/input_example」にある出力ファイルは上書きされてしまうことに注意してください。 開発者やヘビーユーザがコードの信頼性を確認したい場合には「自動フォース・テスター」および「自動メモリリーク・テスター」の章もご参照ください。