我使用MPI_Scatter
将一些数据从一个进程(master)发送给所有其他进程(worker)。一些接收缓冲区似乎是空的(它们是0,很可能是未初始化的)。如果分配了值,则值似乎未分配给正确数组的正确元素。
基本上,如下所示,我试图从主进程向所有其他进程发送大小为N的数组。
MPI_Scatter(A, N, MPI_DOUBLE, A_buff, N, MPI_DOUBLE, MASTER, MPI_COMM_WORLD);
我的代码在这里:https://github.com/olavurmortensen/distributed_nmf/blob/master/main.c
分散操作位于第157行。使用malloc
分配数组。