diff --git a/content/atomics_intro.tex b/content/atomics_intro.tex index d803887d..67b0acdf 100644 --- a/content/atomics_intro.tex +++ b/content/atomics_intro.tex @@ -33,7 +33,7 @@ \openshmem \ac{AMO} routines specified in this section have two variants. In one of the variants, the context handle, \VAR{ctx}, is explicitly passed as -an argument. In this variant, the operation is performed on the specified +an argument. In this variant, the operation is performed on the specified context. If the context handle \VAR{ctx} does not correspond to a valid context, the behavior is undefined. In the other variant, the context handle is not explicitly passed and thus, the operations are performed on the diff --git a/content/backmatter.tex b/content/backmatter.tex index 16e7ffcc..498bbf4b 100644 --- a/content/backmatter.tex +++ b/content/backmatter.tex @@ -993,7 +993,7 @@ \section{Version 1.4} % \item Expanded the type support for \ac{RMA}, \ac{AMO}, and point-to-point synchronization operations. -%% cleveref will compress a list of references by default. It is better to not +%% cleveref will compress a list of references by default. It is better to not %% compress this list of *table* references because the clickable hyperref %% links are useful. You can tell cleveref to not compress the LHS and RHS by %% inserting an empty item between them; i.e., `,,`. diff --git a/content/execution_model.tex b/content/execution_model.tex index a56f8bda..e001680b 100644 --- a/content/execution_model.tex +++ b/content/execution_model.tex @@ -10,7 +10,7 @@ communicate and synchronize among executing \acp{PE}. The \openshmem phase in a program begins with the first call to the initialization routine \FUNC{shmem\_init} or \FUNC{shmem\_init\_thread}, which must be performed before using any of the -other \openshmem library routines. +other \openshmem library routines. An \openshmem program concludes its use of the \openshmem library when all \acp{PE} make their final call to \FUNC{shmem\_finalize} or any \ac{PE} calls \FUNC{shmem\_global\_exit}. diff --git a/content/frontmatter.tex b/content/frontmatter.tex index cf5a6ca3..43b5cf35 100644 --- a/content/frontmatter.tex +++ b/content/frontmatter.tex @@ -8,7 +8,7 @@ \SetWatermarkText{DRAFT} \SetWatermarkScale{1} \SetWatermarkLightness{.91} -\fancyfoot[C]{\thepage} %affects page numbering for the first pages, +\fancyfoot[C]{\thepage} %affects page numbering for the first pages, %except the first ToC page \pagenumbering{roman} %sets coverpage and toc page numbers to roman numerals @@ -19,10 +19,10 @@ \setcounter{secnumdepth}{4} \tableofcontents -\mainmatter % included for use of documenttype 'book' +\mainmatter % included for use of documenttype 'book' % Set header/footer for main content -\pagestyle{fancy} %replacing {headings} with {fancy} for customization +\pagestyle{fancy} %replacing {headings} with {fancy} for customization \fancyhf{} \fancyhead[L]{\leftmark} \fancyhead[R]{\thepage} diff --git a/content/memmgmt_intro.tex b/content/memmgmt_intro.tex index 8cb6605c..660e5bc7 100644 --- a/content/memmgmt_intro.tex +++ b/content/memmgmt_intro.tex @@ -17,7 +17,7 @@ The total size of the symmetric heap is determined at job startup. One can specify the size of the heap using the \ENVVAR{SHMEM\_SYMMETRIC\_SIZE} environment -variable (where available). +variable (where available). \begin{DeprecateBlock} As of \openshmem[1.2] the use of \FUNC{shmalloc}, \FUNC{shmemalign}, diff --git a/content/rma_intro.tex b/content/rma_intro.tex index f986d6c8..0cfd8cd0 100644 --- a/content/rma_intro.tex +++ b/content/rma_intro.tex @@ -32,10 +32,10 @@ is not explicitly passed and thus, the operations are performed on the default context. -Where appropriate compiler support is available, \openshmem provides type-generic +Where appropriate compiler support is available, \openshmem provides type-generic one-sided communication interfaces via \Cstd[11] generic selection (\Cstd[11]~\S6.5.1.1\footnote{Formally, the \Cstd[11] specification is ISO/IEC 9899:2011(E).}) -for block, scalar, and block-strided put and get communication. +for block, scalar, and block-strided put and get communication. Such type-generic routines are supported for the ``standard \ac{RMA} types'' listed in Table \ref{stdrmatypes}. @@ -78,5 +78,5 @@ \end{tabular} \TableCaptionRef{Standard \ac{RMA} Types and Names} \label{stdrmatypes} - \end{center} + \end{center} \end{table} diff --git a/content/shmem_addr_accessible.tex b/content/shmem_addr_accessible.tex index 14b83766..d32e54be 100644 --- a/content/shmem_addr_accessible.tex +++ b/content/shmem_addr_accessible.tex @@ -18,7 +18,7 @@ \FUNC{shmem\_addr\_accessible} is a query routine that indicates whether the address \VAR{addr} can be used to access the given data object on the specified \ac{PE} via \openshmem routines. - + This routine verifies that the data object is symmetric and accessible with respect to a remote \ac{PE} via \openshmem data transfer routines. The specified address \VAR{addr} is the local address of the data object on the diff --git a/content/shmem_alltoalls.tex b/content/shmem_alltoalls.tex index e371b8cf..76d769e3 100644 --- a/content/shmem_alltoalls.tex +++ b/content/shmem_alltoalls.tex @@ -33,7 +33,7 @@ \apiargument{IN}{team}{A valid \openshmem team handle.}% -\apiargument{OUT}{dest}{Symmetric address of a data object large enough to receive +\apiargument{OUT}{dest}{Symmetric address of a data object large enough to receive the combined total of \VAR{nelems} elements from each \ac{PE} in the active set. The type of \dest{} should match that implied in the SYNOPSIS section.} @@ -53,7 +53,7 @@ for \FUNC{shmem\_alltoalls\{32,64\}}, elements are 4 or 8 bytes, respectively. } - + \begin{DeprecateBlock} \apiargument{IN}{PE\_start}{The lowest \ac{PE} number of the active set of \acp{PE}.} @@ -82,7 +82,7 @@ The same \dest{} and \source{} arrays and same values for values of arguments \VAR{dst}, \VAR{sst}, \VAR{nelems} must be passed by all \acp{PE} that participate in the collective. - + Given a \ac{PE} \VAR{i} that is the \kth \ac{PE} participating in the operation and a \ac{PE} \VAR{j} that is the \lth \ac{PE} @@ -99,8 +99,7 @@ \item The pre- and post-conditions for symmetric objects. \item Typing constraints for \dest{} and \source{} data objects. \end{itemize} - -} +} \apireturnvalues{ diff --git a/content/shmem_barrier_all.tex b/content/shmem_barrier_all.tex index 4f2675bb..bb81c6fb 100644 --- a/content/shmem_barrier_all.tex +++ b/content/shmem_barrier_all.tex @@ -16,7 +16,7 @@ \end{apiarguments} -\apidescription{ +\apidescription{ The \FUNC{shmem\_barrier\_all} routine is a mechanism for synchronizing all \acp{PE} in the world team at once. This routine blocks the calling \ac{PE} until all \acp{PE} have called diff --git a/content/shmem_broadcast.tex b/content/shmem_broadcast.tex index a172a12e..f6937f06 100644 --- a/content/shmem_broadcast.tex +++ b/content/shmem_broadcast.tex @@ -60,7 +60,7 @@ \end{apiarguments} -\apidescription{ +\apidescription{ \openshmem broadcast routines are collective routines over an active set or valid \openshmem team. They copy the \source{} data object on the \ac{PE} specified by @@ -82,7 +82,7 @@ between \CONST{0} and \VAR{N$-$1}, where \VAR{N} is the size of the team. \end{itemize} - + For active-set-based broadcasts: \begin{itemize} \item The \dest{} object is updated on all \acp{PE} other than the diff --git a/content/shmem_collect.tex b/content/shmem_collect.tex index 5430abcf..4040b97d 100644 --- a/content/shmem_collect.tex +++ b/content/shmem_collect.tex @@ -69,18 +69,18 @@ \dest{} array, over an \openshmem team or active set in processor 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 contribution from \ac{PE} \VAR{PE\_start} + \VAR{PE\_stride} second, and so on. \item For a team, the data from \ac{PE} number \CONST{0} in the team is first, then the contribution from \ac{PE} \CONST{1} in the team, and so on. \end{itemize} - + The collected result is written to the \dest{} array for all \acp{PE} that participate in the operation. The same \dest{} and \source{} arrays must be passed by all \acp{PE} that participate in the operation. - + The \FUNC{fcollect} routines require that \VAR{nelems} be the same value in all participating \acp{PE}, while the \FUNC{collect} routines allow \VAR{nelems} to vary from \ac{PE} to \ac{PE}. @@ -96,15 +96,15 @@ each of these routines assumes that only \acp{PE} in the active set call the routine. If a \ac{PE} not in the active set and calls this collective routine, the behavior is undefined. - + The values of arguments \VAR{PE\_start}, \VAR{logPE\_stride}, and \VAR{PE\_size} must be the same value on all \acp{PE} in the active set. The same \VAR{pSync} work array must be passed by all \acp{PE} in the active set. - + Upon return from a collective routine, the following are true for the local \ac{PE}: \begin{itemize} - \item The \dest{} array is updated and the \source{} array may be safely reused. + \item The \dest{} array is updated and the \source{} array may be safely reused. \item For active-set-based collective routines, the values in the \VAR{pSync} array are restored to the original values. \end{itemize} diff --git a/content/shmem_finalize.tex b/content/shmem_finalize.tex index 5496e9bf..7e508f12 100644 --- a/content/shmem_finalize.tex +++ b/content/shmem_finalize.tex @@ -23,7 +23,7 @@ An \openshmem program may perform a series of matching initialization and finalization calls. The last call to \FUNC{shmem\_finalize} in this series - releases all resources used by the \openshmem library. + releases all resources used by the \openshmem library. This call destroys all teams created by the \openshmem program. As a result, all shareable contexts are destroyed. The user is diff --git a/content/shmem_g.tex b/content/shmem_g.tex index 1fa6a2c9..ff5384f8 100644 --- a/content/shmem_g.tex +++ b/content/shmem_g.tex @@ -27,7 +27,7 @@ \apidescription{ These routines provide a very low latency get capability for single elements - of most basic types. + of most basic types. } \apireturnvalues{ diff --git a/content/shmem_init_thread.tex b/content/shmem_init_thread.tex index f1f397d8..a5d81ae9 100644 --- a/content/shmem_init_thread.tex +++ b/content/shmem_init_thread.tex @@ -15,12 +15,12 @@ \end{apiarguments} \apidescription{ -\FUNC{shmem\_init\_thread} initializes the \openshmem library in the same way as -\FUNC{shmem\_init}. In addition, \FUNC{shmem\_init\_thread} also performs -the initialization required for supporting the provided thread level. -The argument \VAR{requested} is used to specify the desired level of -thread support. The argument \VAR{provided} returns the support level -provided by the library. The allowed values for \VAR{provided} and +\FUNC{shmem\_init\_thread} initializes the \openshmem library in the same way as +\FUNC{shmem\_init}. In addition, \FUNC{shmem\_init\_thread} also performs +the initialization required for supporting the provided thread level. +The argument \VAR{requested} is used to specify the desired level of +thread support. The argument \VAR{provided} returns the support level +provided by the library. The allowed values for \VAR{provided} and \VAR{requested} are \CONST{SHMEM\_THREAD\_SINGLE}, \CONST{SHMEM\_THREAD\_FUNNELED}, \CONST{SHMEM\_THREAD\_SERIALIZED}, and \CONST{SHMEM\_THREAD\_MULTIPLE}. @@ -32,8 +32,8 @@ re-initialized with a subsequent call to an initialization routine. If the call to \FUNC{shmem\_init\_thread} -is unsuccessful in allocating and initializing resources for the -\openshmem library, then the behavior of any subsequent call +is unsuccessful in allocating and initializing resources for the +\openshmem library, then the behavior of any subsequent call to the \openshmem library is undefined. @@ -45,9 +45,9 @@ } \apinotes{ -The \openshmem library can be initialized either by \FUNC{shmem\_init} -or \FUNC{shmem\_init\_thread}. If the \openshmem library is initialized -by \FUNC{shmem\_init}, the library implementation can choose to +The \openshmem library can be initialized either by \FUNC{shmem\_init} +or \FUNC{shmem\_init\_thread}. If the \openshmem library is initialized +by \FUNC{shmem\_init}, the library implementation can choose to support any one of the defined thread levels. The \openshmem library may not be able to change the level of threading support diff --git a/content/shmem_malloc_hints.tex b/content/shmem_malloc_hints.tex index ef4cbfc2..0377dc4f 100644 --- a/content/shmem_malloc_hints.tex +++ b/content/shmem_malloc_hints.tex @@ -22,19 +22,19 @@ is a collective operation on the world team that returns a pointer to a block of at least \VAR{size} bytes, which shall be suitably aligned so that it may be assigned to a pointer to any type of object. This space is allocated from - the symmetric heap (similar to \FUNC{shmem\_malloc}). When the \VAR{size} is zero, - the \FUNC{shmem\_malloc\_with\_hints} routine performs no action and returns a null pointer. - - In addition to the \VAR{size} argument, the \VAR{hints} argument is provided by the user. + the symmetric heap (similar to \FUNC{shmem\_malloc}). When the \VAR{size} is zero, + the \FUNC{shmem\_malloc\_with\_hints} routine performs no action and returns a null pointer. + + In addition to the \VAR{size} argument, the \VAR{hints} argument is provided by the user. The \VAR{hints} describes the expected manner in which the \openshmem program may use the allocated memory. The valid usage hints are described in Table~\ref{usagehints}. Multiple hints may be requested by combining them with a bitwise \CONST{OR} operation. A zero option can be given if no options are requested. - - The information provided by the \VAR{hints} is used to optimize for performance by the implementation. + + The information provided by the \VAR{hints} is used to optimize for performance by the implementation. If the implementation cannot optimize, the behavior is same as \FUNC{shmem\_malloc}. - If more than one hint is provided, the implementation will make the best effort to use one or more hints - to optimize performance. - + If more than one hint is provided, the implementation will make the best effort to use one or more hints + to optimize performance. + The \FUNC{shmem\_malloc\_with\_hints} routine is provided so that multiple \acp{PE} in a program can allocate symmetric, remotely accessible memory blocks. When no action is performed, these routines return without performing a barrier. Otherwise, the routine will call a procedure that is semantically equivalent to \FUNC{shmem\_barrier\_all} on exit. diff --git a/content/shmem_p.tex b/content/shmem_p.tex index 71e5594b..0887b507 100644 --- a/content/shmem_p.tex +++ b/content/shmem_p.tex @@ -30,7 +30,7 @@ \apidescription{ These routines provide a very low latency put capability for single elements of most basic types. - + As with \FUNC{shmem\_put}, these routines start the remote transfer and may return before the data is delivered to the remote \ac{PE}. Use \FUNC{shmem\_quiet} to force completion of all remote \PUT{} transfers. diff --git a/content/shmem_pe_quiet.tex b/content/shmem_pe_quiet.tex index 72ff2963..f0336c20 100644 --- a/content/shmem_pe_quiet.tex +++ b/content/shmem_pe_quiet.tex @@ -1,7 +1,7 @@ \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 + 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}. } @@ -17,22 +17,22 @@ \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 + \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} + \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 + 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 + + 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. } diff --git a/content/shmem_ptr.tex b/content/shmem_ptr.tex index f5c4d7e9..9207ac96 100644 --- a/content/shmem_ptr.tex +++ b/content/shmem_ptr.tex @@ -23,7 +23,7 @@ to a remotely accessible data object. Providing this address to an argument of an \openshmem routine that requires a symmetric address results in undefined behavior. - + The \FUNC{shmem\_ptr} routine can provide an efficient means to accomplish communication, for example when a sequence of reads and writes to a data object on a remote \ac{PE} does not match the access pattern provided in an diff --git a/content/shmem_reductions.tex b/content/shmem_reductions.tex index ff933b35..f2aafdfd 100644 --- a/content/shmem_reductions.tex +++ b/content/shmem_reductions.tex @@ -319,7 +319,7 @@ \subsubsubsection{PROD} \openshmem routine. \end{itemize} Otherwise, the behavior is undefined. - + Upon return from a reduction routine, the following are true for the local \ac{PE}: \begin{itemize} diff --git a/content/shmem_scan.tex b/content/shmem_scan.tex index 618a51a0..f86c7435 100644 --- a/content/shmem_scan.tex +++ b/content/shmem_scan.tex @@ -57,7 +57,7 @@ The \FUNC{shmem\_sum\_inscan} routine performs an inclusive scan operation, while the \FUNC{shmem\_sum\_exscan} routine performs an - exclusive scan operation. + exclusive scan operation. For \FUNC{shmem\_sum\_inscan}, the value of the $j$-th element in the \VAR{dest} array on \ac{PE}~$i$ is defined as: @@ -89,7 +89,7 @@ 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. - + Upon return from a scan routine, the following are true for the local \ac{PE}: the \dest{} array is updated, and the \source{} array may be safely reused. diff --git a/content/shmem_team_ptr.tex b/content/shmem_team_ptr.tex index af158c31..340419b5 100644 --- a/content/shmem_team_ptr.tex +++ b/content/shmem_team_ptr.tex @@ -24,7 +24,7 @@ a remotely accessible data object. Providing this address to an argument of an \openshmem routine that requires a symmetric address results in undefined behavior. - + The \FUNC{shmem\_team\_ptr} routine can provide an efficient means to accomplish communication, for example when a sequence of reads and writes to a data object on a remote \ac{PE} does not match the access pattern provided in an diff --git a/content/shmem_wait_until_all.tex b/content/shmem_wait_until_all.tex index d4dfd4b4..4f1c8c15 100644 --- a/content/shmem_wait_until_all.tex +++ b/content/shmem_wait_until_all.tex @@ -33,7 +33,7 @@ \end{apiarguments} -\apidescription{ +\apidescription{ The \FUNC{shmem\_wait\_until\_all} routine waits until all entries in the wait set specified by \VAR{ivars} and \VAR{status} have satisfied the wait condition at the calling \ac{PE}. The \VAR{ivars} objects at the calling \ac{PE} may be diff --git a/content/shmem_wait_until_all_vector.tex b/content/shmem_wait_until_all_vector.tex index a3abdf9c..b8006f1c 100644 --- a/content/shmem_wait_until_all_vector.tex +++ b/content/shmem_wait_until_all_vector.tex @@ -34,7 +34,7 @@ \end{apiarguments} -\apidescription{ +\apidescription{ The \FUNC{shmem\_wait\_until\_all\_vector} routine waits until all entries in the wait set specified by \VAR{ivars} and \VAR{status} have satisfied the wait conditions at the calling \ac{PE}. The \VAR{ivars} diff --git a/content/shmem_wait_until_any.tex b/content/shmem_wait_until_any.tex index e94e9afb..ce119eca 100644 --- a/content/shmem_wait_until_any.tex +++ b/content/shmem_wait_until_any.tex @@ -34,7 +34,7 @@ \end{apiarguments} -\apidescription{ +\apidescription{ The \FUNC{shmem\_wait\_until\_any} routine waits until any one entry in the wait set specified by \VAR{ivars} and \VAR{status} satisfies the wait condition at the calling \ac{PE}. The \VAR{ivars} objects at the calling diff --git a/content/shmem_wait_until_any_vector.tex b/content/shmem_wait_until_any_vector.tex index 09bcc5c7..30ebd077 100644 --- a/content/shmem_wait_until_any_vector.tex +++ b/content/shmem_wait_until_any_vector.tex @@ -35,7 +35,7 @@ \end{apiarguments} -\apidescription{ +\apidescription{ The \FUNC{shmem\_wait\_until\_any\_vector} routine waits until any one entry in the wait set specified by \VAR{ivars} and \VAR{status} satisfies the wait condition at the calling \ac{PE}. The \VAR{ivars} objects at the diff --git a/content/shmem_wait_until_some.tex b/content/shmem_wait_until_some.tex index 9af90fbb..8bcf4975 100644 --- a/content/shmem_wait_until_some.tex +++ b/content/shmem_wait_until_some.tex @@ -36,7 +36,7 @@ \end{apiarguments} -\apidescription{ +\apidescription{ The \FUNC{shmem\_wait\_until\_some} routine waits until at least one entry in the wait set specified by \VAR{ivars} and \VAR{status} satisfies the wait condition at the calling \ac{PE}. The \VAR{ivars} objects at the diff --git a/content/shmem_wait_until_some_vector.tex b/content/shmem_wait_until_some_vector.tex index e3a414fb..9b219cf4 100644 --- a/content/shmem_wait_until_some_vector.tex +++ b/content/shmem_wait_until_some_vector.tex @@ -37,7 +37,7 @@ \end{apiarguments} -\apidescription{ +\apidescription{ The \FUNC{shmem\_wait\_until\_some\_vector} routine waits until at least one entry in the wait set specified by \VAR{ivars} and \VAR{status} satisfies the wait condition at the calling \ac{PE}. diff --git a/content/the_openshmem_effort.tex b/content/the_openshmem_effort.tex index f83d3188..a3321cb5 100644 --- a/content/the_openshmem_effort.tex +++ b/content/the_openshmem_effort.tex @@ -9,7 +9,7 @@ code. This ensures that programs can run on multiple platforms without having to deal with subtle vendor-specific implementation differences. For more details on the history of \openshmem please refer to the -\hyperref[sec:openshmem_history]{History of \openshmem} section. +\hyperref[sec:openshmem_history]{History of \openshmem} section. The \openshmem\footnote{The \openshmem specification is owned by Open Source Software Solutions Inc., a nonprofit organization, under an agreement with