問題タブ [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.

0 投票する
1 に答える
748 参照

c++ - 関数から任意の型を返す

関数から任意の型を返したいです。戻り値の型は、多態的な関数呼び出しに動的に依存します。たとえば、次の例では、列数が異なる CSV ファイルから値を読み取ります。

getTuple()呼び出されたオブジェクトに基づいて異なる型を返すように署名を作成するにはどうすればよいですか?

解決:

0 投票する
1 に答える
1025 参照

c++ - Boost::serialization および boost::mpi は、基本クラス ポインタを介して派生クラスをブロードキャストします

boost::mpi::broadcast を使用して、基本クラス ポインターを介してすべてのノードに派生クラスを送信しようとしています。これを行うために、boost::serialization ライブラリを使用してクラスをシリアル化しています。しかし、私のコードはコンパイルされず、「class boost::mpi::packed_skeleton_iarchive' has no member named 'append'」および「class boost::mpi::packed_skeleton_iarchive' has no member named 'reset'」というエラーが表示されます。 "

プログラムの大まかなソースコードは次のとおりです。

この問題に関する Google グループのディスカッションは 1 つしか見つかりませんでしたが、これまでのところ解決策はありませんhttps://groups.google.com/forum/#!msg/boost-developers-archive/Ee9_ilEDO7s/cJTy-8v5lEcJ。これをコンパイルするにはどうすればよいですか?openmpi 1.2.8-17.4、gcc 4.5.1、boost 1.54 を使用しています。

0 投票する
2 に答える
968 参照

c++ - Open MPI ブロードキャスト レイテンシ測定

ドキュメントを読むと、MPI_Bcast はブロッキング呼び出しです (したがって、boost::mpi::broadcast) も同様です。ルート ノードがブロードキャストするのにかかる時間を測定して、ルート ノードから他のすべてのノードにデータを取得するのにかかる時間を適切に測定していますか?

いえ

または、単純な OpenMPI の場合:

0 投票する
1 に答える
1181 参照

c++ - boost::mpi を使用して mpi のメッセージ サイズに制限はありますか?

私は現在、openMPI の上で boost::mpi を使用してシミュレーションを書いていますが、すべてうまくいきます。ただし、システムをスケールアップすると、より大きな std::vectors を送信する必要があり、エラーが発生します。

問題を次の問題に減らしました。

プリントアウト:

mpi のメッセージ サイズに制限があることは承知していますが、65kB は少し小さいように思えます。より大きなメッセージを送信する方法はありますか?

0 投票する
1 に答える
118 参照

c++ - boost::mpi ブロッキング IO は Linux シグナルによって中断されません

私はboost::mpi、OpenMPIを使用しています。boost::mpi::communicator::recv (ブロッキング バージョン) は、Linux シグナルによって中断されません。SIGTERM シグナルを使用してプログラムを正しく終了するにはどうすればよいですか?

0 投票する
1 に答える
148 参照

c++ - 単純なブースト グラフ オブジェクトを boost:MPI got error 経由で送信する

「/apps/boost_1_56_0/libs/graph/test」のコード「serialize.cpp」を変更し、ブースト MPI を介してネットワーク経由でブースト グラフ オブジェクトを送信することでテストを行っています。

正常にコンパイルされましたが、mpirun を使用して実行可能ファイルを実行すると、次のエラーが発生しました。

空のバッファを読んでいると思いますが、修正方法がわかりません。

0 投票する
0 に答える
44 参照

c++ - 変数メカニズムの MPI コンテンツ/スケルトン?

Boost.MPI で提供されるような MPI 機能のスケルトンとコンテンツの実装にどのような利点があるのか​​疑問に思っています。私が理解している限り、スケルトンとコンテンツのアプローチは、メッセージが任意のタイプの固定サイズであり、このメッセージを異なるコンテンツで数回送信する必要がある場合にのみ有益です。

したがって、skeleton&content は次の場合には機能しません。

Boost は、データをシリアル化し、反対側で逆シリアル化することによってコンテンツを送信します。(MPI_BYTE型のデータを送信し、フラグでエンディアンを処理すると思いますか?)

2 つの質問:

  1. シリアライズ可能なタイプ (シリアライゼーション ラッパー オブジェクトの場合もあります) のスケルトンを送信する必要がある理由: スケルトンを必要とせずに、受信したデータをデシリアライズするだけでなく (デシリアライゼーションを提供する同じシリアライゼーション ラッパーが与えられた場合)、ブーストできますか?

したがって、skelton&content アプローチは、リストなどの動的サイズを後続の呼び出しで再度シリアル化する必要がないという意味で有益です。したがって、本当の利点は、シリアル化されたメッセージ (コンテンツの送信) がスケルトンとコンテンツのアプローチで小さくなることです。メッセージが数回送信される場合、これは有益です。

結論として、メッセージが非常に動的 (形状が変化する) で、メッセージが 1 つしか送信されない場合は、スケルトンとコンテンツを適用しないでください。

あれは正しいですか?

0 投票する
1 に答える
1058 参照

boost - ブーストタプルをシリアル化するにはどうすればよいですか?

ブーストmpiを使用してboost_tupleで要素をブロードキャストしようとすると:

エラーがあります:

どうすればよいですか?ありがとうございました。