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 Sun Aug 24 14:44:02 CEST 2025.