64 비트 정수를 MPI_Bcast해야 할 때 시작되었습니다. MPI는 그것을 처리하는 방법을 알고하지 않기 때문에 내가 그랬어 : 수동으로 직렬화하는 대신 MPI_Datatype을 사용해야하는시기는 언제입니까?
template<typename T>
inline int BcastObjects(T* pointer,
int count,
int root,
MPI_Comm comm)
{
return MPI_Bcast(pointer,
count * sizeof(*pointer),
MPI_BYTE,
root,
comm);
}
지금 내가 할 수있는 :
int64_t i = 0;
BcastObjects(&i, 1, root_rank, some_communicator);
가 그럼 난 구조의 배열을 통해 보내 BcastObjects를 사용하기 시작했다. 그렇게해도 괜찮은지 궁금합니다.
MPI_Datatype에 대한 매뉴얼은 어떻게해야하는지에 초점을 맞췄지만, 왜 그것을하고 싶지는 않습니다.
64 비트 플랫폼에서는 64 비트 단위로 MPI_LONG_LONG 및 MPI_UNSIGNED_LONG_LONG을 사용할 수 있습니다. – Sergey
@ Sergey 나는 어떻게 든 그것을 놓쳤다. 감사. –
기능 매뉴얼은 MPI 기본 사항이 아니라 인터페이스 및 의미를 문서화합니다. [MPI 표준] (http://www.mpi-forum.org/docs/docs.html) ("Datatypes"장의 첫 번째 장)에는 전체 데이터 형식이 필요하다는 것을 설명하는 전체 페이지가 있습니다. . –