LAPI_Nopoll_wait 子例程

用途

等待计数器更新而不轮询。

可用性库 (liblapi_r.a)

C 语法

#include <lapi.h>
 
void LAPI_Nopoll_wait(hndl, cntr_ptr, val, cur_cntr_val)
lapi_handle_t  hndl;
lapi_cntr_t   *cntr_ptr;
int            val;
int           *cur_cntr_val;
 

FORTRAN 语法

include 'lapif.h'
 
int LAPI_NOPOLL_WAIT(hndl, cntr, val, cur_cntr_val, ierror)
INTEGER hndl
TYPE (LAPI_CNTR_T) :: cntr
INTEGER val
INTEGER cur_cntr_val
INTEGER ierror

描述

Type of call: 恢复 (分块)

此子例程等待计数器更新而不轮询 (即,不显式调用 LAPI 的内部通信分派器)。 此调用可能或可能不检查通过 LAPI 上下文 hndl到达的消息。 cur_cntr_val 变量设置为当前计数器值。 尽管它具有比 LAPI_Waitcntr更高的等待时间,但 LAPI_Nopoll_wait 会释放处理器以用于其他用途。

注: 要使用此子例程,必须将 lapi_info_t 结构中的 lib_vers 字段设置为 L2_LIBLAST_LIB

参数

INPUT
hndl
指定 LAPI 句柄。
指定计数器在返回之前需要达到的相对计数器值 (从 1开始)。
cur_cntr_val
指定当前计数器的整数值。 此参数的值可以是 NULL (在 C 中) 或 LAPI_ADDR_NULL (在 FORTRAN 中)。
输入/输出
cntr_ptr
指向 C 中的 lapi_cntr_t 结构。
cntr
是 FORTRAN 中的 lapi_cntr_t 结构。
输出
ierror
指定 FORTRAN 返回码。 这始终是最后一个参数。

返回值

成功 (LAPI_SUCCESS)
指示函数调用已成功完成。
LAPI_ERR_CNTR_NULL
指示 cntr_ptr 指针为 NULL (在 C 中) 或 cntr 的值为 LAPI_ADDR_NULL (在 FORTRAN 中)。
LAPI_ERR_CNTR_VAL
指示传入的 val 小于或等于 0
LAPI_ERR_HNDL_INVALID
指示传入的 hndl 无效 (未初始化或处于终止状态)。
LAPI_ERR_MULTIPLE_WAITERS
指示多个线程正在等待计数器。
已清除的 LAPI_ERR_TGT_PURGED
指示由于调用了 LAPI_Purge_totask() 而提前返回了子例程。

限制

建议在运行 Parallel Environment (PE) 的系统上使用此子例程。

位置

/usr/lib/liblapi_r.a