Skip to content

Commit

Permalink
sessions: remove delivery_rate config_t parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
davidozog committed Apr 10, 2024
1 parent 6d0f714 commit 933f8ff
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 50 deletions.
56 changes: 15 additions & 41 deletions content/shmem_session_config_t.tex
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
\begin{Csynopsis}
typedef struct {
size_t total_ops;
size_t delivery_rate;
} shmem_session_config_t;
\end{Csynopsis}

Expand All @@ -29,22 +28,11 @@
calls to \openshmem RMA routines within the session (i.e., after a call to
\FUNC{shmem\_session\_start} and before a corresponding call to
\FUNC{shmem\_session\_stop}).
If \VAR{total\_ops} is lower than the actual number of calls to \openshmem
RMA routines within the session, then application performance might be
suboptimal; however, the result of any data transfers, completions, or
memory ordering operations are unaffected by the value of
\FUNC{total\_ops}.

The \VAR{delivery\_rate} member indicates the expected number of
\openshmem RMA operations to buffer, combine, and/or coalesce (see
\LibConstRef{SHMEM\_SESSION\_BATCH} option to
\FUNC{shmem\_session\_start} within \ref{subsec:shmem_session_start}) before
the library delivers all pending RMA routines in the
session to the network.
The value of \VAR{delivery\_rate} is expected to be less than the value
of \VAR{total\_ops}; however, the result of any data transfers,
If \VAR{total\_ops} is lower than the \textit{actual} number of calls to
\openshmem RMA routines within the session, then application performance
might be suboptimal; however, the result of any data transfers,
completions, or memory ordering operations are unaffected by the value of
\FUNC{delivery\_rate}.
\FUNC{total\_ops}.

When using the configuration structure to start a communication session, a
mask parameter controls which fields are accessed by the \openshmem
Expand All @@ -56,21 +44,15 @@

A configuration mask is created through a bitwise OR operation of the
following library constants.
A configuration mask value of \CONST{0} indicates that the team
should be created with the default values for all configuration
A configuration mask value of \CONST{0} indicates that the session
should be started with the default values for all configuration
parameters.

\apitablerow{\LibConstRef{SHMEM\_SESSION\_TOTAL\_OPS}}{
The value of the \VAR{total\_ops} member of the \VAR{config} structure is
unmasked within the session and applied as a hint.
}

\apitablerow{\LibConstRef{SHMEM\_SESSION\_DELIVERY\_RATE}}{
\vspace{2mm}
The value of the \VAR{delivery\_rate} member of the \VAR{config}
structure is unmasked within the session and applied as a hint.
}

The default values for configuration parameters are:

\apitablerow{\VAR{total\_ops} = \CONST{SIZE\_MAX}}{
Expand All @@ -80,27 +62,19 @@
\openshmem library is free to select any value appropriate for the
implementation.
}

\apitablerow{\VAR{delivery\_rate} = \CONST{SIZE\_MAX}}{
By default, the number of expected number of \openshmem RMA calls to
buffer, combine, and/or coalesce is set to the upper bound of a
\VAR{size\_t} variable, \VAR{SIZE\_MAX}. This is a representative
constant that indicates the \openshmem library is free to select any
value appropriate for the implementation.
}
}

\apinotes{
Users are discouraged from calling \FUNC{shmem\_fence},
\FUNC{shmem\_cxt\_fence}, \FUNC{shmem\_quiet}, or
\FUNC{shmem\_ctx\_quiet} routines within a session when tolerant, because
the library must impose strict completions to comply with ordering
semantics. Users are instead encouraged to provide the \FUNC{total\_ops}
and \FUNC{delivery\_rate} hints to influence how the library pipelines
batched operations (see \LibConstRef{SHMEM\_SESSION\_BATCH} option to
\FUNC{shmem\_session\_start} in \ref{subsec:shmem_session_start}).
However, only quiet and fence operations guarantee that in-use data
buffers can be updated after previously invoked RMA routines.
\FUNC{shmem\_cxt\_fence}, \FUNC{shmem\_quiet}, or \FUNC{shmem\_ctx\_quiet}
routines within a session whenever possible, because the library must
impose strict completions to comply with ordering semantics.
However, hints provided by \FUNC{shmem\_session\_config\_t} do not imply
the occurence 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
\FUNC{shmem\_session\_config\_t} hints.
}

\end{apidefinition}
12 changes: 3 additions & 9 deletions content/shmem_session_start.tex
Original file line number Diff line number Diff line change
Expand Up @@ -94,13 +94,8 @@
The \VAR{total\_ops} field of \VAR{config} with mask value
\LibConstRef{SHMEM\_SESSION\_TOTAL\_OPS} indicates the expected maximum
number of calls to \openshmem RMA routines within the session.

The \VAR{delivery\_rate} field of \VAR{config} with mask value
\LibConstRef{SHMEM\_SESSION\_DELIVERY\_RATE} indicates a desired number
of \openshmem RMA operations to buffer, combine, and/or coalesce before
the library delivers all pending RMA routines in the session to the
network. See Section~\ref{subsec:shmem_session_config_t} for details
about these parameters.
See Section~\ref{subsec:shmem_session_config_t} for details
about \VAR{shmem\_session\_config\_t} parameters.
} \hline

\sessiontablerow{\LibConstRef{SHMEM\_SESSION\_SAME\_AMO}}{
Expand All @@ -111,8 +106,7 @@
(Tables \ref{stdamotypes} and \ref{extamotypes}).

The same members of the \VAR{config} structure that apply to the
\LibConstRef{SHMEM\_SESSION\_BATCH} option (\VAR{total\_ops} and
\VAR{delivery\_rate}) also apply to the
\LibConstRef{SHMEM\_SESSION\_BATCH} option also apply to the
\LibConstRef{SHMEM\_SESSION\_SAME\_AMO} option. See
Section~\ref{subsec:shmem_session_config_t} for details about these
parameters.
Expand Down

0 comments on commit 933f8ff

Please sign in to comment.