MPI_Win_allocate_shared 函数

创建一个 MPI Window 对象,该对象分配内存,可以使用直接加载/存储指令从窗口组中的所有进程访问分配的内存。

语法

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

parameters

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

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

  • info
    信息参数。

  • comm
    内部通信器。

  • baseptr [out]
    本地分配的窗口段的地址。

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

返回值

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

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

Fortran

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

注解

这是由 comm 组中的所有进程执行的集体调用。在每个进程上,它 分配大小至少 为字节的内存,该内存在 comm 中的所有进程之间共享,并返回一个指向 baseptr 中本地分配的段的指针,该段可用于对调用进程进行加载/存储访问。 本地分配的内存可以是远程进程进行负载/存储访问的目标;可以使用函数 MPI_Win_shared_query查询其他进程的基指针。 该调用还返回一个窗口对象,comm 中的所有进程都可以使用该对象来执行 RMA 操作。 每个进程中的 size 参数可能不同,并且 size = 0 有效。 用户负责确保 communicator comm 表示一组进程,这些进程可以创建可由组中的所有进程访问的共享内存段。

要求

产品

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 通信函数