2012-12-15 6 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은 부스트 ​​mpi를 사용하여 문제를 포팅합니다. 원본 mpi 자습서 http://www.lam-mpi.org/tutorials/one-step/ezstart.php – pyCthon

답변

1

먼저 벡터/문자열의 크기를 종속 프로세스에 보내야합니다. 그런 다음 슬레이브 프로세스에 필요한 메모리를 할당 할 수 있습니다. 두 번째 패스에서 모든 벡터를 다시 보낼 수 있습니다.

관련 문제