我只是简单地尝试将一些字符串分散到节点,然后在新数组中接收它们。当我打印新阵列时,终端将输出
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";
答案 0 :(得分:0)
问题是你只发送数组的前5个字符。请记住,MPI_CHAR
与字符串不同。您必须传入一个字符数组并告诉MPI数组中有多少个字符。添加所有字符串的长度,然后重试。