.\" Man page generated from reStructuredText. . .TH "SHMEM_QUIET" "3" "Jul 22, 2024" "" "Open MPI" . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp \fI\%shmem_quiet\fP(3) \- Waits for completion of all outstanding remote writes issued by a processing element (PE). .SH SYNOPSIS .sp C or C++: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C #include void shmem_quiet(void) .ft P .fi .UNINDENT .UNINDENT .sp Fortran: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C CALL SHMEM_QUIET .ft P .fi .UNINDENT .UNINDENT .SH DESCRIPTION .sp \fI\%shmem_quiet\fP ensures ordering of put (remote write) operations. All put operations issued to any processing element (PE) prior to the call to \fI\%shmem_quiet\fP 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 \fI\%shmem_quiet\fP\&. .SH NOTES .nf \fI\%shmem_quiet\fP is most useful as a way of ensuring ordering of delivery of several put operations. For example, you might use \fI\%shmem_quiet\fP to await delivery of a block of data before issuing another put, which sets a completion flag on another PE. \fI\%shmem_quiet\fP is not usually needed if \fI\%shmem_barrier_all\fP(3) or \fI\%shmem_barrier\fP(3) are called. The barrier routines all wait for the completion of outstanding remote writes (puts). .fi .sp .SH EXAMPLES .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C 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 .ft P .fi .UNINDENT .UNINDENT .sp \fBSEE ALSO:\fP .INDENT 0.0 .INDENT 3.5 \fIintro_shmem\fP(3) \fI\%shmem_barrier\fP(3) \fI\%shmem_barrier_all\fP(3) \fIshmem_fence\fP(3) \fIshmem_put\fP(3) \fIshmem_wait\fP(3) .UNINDENT .UNINDENT .SH COPYRIGHT 2003-2024, The Open MPI Community .\" Generated by docutils manpage writer. .