web-dev-qa-db-ja.com

MPI経由でAbinitを実行する方法は?

シーケンシャルモードでは時間がかかりすぎるため、 Abinit を並行して実行しようとしています。私はabinitチュートリアルのすべての手順に従って並行して実行し、OpenMPIを使用すると言われていますが、それを機能させることができませんでした(8つのコアの1つで実行されるだけです)。私も このチュートリアル に従いましたが、それでも1コアでのみ実行されます

ログを見て、私はついに問題になる可能性のあるものを見つけました:

お使いのアーキテクチャは、16、8、4、または2バイトのFORTRANファイルレコードマーカーを処理できません。
ABINITおよびMPI/IOは使用できません。
MPI_ERROR_STRING:不明なエラー。バグレポートを提出してください。
ABINIT
MPI_Abort(MPI_COMM_WORLD、13)というアプリケーション-プロセス0

グーグルは役に立ちません。私のアーキテクチャは、Windowsバージョンのabinitと並行して実行できるため、並行して実行できるはずです。

それを機能させるために何ができますか?

2
Victor Oliva

いくつかのことがこれを引き起こす可能性があります:

  1. リンクしたライブラリ、実行時にロードしたライブラリ、およびopenmpiの最近のバージョンの中には、互換性のないバージョンのmpiが少しバグがあります。
  2. 波動関数または密度の入力ファイルがありません。明確なエラーメッセージはありませんが、これによりmpi ioが適合し、ジョブがハングする可能性があります
  3. 互換性のないkポイント/バンド/ fftの数と指定したプロセッサの数。これはデフォルトの並列化ではnkptの約数であり、一般的なparal_kgbの場合はnp_kpt * np_band * np_fftの正確な約数である必要があります。

シーケンシャルまたはより少ないプロセッサで実行して、問題が発生する可能性がある場所を確認するか、古いバージョンのmpiにリンクしてみてください(通常は1.2.6で問題ありません)。また、それぞれのエラーをログに記録するtmp_XXX_LOG_P001 002 003ファイルも確認する必要があります。プロセッサ。彼らはあなたに追加のヒントを与えるでしょう。

3
Matthieu