MPI_Win_lock 函数

在目标进程中开始 RMA 访问纪元。

语法

int MPIAPI MPI_Win_lock(
   int     lock_type,
   int     rank,
   int     assert,
   MPI_Win win
);

参数

  • lock_type
    指示 其他进程 是否可以同时访问目标窗口, (MPI_LOCK_SHARED) 或不 (MPI_LOCK_EXCLUSIVE) 。

  • rank
    锁定窗口的排名。

  • 断言
    用于优化此调用;零可用作默认值。

  • win
    Window 对象。

返回值

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

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

Fortran

    MPI_WIN_LOCK(LOCK_TYPE, RANK, ASSERT, WIN, IERROR)
        INTEGER LOCK_TYPE, RANK, ASSERT, WIN, IERROR

注解

此例程的名称具有误导性。 具体而言,此例程不需要阻止,除非目标进程是调用进程。

实现可能会限制使用 RMA 通信,该通信通过锁定调用同步到 MPI_Alloc_mem分配的内存中的窗口。 锁只能在此类内存中移植使用。

断言参数用于指示实现可用于优化MPI_Win_fence操作的围栏的特殊条件。 值零始终正确。 其他断言值可以一起 。 对 MPI_Win_fence 有效的断言包括:

  • MPI_MODE_NOCHECK - 当调用方持有窗口锁时,没有其他进程会保留或尝试获取冲突锁。 当通过其他方式实现相互排斥,但仍需要可能附加到锁和解锁调用的一致性操作时,这非常有用。

要求

产品

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