自動実行のテスト

「テスト計算」の章で説明した計算に加え、OpenMXの主な機能が正常にインストールされているか確認したい場合には、 自動実行のテストを実施することをお薦めします。この自動実行テストを行うには、以下のコマンドでOpenMXを実行します。

MPI並列化の場合:

     % mpirun -np 8 openmx -runtest
  
MPI/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)= 4.58 diff Utot= 0.000000000002 diff Force= 0.000000000000
2 input_example/C60.dat Elapsed time(s)= 14.93 diff Utot= 0.000000000003 diff Force= 0.000000000001
3 input_example/CO.dat Elapsed time(s)= 7.82 diff Utot= 0.000000000000 diff Force= 0.000000000004
4 input_example/Cr2.dat Elapsed time(s)= 7.78 diff Utot= 0.000000004887 diff Force= 0.000000000012
5 input_example/Crys-MnO.dat Elapsed time(s)= 18.74 diff Utot= 0.000000000006 diff Force= 0.000000000001
6 input_example/GaAs.dat Elapsed time(s)= 24.45 diff Utot= 0.000000000010 diff Force= 0.000000000000
7 input_example/Glycine.dat Elapsed time(s)= 4.87 diff Utot= 0.000000000054 diff Force= 0.000000000003
8 input_example/Graphite4.dat Elapsed time(s)= 4.42 diff Utot= 0.000000000000 diff Force= 0.000000000001
9 input_example/H2O-EF.dat Elapsed time(s)= 3.78 diff Utot= 0.000000000000 diff Force= 0.000000000001
10 input_example/H2O.dat Elapsed time(s)= 3.51 diff Utot= 0.000000000000 diff Force= 0.000000000001
11 input_example/HMn.dat Elapsed time(s)= 13.83 diff Utot= 0.000000000000 diff Force= 0.000000000000
12 input_example/Methane.dat Elapsed time(s)= 3.09 diff Utot= 0.000000000002 diff Force= 0.000000000002
13 input_example/Mol_MnO.dat Elapsed time(s)= 8.50 diff Utot= 0.000000000144 diff Force= 0.000000000125
14 input_example/Ndia2.dat Elapsed time(s)= 5.32 diff Utot= 0.000000000000 diff Force= 0.000000000000
Total elapsed time (s) 125.62


この比較は同一Xeonクラスタ上で、8 MPIプロセスと2 OpenMPスレッドを用いて行われました。 浮動小数点の演算はコンピュータ環境だけでなく並列計算で使用されたプロセッサ数等にも依存するため、 上記の例では、同じコンピュータを使っているのにも関わらず差が現れているのが分かります。 各ジョブの経過時間も出力されているため、環境によって計算スピードの差を比較することができます。 「work/input_example」ディレクトリには、複数のプラットフォームで生成された「runtest.result」ファイルがあります。

参照データファイルを御自身で作成する場合には、以下のコマンドによってOpenMXを実行して下さい。

     % ./openmx -maketest
  
これによりOpenMXは「work/input_example」ディレクトリにある「*.dat」入力ファイルに対して、対応する「*.out」ファイルを同ディレクトリに生成します。 新しい入力datファイルを追加することで次回の自動実行テスト時に、対応する「*.out」を利用することができますが、 この手続きにより以前の「work/input_example」にある出力ファイルは上書きされてしまうことに注意して下さい。 開発者やヘビーユーザがコードの信頼性を確認したい場合には「自動フォース・テスター」および「自動メモリリーク・テスター」の章もご参照下さい。

2017-03-07