diff --git a/content/backmatter.tex b/content/backmatter.tex index c10b1baf..292acf9e 100644 --- a/content/backmatter.tex +++ b/content/backmatter.tex @@ -674,6 +674,9 @@ \section{Version 1.6} operations for team-based reductions. \ChangelogRef{teamreducetypes}% % +\item Added fine grained completion routine: \FUNC{shmem\_pe\_quiet}. +\ChangelogRef{subsec:shmem_pe_quiet}% +% \item Split the listings for the \FUNC{shmem\_\{malloc, free, realloc, align\}} functions from a single entry in \openshmem[1.5] into separate entries. \ChangelogRef{subsec:shmem_malloc, subsec:shmem_free, subsec:shmem_realloc, diff --git a/content/shmem_pe_quiet.tex b/content/shmem_pe_quiet.tex new file mode 100644 index 00000000..72ff2963 --- /dev/null +++ b/content/shmem_pe_quiet.tex @@ -0,0 +1,47 @@ +\apisummary{ + Waits for completion of all outstanding memory store, blocking + \PUT{}, \ac{AMO}, and \emph{put-with-signal}, as well as + nonblocking \PUT{}, \emph{put-with-signal}, and \GET{} routines + to symmetric data objects issued by the calling \ac{PE} at the target + \acp{PE}. +} + +\begin{apidefinition} + +\begin{Csynopsis} +void @\FuncDecl{shmem\_pe\_quiet}@(const int *target_pes, size_t npes); +void @\FuncDecl{shmem\_ctx\_pe\_quiet}@(shmem_ctx_t ctx, const int *target_pes, size_t npes); +\end{Csynopsis} + +\begin{apiarguments} + \apiargument{IN}{ctx}{A context handle specifying the context on which to perform the operation. + When this argument is not provided, the operation is performed on + the default context.} + \apiargument{IN}{target\_pes}{Address of target \ac{PE} array where the + operations need to be completed} + \apiargument{IN}{npes}{The number of \acp{PE} in the target \ac{PE} array} + +\end{apiarguments} + +\apidescription{ + The \FUNC{shmem\_pe\_quiet} ensures completion of memory store, blocking + \PUT{}, \ac{AMO}, and \emph{put-with-signal}, as well as nonblocking + \PUT{}, \emph{put-with-signal}, and \GET{} routines on the symmetric data + objects issued by the calling \ac{PE} to the target \acp{PE} and on the + given context. If \VAR{npes} is set to 0, the \VAR{target\_pes} is ignored + and the routine returns immediately. + + The completion and visibility semantics of these operations are the same as the + \FUNC{shmem\_quiet} routine. However, it applies only to the target + \acp{PE}, i.e., the operations to the target \acp{PE} are guaranteed to be + complete and visible to all \acp{PE} when \FUNC{shmem\_pe\_quiet} returns. +} +\apireturnvalues{ + None. +} + +\apinotes{ + On certain platforms, when \FUNC{shmem\_pe\_quiet} is invoked on a set of + \acp{PE}, the performance might be equivalent to \FUNC{shmem\_quiet}. +} +\end{apidefinition} diff --git a/main_spec.tex b/main_spec.tex index 13e1917f..f657471f 100644 --- a/main_spec.tex +++ b/main_spec.tex @@ -479,6 +479,9 @@ \subsubsection{\textbf{SHMEM\_FENCE}}\label{subsec:shmem_fence} \subsubsection{\textbf{SHMEM\_QUIET}}\label{subsec:shmem_quiet} \input{content/shmem_quiet.tex} +\subsubsection{\textbf{SHMEM\_PE\_QUIET}}\label{subsec:shmem_pe_quiet} +\input{content/shmem_pe_quiet.tex} + \subsubsection{Synchronization and Communication Ordering in OpenSHMEM} \input{content/synchronization_model.tex}