1

私は大学院生 (修士) で、MPI を使用するシミュレーションを実行するために社内コードを使用しています。以前、アクセスしていたスーパーコンピューターで OpenMPI を使用していましたが、シャットダウンして以来、Intel MPI がインストールされている別のスーパーコンピューターに切り替えようとしています。問題は、以前は完全に正常に動作していた同じコードが、設定された反復回数 (タイム ステップ) の後にメモリ リークを引き起こすことです。コードは比較的大きく、MPI に関する私の知識は非常に基本的なものであるため、デバッグするのは非常に困難です。そのため、使用しているこの新しいスーパーコンピューターに OpenMPI をインストールしましたが、実行時に次のエラー メッセージが表示されて終了します。

PE の数が無効です 分割パターンまたは PE の数を確認してください

注: このエラー メッセージは、ケースの実行に使用したノード数 (ここでは 8) だけ繰り返されます。スレッドの並列化のために -fopenmp を指定して mpif90 を使用してコンパイルされました。

実際、OpenMPI で実行してもメモリ リークが発生しないという保証はありませんが、以前はまったく問題なく実行されていたので、試してみる価値はあると思います。

PS: Intel MPI では、これは私が得たエラーです (mpiifort で -qopenmp を使用してコンパイル)。

ノード 16 (comm 0 のランク 16) での Abort(941211497): PMPI_Isend の致命的なエラー: >不明なエラー クラス、エラー スタック: PMPI_Isend(152)....................: MPI_Isend(buf=0x2aba1cbc8060, count=4900, dtype=0x4c000829, dest=20, tag=0, MPI_COMM_WORLD, request=0x7ffec8586e5c) 失敗 MPID_Isend(662)....................: MPID_isend_unsafe(282)....: MPIDI_OFI_send_normal( 305): ノード 17 (comm 0 のランク 17) でリクエスト オブジェクト Abort(203013993) にメモリを割り当てているときにエラーが発生しました: PMPI_Isend で致命的なエラーが発生しました: >不明なエラー クラス、エラー スタック: PMPI_Isend(152)...... .....: MPI_Isend(buf=0x2b38c479c060, count=4900, dtype=0x4c000829, dest=21, tag=0, MPI_COMM_WORLD, request=0x7fffc20097dc) が失敗しました MPID_Isend(662).... : MPID_isend_unsafe(282)....: MPIDI_OFI_send_normal(305):要求オブジェクト [mpiexec@cx0321.obcx] HYD_sock_write (../../../../../src/pm/i_hydra/libhydra/sock/hydra_sock_intel.c:357) のメモリ割り当て中にエラーが発生しました:書き込みエラー (不正なファイル記述子) [mpiexec@cx0321.obcx] cmd_bcast_root (../../../../../src/pm/i_hydra/mpiexec/mpiexec.c:164): cmd 15 の送信エラープロキシへ [mpiexec@cx0321.obcx] send_abort_rank_downstream (../../../../../src/pm/i_hydra/mpiexec/intel/i_mpiexec.c:557): 応答を下流に送信できません [mpiexec @cx0321.obcx] control_cb (../../../../../src/pm/i_hydra/mpiexec/mpiexec.c:1576): アボート ランクをダウンストリームに送信できません [mpiexec@cx0321.obcx ] HYDI_dmx_poll_wait_for_event (../../../../../src/pm/i_hydra/libhydra/demux/hydra_demux_poll.c:79): コールバックがエラーステータスを返しました [mpiexec@cx0321.obcx] main (.. /../../../../src/pm/i_hydra/mpiexec/mpiexec.c:1962):イベント待機中のエラー」

誰かがそれを見て喜んでいる場合に備えて、喜んでコードを提供します。Fortran を使用し、C で記述された関数の一部が記述されています。この問題により、私の研究の進行は完全に停止しており、私の研究室には、これを解決するのに十分な MPI の経験がありません。

4

0 に答える 0