MPI Scatter只发送第一个元素

时间:2014-03-15 14:42:45

标签: c++ openmpi

我只是简单地尝试将一些字符串分散到节点,然后在新数组中接收它们。当我打印新阵列时,终端将输出

    name1
    (empty line) 
    (empty line)
    (empty line)

这是我的分散点:

    std::string files[4] = {"name1", "name2", "name3", "name4"};
    std::string recArr[4];


    MPI_Scatter(files, 5, MPI_CHAR, recArr, 5, MPI_CHAR, 0, world);


    for(int i = 0; i < 4; i++) std::cout << recArr[i]  << "\n";

1 个答案:

答案 0 :(得分:0)

问题是你只发送数组的前5个字符。请记住,MPI_CHAR与字符串不同。您必须传入一个字符数组并告诉MPI数组中有多少个字符。添加所有字符串的长度,然后重试。