SHMEM_QUIET(3)

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 synchronization 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 <#shmem-barrier-all>(3) or
shmem_barrier <#shmem-barrier>(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 <#shmem-barrier>(3) shmem_barrier_all <#shmem-barrier-all>(3) shmem_fence(3) shmem_put(3) shmem_wait(3)

Copyright
2003-2026, The Open MPI Community