MPI窗口分配(MPI_Win_allocate)接口冗余

时间:2017-01-31 18:03:17

标签: c interface mpi

我正在研究MPI的界面(我认为是MPI-2)并且有一个我无法做到的功能,即MPI_Win_allocate

界面为https://www.mpich.org/static/docs/v3.2/www3/MPI_Win_allocate.html

int MPI_Win_allocate(MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, void *baseptr, MPI_Win *win)

该函数返回(创建)一个新窗口win并返回指向已分配内存baseptr的指针。但是,据我所知,baseptr对于win中已包含的信息而言是多余的。

这真的是多余的吗?有什么用呢?

换句话说,在所有情况下总是如此,

MPI_Win win;
void* baseptr;
MPI_Win_allocate(
    size, 1, MPI_INFO_NULL, impl_, 
    &baseptr,
    &win
);

void* baseptr2;
MPI_Win_get_attr(impl_, MPI_WIN_BASE, &baseptr2, &flag);

assert(baseptr2 == baseptr);  // <---

这是正确的用法吗?这个设计是否适合性能? (例如get_attr需要时间/沟通。)

0 个答案:

没有答案