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

OpenSHMEM 1.6rc2 Minor Changes #546

Closed
wants to merge 2 commits into from
Closed
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
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ jobs:
- name: Rename PDF
run: mv main_spec.pdf openshmem-draft-${{ github.event.pull_request.head.sha }}.pdf
- name: Upload PDF artifact
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: openshmem-draft-${{ github.event.pull_request.head.sha }}
path: openshmem-draft-${{ github.event.pull_request.head.sha }}.pdf
7 changes: 0 additions & 7 deletions content/atomics_intro.tex
Original file line number Diff line number Diff line change
@@ -130,10 +130,3 @@
\label{bitamotypes}
\end{center}
\end{table}
]






22 changes: 11 additions & 11 deletions content/backmatter.tex
Original file line number Diff line number Diff line change
@@ -50,7 +50,7 @@ \section*{Incorporating OpenSHMEM into Programs}\label{sec:writing_programs}

The \KEYWORD{static} keyword makes the \VAR{dest} array symmetric on all \acp{PE}.
Each \ac{PE} is able to transfer data to a remote \dest{} array by simply
specifying to an OpenSHMEM routine such as \hyperref[subsec:shmem_put]{\FUNC{shmem\_put}}
specifying to an \openshmem routine such as \hyperref[subsec:shmem_put]{\FUNC{shmem\_put}}
the local address of the symmetric data object that will receive the data.
This local address resolution aids programmability because the address of the
\dest{} need not be exchanged with the active side (\ac{PE} \CONST{0}) prior to
@@ -151,8 +151,8 @@ \chapter{Undefined Behavior in OpenSHMEM}\label{sec:undefined}
\tabularnewline
\hline
Use of non-symmetric variables & Some routines require remotely accessible
variables to perform their function. For example, an \openshmem libray may detect a \PUT{} to a non-symmetric variable
and choose to abort the program.
variables to perform their function. For example, an \openshmem library may detect a \PUT{} to a non-symmetric variable
and choose to abort the program.
However, another implementation may choose to continue execution with or without a warning.
\tabularnewline
\hline
@@ -844,11 +844,11 @@ \section{Version 1.5}
\ChangelogRef{p2psynctypes, dep:p2p_sync_types}%
%
\item Clarified that point-to-point synchronization routines preserve the
atomicity of OpenSHMEM \acp{AMO}.
atomicity of \openshmem \acp{AMO}.
\ChangelogRef{subsec:amo_guarantees}%
%
\item Clarified that symmetric variables used as \VAR{ivar} arguments to
point-to-point synchronization routines must be updated using OpenSHMEM
point-to-point synchronization routines must be updated using \openshmem
\acp{AMO}.
\ChangelogRef{subsec:p2p_intro}%
%
@@ -1182,7 +1182,7 @@ \section{Version 1.1}
extensions,
clarifications to completion semantics and \ac{API} descriptions in agreement with
the \ac{SGI} SHMEM specification,
and general readabilty and usability improvements to the document structure.
and general readability and usability improvements to the document structure.

The following list describes the specific changes in \openshmem[1.1]:
\begin{enumerate}
@@ -1300,13 +1300,13 @@ \chapter{Errata}\label{sec:errata}

Errors or ambiguities in the \openshmem specification may be discovered after
publication.
Errata, or corrections, are included in the the sections below indicating the
version of the OpenSHMEM specification that required the correction or
Errata, or corrections, are included in the sections below indicating the
version of the \openshmem specification that required the correction or
clarification.
These corrections have been applied to all subsequent versions of the
specification and this section serves as a historical record of the changes
made to assist users and implementers with applying the necessary corrections.
Errata that result in a change to the specifciation are also included in
made to assist users and implementors with applying the necessary corrections.
Errata that result in a change to the specification are also included in
Annex~\ref{sec:changelog}.
For an implementation to comply with a particular version of \openshmem, it
must account for all errata associated with that version as indicated below.
@@ -1328,7 +1328,7 @@ \section{Version 1.5}
\FUNC{shmem\_test\_all\_vector} routines return 1 when the test set is empty
(\ref{changelog:v1.6}.\ref{changelog:test_all}).
\item Clarified that \FUNC{shmem\_team\_split\_strided} and
\FUNC{shmem\_team\_split\_2d} return nonzero when the parent team is
\FUNC{shmem\_team\_split\_2d} return a nonzero value when the parent team is
\LibConstRef{SHMEM\_TEAM\_INVALID}
(\ref{changelog:v1.6}.\ref{changelog:split_strided_2d}).
\item Corrected the \VAR{level} argument's recommended value in API notes for
4 changes: 2 additions & 2 deletions content/context_intro.tex
Original file line number Diff line number Diff line change
@@ -41,12 +41,12 @@
explicitly or implicitly, are performed.
All point-to-point routines that operate on this context will do so with
respect to the team-relative \ac{PE} numbering of the associated team.
If the PE number passed to such a routine is invalid, being negative or greater
If the \ac{PE} number passed to such a routine is invalid, being negative or greater
than or equal to the size of the \openshmem team, then the behavior is undefined.

By default, contexts are {\em shareable} and, when it is allowed by the
threading model provided by the \openshmem library, they can be used concurrently by
multiple threads within the PE where they were created.
multiple threads within the \ac{PE} where they were created.
%
The following options can be supplied during context creation to restrict
this usage model and enable performance optimizations. When using a given
7 changes: 4 additions & 3 deletions content/coverpage.tex
Original file line number Diff line number Diff line change
@@ -29,7 +29,7 @@ \section*{Development by}
\begin{itemize}
\item For a current list of contributors and collaborators please see\\
\url{http://www.openshmem.org/site/Contributors/}
\item For a current list of OpenSHMEM implementations and tools, please see\\
\item For a current list of \openshmem implementations and tools, please see\\
\url{http://openshmem.org/site/Links#impl/}

\end{itemize}
@@ -72,6 +72,7 @@ \subsection*{\openshmem 1.6}
\item Robert Kierski, \ac{HPE}
\item Bryant Lam, \ac{DoD}
\item Akhil Langer, NVIDIA
\item Jens Manser, \ac{DoD}
\item Tiffany M. Mintz, \ac{ORNL}
\item Bryan Morgan, Intel
\item William Okuno\footnotemark[2], \ac{HPE}
@@ -158,8 +159,8 @@ \subsection*{\openshmem 1.5}

\subsection*{\openshmem 1.4}

OpenSHMEM 1.4 is dedicated to the memory of David Charles Knaak. David was a
highly involved colleague and contributor to the entire OpenSHMEM project. He
\openshmem 1.4 is dedicated to the memory of David Charles Knaak. David was a
highly involved colleague and contributor to the entire \openshmem project. He
will be missed.

\begin{multicols}{2}
4 changes: 2 additions & 2 deletions content/interoperability.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
\chapter{Interoperability with Other Programming Models}\label{sec:interoperability}

OpenSHMEM routines may be used in conjunction with the routines of other
\openshmem routines may be used in conjunction with the routines of other
communication libraries or parallel languages in the same program. This section
describes the interoperability with other programming models, including
clarification of undefined behaviors caused by mixed use of different models,
@@ -35,7 +35,7 @@ \subsection{Initialization}
call to \FUNC{MPI\_Finalize}.

\parimpnotes{
Portable implementations of OpenSHMEM and \ac{MPI} must ensure that the initialization
Portable implementations of \openshmem and \ac{MPI} must ensure that the initialization
calls can be made in an arbitrary order within a program; the same rule also
applies to the finalization calls. A software runtime that utilizes a shared
communication resource for \openshmem and \ac{MPI} communication may maintain an
4 changes: 2 additions & 2 deletions content/library_handles.tex
Original file line number Diff line number Diff line change
@@ -24,9 +24,9 @@
\LibHandleDecl{SHMEM\_TEAM\_SHARED} &
Handle of type \CTYPE{shmem\_team\_t} that corresponds to a team of \acp{PE}
that share a memory domain. \LibHandleRef{SHMEM\_TEAM\_SHARED} refers to
the team of all PEs that would mutually return a non-null address from a
the team of all \acp{PE} that would mutually return a non-null address from a
call to \FUNC{shmem\_ptr} for all symmetric heap objects. That is,
\FUNC{shmem\_ptr} must return a non-null pointer to the local PE for all
\FUNC{shmem\_ptr} must return a non-null pointer to the local \ac{PE} for all
symmetric heap objects on all target \acp{PE} in the team. This means that
symmetric heap objects on each \ac{PE} are
directly load/store accessible by all \acp{PE} in the team.
2 changes: 1 addition & 1 deletion content/p2p_sync_intro.tex
Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@
integer types defined in \HEADER{stdint.h} by \Cstd[99]~\S7.18.1.1 and
\Cstd[11]~\S7.20.1.1. When the \Cstd translation environment
does not provide exact-width integer types with \HEADER{stdint.h}, an
\openshmem implemementation is not required to provide support for these types.
\openshmem implementation is not required to provide support for these types.
The \FUNC{shmem\_test\_any} and \FUNC{shmem\_wait\_until\_any} routines
require the \CONST{SIZE\_MAX} macro defined in \HEADER{stdint.h} by
\Cstd[99]~\S7.18.3 and \Cstd[11]~\S7.20.3.
2 changes: 1 addition & 1 deletion content/profiling_interface.tex
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@
unreasonable to expect that the authors and developers of profiling
tools for \openshmem will have access to the source code that
implements \openshmem on any particular machine. It is, therefore,
necessary to provide a mechanism by which the implementers of such
necessary to provide a mechanism by which the implementors of such
tools can collect whatever performance information they wish
\emph{without} access to the underlying implementation.

8 changes: 4 additions & 4 deletions content/shmem_alltoall.tex
Original file line number Diff line number Diff line change
@@ -110,10 +110,10 @@
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:
the local \ac{PE}:
\begin{itemize}
\item Its \VAR{dest} symmetric data object is completely updated and the
data has been copied out of the source data object.
data has been copied out of the \VAR{source} data object.
\end{itemize}

\begin{DeprecateBlock}
@@ -145,10 +145,10 @@
Otherwise, the behavior is undefined.

Upon return from a \FUNC{shmem\_alltoall} routine, the following is true for
the local PE:
the local \ac{PE}:
\begin{itemize}
\item Its \VAR{dest} symmetric data object is completely updated and the
data has been copied out of the source data object.
data has been copied out of the \VAR{source} data object.
\item For active-set-based routines,
the values in the \VAR{pSync} array are restored to the original values.
\end{itemize}
2 changes: 1 addition & 1 deletion content/shmem_atomic_fetch_and.tex
Original file line number Diff line number Diff line change
@@ -38,7 +38,7 @@
}

\apireturnvalues{
The value pointed to by \VAR{dest} on PE \VAR{pe} immediately before the
The value pointed to by \VAR{dest} on \ac{PE} \VAR{pe} immediately before the
operation is performed.
}

2 changes: 1 addition & 1 deletion content/shmem_atomic_fetch_or.tex
Original file line number Diff line number Diff line change
@@ -38,7 +38,7 @@
}

\apireturnvalues{
The value pointed to by \VAR{dest} on PE \VAR{pe} immediately before the
The value pointed to by \VAR{dest} on \ac{PE} \VAR{pe} immediately before the
operation is performed.
}

4 changes: 2 additions & 2 deletions content/shmem_atomic_fetch_or_nbi.tex
Original file line number Diff line number Diff line change
@@ -37,11 +37,11 @@
\apidescription{
The nonblocking \FUNC{shmem\_atomic\_fetch\_or\_nbi} routines perform an
atomic fetching bitwise OR on the remotely accessible data object pointed
by \VAR{dest} at PE \VAR{pe} with the operand \VAR{value}. This routine
by \VAR{dest} at \ac{PE} \VAR{pe} with the operand \VAR{value}. This routine
returns after initiating the operation. The operation is considered complete
after a subsequent call to \FUNC{shmem\_quiet}. At the completion of
\FUNC{shmem\_quiet}, these routines have performed a fetching bitwise OR on
\VAR{dest} at PE \VAR{pe} with the operand \VAR{value} and fetched the prior
\VAR{dest} at \ac{PE} \VAR{pe} with the operand \VAR{value} and fetched the prior
contents of \VAR{dest} into the \VAR{fetch} local data object.
}

2 changes: 1 addition & 1 deletion content/shmem_atomic_fetch_xor.tex
Original file line number Diff line number Diff line change
@@ -39,7 +39,7 @@
}

\apireturnvalues{
The value pointed to by \VAR{dest} on PE \VAR{pe} immediately before the
The value pointed to by \VAR{dest} on \ac{PE} \VAR{pe} immediately before the
operation is performed.
}

4 changes: 2 additions & 2 deletions content/shmem_atomic_fetch_xor_nbi.tex
Original file line number Diff line number Diff line change
@@ -37,11 +37,11 @@
\apidescription{
The nonblocking \FUNC{shmem\_atomic\_fetch\_xor\_nbi} routines perform an
atomic fetching bitwise XOR on the remotely accessible data object pointed
by \VAR{dest} at PE \VAR{pe} with the operand \VAR{value}. This routine
by \VAR{dest} at \ac{PE} \VAR{pe} with the operand \VAR{value}. This routine
returns after initiating the operation. The operation is considered complete
after a subsequent call to \FUNC{shmem\_quiet}. At the completion of
\FUNC{shmem\_quiet}, these routines have performed a fetching bitwise XOR on
\VAR{dest} at PE \VAR{pe} with the operand \VAR{value} and fetched the prior
\VAR{dest} at \ac{PE} \VAR{pe} with the operand \VAR{value} and fetched the prior
contents of \VAR{dest} into the \VAR{fetch} local data object.
}

6 changes: 3 additions & 3 deletions content/shmem_broadcast.tex
Original file line number Diff line number Diff line change
@@ -45,7 +45,7 @@
respectively.
}
\apiargument{IN}{PE\_root}{Zero-based ordinal of the \ac{PE}, with respect to
the calling PEs, from which the data is copied.}
the calling \acp{PE}, from which the data is copied.}

\begin{DeprecateBlock}

@@ -114,7 +114,7 @@

For active-set-based broadcasts:
\begin{itemize}
\item The \VAR{dest} object is updated on all PEs other than the root PE.
\item The \VAR{dest} object is updated on all \acp{PE} other than the root \ac{PE}.
\item All \acp{PE} in the active set defined by the
\VAR{PE\_start}, \VAR{logPE\_stride}, \VAR{PE\_size} triplet
must participate in the operation.
@@ -144,7 +144,7 @@
Upon return from an active-based broadcast routine, the following are true for the local
\ac{PE}:
\begin{itemize}
\item If the current PE is not the root PE, the \dest{} data object is updated.
\item If the current \ac{PE} is not the root \ac{PE}, the \dest{} data object is updated.
\item The \source{} data object may be safely reused.
\item The values in the \VAR{pSync} array are restored to the
original values.
6 changes: 3 additions & 3 deletions content/shmem_collect.tex
Original file line number Diff line number Diff line change
@@ -66,7 +66,7 @@
\openshmem \FUNC{collect} and \FUNC{fcollect} routines perform a collective
operation to concatenate \VAR{nelems}
data items from the \source{} array into the
\dest{} array, over an \openshmem team in processor number order.
\dest{} array, over an \openshmem team in \ac{PE} number order.
The resultant \dest{} array contains the contribution from
\acp{PE} as follows:

@@ -104,7 +104,7 @@
operation to concatenate \VAR{nelems}
data items from the \source{} array into the
\dest{} array, over an \openshmem active set
in processor number order. The resultant \dest{} array contains the contribution from
in \ac{PE} number order. The resultant \dest{} array contains the contribution from
\acp{PE} as follows:
\begin{itemize}
\item For an active set, the data from \ac{PE} \VAR{PE\_start} is first, then the
@@ -151,7 +151,7 @@
with no performance degradation when \VAR{nelems} is a non-power-of-two value.
\end{DeprecateBlock}
The collective routines that operate on teams containing a
non-power-of-two of PEs do so with some performance degradation. They operate
non-power-of-two of \acp{PE} do so with some performance degradation. They operate
with no performance degradation when \VAR{nelems} is a non-power-of-two value.

}
2 changes: 1 addition & 1 deletion content/shmem_ctx_session_config_t.tex
Original file line number Diff line number Diff line change
@@ -69,7 +69,7 @@
routines within a session whenever possible, because the library must
impose strict completions to comply with ordering semantics.
However, hints provided by \FUNC{shmem\_ctx\_session\_config\_t} do not imply
the occurence of any completion or memory ordering operations.
the occurrence of any completion or memory ordering operations.
The requirements on buffers provided to \openshmem routines that are
\textit{in-use} (as described in Section
\ref{subsec:invoking_openshmem_operations}) apply regardless of any
2 changes: 1 addition & 1 deletion content/shmem_ctx_session_start.tex
Original file line number Diff line number Diff line change
@@ -106,7 +106,7 @@
\FUNC{shmem\_ctx\_session\_start} is non-collective, so there is no implied
synchronization.
Blocking puts must be sufficiently small to benefit from batching, and the
exact threshold for this benefit depends on the \openshmem implemenation
exact threshold for this benefit depends on the \openshmem implementation
and/or the application.
}

4 changes: 2 additions & 2 deletions content/shmem_fence.tex
Original file line number Diff line number Diff line change
@@ -39,8 +39,8 @@
\FUNC{shmem\_fence} only provides per-\ac{PE} ordering guarantees and does not
guarantee completion of delivery.
\FUNC{shmem\_fence} also does not have an effect on the ordering between memory
accesses issued by the target PE. \FUNC{shmem\_wait\_until}, \FUNC{shmem\_test},
\FUNC{shmem\_barrier}, \FUNC{shmem\_barrier\_all} routines can be called by the target PE to guarantee
accesses issued by the target \ac{PE}. \FUNC{shmem\_wait\_until}, \FUNC{shmem\_test},
\FUNC{shmem\_barrier}, \FUNC{shmem\_barrier\_all} routines can be called by the target \ac{PE} to guarantee
ordering of its memory accesses.
There is a subtle difference between
\FUNC{shmem\_fence} and \FUNC{shmem\_quiet}, in that, \FUNC{shmem\_quiet}
1 change: 0 additions & 1 deletion content/shmem_g.tex
Original file line number Diff line number Diff line change
@@ -22,7 +22,6 @@
the default context.}
\apiargument{IN}{source}{Symmetric address of the source data object.
The type of \source{} should match that implied in the SYNOPSIS section.}
\apiargument{IN}{pe}{The number of the remote \ac{PE} on which \VAR{source} resides.}
\apiargument{IN}{pe}{\ac{PE} number of the remote \ac{PE} on which \VAR{source} resides
relative to the team associated with the given \VAR{ctx} when provided, or the
default context otherwise.}
8 changes: 3 additions & 5 deletions content/shmem_init.tex
Original file line number Diff line number Diff line change
@@ -16,9 +16,9 @@
\apidescription{
\FUNC{shmem\_init} allocates and initializes resources used by the \openshmem
library. It is a collective operation that all \acp{PE} must call before any
other \openshmem routine may be called, except \FUNC{shmem\_query\_initialized}
which checks the current initialized state of the library. In the
\openshmem program which it initialized, each call to \FUNC{shmem\_init} must
other \openshmem routine may be called, except \FUNC{shmem\_query\_initialized}
which checks the current initialized state of the library. In the
\openshmem program which it initialized, each call to \FUNC{shmem\_init} must
be matched with a corresponding call to \FUNC{shmem\_finalize}.

The \FUNC{shmem\_init} and \FUNC{shmem\_init\_thread} initialization
@@ -42,8 +42,6 @@
users are encouraged to use \FUNC{shmem\_init}. An important difference between
\FUNC{shmem\_init} and \FUNC{start\_pes} is that every call to
\FUNC{shmem\_init} within a program must be matched with a call to \FUNC{shmem\_finalize}.
In the case of \FUNC{start\_pes}, any subsequent calls to \FUNC{start\_pes} after the
first one results in a no-op.
}
\end{DeprecateBlock}

4 changes: 2 additions & 2 deletions content/shmem_quiet.tex
Original file line number Diff line number Diff line change
@@ -63,9 +63,9 @@
operations before a thread calls \FUNC{shmem\_quiet}.

\FUNC{shmem\_quiet} does not have an effect on the ordering between memory
accesses issued by the target PE. \FUNC{shmem\_wait\_until},
accesses issued by the target \ac{PE}. \FUNC{shmem\_wait\_until},
\FUNC{shmem\_test}, \FUNC{shmem\_barrier}, \FUNC{shmem\_barrier\_all} routines
can be called by the target PE to guarantee ordering of its memory accesses.
can be called by the target \ac{PE} to guarantee ordering of its memory accesses.
}

\begin{apiexamples}
Loading