派生データ型を作成したい。私の問題は、それがsize_of()
機能と同様であることをMPI_Type_extent
の使用は異なるマシン上のC++ mpi派生データ型
int blocks[3] = {1,1,1};
MPI_Datatype types[3] ={MPI_INT,MPI_DOUBLE,MPI_DOUBLE};
MPI_Aint displacements[3];
MPI_Datatype MPI_Struct;
MPI_Aint doublex;
MPI_Type_extent(MPI_DOUBLE,&doublex);
displacements[0]=static_cast<MPI_Aint>(0);
displacements[1]=doublex;
displacements[2]=doublex+doublex;
MPI_Type_struct(3,blocks,displacements,types,&MPI_Struct)
です:
struct {
int provider;
double service;
double cost;
} MPI_Struct;
ウェブマニュアルに続いて、私はそのような何かを書く必要があります。特に、私はこのような構造体が欲しいです。私のプログラムはMPI_Datatype_exent
という異なるマシンのクラスタ上で動作するので、別のマシンのあるプロセスから別のプロセスにMy_Struct
を渡す際に問題がないことを確かめることはできますか?ここで
私は間違っていないよ場合は、型はビット長で、標準ではありません。..
あなたのマシンはどのように拡張されていますか? – Zulan
この瞬間、正確な違いはわかりません。彼らは大学のコンピュータであり、まだ使用していませんでした。 – dang92
すべてが完全に均質でなければなりません。異なるOS /インストール/バージョン/ MPI実装/コンパイラオプション/バイナリ/ CPUの組み合わせでMPIを実行しないでください。 – Zulan