18.2.50. shmem_finalize
shmem_finalize - 一个集体操作,用于释放OpenSHMEM库所使用的资源。该操作仅终止程序的OpenSHMEM部分,而非整个程序。
18.2.50.1. 概述
C或C++:
#include <mpp/shmem.h>
void shmem_finalize(void)
Fortran语言:
include 'mpp/shmem.fh'
CALL SHMEM_FINALIZE
18.2.50.2. 描述
shmem_finalize 是一个集体操作,用于结束之前由 shmem_init 初始化的程序中的 OpenSHMEM 部分,并释放 OpenSHMEM 库所使用的资源。该集体操作要求所有处理单元(PE)都参与调用。shmem_finalize 中包含一个隐式的全局屏障,以确保所有待处理的通信都已完成,并且在所有PE都进入 shmem_finalize 之前不会释放任何资源。shmem_finalize 必须是程序中 OpenSHMEM 部分遇到的最后一个 OpenSHMEM 库调用。调用 shmem_finalize 将释放由对应的 shmem_init 调用初始化的所有资源。在 shmem_finalize 调用返回后,代表PE的所有进程和线程仍然存在,但它们将不再能够访问任何已释放的资源。
另请参阅
intro_shmem(3) shmem_my_pe(3) shmem_init(3)