当我需要 MPI_Bcast 一个 64 位整数时,这一切就开始了。由于 MPI 不知道如何处理它,我做了:
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 的手册侧重于如何做,而不是我为什么要这样做。