18.2.14. shmem_barrier_all

shmem_barrier_all - 挂起调用PE的执行,直到所有其他PE都对该特定的shmem_barrier_all()语句发起调用。

18.2.14.1. 概述

C或C++:

#include <mpp/shmem.h>

void shmem_barrier_all(void)

Fortran语言:

include 'mpp/shmem.h'

CALL SHMEM_BARRIER_ALL

18.2.14.2. 描述

shmem_barrier_all 例程在所有其他PE都到达执行路径的相同点并进入该例程之前不会返回。

在与其他处理单元(PE)同步之前,shmem_barrier_all确保完成所有先前发出的本地内存存储以及通过SHMEM函数(如shmem_put32(3))发出的远程内存更新。

18.2.14.3. 示例

setup_data()
{
  if (shmem_my_pe() == 0) {
    setup();
  }

  /* All PEs wait for PE 0 to complete setup().  */
  shmem_barrier_all();
}

另请参阅

shmem_barrier(3) shmem_init(3)