User Tools

Site Tools


quantumespresso:並列計算

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
quantumespresso:並列計算 [2018/02/16 22:02]
koudai
quantumespresso:並列計算 [2021/06/27 22:04] (current)
Line 1: Line 1:
 +====== 概要 ======
 +
 +  * マルチコアCPUを搭載したパソコンでの、QuantumESPRESSOの並列計算の方法です。
 +
 +
 +====== 手順 ======
 +
 +===== MPI =====
 +
 MPIを使って並列化計算をしたい場合は、次のように実行します。 MPIを使って並列化計算をしたい場合は、次のように実行します。
  
 <code> <code>
-$ mpirun -np 32 pw.x < case.scf.in > case.scf.out+$ mpirun -np 2 pw.x < case.scf.in > case.scf.out 
 +</code> 
 + 
 +-npによりMPIプロセスの数を指定します 
 + 
 +===== OpenMP ===== 
 + 
 +もしコンパイル時にOpenMPを許可していた場合、スレッド数は環境変数OMP_NUM_THREADSのものが使われます。 
 +以下のようにして確認できます 
 +<code> 
 +$ echo $OMP_NUM_THREADS 
 +</code> 
 +OMP_NUM_THREADSは1つのCPU当たりのコア数を超えないようにします。 
 +例えば12スレッドのOpenMP並列で実行する場合は次のようにします 
 +<code> 
 +$ export OMP_NUM_THREADS=12 
 +$ pw.x < case.scf.in > case.scf.out 
 +</code> 
 + 
 +===== MPI+OpenMPのハイブリッド実行 ===== 
 + 
 +例えばMPIで2プロセスを生成し、各プロセスで12スレッドのOpenMP並列を行う場合、次のようにします。 
 +<code> 
 +$ export OMP_NUM_THREADS=12 
 +$ mpirun -n 2 pw.x < case.scf.in > case.scf.out
 </code> </code>
  
-32はプロセスの数です。 使用しているCPUの最大スレッド数を超えない値を設定します。 同時に複数の計算をする場合は、合計がCPUの最大スレッド数を超えないようにします。 (超えても一応は動きますが、計算が極端に遅くなります)+===== wf_collect =====
  
-scf計算やbands計算などといった計算ごとに並列数が異なる場合は、&controlに次のオプションを追加します。+scf計算やbands計算などといった計算ごとに並列数が異なる場合は、入力ファイルの&controlに次のオプションを追加します。
  
 <file> <file>
Line 14: Line 47:
  
 並列計算をするときは常につけておくと安全です。 並列計算をするときは常につけておくと安全です。
 +(ver.6.3以降はデフォルトでtrueになったのでなくても大丈夫です)
  
quantumespresso/並列計算.1518786176.txt.gz · Last modified: 2021/06/27 22:00 (external edit)