quantumespresso:並列計算
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| quantumespresso:並列計算 [2020/08/31 16:22] – [手順] koudai | quantumespresso:並列計算 [2021/06/27 22:04] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 6: | Line 6: | ||
| ====== 手順 ====== | ====== 手順 ====== | ||
| + | ===== MPI ===== | ||
| MPIを使って並列化計算をしたい場合は、次のように実行します。 | MPIを使って並列化計算をしたい場合は、次のように実行します。 | ||
| < | < | ||
| - | $ mpirun -n 2 pw.x < case.scf.in > case.scf.out | + | $ mpirun -np 2 pw.x < case.scf.in > case.scf.out |
| </ | </ | ||
| - | 2はMPIプロセスの数です。 使用しているCPUの最大スレッド数を超えない値を設定します。 | + | -npによりMPIプロセスの数を指定します |
| - | もしコンパイル時にOpenMPを許可していた場合、MPIプロセスあたりのスレッド数は環境変数OMP_NUM_THREADSのものが使われます。 | + | ===== OpenMP ===== |
| + | |||
| + | もしコンパイル時にOpenMPを許可していた場合、スレッド数は環境変数OMP_NUM_THREADSのものが使われます。 | ||
| 以下のようにして確認できます | 以下のようにして確認できます | ||
| < | < | ||
| $ echo $OMP_NUM_THREADS | $ echo $OMP_NUM_THREADS | ||
| </ | </ | ||
| - | OMP_NUM_THREADSの数は1つのCPU当たりのコア数を超えないようにします。 | + | OMP_NUM_THREADSは1つのCPU当たりのコア数を超えないようにします。 |
| - | 変更する場合(例えば12スレッドにする場合)は次のようにします | + | 例えば12スレッドのOpenMP並列で実行する場合は次のようにします |
| < | < | ||
| - | $ OMP_NUM_THREADS=12 | + | $ export |
| + | $ pw.x < case.scf.in > case.scf.out | ||
| </ | </ | ||
| - | scf計算やbands計算などといった計算ごとに並列数が異なる場合は、& | + | ===== 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計算などといった計算ごとに並列数が異なる場合は、入力ファイルの& | ||
| < | < | ||
| Line 33: | Line 47: | ||
| 並列計算をするときは常につけておくと安全です。 | 並列計算をするときは常につけておくと安全です。 | ||
| + | (ver.6.3以降はデフォルトでtrueになったのでなくても大丈夫です) | ||
quantumespresso/並列計算.1598858576.txt.gz · Last modified: 2021/06/27 22:00 (external edit)
