Saya mencoba meneruskan data ke MPI_Gather
. Saya mengalokasikan memori sebagai berikut:
float *phie, *phitemp;
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
phitemp=(float *) malloc(20*sizeof(float));
if (rank==1) phie=(float *) malloc(itermax*20*size*sizeof(float));
dan kemudian dapatkan semua proses untuk mengirim data ke peringkat 1 menggunakan MPI_Gather()
seperti di bawah ini:
for (iter=0;iter<itermax;iter++) {
MPI_Gather((float *) phitemp, 20, MPI_FLOAT, (float *) (phie+iter*20*size*sizeof(float)), 20, MPI_FLOAT, 1, MPI_COMM_WORLD);
iter=0;
}
Saya mendapatkan pesan kesalahan yang menunjukkan saya tidak mengalokasikan memori dengan tepat.