içinde dizi gönderme ve alma İşte kodumun nasıl çalışması gerektiği. Köle düğümleri bazı hesaplamaları gerçekleştirir ve her düğüm, ilgili bir doğrusal dizi olan phi ile bir değer gönderir. Kök düğüm daha sonra 2 değer alır. Kök düğümde N-1 (slave sayısı) phi'u nasıl depolayacağımı anlamaya çalışıyorum. Bir 2D dizide phi kabul çalıştı ama işe yaramadı. Ya da belki yanlış yapıyorum. Dolayısıyla bu kod, gönderilmek üzere son düğümdeki phi değerlerini basitçe alır. Her şeydenMPI C
if (world_rank == root) {
for(i=1; i<world_size; i++) {
MPI_Irecv(&local_minE[i], 1, MPI_FLOAT, MPI_ANY_SOURCE, 1, MPI_COMM_WORLD, &rcv_request[i]);
MPI_Irecv(phi, len, MPI_INT, MPI_ANY_SOURCE, 1, MPI_COMM_WORLD, &rcv_request[i]);
MPI_Waitall(world_size-1, &rcv_request[1], &status[1]);
}
MPI_Waitall(world_size-1, &rcv_request[1], &status[1]);
}
else {
//after computations, node will send a value, minE with a corresponding array phi
MPI_Isend(&minE, 1, MPI_FLOAT, 0, 1, MPI_COMM_WORLD,&send_request[0]);
MPI_Isend(phi, len, MPI_INT, root, 1, MPI_COMM_WORLD, &send_request[0]);
MPI_Wait(&send_request[0], &status[0]);
}
Gerçekte çalışan bir örnek oluşturabilir misiniz? – Chiel
benim sorunumu açıkladı :) – Rowel