Я хочу отправить сообщение (приветствие) от 0 процесса до 1-6 процесса и добавлять число i за сообщением каждый раз (G_str), но результат показывает, что
processor 1 received string: from processor 0
processor 2 received string: from processor 0
...
Я надеваю Не знаю, не было ли сообщения, которое я хочу отправить
#include <stdio.h>
#include <string.h>
#include <mpi.h>
int main(int argc, char *argv[])
{
int PID, P;
char greeting [] = "hello";
char replying [] ="nice to see you";
char G_str [10];
char R_str [10];
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &P);
MPI_Comm_rank(MPI_COMM_WORLD, &PID);
int len_g = strlen(greeting);
int len_r = strlen(replying);
int len_G = strlen(G_str);
//send and receive//
if (PID == 0){
for (int i = 1; i <= 6; i++)
{
sprintf(G_str, "%s%d", greeting,i);
MPI_Send(&G_str, len_G, MPI_CHAR, i, 77, MPI_COMM_WORLD);
}
}
else{
MPI_Recv(&G_str, len_G, MPI_CHAR, 0, 77, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
printf("processor %d received string %s from processor 0 \n", PID, G_str);
}
MPI_Finalize();
}
Я думаю, проблема в длине G_str, но как ее исправить?