FAQ#20は言う:
v1.1以降、Open MPIでは、C、C ++、およびFortranデータ型のサイズが、MPI_BOOLおよびMPI_LOGICALで表される型を除いて、単一の並列アプリケーション内のすべてのプラットフォームで同じである必要があります。これらの型のプロセス間のサイズの違い適切に処理されます。単一のMPIジョブ内のプロセス間のエンディアンの違いは、適切かつ自動的に処理されます。
v1.1より前のバージョンでは、OpenMPIにはデータサイズやエンディアンの異質性のサポートは含まれていませんでした。
MPI_UNSIGNED_LONGは、すべてのホストで32ビット、またはすべてのホストで64ビットでなければならないという意味ですか?私のクラスターは、32ビットと64ビットのLinuxサーバーで構成されています。それを保証しlong
、unsigned long
すべてのホストで同じサイズになるようにするための最良の方法は何ですか?たぶん私は使用する必要がint
あり、「長い長い」のみを使用する必要がありますか?これらは、すべてのホストでそれぞれ32ビットと64ビットです。使用しない限り、データサイズに一貫性がなくても大丈夫ですか?
ありがとうございました。