SHMEM_QUIET(3) Open MPI SHMEM_QUIET(3) NAME shmem_quiet(3) - Waits for completion of all outstanding remote writes issued by a processing element (PE). SYNOPSIS C or C++: #include <mpp/shmem.h> void shmem_quiet(void); Fortran: CALL SHMEM_QUIET DESCRIPTION shmem_quiet ensures ordering of put (remote write) operations. All put operations issued to any processing element (PE) prior to the call to shmem_quiet are guaranteed to be visible to all other PEs no later than any subsequent memory load or store, remote put or get, or synchroniza- tion operations that follow the call to shmem_quiet. NOTES shmem_quiet is most useful as a way of ensuring ordering of delivery of several put operations. For example, you might use shmem_quiet to await delivery of a block of data before issuing another put, which sets a completion flag on another PE. shmem_quiet is not usually needed if shmem_barrier_all(3) or shmem_bar- rier(3) are called. The barrier routines all wait for the completion of outstanding remote writes (puts). EXAMPLES PROGRAM COMPFLAG INCLUDE "mpp/shmem.fh" INTEGER FLAG_VAR, ARRAY(100), RECEIVER, SENDER COMMON/FLAG/FLAG_VAR COMMON/DATA/ARRAY INTRINSIC MY_PE FLAG_VAR = 0 CALL SHMEM_BARRIER_ALL ! wait for FLAG_VAR to be initialized SENDER = 0 ! PE 0 sends the data RECEIVER = 1 ! PE 1 receives the data IF (MY_PE() .EQ. 0) THEN ARRAY = 33 CALL SHMEM_PUT(ARRAY, ARRAY, 100, RECEIVER) ! start sending data CALL SHMEM_QUIET ! wait for delivery CALL SHMEM_PUT(FLAG_VAR, 1, 1, RECEIVER) ! send completion flag ELSE IF (MY_PE() .EQ. RECEIVER) THEN CALL SHMEM_UDCFLUSH CALL SHMEM_WAIT(FLAG_VAR, 0) PRINT *,ARRAY ! ARRAY has been delivered ENDIF END SEE ALSO intro_shmem(3), shmem_barrier(3), shmem_barrier_all(3), shmem_fence(3), shmem_put(3), shmem_wait(3) 4.1.2 Nov 24, 2021 SHMEM_QUIET(3)
Generated by dwww version 1.14 on Fri Jan 24 06:02:35 CET 2025.