---
name: "shmem_quiet"
section: "3"
platform: "linux"
package: "openmpi"
version: "5.0.11-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/shmem_quiet"
---

# shmem\_quiet(3)

[*shmem\_quiet*(3)](/shmem_quiet/3.md) - 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(3) or
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)](/intro_shmem/3.md) [*shmem\_barrier*(3)](/shmem_barrier/3.md) [*shmem\_barrier\_all*(3)](/shmem_barrier_all/3.md) [*shmem\_fence*(3)](/shmem_fence/3.md) *shmem\_put*(3) [*shmem\_wait*(3)](/shmem_wait/3.md)

## COPYRIGHT

2003-2026, The Open MPI Community
