2011-11-17 8 views
0

개체를 브로드 캐스트하는 방법이 있습니까? 아니면 다른 방법으로 포함 된 모든 값을 브로드 캐스트해야합니까?MPI로 개체 브로드 캐스트

+0

목적은 무엇인가 Boost.MPI에 통합되어 (객체 직렬화로 구성 할 수있는 방법에 한계가있다)? POD (int, char, float) 및 포인터가 포함되어 있지 않습니까? – osgx

답변

0

저는 C++ 언어가 객체를 가지고 있고 표준에 정의 된 MPI 인터페이스를 가진 언어로만 가정합니다. 내가 틀렸다면, 그냥 말해. 다른 언어의 기본 원칙은 다음과 같습니다.

기본적으로 개체의 memcpy를 수행하거나 파일 (write)에 저장하고 파일 (read)에서 개체를 읽으면 개체가 저장된 메모리의 MPI_Bcast를 수행 할 수 있습니다.

  • 는이 같은 속성이나 다른 물체 :

    는 개체가

    • 하기 만 POD 타입 (CHAR, INT, 플로트, 이중 일반 오래된 데이터)로 구성되어야하며,이 일을 할 수 있으려면 다른 MPI 프로세스로 전송 한 후 메모리가 전송 프로세스와 같지 않기 때문에 내부에 포인터가 없습니다.

    개체가 더 복잡한 경우에는 보내기 전에 일부 버퍼로 직렬화 (마샬링)하고 수신 후에 비 직렬화 (언 마샬링)해야합니다. 당신은 boost serialization을 사용할 수 있습니다 -하지만 심지어이 변형 보편적없는

    PS 부스트 직렬화