You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
application when information needs to be exchanged between processes (e.g.,
10
10
where connection information is required and the host environment does not
11
11
support the \refterm{instant on} option) or where the host environment does not
12
-
provide a required piece of data. Other than the prefix, there are no
13
-
restrictions on the use or content of non-reserved keys.
12
+
provide a required piece of data. Beyond the restriction on name prefix,
13
+
non-reserved keys are required to be unique across conflicting \emph{scopes} as defined in Section \ref{api:nres:scope} - e,g., a non-reserved key cannot be posted by the same process in both the \refconst{PMIX_LOCAL} and \refconst{PMIX_REMOTE} scopes (note that posting the key in the \refconst{PMIX_GLOBAL} scope would have met the desired objective).
14
14
15
15
\ac{PMIx} provides support for two methods of exchanging non-reserved keys:
16
16
@@ -93,6 +93,7 @@ \subsection{\code{PMIx_Put}}
93
93
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
94
94
\subsubsection{Scope of Put Data}
95
95
\declarestruct{pmix_scope_t}
96
+
\label{api:nres:scope}
96
97
97
98
\versionMarker{1.0}
98
99
The \refstruct{pmix_scope_t} structure is a \code{uint8_t} type that defines the availability of data passed to \refapi{PMIx_Put}.
@@ -212,9 +213,15 @@ \section{Retrieval rules for non-reserved keys}
212
213
\item Check the local \ac{PMIx} client cache for the requested key - if not found and either the \refattr{PMIX_OPTIONAL} or \refattr{PMIX_GET_REFRESH_CACHE} attribute was given, the search will stop at this point and return the \refconst{PMIX_ERR_NOT_FOUND} status.
213
214
214
215
\item Request the information from the local \ac{PMIx} server. The server
215
-
will check its cache for the specified key. If the
216
-
value still isn't found and the \refattr{PMIX_IMMEDIATE} attribute was
217
-
given, then the library shall return the \refconst{PMIX_ERR_NOT_FOUND}
216
+
will check its cache for the specified key within the appropriate scope as
217
+
defined by the process that originally posted the key. If the value exists
218
+
in a scope that contains the requesting process, then the value shall be
219
+
returned. If the value exists, but in a scope that excludes the requesting
220
+
process, then the server shall immediately return the
221
+
\refconst{PMIX_ERR_EXISTS_OUTSIDE_SCOPE}.
222
+
223
+
If the value still isn't found and the \refattr{PMIX_IMMEDIATE} attribute
224
+
was given, then the library shall return the \refconst{PMIX_ERR_NOT_FOUND}
218
225
error constant to the requester. Otherwise, the \ac{PMIx} server library
Copy file name to clipboardExpand all lines: Chap_API_Sync_Access.tex
+2-1Lines changed: 2 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -210,6 +210,7 @@ \section{\code{PMIx_Get}}
210
210
\begin{itemize}
211
211
\item\refconst{PMIX_SUCCESS} The requested data has been returned in the manner requested (i.e., in a provided static memory location )
212
212
\item\refconst{PMIX_ERR_BAD_PARAM} A bad parameter was passed to the function call - e.g., the request included the \refattr{PMIX_GET_STATIC_VALUES} directive, but the provided storage location was \code{NULL}
213
+
\item\refconst{PMIX_ERR_EXISTS_OUTSIDE_SCOPE} The requested key exists, but was posted in a \emph{scope} (see Section \ref{api:nres:scope}) that does not include the requester.
213
214
\item\refconst{PMIX_ERR_NOT_FOUND} The requested data was not available.
214
215
\item a non-zero \ac{PMIx} error constant indicating a reason for the request's failure.
\item\refconst{PMIX_SUCCESS}, indicating that the request is being processed by the host environment - result will be returned in the provided \refarg{cbfunc}. Note that the library must not invoke the callback function prior to returning from the \ac{API}.
289
-
\item\refconst{PMIX_OPERATION_SUCCEEDED}, indicating that the request was immediately processed and returned \textit{success} - the \refarg{cbfunc} will \textit{not} be called.
290
290
\item a \ac{PMIx} error constant indicating either an error in the input or that the request was immediately processed and failed - the \refarg{cbfunc} will \textit{not} be called.
291
291
\end{itemize}
292
292
293
293
If executed, the status returned in the provided callback function will be one of the following constants:
294
294
295
295
\begin{itemize}
296
296
\item\refconst{PMIX_SUCCESS} The requested data has been returned.
297
+
\item\refconst{PMIX_ERR_EXISTS_OUTSIDE_SCOPE} The requested key exists, but was posted in a \emph{scope} (see Section \ref{api:nres:scope}) that does not include the requester.
297
298
\item\refconst{PMIX_ERR_NOT_FOUND} The requested data was not available.
298
299
\item a non-zero \ac{PMIx} error constant indicating a reason for the request's failure.
0 commit comments