MPI_Win_allocate 函数

创建分配内存的 MPI Window 对象。

语法

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

parameters

  • 大小
    内存窗口的大小(以字节为单位)。

  • disp_unit
    位移的本地单位大小(以字节为单位)。

  • info
    Info 参数。

  • comm
    沟通。

  • baseptr [out]
    内存窗口的初始地址。

  • win [out]
    调用返回的 Window 对象。

返回值

返回成功 时MPI_SUCCESS 。 否则,返回值为错误代码。

在 Fortran 中,返回值存储在 IERROR 参数中。

Fortran

    MPI_WIN_ALLOCATE(SIZE, DISP_UNIT, INFO, COMM, BASEPTR, WIN, IERROR)
        <type> BASEPTR(*)
        INTEGER(KIND=MPI_ADDRESS_KIND) SIZE
        INTEGER DISP_UNIT, INFO, COMM, WIN, IERROR

注解

这是由 通信组中的所有进程执行的集体调用。在每个进程中,它分配至少 为字节大小的 内存,返回指向它的指针,并返回一个窗口对象,comm 中的所有进程都可以使用该对象来执行 RMA 操作。 返回的内存由每个进程的本地 字节大小 组成,从地址 baseptr 开始,并与窗口相关联,就好像调用用户 MPI_Win_create 现有内存一样。 每个进程的大小参数可能不同,大小 = 0 有效;但是,库可能会分配并公开更多的内存,以便创建快速的全局对称分配。

要求

产品

HPC Pack 2012 MS-MPI 可再发行程序包、HPC Pack 2008 R2 MS-MPI 可再发行程序包、HPC Pack 2008 MS-MPI 可再发行程序包或 HPC Pack 2008 客户端实用工具

标头

Mpi.h;Mpif.h

Msmpi.lib

DLL

Msmpi.dll

另请参阅

MPI One-Sided 通信函数