如何使用MPI_Scatter

时间:2018-09-28 15:13:04

标签: parallel-processing mpi

我很难理解MPI_Scatter的工作原理。我知道基础知识,但不知道如何实现。

我有一个由4个数字组成的向量,应将这些数字发送给所有从属。

std::vector<float> sendValues;
std::vector<float> recieveValues;
int val = 0;
if (world_rank == 0) { //Master

    for(int i = 1; i < world_size; ++i){
        val = 2*i; //i = the rank of the slave
        sendValues.push_back(val);
    }
}

MPI_Scatter(&sendValues, 1, MPI_FLOAT, &recieveValues, 1, MPI_FLOAT, 0, MPI_COMM_WORLD);

如果这是正确的方法,我如何使每个从属获得自己的val?我的意思是;

  

进程1 recv val = 2

     

进程2 Recv val = 4

     

等...

0 个答案:

没有答案