2012-12-15 94 views
2

std::string與mpi send和mpi recv命令一起使用的正確方法是什麼?正確使用MPI和std :: string

我有一個主從模型設置,其中主要首先從數據庫加載相當大量的字符串,我把它們存儲在內存中的一個vector<string>容器中,然後我想將它們發送給一個計算文本分析的時間。我最初寫我的文本分析函數接受一個字符串作爲輸入參數。

我應該讓主人將字符串轉換爲const char*,並且奴隸將它轉換回字符串進行計算?或者我應該只發送字符串s.c_str()作爲消息緩衝區?有沒有更好的方法來做到這一點?

+2

你有沒有想過使用'boost :: mpi'?我認爲這應該相當容易。 – inf

+0

@bamboon'boost :: mpi'更容易使用,但是它缺少一些我將來可能需要的其他功能,第一個示例實際上是發送和接收字符串真棒 – pyCthon

+0

@bamboon使用boost mpi問題變得移植原始的mpi教程http://www.lam-mp​​i.org/tutorials/one-step/ezstart.php – pyCthon

回答

1

您必須首先將矢量/字符串的大小發送到從屬進程。然後你可以在從屬進程中分配所需的內存。在第二遍中,你可以再次發送所有的向量。