アプリケーションでは、MPI
float の分散配列と整数の 2 つの「並列」配列があります。float 値ごとに、対応する値を表す 2 つの関連する整数があります。キャッシュ効率のために、これらを 3 つの異なる配列、つまり構造体の配列ではなく、配列の構造体として扱いたいと考えています。
ここで、これらすべての値を最初のノードに集める必要があります。MPI
1 つの float と 2 つの整数を使用して、構造体に対応する型を定義することにより、1 つの通信命令でこれを行うことができます。しかし、これにより、配列の構造ではなく、構造の配列パターンを使用する必要があります。
したがって、次のいずれかを選択できます。
- アレイごとに 1 つずつ、3 つの異なる通信を実行し、アレイ配置の効率的な構造を維持します。
- 型を定義し
MPI
、単一の通信を実行し、アルゴリズムを調整したりデータを再配置したりして、結果として得られる構造体の配列を処理する
両方の長所を活かすことができる 3 番目のオプションをご存知ですか。つまり、単一の通信を行い、キャッシュ効率の高い構成を維持することです。