実行環境・必要なパッケージ
HTP-tools は Moller と cif2x の2つのパッケージからなります。利用するにはそれぞれ以下のプログラムとライブラリが必要です。
- Moller
- Python 3.x
- ruamel.yaml モジュール
- tabulate モジュール
- GNU Parallel (ジョブスクリプトを実行するサーバ・計算ノードで利用します)
- cif2x
- Python 3.x
- pymatgen モジュール
- ruamel.yaml モジュール
- f90nml モジュール
- qe-tools モジュール
- numpy モジュール
- pandas モジュール
- monty モジュール
ダウンロード・インストール
HTP-tools のソースコードは Moller, cif2x それぞれの release page から取得できます。tgz アーカイブまたは zip アーカイブをダウンロードして展開します。
また、git を利用できる場合は、以下のコマンドで HTP-tools をダウンロードできます。
- Mollerの場合
$ git clone https://github.com/issp-center-dev/Moller.git
- cif2xの場合
$ git clone https://github.com/issp-center-dev/cif2x.git
実行方法
Mollerを実行する
mollerはスーパーコンピュータ向けにバッチジョブスクリプトを生成するツールです。多重実行の機能を利用して、パラメータ並列など一連の計算条件について並列にプログラムを実行します。
- 構成定義ファイルの作成
-
mollerを使用するには、まず、計算内容を記述した構成定義ファイルをYAML形式で作成します。詳細についてはファイルフォーマットの章を参照してください。
- コマンドの実行
-
作成した構成定義ファイルを入力としてmollerプログラムを実行します。バッチジョブスクリプトが生成されます。
$ moller -o job.sh input.yaml
- バッチジョブの実行
-
生成されたバッチジョブスクリプトを対象となるスーパーコンピュータシステムに転送します。 並列実行する各パラメータごとにディレクトリを用意し、 list.dat にディレクトリ名を列挙します。 list.dat には、ジョブを実行するディレクトリからの相対パスまたは絶対パスを記述します。
リストファイルが用意できたらバッチジョブを投入します。 以下では、物性研システムB(ohtaka)で実行するケースを示します。
ohtaka では slurm ジョブスケジューラが使用されています。バッチジョブを投入するには、バッチジョブスクリプトを引数として sbatch コマンドを実行します。ジョブスクリプト名に続けてスクリプトのパラメータを渡すことができます。パラメータとしてリストファイルを指定します。
$ sbatch job.sh list.dat
リストファイルの指定がない場合は list.dat がデフォルトとして使われます。
- 結果の確認
-
バッチジョブ終了後に、
$ moller_status input.yaml list.dat
を実行すると、各パラメータセットについて計算が正常に終了したかどうかを集計したレポートが出力されます。
- ジョブの再開・再実行
-
ジョブが途中で終わった場合、続けて実行するには、同じリストファイルを指定してもう一度バッチジョブを投入します。 未実行(未完了を含む)のタスクから実行が継続されます。
以下のように、リストファイルを指定して sbatch コマンドを実行します。
$ sbatch job.sh list.dat
エラーで終了したタスクを再実行するには、–retry オプションを付けてバッチジョブを投入します。
$ sbatch job.sh --retry list.dat
cif2xを実行する
cif2xは第一原理計算プログラムのための入力ファイルを生成するツールです。入力パラメータを雛形として、物質の種類や計算条件によって変わる箇所を結晶構造データなどから構成します。現在は Quantum ESPRESSO, VASP, および OpenMX の入力ファイル形式に対応しています。
- 入力パラメータファイルの作成
-
cif2xを使用するには、まず、生成する入力ファイルの内容を記述したパラメータファイルをYAML形式で作成します。詳細についてはファイルフォーマットの章を参照してください。
- 結晶構造ファイルと擬ポテンシャルファイルの配置
-
対象となる物質の結晶構造を記述したファイルを用意します。ファイル形式は CIF または pymatgen が扱える POSCAR や xfs 形式に対応しています。
Quantum ESPRESSO の場合、利用する擬ポテンシャルファイルと、CSV形式のインデックスファイルを配置します。擬ポテンシャルファイルの配置先などは入力パラメータファイル内に指定します。
VASP の場合、擬ポテンシャルファイルの格納場所を ~/.config/.pmgrc.yaml ファイルに記述するか環境変数にセットします。入力パラメータファイル内で指定することもできます。
- コマンドの実行
-
作成した入力パラメータファイルおよび結晶構造データファイルを入力としてcif2xプログラムを実行します。Quantum ESPRESSO用の入力ファイルを生成する場合はターゲットオプションに -t QE を指定します。VASPの場合は -t VASP, OpenMX の場合は -t OpenMX を指定します。
$ cif2x -t QE input.yaml material.cif
詳細についてはマニュアルを参照してください。