【翻訳】FAQ - 4. 並列化計算

RESOURCES - FAQ - 4. Parallel executionの翻訳です。翻訳間違い等ありましたら、コメント欄にお願いします。

4. 並列化計算

並列計算を効果的に実施するには,並列計算機の動作原理やQuantum ESPRESSOでの実装状況の基本を知る必要があります。経験やアイデアをお持ちでない場合,ユーザーガイドの3節をご覧ください。

4.1 並列計算のセットアップ法,プロセッサー数の選び方を教えてください。

この質問が消えないうちは,並列計算機の動作原理やQuantum ESPRESSOでの実装状況の基本をまだ知らないということになります。前の質問をご覧ください。

4.2 並列化ジョブがお粗末な方法で実行されるのは何故でしょうか?

多くの人々が電子構造計算のスケーリングに対して,あらゆる期待をしています。適切な通信ハードウェアやプロセッサのための十分なメモリ領域があり,複雑な計算をする場合,並列化レベルを良く考えて選ぶと,良いスケーリングを得ることができます。メモリの競合(並列化レベルに達しないメモリの混在等)やライブラリが問題でMPI-OpenMPが競合(過去の例からすると,MKLが最も悪名高いです)していて,スケーリングがまずくなるケースもあります。このような場合,例えば,シリアル計算よりも遅くなります。

4.3 並列化ジョブがネームリストxxxxを読みにいくとエラーで停止します。

FAQの5.9節をご覧ください。並列計算でのみこの問題が生じる,つまりシングルプロセッサーで実行したときは正しく動作するのであれば,次の項目を参照してください。

4.4 シリアルジョブではうまく計算できる入力ファイルを並列化ジョブ読むことができません。

"mydode < input_file"の代わりに,"mycode -inp input_file"を使ってください。幾つかのMPIライブラリは,入力リダイレクトリを処理できません。

4.5 並列ジョブがN個ではなく1個のプロセッサーで計算されているようです。

まずはじめに,ご利用のMPIランチャー (mpirun, mpiexeなど)の構文を確認してください。正しい場合,出力ファイルのヘッダを見てください。

  • serial compilationとあれば,"並列化"コードが並列になっておらず,N個のコードを実行していることになります。
  • parallel (…) compilationとあり,それでも1つのプロセッサーで計算されている場合,コンパイルをしたMPIと実際に使っているMPIランチャーが異なっている等、MPIライブラリに問題があります。
Copyright © 2015 qespresso. All Rights Reserved.