User Tools

Site Tools


Sidebar

quantumespresso:並列計算

This is an old revision of the document!


概要

  • マルチコアCPUを搭載したパソコンでの、QuantumESPRESSOの並列計算の方法です。

手順

MPI

MPIを使って並列化計算をしたい場合は、次のように実行します。

$ mpirun -n 2 pw.x < case.scf.in > case.scf.out

2はMPIプロセスの数です。 使用しているCPUの最大スレッド数を超えない値を設定します。

OpenMP

もしコンパイル時にOpenMPを許可していた場合、スレッド数は環境変数OMP_NUM_THREADSのものが使われます。 以下のようにして確認できます

$ echo $OMP_NUM_THREADS

OMP_NUM_THREADSの数は1つのCPU当たりのコア数を超えないようにします。 例えば12スレッドのOpenMP並列で実行する場合は次のようにします

$ OMP_NUM_THREADS=12
$ pw.x < case.scf.in > case.scf.out

MPI+OpenMPのハイブリッド実行

例えばMPIで2プロセスを生成し、各プロセスで12スレッドのOpenMP並列を行う場合、次のようにします。

$ mpirun -np 2 omplace -nt 12 pw.x < case.scf.in > case.scf.out

wf_collect

scf計算やbands計算などといった計算ごとに並列数が異なる場合は、入力ファイルの&controlに次のオプションを追加します。

wf_collect = .true.

並列計算をするときは常につけておくと安全です。

quantumespresso/並列計算.1598859343.txt.gz · Last modified: 2021/06/27 22:00 (external edit)