Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

collectives: clarify src buffer entry requirements #10

Merged
merged 2 commits into from
Aug 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions content/shmem_alltoall.tex
Original file line number Diff line number Diff line change
Expand Up @@ -100,12 +100,16 @@
If \VAR{team} compares equal to \LibConstRef{SHMEM\_TEAM\_INVALID} or is
otherwise invalid, the behavior is undefined.

Before any \ac{PE} calls a \FUNC{shmem\_alltoall} routine,
the following conditions must be ensured:
Before any \ac{PE} calls a \FUNC{shmem\_alltoall} routine, the following
conditions must be ensured, otherwise the behavior is undefined:
\begin{itemize}
\item The \VAR{dest} data object on all \acp{PE} in the team is
ready to accept the \FUNC{shmem\_alltoall} data.
\item The \dest{} array on all \acp{PE} in the team is ready to
accept the result of the operation.
\item The \source{} array at the local \ac{PE} is ready to be
read by any \ac{PE} in the team.
davidozog marked this conversation as resolved.
Show resolved Hide resolved
\end{itemize}
The application does not need to synchronize to ensure that the \source{}
array is ready across all \acp{PE} prior to calling this routine.

Upon return from a \FUNC{shmem\_alltoall} routine, the following is true for
the local PE:
Expand Down
15 changes: 9 additions & 6 deletions content/shmem_broadcast.tex
Original file line number Diff line number Diff line change
Expand Up @@ -85,13 +85,16 @@
the team.
\end{itemize}

Before any \ac{PE} calls a broadcast routine, the following
conditions must be ensured:
Before any \ac{PE} calls a broadcast routine, the following conditions
must be ensured, otherwise the behavior is undefined:
\begin{itemize}
\item The \dest{} array on all \acp{PE} participating in the broadcast
is ready to accept the broadcast data.
\end{itemize}
Otherwise, the behavior is undefined.
\item The \dest{} array on all \acp{PE} in the team is ready to
accept the result of the operation.
\item The \source{} array at the local root \ac{PE} is ready to be
read by any \ac{PE} in the team.
\end{itemize}
The application does not need to synchronize to ensure that the \source{}
array is ready across all \acp{PE} prior to calling this routine.

Upon return from a team-based broadcast routine, the following are true for the local
\ac{PE}:
Expand Down
11 changes: 11 additions & 0 deletions content/shmem_collect.tex
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,17 @@
If \VAR{team} compares equal to \LibConstRef{SHMEM\_TEAM\_INVALID} or is
otherwise invalid, the behavior is undefined.

Before any \ac{PE} calls a collect routine, the following conditions must
be ensured, otherwise the behavior is undefined:
\begin{itemize}
\item The \dest{} array on all \acp{PE} in the team is ready to
accept the result of the operation.
\item The \source{} array at the local \ac{PE} is ready to be read
by any \ac{PE} in the team.
\end{itemize}
The application does not need to synchronize to ensure that the \source{}
array is ready across all \acp{PE} prior to calling this routine.

\begin{DeprecateBlock}
\openshmem \FUNC{collect} and \FUNC{fcollect} routines perform a collective
operation to concatenate \VAR{nelems}
Expand Down
12 changes: 8 additions & 4 deletions content/shmem_reductions.tex
Original file line number Diff line number Diff line change
Expand Up @@ -295,12 +295,16 @@ \subsubsubsection{PROD}
If \VAR{team} compares equal to \LibConstRef{SHMEM\_TEAM\_INVALID} or is
otherwise invalid, the behavior is undefined.

Before any \ac{PE} calls a reduction routine, the following conditions must be ensured:
Before any \ac{PE} calls a reduction routine, the following conditions
must be ensured, otherwise the behavior is undefined:
\begin{itemize}
\item The \dest{} array on all \acp{PE} participating in the reduction
is ready to accept the results of the \OPR{reduction}.
\item The \dest{} array on all \acp{PE} in the team is ready to
accept the results of the operation.
\item The \source{} array at the local \ac{PE} is ready to be read by
any \ac{PE} in the team.
\end{itemize}
Otherwise, the behavior is undefined.
The application does not need to synchronize to ensure that the \source{}
array is ready across all \acp{PE} prior to calling this routine.

Upon return from a reduction routine, the following are true for the local
\ac{PE}:
Expand Down
13 changes: 10 additions & 3 deletions content/shmem_scan.tex
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,16 @@
\LibConstRef{SHMEM\_TEAM\_INVALID} or is otherwise invalid, the
behavior is undefined.

Before any \ac{PE} calls a scan routine, the \dest{} array on all
\acp{PE} participating in the operation must be ready to accept the
results of the operation. Otherwise, the behavior is undefined.
Before any \ac{PE} calls a scan routine, the following conditions must be
ensured, otherwise the behavior is undefined:
\begin{itemize}
\item The \dest{} array on all \acp{PE} in the team is ready to accept
the result of the operation.
\item The \source{} array at the local \ac{PE} is ready to be read by
any \ac{PE} in the team.
\end{itemize}
The application does not need to synchronize to ensure that the \source{}
array is ready across all \acp{PE} prior to calling this routine.

Upon return from a scan routine, the following are true for the
local \ac{PE}: the \dest{} array is updated, and the \source{} array
Expand Down