1

これらの構成で使用するのに最適な並列処理ライブラリを知りたいです。

  1. シングル クアッド コア マシン。各コアで同じタイプの 4 つの関数を実行したいと考えています。同じ関数が異なる引数を取ります。
  2. それぞれがマルチコアを備えた 4 台のマシンのクラスター。同じ機能を n 並列で実行したい (4 台のマシン * 各マシンのコア数)。だから私はそれをスケーリングしたい。

プログラム詳細:

  1. C++ プログラム。関数間に依存関係はありません。同じ関数が異なる入力セットで実行され、100 回以上完了します
  2. 各関数は独自のデータと独自の入力を受け取るため、共有メモリはありません。
  3. 各関数は、他の関数が完了するのを待つ必要はありません。ジョインやフォークは必要ありません。

上記のシナリオで使用できる最適な並列ライブラリは何ですか? MPI、BOOST::MPI、オープン mp またはその他のライブラリ。

私の好みは BOOST::MPI ですが、いくつかの推奨事項が必要です。並列マルチコア マシンで MPI の使用が許可されているかどうかわかりません。

ありがとう。

4

1 に答える 1

2

ここにあるのは、非常に並列な問題です ( http://en.wikipedia.org/wiki/Embarrassingly_parallel )。MPI は間違いなくマルチコア マシンで使用できますが、当面の問題を解決するには過剰な可能性があります。タスクが完全に分離されている場合は、それらを個別の実行可能ファイルまたは異なる入力を持つ単一の実行可能ファイルにコンパイルして、「make -j [n]」を使用できます ( http://www.gnu.org/software/make/manualを参照)。 /html_node/Parallel.html ) を使用して並列実行します。

MPI を自然に思いついた場合は、必ずそれを使用してください。クラスター内の別々のコンピューターでコンピューティングを制御したい場合、OpenMP はおそらく役に立ちません。

于 2013-07-12T14:31:13.393 に答える