MPI 基本データ型は、MPI_BYTE と MPI_PACKED を除いて、ホスト言語のデータ型に対応しています。私の質問は、これらの MPI 基本データ型を使用する利点は何ですか? または同様に、ホスト言語のデータ型をそのまま使用するのがなぜ悪いのでしょうか?
William Gropp などによるチュートリアルを読みました。スライド 31 の「Why Datatypes」には、次のように書かれています。
- すべてのデータは型によってラベル付けされるため、MPI 実装は、メモリ表現と基本データ型の長さが非常に異なるマシン上のプロセス間の通信 (異種通信) をサポートできます。
- メモリ内のデータのアプリケーション指向レイアウトの指定
- 実装でメモリ間のコピーを減らす
- 利用可能な場合、特別なハードウェア (スキャッター/ギャザー) を使用できます
( http://www.mcs.anl.gov/research/projects/mpi/tutorial/mpiintro/ppframe.htm )
説明がわかりません。まず、基本的な MPI データ型がホスト言語の基本的なデータ型 (基本的なデータ型) に対応するため、基本的なデータ型が異なる場合、MPI データ型を使用して違いを解決できる理由がわかりません。第 2 に、メモリ内のこのアプリケーション指向のデータ レイアウトには、前述の 2 つの利点があるのはなぜですか?
私の元の質問に対処する回答はすべて受け入れられます。William Gropp の説明に対する私の質問を解決する回答も受け入れられます。