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)