2

MPIを使用して分散アプリケーションを構築する必要があります。 分散環境から最大限の利点を得るために、クラスのインスタンスをプロセスに(そしてマシンに)マップする方法があります。メッセージパッシングによるパフォーマンス評価

私の質問には、より良いマッピングを選択できるモデルがありますか?つまり、いくつかの取り決めは間違っています(たとえば、2つの異なるマシンに2つのオブジェクトを入れて処理するトークンのストリームを使わずに、かなり大量のデータを処理する必要があります)が、システム的には実行の流れ、メッセージの複雑さ、アルゴリズムコンポーネントによって行われた計算にかかる時間によって決定されるそのような間違った配置を決定するか?

+0

ネットワークのキュー理論のように、分散コンピューティングを形式化する理論があるかどうかを知りたいのですが、私の仕事をするプログラムではありません; – akappa

答えて

1

まあ、data flow diagramsがあります。それらは並列性の機会と落とし穴を特定するのに役立ちます。ウィキペディアのページの参考文献は、あなたに理論的な根拠を与えるかもしれない。

私がLockheed Martinで働いていたとき、処理ブロックにマッピングするモデリングアルゴリズム用に開発したツールCSIMに触れました。

+0

データフロー図はツールとして最適ですパラレルプログラムでフローを記述する方法として、ソフトウェアエンジニアリングの場合は弱い解析装置を使用します。 私はそれをもっと詳しく見ていきます、btw。 – akappa

+0

合意。また、私はウィキペディアの記事ではなく、その中に同期障壁を持っているフロー図のラインに沿ってもっと考えていました。私はちょうど思い出した別のモデルのために、下に2番目の答えを加えています。 –

0

もう1つお試しください、Join Calculusです。私はそれを使って驚くほど直感的なプログラミングの例を見つけました。理論に基づいていると思います。なぜそれがより多くを捕らえていないのか分かりません。

もう1つのアプローチはPi Calculusですが、理解しづらいかもしれませんが、より一般的かもしれません。

0

実用的な解決法は、異なるモデルの分散メモリ並列プログラミングを使用することで、あなたの懸念に直接対応します。私はCharm++プログラミングシステムを研究しています。そのモデルは、個々のオブジェクトがメッセージを送信するものです。ランタイムシステムは、これらのオブジェクトの利用可能なプロセッサへの自動的なマッピングを容易にし、負荷バランスおよび通信局所性の問題を説明する。