如何在mpi中发送字符串向量?

时间:2014-01-27 17:17:53

标签: c++ vector mpi

我想在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 buffervariable的类型, 或MPI_recive。那有什么解决方案吗?

1 个答案:

答案 0 :(得分:0)

如果要在MPI中发送字符串,则必须先将它们转换为C样式字符数组。没有MPI_STRING类型(除非您使用的是某些非标准扩展名)。转换为c_str时,您应该能够获得字符串的大小,并将其用作MPI_SENDMPI_RECV的大小输入。