我想在MPI中发送字符串向量,但我不知道应该如何使用MPI_Send和MPI_receiev。例如,如果我想发送long
的向量,我将使用此代码:
vector<double> local_data(n);
MPI_Send(&local_data[0], n, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD);
但如果我想发送像这样的字符串向量
vector<std::string> local_data(n);
我不知道我应该在MPI_send中使用size of buffer
和variable
的类型,
或MPI_recive。那有什么解决方案吗?
答案 0 :(得分:0)
如果要在MPI中发送字符串,则必须先将它们转换为C样式字符数组。没有MPI_STRING
类型(除非您使用的是某些非标准扩展名)。转换为c_str时,您应该能够获得字符串的大小,并将其用作MPI_SEND
或MPI_RECV
的大小输入。