Department
という構造体と、Departments
という構造体の配列があります。この配列を特定の数のプロセスに散布したいので、すべてのプロセスにCurrent
という要素があります構造体)(学科)Departments
アレイ 'CでのStrucutersの散布配列
#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>
struct Department{
int position;
int Department_Destinations[100];
};
struct Department Current,Departments[100];
int main(int argc, char** argv){
int rank, nprocess;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &nprocess);
if(rank==0){
for(i=0;i<n;i++){
Departments[i].position=i+1;
for(j=0;j<c1;j++){
Departments[i].Department_Destinations[j]=0;
}
}
MPI_Scatter(Departments, sizeof(Current), MPI_BYTE, Current ,sizeof(Current), MPI_BYTE, 0,MPI_COMM_WORLD);
MPI_Finalize();
return 0;
}
からDepartments
要素(部門の数に等しいプロセスの数を仮定する)
このコードをコンパイルして実行すると、それ エラー:「MPI_Scatterの引数4に互換性のない型」
このエラーとMPIで構造体配列(Departments)の配列を散布する理由は何ですか?高度な
でおかげ
これは、構造体を渡すためにひどいと非常に非移植可能な方法です。サイト周辺で 'MPI_Type_create_struct'を含む質問と回答を探して、構造を適切に送信する方法についての情報を探してください。 –