所以我有一个程序,它将一个数组划分为从机的相等数组。我基本上使用 MPI_Scatter 来做到这一点。我还有一个变量,它决定这些数组将发生什么过程。(如 <0 - Sum> <1 - Min> <2 - Avg> <3 - Max>)所以在我的主部分代码中,我必须从用户那里获取一个数字并将其发送给从属。但是在 scanf 程序只是挂起之后。我正在使用 vs 2015 和 MPIEXEC 包装器。
if (MASTER == rank) //MASTER
{
printf("Yapilacak islem(0: Sum, 1: Min, 2: Avg, 3: Max): ");
fflush(stdout);
scanf_s("%d", &opID);
...
for (int to = 1; to < size; to++)
{
MPI_Send(&opID, 1, MPI_INT, to, tag, MPI_COMM_WORLD);
}
}
else //SLAVES
{
MPI_Recv(&opID, 1, MPI_INT, MASTER, tag, MPI_COMM_WORLD, &status);
}
所以在我输入一个数字后它不会继续。如下图。