1

私は分散メモリ環境で作業しています。私の仕事は、大きな 3D オブジェクトをスプリングで結び付けたパーティクルを使用してシミュレートすることです。それらを小さなピースに分割し、各ピースを別のコンピューターでシミュレートします。シミュレーションを達成するためにサードパーティの物理エンジンを使用しています。私が直面している問題は、オブジェクトが分割されている端で粒子情報をどのように送信するかです。この情報は、相互作用する粒子の力を計算するために必要です。画像の線は、カットが行われた場所を示しています。粒子の数が多いため、通信のオーバーヘッドも大きくなります。そのような情報を送信する良い方法はありますか、または必要な情報を判断するのに役立つ別の値を送信する方法はありますか? どんな助けでも大歓迎です。ありがとうございました 例

PS:粒子情報とは、ローカルマシンでシミュレートされた粒子に適用される結果の力を計算するための新しい位置を意味します

4

1 に答える 1

1

「大きい」とは、たくさんのものを意味します。ここで、通信されるデータを持つポイントの数は、1 よりもはるかに多いという点で「大きい」場合がありますが、格子内に 100 万個の粒子があり、それを四角形に分割することによって (たとえば) 4 つのプロセッサ間で分割している場合、各境界を越えて 500 個の粒子しか通信していません。1 に比べれば大きいが、1,000,000 に比べれば非常に小さい。

これらの種類の分散メモリ計算に非常に一般的に使用されるライブラリ (これは、ノードがインターネット全体に分散していることを示唆する分散コンピューティングとはかなり異なります。密結合要素を含むこの種の計算は、通常、一連のラボまたはクラスター内の近くのコンピューター) は MPI です。この通信パターンは非常に一般的であり、「ハロー交換」または「ガードセル交換」または「ゴーストゾーン交換」または何らかの組み合わせと呼ばれます。それらの用語を検索すると、そのようなことの多くの例を見つけることができるはずです. (このトピックに関するこのサイトにはいくつかの質問がありますが、それらは通常、非常に具体的な実装に関する質問に焦点を当てています)。

于 2012-05-10T11:56:08.717 に答える