問題タブ [intel-mpi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ で MPI を使用して単純なループの負荷を分散する方法
計算コストが高いが、高度に並列化可能なコードを書いています。並列化したら、HPC で実行するつもりですが、ランタイムを 1 週間以内に抑えるには、プロセッサの数に合わせて問題を適切にスケーリングする必要があります。
以下は、私が達成しようとしていることの単純でばかげた例です。これは、私の問題をコンパイルして実証するのに十分簡潔です。
クアッドコアラップトップで問題をコンパイルしました
次の出力が得られます。
私には、私が気づいていないどこかに障壁があるに違いないように見えます。3 プロセッサよりも 2 プロセッサの方がパフォーマンスが向上します。誰かアドバイスをお願いします。ありがとう
memory - プログラムを OpenMPI にアップロードすると、IntelMPI メモリ リークで初期化エラーが発生する
私は大学院生 (修士) で、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 の経験がありません。
mpi - slurm スケジューラを使用して複数のノードで MPI ジョブを実行する
特定のタスク/ノード構成で MPI アプリケーションを実行しようとしています。合計 8 つの MPI タスクを実行する必要があり、そのうち 4 つはあるノードで、4 つは別のノードで実行します。
これは私が使用しているスクリプトファイルです:
次に、これを sbatch で実行します。
しかし、私はこのエラーを受け取り続けます:
sbatch: エラー: バッチ ジョブの送信に失敗しました: 要求されたノード構成は利用できません
このコードを変更して実行するにはどうすればよいですか? 確かに何かが欠けていますが、何がわかりません。
IntelMPI と slurm 20.02 を使用しています