を含む構造体の配列を送信する私は、次のC構造を持っている:MPI:ポインタ
typedef struct chromosome{
int *genes;
float cout;
}chromosome;
私はにMPI_Send関数を使用して染色体の配列をお送りしたいと思います。
MPI_Datatype MPI_CHROMOSOME;
MPI_Datatype TYPES_ELEMENTAIRES[2] = {MPI_INT, MPI_FLOAT};
int blocklengths[2] = {NB_SOMMETS,1}; //NB_SOMMET is a known integer value at this point (number of elements of the "genes" array)
MPI_Aint offsets[2];
offsets[0] = offsetof(chromosome, genes);
offsets[1] = offsetof(chromosome, cout);
MPI_Type_create_struct(2, blocklengths, offsets, TYPES_ELEMENTAIRES, &MPI_CHROMOSOME);
MPI_Type_commit(&MPI_CHROMOSOME);
それから私は、染色体の配列送信しようとした:
chromosome *sub_pop = malloc(taille_sub_pop*sizeof(chromosome));//taille_sub_pop is a known integer value
/* ... Fills sub_pop with chromosomes ...*/
MPI_Send(sub_pop,taille_sub_pop,MPI_CHROMOSOME, 1, 3, MPI_COMM_WORLD);
を...しかし、私はエラー(YOUR OF ONE OF BAD終了を得た私はこのようなMPI_CHROMOSOMEデータ型が定義されてきましたアプリケーションプロセス...終了コード139 ...アプリケーションが終了すると終了しました:セグメント化エラー(シグナル11))。
どうすればこのアレイを適切に送信できますか?私はあなたの助けに感謝します。どうもありがとう。
こんにちは:
は、この質問を参照してください。あなたが私に送ったリンクでは、実際には1つの要素だけでなく、そのような構造の配列を送信したいと思っています... – Reda94