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
Final touchups to PMIx_Get and PMIx_server_init attributes
Provide the ability to request pointers to values, filling in of a
provided value struct address, as well as the default return of a newly
malloc'd struct. Clarify that "success" means the data was returned in
the form requested - do not return it as something different.
Remove the "slot" definition per WG discussion
Signed-off-by: Ralph Castain <[email protected]>
The nodes comprising the session are homogeneous - i.e., they each contain the same number of identical packages, fabric interfaces, \acp{GPU}, and other devices.
Copy file name to clipboardExpand all lines: Chap_API_Sync_Access.tex
+17-24Lines changed: 17 additions & 24 deletions
Original file line number
Diff line number
Diff line change
@@ -208,11 +208,9 @@ \section{\code{PMIx_Get}}
208
208
Returns one of the following:
209
209
210
210
\begin{itemize}
211
-
\item\refconst{PMIX_SUCCESS} The requested data has been returned.
211
+
\item\refconst{PMIX_SUCCESS} The requested data has been returned in the manner requested (i.e., in a provided static memory location )
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}
212
213
\item\refconst{PMIX_ERR_NOT_FOUND} The requested data was not available.
213
-
\item\refconst{PMIX_ERR_GET_MALLOC_REQD} Indicating that the returned value
214
-
involves dynamically allocated memory instead of pointing to a static location
215
-
as requested (only applies if \refattr{PMIX_GET_STATIC_VALUES} was included in the request).
216
214
\item a non-zero \ac{PMIx} error constant indicating a reason for the request's failure.
217
215
\end{itemize}
218
216
@@ -227,6 +225,7 @@ \section{\code{PMIx_Get}}
227
225
\pasteAttributeItem{PMIX_APP_INFO}
228
226
\pasteAttributeItem{PMIX_NODE_INFO}
229
227
\pasteAttributeItem{PMIX_GET_STATIC_VALUES}
228
+
\pasteAttributeItem{PMIX_GET_POINTER_VALUES}
230
229
231
230
\reqattrend
232
231
@@ -240,7 +239,13 @@ \section{\code{PMIx_Get}}
240
239
%%%%
241
240
\descr
242
241
243
-
Retrieve information for the specified \refarg{key} associated with the process identified in the given \refstruct{pmix_proc_t}, returning a pointer to the \refstruct{pmix_value_t} containing the result in the given address. See Chapters \ref{chap:api_rsvd_keys} and \ref{chap:nrkeys} for details on rules governing retrieval of information.
242
+
Retrieve information for the specified \refarg{key} associated with the process identified in the given \refstruct{pmix_proc_t}. See Chapters \ref{chap:api_rsvd_keys} and \ref{chap:nrkeys} for details on rules governing retrieval of information. Information will be returned according to provided directives:
243
+
244
+
\begin{itemize}
245
+
\item In the absence of any directive, the returned \refstruct{pmix_value_t} shall be an allocated memory object. The caller is responsible for releasing the object when done.
246
+
\item If \refattr{PMIX_GET_POINTER_VALUES} is given, then the function shall return a pointer to a \refstruct{pmix_value_t} in the \ac{PMIx} library's memory that contains the requested information.
247
+
\item If \refattr{PMIX_GET_STATIC_VALUES} is given, then the function shall return the information in the provided \refstruct{pmix_value_t} pointer. In this case, the caller must provide storage for the structure and pass the pointer to that storage in the \refarg{val} parameter.
248
+
\end{itemize}
244
249
245
250
This is a blocking operation - the caller will block until the retrieval rules of Chapters \ref{chap:api_rsvd_keys} or \ref{chap:nrkeys} are met.
The callback function will be executed once the retrieval rules of Chapters \ref{chap:api_rsvd_keys} or \ref{chap:nrkeys} are met.
331
-
See \refapi{PMIx_Get} for a full description.
332
-
333
-
334
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
335
-
\subsection{Retrieval-specific constants}
336
-
337
-
The following constants are defined for use by retrieval \acp{API}:
338
-
339
-
\begin{constantdesc}
340
-
%
341
-
\declareconstitemNEW{PMIX_ERR_GET_MALLOC_REQD}
342
-
The data returned by \refapi{PMIx_Get} contains values that include dynamic memory allocations (i.e., "malloc"), despite a request for static pointers to the values in the key-value store. User is responsible for releasing the memory when done with the information.
343
-
%
344
-
\end{constantdesc}
333
+
See \refapi{PMIx_Get} for a full description. Note that the non-blocking form of this function cannot support the \refattr{PMIX_GET_STATIC_VALUES} attribute as the user cannot pass in the required pointer to storage for the result.
Specified operation should immediately return an error from the \ac{PMIx} server if the requested data cannot be found - do not request it from the host \ac{RM}.
Request that any pointers in the returned value point directly to values in the key-value store. The user \emph{must not} release any returned data pointers.
Request that any pointers in the returned value point directly to values in the key-value store. The user \emph{must not} release any returned data pointers. Note that a return status of \refconst{PMIX_ERR_GET_MALLOC_REQD} indicates that direct pointers could not be supported - in which case, the returned data contains allocated memory that the user must release.
356
+
Request that the data be returned in the provided storage location. The caller is responsible for destructing the \refstruct{pmix_value_t} using the \refmacro{PMIX_VALUE_DESTRUCT} macro when done.
Copy file name to clipboardExpand all lines: Chap_Terms.tex
-2Lines changed: 0 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -34,8 +34,6 @@ \chapter{PMIx Terms and Conventions}
34
34
35
35
\item\declaretermAlt{clone}{clones} refers to a process that was directly started by a \ac{PMIx} client (e.g., using \emph{fork/exec}) and calls \refapi{PMIx_Init}, thus connecting to its local \ac{PMIx} server using the same namespace and rank as its parent process.
36
36
37
-
\item\declaretermAlt{slot}{slots} refers to an allocated entry for a process. \acp{WLM} frequently allocate entire nodes to a \emph{session}, but can also be configured to define the maximum number of processes that can simultaneously be executed on each node. This often corresponds to the number of hardware \acp{PU} (typically cores, but can also be defined as hardware threads) on the node. However, the correlation between hardware \acp{PU} and slot allocations strictly depends upon system configuration.
38
-
39
37
\item\declareterm{rank} refers to the numerical location (starting from zero) of a process within the defined scope. Thus, \emph{job rank} is the rank of a process within its \emph{job} and is synonymous with its unqualified \emph{rank}, while \emph{application rank} is the rank of that process within its \emph{application}.
40
38
41
39
\item\declaretermAlt{peer}{peers} refers to another process within the same \refterm{job}.
0 commit comments