問題タブ [boost-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 - Boost.MPIの問題
私はHPCに取り組んでいます。その HPC には古いバージョンの Boost がインストールされており、Boost ライブラリには Boost.MPI がありません。管理者に HPC へのインストールを依頼しました。しかし、彼らは私にそれを私のホームディレクトリにインストールするように要求しました。だから私は自分のホームディレクトリにboostとboost.mpiの両方をインストールしました。Boost ライブラリは正しく動作しているようです。しかし、以下のコマンドで次のコードを実行しようとすると、エラーが発生しました。
テストコード:
ビルド コマンド:
次のエラーが叫んでいます。
どなたかお役に立てれば幸いです。
c++ - 3台以上のマシンでOpenMPIを実行できません
boost :: mpiチュートリアルの最初の例を実行しようとすると、3台以上のマシンで実行できませんでした。具体的には、これは正常に実行されているようです。
ホスト名の各ホスト名を<node_name> slots=2 max_slots=2
。しかし、プロセスの数を5に増やすと、ハングします。slots
/の数を1に減らしましたが、max_slots
2台を超えても同じ結果になりました。ノードでは、これはジョブリストに表示されます。
さらに、それを殺すと、次のメッセージが表示されます。
mpi
クラスタは、NFSマウントされたドライブでアクセス可能なおよびboost
ライブラリを使用してセットアップされます。NFSでデッドロックが発生していますか?または、何か他のことが起こっていますか?
更新: 明確にするために、私が実行しているブーストプログラムは
@Dirk Eddelbuettelの推奨事項hello_c.c
から、次のようにmpiの例をコンパイルして実行しました。
複数のプロセスを持つ単一のマシンで正常に実行されます。これには、任意のノードへのsshingと実行が含まれます。各計算ノードは、NFSを介してリモートマシンからマウントされた作業ディレクトリおよびmpi/boostディレクトリと同じです。ファイルサーバーからブーストプログラムを実行すると(boost / mpiがローカルであることを除いてノードと同じです)、2つのリモートノードで実行できます。ただし、「hello world」の場合、mpirun -H node1,node2 -np 12 ./hello
取得したコマンドを実行すると
「HelloWorld」はすべて印刷されており、最後にぶら下がっています。ただし、リモートノードの計算ノードから実行する場合の動作は異なります。
「Helloworld」とブーストコードはどちらもmpirun -H node1 -np 12 ./hello
、node2から実行するとハングし、その逆も同様です。(上記と同じ意味でハングします。ortedはリモートマシンで実行されていますが、通信していません。)
mpiライブラリがローカルであるファイルサーバーでの実行と計算ノードでの実行との動作が異なるという事実は、NFSデッドロックが発生している可能性があることを示しています。これは合理的な結論ですか?これが事実であると仮定して、静的にリンクできるようにmpiを構成するにはどうすればよいですか?さらに、ファイルサーバーから実行しているときに発生するエラーをどうすればよいかわかりません。
boost - Boost.MPI を使用してオーバーラップ スキャッタを実行するにはどうすればよいですか?
要素が重なっているベクターを分散させたい。たとえば、[1,2,3] がある場合、[1,2] をあるノードに送信し、[2,3] を別のノードに送信します。MPI を使用してこれを行う方法はよく知っていますが、Boost::MPI を使用してこれを行うにはどうすればよいでしょうか?
c++ - Boost MPIのAutoconfマクロ?
configure.ac
BoostMPIをチェックするautoconfマクロを検索しています。
インターネット上でそれらのいくつかを見つけるのは難しいことではありませんが、私が試したもののどれも期待どおりに機能しませんでした。
何をax_boost_mpi.m4
使いますか?
編集:私は私の要件をよりよく説明します。HAVE_BOOST_MPI
コンパイラとリンカのフラグをどこかに格納し、コンパイラを通常のc++コンパイラから使用可能なmpiCCまたはmpic++に切り替えるために、Boost MPIが使用可能かどうか(を定義)を通知するマクロが必要です。
Boost MPIが見つからない場合は、エラーで構成プロセスを停止するか、HAVE_BOOST_MPIを定義せずにg++を引き続き使用するかを選択できるようにしたいと思います。
プラスとして、いくつかのチェックを実行できるようにMPIRUN変数を定義する必要があります。
language-agnostic - 並列コードのドキュメントにはどのような図がありますか?
文書化する必要のある並列コード(MPIを使用して実装)があります。高レベルの戦略を説明するフロー図が欲しいのですが。
送信、受信、ブロードキャスト、収集、削減、およびその他の操作を説明するために、どのような図を使用しますか?
(編集:私はそれらを行うためのLinux / LaTeXソフトウェアにも同様に興味があります)
multicore - マルチコア プログラミング。Boost の MPI、OpenMP、TBB、またはその他の何か?
私はマルチコア プログラミングの初心者ですが、C++ のプログラミング方法は知っています。
現在、マルチコア プログラミング ライブラリを探しています。楽しみのためだけに試してみたいと思います。現在、3 つの API を見つけましたが、どの API を使用すればよいかわかりません。現在、Boost の MPI、OpenMP、および TBB が表示されます。
これら 3 つの API (またはその他の API) のいずれかを使用したことがある方は、これらの違いを教えてください。AMD や Intel のアーキテクチャなど、考慮すべき要素はありますか?
boost - Boost MPIをビルドしようとしていますが、libファイルが作成されていません。どうしたの?
Boost MPIを使用してプログラムを実行しようとしていますが、.libがありません。だから私はhttp://www.boost.org/doc/libs/1_43_0/doc/html/mpi/getting_started.html#mpi.configの指示に従って作成しようとしています
「LAM/MPI、MPICH、またはOpenMPIを使用している多くのユーザーの場合、構成はほぼ自動です」という説明があり、C:\でOpenMPIを取得しましたが、それ以上何もしませんでした。私たちはそれで何かをする必要がありますか?また、プログラムファイルでMPICH2を取得しましたが、それ以上のことは何もしませんでした。指示のこの時点で、私は正確に何をしなければならないのかよくわかりません。
その横に、命令からの別のステートメント:「ホームディレクトリにファイルuser-config.jamがまだない場合は、そこにtools / build / v2/user-config.jamをコピーします。」まあ、私は単にそれが言うことをします。C:\boost_1_43_0>に「usingmpi;」と一緒に「user-config.jam」を取得しました。ファイルに。
次に、これは私がやったことです:bjam --with-mpi
C:\ boost_1_43_0 \ stage \ libには多くのライブラリがあるようですが、libboost_mpi-vc100-mt-1_43.libまたはlibboost_mpi-vc100-mt-gd-1_43.libの痕跡はまったくありません。これらは、mpiアプリケーションでリンクするために必要なライブラリです。
ライブラリが構築されていないときに何がうまくいかなかった可能性がありますか?
boost - mpic++を探しています
Boost MPIファイルをビルドしようとこれらの手順に従って.lib
いますが、1つの問題が発生しました:がありませんmpic++
。
MPICHやOpenMPIなどのMPI実装ファイルを見ると、まったくmpic++
含まれていません。
どこにありますmpic++
か?
c++ - Boost::Serialization Mpi ユーザー定義型の配列を送信
boost Mpi を使用して Array クラスを送信したい
ここT
には、任意の組み込み型またはユーザー定義型を指定できます。クラスコンプレックスがあるとします
Array<complex>
質問は、 Boost::Mpi + シリアライゼーションを使用して送信するにはどうすればよいかということです。
期待していただきありがとうございますよろしくノーマン
c++ - WinマシンとLinuxマシンを一緒に使用するBoostMPIでOpenMPIまたはMPICHを使用する
最近、私はMPIの世界に近づいています。私はおそらくOpenMPIまたはMPICHでBoostMPIライブラリを使用するつもりです(MPICHを使用しても、私が読んだいくつかの投稿のために、それが正常に機能するかどうかはわかりません)。
私の本当の質問は次のとおりです。これらの2つのライブラリとその上にあるBoostMPIを使用して、LinuxマシンとWindowsマシンのリソースを組み合わせることができますか?
MPIを使用することが、同じオペレーティングシステムを持つリモートマシンでプロセスを開始できることを意味するかどうかはまだわかりません。原則としてMPIは通信プロトコル上にあるメッセージングシステムであるため、通信中のOSへの依存度はそれほど高くありません。
このトピックについて何か知っていますか、またはWinおよびLinuxマシンでMPIを使用しようとしたことがありますか?
ありがとうEO