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 |