如果我有这个代码:
int main(void) {
int result=0;
int num[6] = {1, 2, 4, 3, 7, 1};
if (my_rank != 0) {
MPI_Reduce(num, &result, 6, MPI_INT, MPI_MIN, 0, MPI_COMM_WORLD);
} else {
MPI_Reduce(num, &result, 6, MPI_INT, MPI_MIN, 0, MPI_COMM_WORLD)
printf("result = %d\n", result);
}
}
Run Code Online (Sandbox Code Playgroud)
结果打印为 1 ;
但如果num[0]=9;那么结果是9
我读到为了解决这个问题,我必须将变量定义num为数组。我无法理解该函数如何MPI_Reduce与 一起使用MPI_MIN。为什么如果num[0]不等于最小数,那么我必须将变量定义num为数组?