quantumespresso:並列計算
Table of Contents
概要
- マルチコアCPUを搭載したパソコンでの、QuantumESPRESSOの並列計算の方法です。
手順
MPI
MPIを使って並列化計算をしたい場合は、次のように実行します。
$ mpirun -np 2 pw.x < case.scf.in > case.scf.out
-npによりMPIプロセスの数を指定します
OpenMP
もしコンパイル時にOpenMPを許可していた場合、スレッド数は環境変数OMP_NUM_THREADSのものが使われます。 以下のようにして確認できます
$ echo $OMP_NUM_THREADS
OMP_NUM_THREADSは1つのCPU当たりのコア数を超えないようにします。 例えば12スレッドのOpenMP並列で実行する場合は次のようにします
$ export OMP_NUM_THREADS=12 $ pw.x < case.scf.in > case.scf.out
MPI+OpenMPのハイブリッド実行
例えばMPIで2プロセスを生成し、各プロセスで12スレッドのOpenMP並列を行う場合、次のようにします。
$ export OMP_NUM_THREADS=12 $ mpirun -n 2 pw.x < case.scf.in > case.scf.out
wf_collect
scf計算やbands計算などといった計算ごとに並列数が異なる場合は、入力ファイルの&controlに次のオプションを追加します。
wf_collect = .true.
並列計算をするときは常につけておくと安全です。 (ver.6.3以降はデフォルトでtrueになったのでなくても大丈夫です)
quantumespresso/並列計算.txt · Last modified: 2021/06/27 22:04 by 127.0.0.1