Skip to content

Commit e6b3936

Browse files
committed
Merge remote-tracking branch 'kwaters4/backmatter-1.6v' into tmp
2 parents 6d86925 + 0b0fb84 commit e6b3936

File tree

2 files changed

+103
-34
lines changed

2 files changed

+103
-34
lines changed

content/backmatter.tex

Lines changed: 102 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,9 @@ \chapter{Undefined Behavior in OpenSHMEM}\label{sec:undefined}
151151
\tabularnewline
152152
\hline
153153
Use of non-symmetric variables & Some routines require remotely accessible
154-
variables to perform their function. For example, a \PUT{} to a non-symmetric variable may
155-
be trapped where possible and the library may abort the program. Another
156-
implementation may choose to continue execution with or without a warning.
154+
variables to perform their function. For example, an \openshmem libray may detect a \PUT{} to a non-symmetric variable
155+
and choose to abort the program.
156+
However, another implementation may choose to continue execution with or without a warning.
157157
\tabularnewline
158158
\hline
159159
Non-symmetric allocation of symmetric memory & The symmetric memory management routines are
@@ -648,12 +648,17 @@ \subsection{Table~\ref{p2psynctypes}: point-to-point synchronization types}
648648
\chapter{Changes to this Document}\label{sec:changelog}
649649

650650
\section{Version 1.6}
651+
\label{changelog:v1.6}
651652
Major changes in \openshmem[1.6] include the addition of the new
652653
\FUNC{shmem\_team\_ptr}, \FUNC{shmem\_ibget}, and \FUNC{shmem\_ibput}
653654
functions.
654655

655656
The following list describes the specific changes in \openshmem[1.6]:
656-
\begin{itemize}
657+
\begin{enumerate}
658+
%
659+
\item Added an inclusive (\FUNC{shmem\_sum\_inscan}) and exclusive
660+
(\FUNC{shmem\_sum\_exscan}) collective summation operation.
661+
\ChangelogRef{subsec:shmem_scan}
657662
%
658663
\item Added support for initialization and finalization routines to be called
659664
multiple times, and added an initialization status query API
@@ -668,23 +673,14 @@ \section{Version 1.6}
668673
update a remote flag without associated data transfer of a put-with-signal operation.
669674
\ChangelogRef{subsec:shmem_signal_add, subsec:shmem_signal_set}%
670675
%
671-
\item Clarified that \OPR{Fence} operations only guarantee ordering for
672-
operations that are performed on the same context.
673-
\ChangelogRef{subsec:shmem_fence}%
674-
%
675676
\item Added a team-based pointer query routine:
676677
\FUNC{shmem\_team\_ptr}.
677678
\ChangelogRef{subsec:shmem_team_ptr}%
678679
%
679-
\item Clarified that \FUNC{shmem\_team\_split\_strided} and
680-
\FUNC{shmem\_team\_split\_strided} return a nonzero value when the parent
681-
team compares equal to \LibConstRef{SHMEM\_TEAM\_INVALID}.
682-
\ChangelogRef{subsec:shmem_team_split_strided, subsec:shmem_team_split_2d}%
683-
%
684-
\item Removed \openshmem[1.5] Table 9, which was an incomplete duplicate of
685-
\openshmem[1.5] Table 10, and clarified the types, names, and supporting
686-
operations for team-based reductions.
687-
\ChangelogRef{teamreducetypes}%
680+
\item Clarified that the behavior of \FUNC{shmem\_team\_split\_strided} is
681+
undefined when the input \VAR{start}, \VAR{stride}, and \VAR{size} arguments
682+
imply a \textit{wrap-around} with respect to the parent team's \acp{PE}.
683+
\ChangelogRef{subsec:shmem_team_split_strided}%
688684
%
689685
\item Added the session routines, \FUNC{shmem\_ctx\_session\_start} and
690686
\FUNC{shmem\_ctx\_session\_stop}, which allow users to pass hints to the
@@ -703,11 +699,6 @@ \section{Version 1.6}
703699
the world team.
704700
\ChangelogRef{subsec:shmem_malloc, subsec:shmem_free, subsec:shmem_realloc,
705701
subsec:shmem_align, subsec:shmmallochint, subsec:shmem_calloc}%
706-
\item Corrected the level argument's recommended value in API notes for
707-
\FUNC{shmem\_pcontrol} to indicate that the value should be greater than
708-
2 to enable profiling with profile library defined effects and
709-
additional arguments.
710-
\ChangelogRef{subsec:shmem_pcontrol}
711702
%
712703
\item Clarified that \FUNC{shmem\_team\_get\_config} returns the current
713704
configuration values, which may differ from the values assigned at the
@@ -722,7 +713,44 @@ \section{Version 1.6}
722713
stride argument is 0 or negative.
723714
\ChangelogRef{subsec:shmem_team_split_strided}
724715
%
725-
\end{itemize}
716+
\item Clarified the requirements for the source buffer before entering the
717+
collective routines.
718+
\ChangelogRef{subsec:shmem_alltoall,subsec:shmem_broadcast,subsec:shmem_collect,subsec:shmem_reductions,subsec:shmem_scan}
719+
%
720+
\item Added a new Errata Section~\ref{sec:errata} that indicates errors or ambiguities in the
721+
\openshmem specification and the version that required correction or clarification.
722+
\ChangelogRef{sec:errata}
723+
%
724+
\item Removed \openshmem[1.5] Table 9, which was an incomplete duplicate of
725+
\openshmem[1.5] Table 10, and clarified the types, names, and supporting
726+
operations for team-based reductions. \label{changelog:reduction_table}
727+
\ChangelogRef{teamreducetypes}%
728+
%
729+
\item Clarified that \VAR{source} and \VAR{dest} arrays must be the same
730+
across \acp{PE} in \openshmem reductions \label{changelog:reduction_args}
731+
\ChangelogRef{subsec:shmem_reductions}
732+
%
733+
\item Clarified that \OPR{Fence} operations only guarantee ordering for
734+
operations that are performed on the same context. \label{changelog:fence_ctx}
735+
\ChangelogRef{subsec:shmem_fence}%
736+
%
737+
\item Clarified that \FUNC{shmem\_test\_all} and \FUNC{shmem\_test\_all\_vector}
738+
routines return 1 when the test set is empty. \label{changelog:test_all}
739+
\ChangelogRef{subsec:shmem_test_all,subsec:shmem_test_all_vector}%
740+
%
741+
\item Clarified that \FUNC{shmem\_team\_split\_strided} and
742+
\FUNC{shmem\_team\_split\_strided} return a nonzero value when the parent
743+
team compares equal to \LibConstRef{SHMEM\_TEAM\_INVALID}. \label{changelog:split_strided_2d}
744+
\ChangelogRef{subsec:shmem_team_split_strided, subsec:shmem_team_split_2d}%
745+
%
746+
\item Corrected the level argument's recommended value in API notes for
747+
\FUNC{shmem\_pcontrol} to indicate that the value should be greater than
748+
2 to enable profiling with profile library defined effects and
749+
additional arguments. \label{changelog:pcontrol}
750+
\ChangelogRef{subsec:shmem_pcontrol}
751+
%
752+
753+
\end{enumerate}
726754

727755
\section{Version 1.5}
728756
Major changes in \openshmem[1.5] include the addition of new team-based
@@ -732,7 +760,7 @@ \section{Version 1.5}
732760
interface, and the removal of the entire \Fortran \ac{API}.
733761

734762
The following list describes the specific changes in \openshmem[1.5]:
735-
\begin{itemize}
763+
\begin{enumerate}
736764
%
737765
\item Removed \FUNC{SHMEM\_CACHE}.
738766
\ChangelogRef{dep:shmem_cache}%
@@ -883,7 +911,7 @@ \section{Version 1.5}
883911
\item Clarified the atomicity guarantees of the \openshmem memory model.
884912
\ChangelogRef{subsec:amo_guarantees}%
885913
%
886-
\end{itemize}
914+
\end{enumerate}
887915

888916
\section{Version 1.4}
889917
Major changes in \openshmem[1.4] include
@@ -898,7 +926,7 @@ \section{Version 1.4}
898926
and \Cstd[11] type-generic interfaces for point-to-point synchronization.
899927

900928
The following list describes the specific changes in \openshmem[1.4]:
901-
\begin{itemize}
929+
\begin{enumerate}
902930
%
903931
\item New communication management \ac{API}, including \FUNC{shmem\_ctx\_create};
904932
\FUNC{shmem\_ctx\_destroy}; and additional \ac{RMA}, \ac{AMO}, and memory ordering
@@ -1018,7 +1046,7 @@ \section{Version 1.4}
10181046
\item Clarified that complex-typed reductions in C are optionally supported.
10191047
\ChangelogRef{subsec:shmem_reductions}%
10201048
%
1021-
\end{itemize}
1049+
\end{enumerate}
10221050

10231051

10241052

@@ -1031,7 +1059,7 @@ \section{Version 1.3}
10311059
and \Cstd[11] type-generic interfaces for \ac{RMA} and \ac{AMO} operations.
10321060

10331061
The following list describes the specific changes in \openshmem[1.3]:
1034-
\begin{itemize}
1062+
\begin{enumerate}
10351063
%
10361064
\item Clarified implementation of \acp{PE} as threads.
10371065
%
@@ -1072,7 +1100,7 @@ \section{Version 1.3}
10721100
\item Deprecation of \FUNC{SHMEM\_CACHE}.
10731101
\ChangelogRef{dep:shmem_cache}%
10741102
%
1075-
\end{itemize}
1103+
\end{enumerate}
10761104

10771105

10781106

@@ -1087,7 +1115,7 @@ \section{Version 1.2}
10871115
and clarifications to several \ac{API} descriptions.
10881116

10891117
The following list describes the specific changes in \openshmem[1.2]:
1090-
\begin{itemize}
1118+
\begin{enumerate}
10911119
%
10921120
\item Added specification of \VAR{pSync} initialization for all routines that use it.
10931121
%
@@ -1143,7 +1171,7 @@ \section{Version 1.2}
11431171
support across versions of the \openshmem Specification.
11441172
\ChangelogRef{sec:dep}%
11451173
%
1146-
\end{itemize}
1174+
\end{enumerate}
11471175

11481176

11491177

@@ -1157,7 +1185,7 @@ \section{Version 1.1}
11571185
and general readabilty and usability improvements to the document structure.
11581186

11591187
The following list describes the specific changes in \openshmem[1.1]:
1160-
\begin{itemize}
1188+
\begin{enumerate}
11611189
%
11621190
\item Clarifications of the completion semantics of memory synchronization
11631191
interfaces.
@@ -1266,6 +1294,47 @@ \section{Version 1.1}
12661294
\item Name changes for UV and ICE for \ac{SGI} systems.
12671295
\ChangelogRef{sec:openshmem_history}%
12681296
%
1269-
\end{itemize}
1297+
\end{enumerate}
1298+
1299+
\chapter{Errata}\label{sec:errata}
1300+
1301+
Errors or ambiguities in the \openshmem specification may be discovered after
1302+
publication.
1303+
Errata, or corrections, are included in the the sections below indicating the
1304+
version of the OpenSHMEM specification that required the correction or
1305+
clarification.
1306+
These corrections have been applied to all subsequent versions of the
1307+
specification and this section serves as a historical record of the changes
1308+
made to assist users and implementers with applying the necessary corrections.
1309+
Errata that result in a change to the specifciation are also included in
1310+
Annex~\ref{sec:changelog}.
1311+
For an implementation to comply with a particular version of \openshmem, it
1312+
must account for all errata associated with that version as indicated below.
1313+
1314+
\section{Version 1.5}
1315+
1316+
\begin{enumerate}
1317+
\item Removed \openshmem[1.5] Table 9, which was an incomplete duplicate of
1318+
\openshmem[1.5] Table 10, and clarified the types, names, and supporting
1319+
operations for team-based reductions
1320+
(\ref{changelog:v1.6}.\ref{changelog:reduction_table}).
1321+
\item Clarified that \VAR{source} and \VAR{dest} arrays must be the same
1322+
across \acp{PE} in \openshmem reductions
1323+
(\ref{changelog:v1.6}.\ref{changelog:reduction_args}).
1324+
\item Clarified that \OPR{Fence} operations only guarantee ordering for operations
1325+
that are performed on the same context
1326+
(\ref{changelog:v1.6}.\ref{changelog:fence_ctx}).
1327+
\item Clarified that \FUNC{shmem\_test\_all} and
1328+
\FUNC{shmem\_test\_all\_vector} routines return 1 when the test set is empty
1329+
(\ref{changelog:v1.6}.\ref{changelog:test_all}).
1330+
\item Clarified that \FUNC{shmem\_team\_split\_strided} and
1331+
\FUNC{shmem\_team\_split\_2d} return nonzero when the parent team is
1332+
\LibConstRef{SHMEM\_TEAM\_INVALID}
1333+
(\ref{changelog:v1.6}.\ref{changelog:split_strided_2d}).
1334+
\item Corrected the \VAR{level} argument's recommended value in API notes for
1335+
\FUNC{shmem\_pcontrol} to indicate that the value should be greater than 2 to enable
1336+
profiling with profile library defined effects and additional arguments
1337+
(\ref{changelog:v1.6}.\ref{changelog:pcontrol}).
1338+
\end{enumerate}
12701339

12711340
%end of setlength command that was started in frontmatter.tex

content/interoperability.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ \subsection{Mapping Process Identification Numbers}
119119
This feature, however, may be provided by only some of the \openshmem and \ac{MPI}
120120
implementations (e.g., if both environments share the same underlying process
121121
manager) and is not portably guaranteed. A portable program should always
122-
use the standard functions in each model, namely, \FUNC{shmem\_team\_my\_pe} in \openshmem
122+
use the standard functions in each model, namely, \FUNC{shmem\_team\_my\_pe} or \FUNC{shmem\_my\_pe} in \openshmem
123123
and \FUNC{MPI\_Comm\_rank} in \ac{MPI}, to query the process identification numbers
124124
in each communication environment and manage the mapping of identifiers in the
125125
program when necessary.

0 commit comments

Comments
 (0)