問題タブ [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.
mpi - MPICH と OpenMPI
MPI の OpenMPI 実装と MPICH 実装の違いを誰か詳しく説明できますか? どちらがより良い実装ですか?
visual-c++ - VC++ GUI を使用した MPI プログラム?
MPICH2 (ご参考までに、64 ビット) を使用してアプリケーションを作成する必要があります。GUI は完全にオプションですが、もちろん大きなプラスになります。mpiexec でマネージ VC++ コードを実行する際に問題はありますか? コンパイル/リンク (呼び出し規約など) で発生する可能性のある他の問題はありますか?
アイデアを提供するために、プログラムの一般的な構造は次のようになります。
fortran - fortran 90 ユーザー定義型、値渡し?
Fortran 90 に問題があります。
私はユーザー定義型を持っており、MPI サブルーチンの 1 つを呼び出すと、データは値で渡されるように見えます (私が思っていたように、アドレスではありません)。出力引数は変更されません。MPI 呼び出しに固有のようです。簡単なテストで同じことを試しましたが、呼び出しスコープで渡された値を変更できます。Fortran は常にアドレスで渡すと思っていたので、これがなぜなのかわかりません。何が起こっているのでしょうか?
明確にするために、コメント付きのスニペットは呼び出しがどのように行われるかを示しています。最初の呼び出しでc%NSubDomains
は、出力引数であり、呼び出しスコープで変更する必要がありますが、そうではありません。ユーザー定義型のメンバーではなく配列で呼び出すと、コメント解除されたスニペットで機能します。
mpi - MPIプログラムからエラーコードを返す信頼できる方法は何ですか?
MPI標準(295ページ)には次のように書かれています。
ユーザーへのアドバイス。エラーコードが実行可能ファイルから返されるか、MPIプロセス起動メカニズム(mpiexecなど)から返されるかは、MPIライブラリの品質の側面ですが、必須ではありません。
実際、次のコードを実行することに成功しませんでした。
さらなるアクションを決定するために、エラーコードをシェルに戻すことができません。2つのエラーメッセージはどちらも出力されません。エラーコードやメッセージを専用のファイルに書いてみようかなと思います。
誰かが同様の問題を抱えたことはありますか?信頼できるエラー報告を行うためにあなたが考えたオプションは何でしたか?
編集:
問題はMPIが原因ではありませんでした。本当に間違っていたのは、スケジューラーが返したエラーコードの処理方法です。LoadLevelerがインストールされたシステムを使用しています。まずは
次に、ジョブが完了すると、ジョブのステータスとエラーコードが返された電子メールを受け取ります。私の場合、MPIプログラムがMPI_Abort関数を使用して終了した場合でも、エラーコードは常にゼロでした。次に、返されたエラーコードは、スクリプトmy_job_file.sh自体のエラーコードであり、スクリプト内で実行されるMPIプログラムではないことに気付きました。my_job_file.shは次のようになりました。
それから私はそれを次のように変更しました
そして、最終的に必要なエラーコードを取得しました。
fortran - MPI_SCATTER 行ごとの Fortran 行列
Fortran 90 行列を列ではなく行で散布する最良の方法は何ですか? つまり、行列 a(4,50) があり、各部分が alocal(2,50) である 2 つのプロセスに MPI_SCATTER したいとします。ここで、ランク 0 には行 1 と 2 があり、ランク 1 には行 3 と行があります。 4. C では、配列は行優先なので単純ですが、Fortran 90 では列優先です。
TRANSPOSE を使用して分散前に a を反転する (つまり、メモリ使用量を 2 倍にする) ことを避けようとしていますが、MPI にはこれを行う方法が必要であると考えています。MPI_TYPE_VECTOR でしょうか。MPI_TYPE_CREATE_SUBARRAY?
同様に、3 次元配列 b(4,50,3) があり、blocal(2,50,3) の 2 つの分散行列を上記のように分散させたい場合はどうすればよいでしょうか?
c - Cのハッシュテーブル実装
Cの優れたハッシュテーブル実装は何ですか?mpiccコンパイラで使用する必要があります。削除機能は必要ありません。
boost - Boost.MPI を使用してオーバーラップ スキャッタを実行するにはどうすればよいですか?
要素が重なっているベクターを分散させたい。たとえば、[1,2,3] がある場合、[1,2] をあるノードに送信し、[2,3] を別のノードに送信します。MPI を使用してこれを行う方法はよく知っていますが、Boost::MPI を使用してこれを行うにはどうすればよいでしょうか?
c++ - MPI(C++)でのベクトルの使用
私は MPI プログラミングに慣れていませんが、構造を定義して派生データ型を作成するまで成功しました。今、私は自分の構造にベクターを含めて、プロセス全体でデータを送信したいと考えています。例:
今MPIを使用して、プロセス全体で構造内のデータを送信したいと考えています。含まれている MPI_type_struct ベクターを作成してデータを送信することはできますか?
フォーラムを読んでみましたが、そこにある回答から明確な全体像を得ることができません。データを送信するための明確なアイデアまたはアプローチを得ることができることを願っています
PS: データを個別に送信できますが、ドメインが非常に大きい (10000*10000 など) と見なされる場合、MPI_Send/Recieve を使用してデータを送信するオーバーヘッドが発生します。
benchmarking - C での MPI プログラムのパフォーマンス ベンチマーク
MPI は初めてです。C で MPI プログラムのベンチマークを実行する方法を教えてください。私が使用しているクラスターは、Rocks 4.3(Mars Hill)を実行しています。
c - Cプログラムを待機させる方法(Linuxの場合)?
Cプログラムを待機させる方法(Linuxの場合)?(MPIで待機を使用する必要があります-Cコードが必要です)