openmpi  3.1.6
About: Open MPI is a high performance Message Passing Interface (MPI) library project combining technologies and resources from several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best MPI library available. 3.x series.
  Fossies Dox: openmpi-3.1.6.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

pmix_types.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
3  * Copyright (c) 2016 Research Organization for Information Science
4  * and Technology (RIST). All rights reserved.
5  * $COPYRIGHT$
6  *
7  * Additional copyrights may follow
8  *
9  * $HEADER$
10  */
11 
12 #ifndef OPAL_PMIX_TYPES_H
13 #define OPAL_PMIX_TYPES_H
14 
15 #include "opal_config.h"
16 
17 #include "opal/dss/dss_types.h"
18 #include "opal/util/proc.h"
19 
21 
22 /* define a value for requests for job-level data
23  * where the info itself isn't associated with any
24  * specific rank, or when a request involves
25  * a rank that isn't known - e.g., when someone requests
26  * info thru one of the legacy interfaces where the rank
27  * is typically encoded into the key itself since there is
28  * no rank parameter in the API itself */
29 #define OPAL_PMIX_RANK_UNDEF UINT32_MAX
30 /* define a value to indicate that the user wants the
31  * data for the given key from every rank that posted
32  * that key */
33 #define OPAL_PMIX_RANK_WILDCARD UINT32_MAX-1
34 
35 /* other special rank values will be used to define
36  * groups of ranks for use in collectives */
37 #define OPAL_PMIX_RANK_LOCAL_NODE UINT32_MAX-2 // all ranks on local node
38 
39 
40 /* define a set of "standard" attributes that can
41  * be queried. Implementations (and users) are free to extend as
42  * desired, so the get functions need to be capable
43  * of handling the "not found" condition. Note that these
44  * are attributes of the system and the job as opposed to
45  * values the application (or underlying MPI library)
46  * might choose to expose - i.e., they are values provided
47  * by the resource manager as opposed to the application. Thus,
48  * these keys are RESERVED */
49 #define OPAL_PMIX_ATTR_UNDEF NULL
50 
51 #define OPAL_PMIX_SERVER_TOOL_SUPPORT "pmix.srvr.tool" // (bool) The host RM wants to declare itself as willing to
52  // accept tool connection requests
53 #define OPAL_PMIX_SERVER_SYSTEM_SUPPORT "pmix.srvr.sys" // (bool) The host RM wants to declare itself as being the local
54  // system server for PMIx connection requests
55 #define OPAL_PMIX_SERVER_TMPDIR "pmix.srvr.tmpdir" // (char*) temp directory where PMIx server will place
56  // client rendezvous points
57 #define OPAL_PMIX_SYSTEM_TMPDIR "pmix.sys.tmpdir" // (char*) temp directory where PMIx server will place
58  // tool rendezvous points
59 #define OPAL_PMIX_REGISTER_NODATA "pmix.reg.nodata" // (bool) Registration is for nspace only, do not copy job data
60 #define OPAL_PMIX_SERVER_ENABLE_MONITORING "pmix.srv.monitor" // (bool) Enable PMIx internal monitoring by server
61 #define OPAL_PMIX_SERVER_NSPACE "pmix.srv.nspace" // (char*) Name of the nspace to use for this server
62 #define OPAL_PMIX_SERVER_RANK "pmix.srv.rank" // (uint32_t) Rank of this server
63 
64 /* tool-related attributes */
65 #define OPAL_PMIX_TOOL_NSPACE "pmix.tool.nspace" // (char*) Name of the nspace to use for this tool
66 #define OPAL_PMIX_TOOL_RANK "pmix.tool.rank" // (uint32_t) Rank of this tool
67 #define OPAL_PMIX_SERVER_PIDINFO "pmix.srvr.pidinfo" // (pid_t) pid of the target server for a tool
68 #define OPAL_PMIX_CONNECT_TO_SYSTEM "pmix.cnct.sys" // (bool) The requestor requires that a connection be made only to
69  // a local system-level PMIx server
70 #define OPAL_PMIX_CONNECT_SYSTEM_FIRST "pmix.cnct.sys.first" // (bool) Preferentially look for a system-level PMIx server first
71 #define OPAL_PMIX_SERVER_URI "pmix.srvr.uri" // (char*) URI of server to be contacted
72 #define OPAL_PMIX_SERVER_HOSTNAME "pmix.srvr.host" // (char*) node where target server is located
73 #define OPAL_PMIX_CONNECT_MAX_RETRIES "pmix.tool.mretries" // (uint32_t) maximum number of times to try to connect to server
74 #define OPAL_PMIX_CONNECT_RETRY_DELAY "pmix.tool.retry" // (uint32_t) time in seconds between connection attempts
75 #define OPAL_PMIX_TOOL_DO_NOT_CONNECT "pmix.tool.nocon" // (bool) the tool wants to use internal PMIx support, but does
76  // not want to connect to a PMIx server
77 
78 
79 /* identification attributes */
80 #define OPAL_PMIX_USERID "pmix.euid" // (uint32_t) effective user id
81 #define OPAL_PMIX_GRPID "pmix.egid" // (uint32_t) effective group id
82 #define OPAL_PMIX_PROGRAMMING_MODEL "pmix.pgm.model" // (char*) programming model being initialized (e.g., "MPI" or "OpenMP")
83 #define OPAL_PMIX_MODEL_LIBRARY_NAME "pmix.mdl.name" // (char*) programming model implementation ID (e.g., "OpenMPI" or "MPICH")
84 #define OPAL_PMIX_MODEL_LIBRARY_VERSION "pmix.mld.vrs" // (char*) programming model version string (e.g., "2.1.1")
85 #define OPAL_PMIX_THREADING_MODEL "pmix.threads" // (char*) threading model used (e.g., "pthreads")
86 #define OPAL_PMIX_REQUESTOR_IS_TOOL "pmix.req.tool" // (bool) requesting process is a tool
87 #define OPAL_PMIX_REQUESTOR_IS_CLIENT "pmix.req.client" // (bool) requesting process is a client process
88 
89 /* attributes for the rendezvous socket */
90 #define OPAL_PMIX_USOCK_DISABLE "pmix.usock.disable" // (bool) disable legacy usock support
91 #define OPAL_PMIX_SOCKET_MODE "pmix.sockmode" // (uint32_t) POSIX mode_t (9 bits valid)
92 #define OPAL_PMIX_SINGLE_LISTENER "pmix.sing.listnr" // (bool) use only one rendezvous socket, letting priorities and/or
93  // MCA param select the active transport
94 
95 /* attributes for TCP connections */
96 #define OPAL_PMIX_TCP_URI "pmix.tcp.uri" // (char*) URI of server to connect to
97 #define OPAL_PMIX_TCP_IF_INCLUDE "pmix.tcp.ifinclude" // (char*) comma-delimited list of devices and/or CIDR notation
98 #define OPAL_PMIX_TCP_IF_EXCLUDE "pmix.tcp.ifexclude" // (char*) comma-delimited list of devices and/or CIDR notation
99 #define OPAL_PMIX_TCP_IPV4_PORT "pmix.tcp.ipv4" // (int) IPv4 port to be used
100 #define OPAL_PMIX_TCP_IPV6_PORT "pmix.tcp.ipv6" // (int) IPv6 port to be used
101 #define OPAL_PMIX_TCP_DISABLE_IPV4 "pmix.tcp.disipv4" // (bool) true to disable IPv4 family
102 #define OPAL_PMIX_TCP_DISABLE_IPV6 "pmix.tcp.disipv6" // (bool) true to disable IPv6 family
103 
104 
105 /* general proc-level attributes */
106 #define OPAL_PMIX_CPUSET "pmix.cpuset" // (char*) hwloc bitmap applied to proc upon launch
107 #define OPAL_PMIX_CREDENTIAL "pmix.cred" // (char*) security credential assigned to proc
108 #define OPAL_PMIX_SPAWNED "pmix.spawned" // (bool) true if this proc resulted from a call to PMIx_Spawn
109 #define OPAL_PMIX_ARCH "opal.pmix.arch" // (uint32_t) datatype architecture flag
110  // not set at job startup, so cannot have the pmix prefix
111 
112 /* scratch directory locations for use by applications */
113 #define OPAL_PMIX_TMPDIR "pmix.tmpdir" // (char*) top-level tmp dir assigned to session
114 #define OPAL_PMIX_NSDIR "pmix.nsdir" // (char*) sub-tmpdir assigned to namespace
115 #define OPAL_PMIX_PROCDIR "pmix.pdir" // (char*) sub-nsdir assigned to proc
116 #define OPAL_PMIX_TDIR_RMCLEAN "pmix.tdir.rmclean" // (bool) Resource Manager will clean session directories
117 
118 
119 /* information about relative ranks as assigned by the RM */
120 #define OPAL_PMIX_PROCID "pmix.procid" // (opal_process_name_t) process identifier
121 #define OPAL_PMIX_NSPACE "pmix.nspace" // (char*) nspace of a job
122 #define OPAL_PMIX_JOBID "pmix.jobid" // (uint32_t) jobid assigned by scheduler
123 #define OPAL_PMIX_APPNUM "pmix.appnum" // (uint32_t) app number within the job
124 #define OPAL_PMIX_RANK "pmix.rank" // (uint32_t) process rank within the job
125 #define OPAL_PMIX_GLOBAL_RANK "pmix.grank" // (uint32_t) rank spanning across all jobs in this session
126 #define OPAL_PMIX_UNIV_RANK "pmix.grank" // (uint32_t) synonym for global_rank
127 #define OPAL_PMIX_APP_RANK "pmix.apprank" // (uint32_t) rank within this app
128 #define OPAL_PMIX_NPROC_OFFSET "pmix.offset" // (uint32_t) starting global rank of this job
129 #define OPAL_PMIX_LOCAL_RANK "pmix.lrank" // (uint16_t) rank on this node within this job
130 #define OPAL_PMIX_NODE_RANK "pmix.nrank" // (uint16_t) rank on this node spanning all jobs
131 #define OPAL_PMIX_LOCALLDR "pmix.lldr" // (uint64_t) opal_identifier of lowest rank on this node within this job
132 #define OPAL_PMIX_APPLDR "pmix.aldr" // (uint32_t) lowest rank in this app within this job
133 #define OPAL_PMIX_PROC_PID "pmix.ppid" // (pid_t) pid of specified proc
134 #define OPAL_PMIX_SESSION_ID "pmix.session.id" // (uint32_t) session identifier
135 #define OPAL_PMIX_NODE_LIST "pmix.nlist" // (char*) comma-delimited list of nodes running procs for the specified nspace
136 #define OPAL_PMIX_ALLOCATED_NODELIST "pmix.alist" // (char*) comma-delimited list of all nodes in this allocation regardless of
137  // whether or not they currently host procs.
138 #define OPAL_PMIX_HOSTNAME "pmix.hname" // (char*) name of the host the specified proc is on
139 #define OPAL_PMIX_NODEID "pmix.nodeid" // (uint32_t) node identifier
140 #define OPAL_PMIX_LOCAL_PEERS "pmix.lpeers" // (char*) comma-delimited string of ranks on this node within the specified nspace
141 #define OPAL_PMIX_LOCAL_PROCS "pmix.lprocs" // (opal_list_t*) list of opal_namelist_t of procs on the specified node
142 #define OPAL_PMIX_LOCAL_CPUSETS "pmix.lcpus" // (char*) colon-delimited cpusets of local peers within the specified nspace
143 #define OPAL_PMIX_PROC_URI "opal.puri" // (char*) URI containing contact info for proc - NOTE: this is published by procs and
144  // thus cannot be prefixed with "pmix"
145 #define OPAL_PMIX_LOCALITY "pmix.loc" // (uint16_t) relative locality of two procs
146 
147 
148 /* Memory info */
149 #define OPAL_PMIX_AVAIL_PHYS_MEMORY "pmix.pmem" // (uint64_t) total available physical memory on this node
150 #define OPAL_PMIX_DAEMON_MEMORY "pmix.dmn.mem" // (float) Mbytes of memory currently used by daemon
151 #define OPAL_PMIX_CLIENT_AVG_MEMORY "pmix.cl.mem.avg" // (float) Average Mbytes of memory used by client processes
152 
153 
154 /* size info */
155 #define OPAL_PMIX_UNIV_SIZE "pmix.univ.size" // (uint32_t) #procs in this nspace
156 #define OPAL_PMIX_JOB_SIZE "pmix.job.size" // (uint32_t) #procs in this job
157 #define OPAL_PMIX_JOB_NUM_APPS "pmix.job.napps" // (uint32_t) #apps in this job
158 #define OPAL_PMIX_APP_SIZE "pmix.app.size" // (uint32_t) #procs in this app
159 #define OPAL_PMIX_LOCAL_SIZE "pmix.local.size" // (uint32_t) #procs in this job on this node
160 #define OPAL_PMIX_NODE_SIZE "pmix.node.size" // (uint32_t) #procs across all jobs on this node
161 #define OPAL_PMIX_MAX_PROCS "pmix.max.size" // (uint32_t) max #procs for this job
162 #define OPAL_PMIX_NUM_NODES "pmix.num.nodes" // (uint32_t) #nodes in this nspace
163 
164 
165 /* topology info */
166 #define OPAL_PMIX_NET_TOPO "pmix.ntopo" // (char*) xml-representation of network topology
167 #define OPAL_PMIX_LOCAL_TOPO "pmix.ltopo" // (char*) xml-representation of local node topology
168 #define OPAL_PMIX_NODE_LIST "pmix.nlist" // (char*) comma-delimited list of nodes running procs for this job
169 #define OPAL_PMIX_TOPOLOGY "pmix.topo" // (hwloc_topology_t) pointer to the PMIx client's internal topology object
170 #define OPAL_PMIX_TOPOLOGY_SIGNATURE "pmix.toposig" // (char*) topology signature string
171 #define OPAL_PMIX_LOCALITY_STRING "pmix.locstr" // (char*) string describing a proc's location
172 #define OPAL_PMIX_HWLOC_SHMEM_ADDR "pmix.hwlocaddr" // (size_t) address of HWLOC shared memory segment
173 #define OPAL_PMIX_HWLOC_SHMEM_SIZE "pmix.hwlocsize" // (size_t) size of HWLOC shared memory segment
174 #define OPAL_PMIX_HWLOC_SHMEM_FILE "pmix.hwlocfile" // (char*) path to HWLOC shared memory file
175 #define OPAL_PMIX_HWLOC_XML_V1 "pmix.hwlocxml1" // (char*) XML representation of local topology using HWLOC v1.x format
176 #define OPAL_PMIX_HWLOC_XML_V2 "pmix.hwlocxml2" // (char*) XML representation of local topology using HWLOC v2.x format
177 
178 
179 /* request-related info */
180 #define OPAL_PMIX_COLLECT_DATA "pmix.collect" // (bool) collect data and return it at the end of the operation
181 #define OPAL_PMIX_TIMEOUT "pmix.timeout" // (int) time in sec before specified operation should time out
182 #define OPAL_PMIX_IMMEDIATE "pmix.immediate" // (bool) specified operation should immediately return an error if requested
183  // data cannot be found - do not request it from the host RM
184 #define OPAL_PMIX_WAIT "pmix.wait" // (int) caller requests that the server wait until at least the specified
185  // #values are found (0 => all and is the default)
186 #define OPAL_PMIX_COLLECTIVE_ALGO "pmix.calgo" // (char*) comma-delimited list of algorithms to use for collective
187 #define OPAL_PMIX_COLLECTIVE_ALGO_REQD "pmix.calreqd" // (bool) if true, indicates that the requested choice of algo is mandatory
188 #define OPAL_PMIX_NOTIFY_COMPLETION "pmix.notecomp" // (bool) notify parent process upon termination of child job
189 #define OPAL_PMIX_RANGE "pmix.range" // (int) opal_pmix_data_range_t value for calls to publish/lookup/unpublish
190 #define OPAL_PMIX_PERSISTENCE "pmix.persist" // (int) opal_pmix_persistence_t value for calls to publish
191 #define OPAL_PMIX_OPTIONAL "pmix.optional" // (bool) look only in the immediate data store for the requested value - do
192  // not request data from the server if not found
193 #define OPAL_PMIX_EMBED_BARRIER "pmix.embed.barrier" // (bool) execute a blocking fence operation before executing the
194  // specified operation
195 #define OPAL_PMIX_JOB_TERM_STATUS "pmix.job.term.status" // (int) status returned upon job termination
196 #define OPAL_PMIX_PROC_STATE_STATUS "pmix.proc.state" // (int) process state
197 
198 
199 
200 /* attribute used by host server to pass data to the server convenience library - the
201  * data will then be parsed and provided to the local clients */
202 #define OPAL_PMIX_PROC_DATA "pmix.pdata" // (pmix_value_array_t) starts with rank, then contains more data
203 #define OPAL_PMIX_NODE_MAP "pmix.nmap" // (char*) regex of nodes containing procs for this job
204 #define OPAL_PMIX_PROC_MAP "pmix.pmap" // (char*) regex describing procs on each node within this job
205 
206 
207 /* attributes used internally to communicate data from the server to the client */
208 #define OPAL_PMIX_PROC_BLOB "pmix.pblob" // (pmix_byte_object_t) packed blob of process data
209 #define OPAL_PMIX_MAP_BLOB "pmix.mblob" // (pmix_byte_object_t) packed blob of process location
210 
211 
212 /* error handler registration and notification info keys */
213 #define OPAL_PMIX_EVENT_HDLR_NAME "pmix.evname" // (char*) string name identifying this handler
214 #define OPAL_PMIX_EVENT_JOB_LEVEL "pmix.evjob" // (bool) register for job-specific events only
215 #define OPAL_PMIX_EVENT_ENVIRO_LEVEL "pmix.evenv" // (bool) register for environment events only
216 #define OPAL_PMIX_EVENT_ORDER_PREPEND "pmix.evprepend" // (bool) prepend this handler to the precedence list
217 #define OPAL_PMIX_EVENT_CUSTOM_RANGE "pmix.evrange" // (pmix_proc_t*) array of pmix_proc_t defining range of event notification
218 #define OPAL_PMIX_EVENT_AFFECTED_PROC "pmix.evproc" // (pmix_proc_t) single proc that was affected
219 #define OPAL_PMIX_EVENT_AFFECTED_PROCS "pmix.evaffected" // (pmix_proc_t*) array of pmix_proc_t defining affected procs
220 #define OPAL_PMIX_EVENT_NON_DEFAULT "pmix.evnondef" // (bool) event is not to be delivered to default event handlers
221 #define OPAL_PMIX_EVENT_RETURN_OBJECT "pmix.evobject" // (void*) object to be returned whenever the registered cbfunc is invoked
222  // NOTE: the object will _only_ be returned to the process that
223  // registered it
224 #define OPAL_PMIX_EVENT_DO_NOT_CACHE "pmix.evnocache" // (bool) instruct the PMIx server not to cache the event
225 #define OPAL_PMIX_EVENT_SILENT_TERMINATION "pmix.evsilentterm" // (bool) do not generate an event when this job normally terminates
226 
227 
228 /* fault tolerance-related events */
229 #define OPAL_PMIX_EVENT_TERMINATE_SESSION "pmix.evterm.sess" // (bool) RM intends to terminate session
230 #define OPAL_PMIX_EVENT_TERMINATE_JOB "pmix.evterm.job" // (bool) RM intends to terminate this job
231 #define OPAL_PMIX_EVENT_TERMINATE_NODE "pmix.evterm.node" // (bool) RM intends to terminate all procs on this node
232 #define OPAL_PMIX_EVENT_TERMINATE_PROC "pmix.evterm.proc" // (bool) RM intends to terminate just this process
233 #define OPAL_PMIX_EVENT_ACTION_TIMEOUT "pmix.evtimeout" // (int) time in sec before RM will execute error response
234 
235 
236 /* attributes used to describe "spawn" attributes */
237 #define OPAL_PMIX_PERSONALITY "pmix.pers" // (char*) name of personality to use
238 #define OPAL_PMIX_HOST "pmix.host" // (char*) comma-delimited list of hosts to use for spawned procs
239 #define OPAL_PMIX_HOSTFILE "pmix.hostfile" // (char*) hostfile to use for spawned procs
240 #define OPAL_PMIX_ADD_HOST "pmix.addhost" // (char*) comma-delimited list of hosts to add to allocation
241 #define OPAL_PMIX_ADD_HOSTFILE "pmix.addhostfile" // (char*) hostfile to add to existing allocation
242 #define OPAL_PMIX_PREFIX "pmix.prefix" // (char*) prefix to use for starting spawned procs
243 #define OPAL_PMIX_WDIR "pmix.wdir" // (char*) working directory for spawned procs
244 #define OPAL_PMIX_MAPPER "pmix.mapper" // (char*) mapper to use for placing spawned procs
245 #define OPAL_PMIX_DISPLAY_MAP "pmix.dispmap" // (bool) display process map upon spawn
246 #define OPAL_PMIX_PPR "pmix.ppr" // (char*) #procs to spawn on each identified resource
247 #define OPAL_PMIX_MAPBY "pmix.mapby" // (char*) mapping policy
248 #define OPAL_PMIX_RANKBY "pmix.rankby" // (char*) ranking policy
249 #define OPAL_PMIX_BINDTO "pmix.bindto" // (char*) binding policy
250 #define OPAL_PMIX_PRELOAD_BIN "pmix.preloadbin" // (bool) preload binaries
251 #define OPAL_PMIX_PRELOAD_FILES "pmix.preloadfiles" // (char*) comma-delimited list of files to pre-position
252 #define OPAL_PMIX_NON_PMI "pmix.nonpmi" // (bool) spawned procs will not call PMIx_Init
253 #define OPAL_PMIX_STDIN_TGT "pmix.stdin" // (uint32_t) spawned proc rank that is to receive stdin
254 #define OPAL_PMIX_FWD_STDIN "pmix.fwd.stdin" // (bool) forward my stdin to the designated proc
255 #define OPAL_PMIX_FWD_STDOUT "pmix.fwd.stdout" // (bool) forward stdout from spawned procs to me
256 #define OPAL_PMIX_FWD_STDERR "pmix.fwd.stderr" // (bool) forward stderr from spawned procs to me
257 #define OPAL_PMIX_DEBUGGER_DAEMONS "pmix.debugger" // (bool) spawned app consists of debugger daemons
258 #define OPAL_PMIX_COSPAWN_APP "pmix.cospawn" // (bool) designated app is to be spawned as a disconnected
259  // job - i.e., not part of the "comm_world" of the job
260 #define OPAL_PMIX_SET_SESSION_CWD "pmix.ssncwd" // (bool) set the application's current working directory to
261  // the session working directory assigned by the RM
262 #define OPAL_PMIX_TAG_OUTPUT "pmix.tagout" // (bool) tag application output with the ID of the source
263 #define OPAL_PMIX_TIMESTAMP_OUTPUT "pmix.tsout" // (bool) timestamp output from applications
264 #define OPAL_PMIX_MERGE_STDERR_STDOUT "pmix.mergeerrout" // (bool) merge stdout and stderr streams from application procs
265 #define OPAL_PMIX_OUTPUT_TO_FILE "pmix.outfile" // (char*) output application output to given file
266 #define OPAL_PMIX_INDEX_ARGV "pmix.indxargv" // (bool) mark the argv with the rank of the proc
267 #define OPAL_PMIX_CPUS_PER_PROC "pmix.cpuperproc" // (uint32_t) #cpus to assign to each rank
268 #define OPAL_PMIX_NO_PROCS_ON_HEAD "pmix.nolocal" // (bool) do not place procs on the head node
269 #define OPAL_PMIX_NO_OVERSUBSCRIBE "pmix.noover" // (bool) do not oversubscribe the cpus
270 #define OPAL_PMIX_REPORT_BINDINGS "pmix.repbind" // (bool) report bindings of the individual procs
271 #define OPAL_PMIX_CPU_LIST "pmix.cpulist" // (char*) list of cpus to use for this job
272 #define OPAL_PMIX_JOB_RECOVERABLE "pmix.recover" // (bool) application supports recoverable operations
273 #define OPAL_PMIX_JOB_CONTINUOUS "pmix.continuous" // (bool) application is continuous, all failed procs should
274  // be immediately restarted
275 #define OPAL_PMIX_MAX_RESTARTS "pmix.maxrestarts" // (uint32_t) max number of times to restart a job
276 
277 
278 /* query attributes */
279 #define OPAL_PMIX_QUERY_NAMESPACES "pmix.qry.ns" // (char*) request a comma-delimited list of active nspaces
280 #define OPAL_PMIX_QUERY_JOB_STATUS "pmix.qry.jst" // (pmix_status_t) status of a specified currently executing job
281 #define OPAL_PMIX_QUERY_QUEUE_LIST "pmix.qry.qlst" // (char*) request a comma-delimited list of scheduler queues
282 #define OPAL_PMIX_QUERY_QUEUE_STATUS "pmix.qry.qst" // (TBD) status of a specified scheduler queue
283 #define OPAL_PMIX_QUERY_PROC_TABLE "pmix.qry.ptable" // (char*) input nspace of job whose info is being requested
284  // returns (pmix_data_array_t) an array of pmix_proc_info_t
285 #define OPAL_PMIX_QUERY_LOCAL_PROC_TABLE "pmix.qry.lptable" // (char*) input nspace of job whose info is being requested
286  // returns (pmix_data_array_t) an array of pmix_proc_info_t for
287  // procs in job on same node
288 #define OPAL_PMIX_QUERY_AUTHORIZATIONS "pmix.qry.auths" // return operations tool is authorized to perform"
289 #define OPAL_PMIX_QUERY_SPAWN_SUPPORT "pmix.qry.spawn" // return a comma-delimited list of supported spawn attributes
290 #define OPAL_PMIX_QUERY_DEBUG_SUPPORT "pmix.qry.debug" // return a comma-delimited list of supported debug attributes
291 #define OPAL_PMIX_QUERY_MEMORY_USAGE "pmix.qry.mem" // return info on memory usage for the procs indicated in the qualifiers
292 #define OPAL_PMIX_QUERY_LOCAL_ONLY "pmix.qry.local" // constrain the query to local information only
293 #define OPAL_PMIX_QUERY_REPORT_AVG "pmix.qry.avg" // report average values
294 #define OPAL_PMIX_QUERY_REPORT_MINMAX "pmix.qry.minmax" // report minimum and maximum value
295 #define OPAL_PMIX_QUERY_ALLOC_STATUS "pmix.query.alloc" // (char*) string identifier of the allocation whose status
296  // is being requested
297 #define OPAL_PMIX_TIME_REMAINING "pmix.time.remaining" // (char*) query number of seconds (uint32_t) remaining in allocation
298  // for the specified nspace
299 
300 
301 /* log attributes */
302 #define OPAL_PMIX_LOG_STDERR "pmix.log.stderr" // (char*) log string to stderr
303 #define OPAL_PMIX_LOG_STDOUT "pmix.log.stdout" // (char*) log string to stdout
304 #define OPAL_PMIX_LOG_SYSLOG "pmix.log.syslog" // (char*) log data to syslog - defaults to ERROR priority unless
305 #define OPAL_PMIX_LOG_MSG "pmix.log.msg" // (pmix_byte_object_t) message blob to be sent somewhere
306 #define OPAL_PMIX_LOG_EMAIL "pmix.log.email" // (pmix_data_array_t) log via email based on pmix_info_t containing directives
307 #define OPAL_PMIX_LOG_EMAIL_ADDR "pmix.log.emaddr" // (char*) comma-delimited list of email addresses that are to recv msg
308 #define OPAL_PMIX_LOG_EMAIL_SUBJECT "pmix.log.emsub" // (char*) subject line for email
309 #define OPAL_PMIX_LOG_EMAIL_MSG "pmix.log.emmsg" // (char*) msg to be included in email
310 
311 
312 /* debugger attributes */
313 #define OPAL_PMIX_DEBUG_STOP_ON_EXEC "pmix.dbg.exec" // (bool) job is being spawned under debugger - instruct it to pause on start
314 #define OPAL_PMIX_DEBUG_STOP_IN_INIT "pmix.dbg.init" // (bool) instruct job to stop during PMIx init
315 #define OPAL_PMIX_DEBUG_WAIT_FOR_NOTIFY "pmix.dbg.notify" // (bool) block at desired point until receiving debugger release notification
316 #define OPAL_PMIX_DEBUG_JOB "pmix.dbg.job" // (char*) nspace of the job to be debugged - the RM/PMIx server are
317 #define OPAL_PMIX_DEBUG_WAITING_FOR_NOTIFY "pmix.dbg.waiting" // (bool) job to be debugged is waiting for a release
318 
319 
320 /* Resource Manager identification */
321 #define OPAL_PMIX_RM_NAME "pmix.rm.name" // (char*) string name of the resource manager
322 #define OPAL_PMIX_RM_VERSION "pmix.rm.version" // (char*) RM version string
323 
324 
325 /* attributes for setting envars */
326 #define OPAL_PMIX_SET_ENVAR "pmix.set.envar" // (char*) string "key=value" value shall be put into the environment
327 #define OPAL_PMIX_UNSET_ENVAR "pmix.unset.envar" // (char*) unset envar specified in string
328 
329 
330 /* attributes relating to allocations */
331 #define OPAL_PMIX_ALLOC_ID "pmix.alloc.id" // (char*) provide a string identifier for this allocation request
332  // which can later be used to query status of the request
333 #define OPAL_PMIX_ALLOC_NUM_NODES "pmix.alloc.nnodes" // (uint64_t) number of nodes
334 #define OPAL_PMIX_ALLOC_NODE_LIST "pmix.alloc.nlist" // (char*) regex of specific nodes
335 #define OPAL_PMIX_ALLOC_NUM_CPUS "pmix.alloc.ncpus" // (uint64_t) number of cpus
336 #define OPAL_PMIX_ALLOC_NUM_CPU_LIST "pmix.alloc.ncpulist" // (char*) regex of #cpus for each node
337 #define OPAL_PMIX_ALLOC_CPU_LIST "pmix.alloc.cpulist" // (char*) regex of specific cpus indicating the cpus involved.
338 #define OPAL_PMIX_ALLOC_MEM_SIZE "pmix.alloc.msize" // (float) number of Mbytes
339 #define OPAL_PMIX_ALLOC_NETWORK "pmix.alloc.net" // (array) array of pmix_info_t describing network resources. If not
340  // given as part of an info struct that identifies the
341  // impacted nodes, then the description will be applied
342  // across all nodes in the requestor's allocation
343 #define OPAL_PMIX_ALLOC_NETWORK_ID "pmix.alloc.netid" // (char*) name of network
344 #define OPAL_PMIX_ALLOC_BANDWIDTH "pmix.alloc.bw" // (float) Mbits/sec
345 #define OPAL_PMIX_ALLOC_NETWORK_QOS "pmix.alloc.netqos" // (char*) quality of service level
346 #define OPAL_PMIX_ALLOC_TIME "pmix.alloc.time" // (uint32_t) time in seconds
347 
348 
349 /* job control attributes */
350 #define OPAL_PMIX_JOB_CTRL_ID "pmix.jctrl.id" // (char*) provide a string identifier for this request
351 #define OPAL_PMIX_JOB_CTRL_PAUSE "pmix.jctrl.pause" // (bool) pause the specified processes
352 #define OPAL_PMIX_JOB_CTRL_RESUME "pmix.jctrl.resume" // (bool) "un-pause" the specified processes
353 #define OPAL_PMIX_JOB_CTRL_CANCEL "pmix.jctrl.cancel" // (char*) cancel the specified request
354  // (NULL => cancel all requests from this requestor)
355 #define OPAL_PMIX_JOB_CTRL_KILL "pmix.jctrl.kill" // (bool) forcibly terminate the specified processes and cleanup
356 #define OPAL_PMIX_JOB_CTRL_RESTART "pmix.jctrl.restart" // (char*) restart the specified processes using the given checkpoint ID
357 #define OPAL_PMIX_JOB_CTRL_CHECKPOINT "pmix.jctrl.ckpt" // (char*) checkpoint the specified processes and assign the given ID to it
358 #define OPAL_PMIX_JOB_CTRL_CHECKPOINT_EVENT "pmix.jctrl.ckptev" // (bool) use event notification to trigger process checkpoint
359 #define OPAL_PMIX_JOB_CTRL_CHECKPOINT_SIGNAL "pmix.jctrl.ckptsig" // (int) use the given signal to trigger process checkpoint
360 #define OPAL_PMIX_JOB_CTRL_CHECKPOINT_TIMEOUT "pmix.jctrl.ckptsig" // (int) time in seconds to wait for checkpoint to complete
361 #define OPAL_PMIX_JOB_CTRL_SIGNAL "pmix.jctrl.sig" // (int) send given signal to specified processes
362 #define OPAL_PMIX_JOB_CTRL_PROVISION "pmix.jctrl.pvn" // (char*) regex identifying nodes that are to be provisioned
363 #define OPAL_PMIX_JOB_CTRL_PROVISION_IMAGE "pmix.jctrl.pvnimg" // (char*) name of the image that is to be provisioned
364 #define OPAL_PMIX_JOB_CTRL_PREEMPTIBLE "pmix.jctrl.preempt" // (bool) job can be pre-empted
365 #define OPAL_PMIX_JOB_CTRL_TERMINATE "pmix.jctrl.term" // (bool) politely terminate the specified procs
366 
367 
368 /* monitoring attributes */
369 #define OPAL_PMIX_MONITOR_HEARTBEAT "pmix.monitor.mbeat" // (void) register to have the server monitor the requestor for heartbeats
370 #define OPAL_PMIX_SEND_HEARTBEAT "pmix.monitor.beat" // (void) send heartbeat to local server
371 #define OPAL_PMIX_MONITOR_HEARTBEAT_TIME "pmix.monitor.btime" // (uint32_t) time in seconds before declaring heartbeat missed
372 #define OPAL_PMIX_MONITOR_HEARTBEAT_DROPS "pmix.monitor.bdrop" // (uint32_t) number of heartbeats that can be missed before taking
373  // specified action
374 #define OPAL_PMIX_MONITOR_FILE "pmix.monitor.fmon" // (char*) register to monitor file for signs of life
375 #define OPAL_PMIX_MONITOR_FILE_SIZE "pmix.monitor.fsize" // (bool) monitor size of given file is growing to determine app is running
376 #define OPAL_PMIX_MONITOR_FILE_ACCESS "pmix.monitor.faccess" // (char*) monitor time since last access of given file to determine app is running
377 #define OPAL_PMIX_MONITOR_FILE_MODIFY "pmix.monitor.fmod" // (char*) monitor time since last modified of given file to determine app is running
378 #define OPAL_PMIX_MONITOR_FILE_CHECK_TIME "pmix.monitor.ftime" // (uint32_t) time in seconds between checking file
379 #define OPAL_PMIX_MONITOR_FILE_DROPS "pmix.monitor.fdrop" // (uint32_t) number of file checks that can be missed before taking
380  // specified action
381 
382 
383 /* define a scope for data "put" by PMI per the following:
384  *
385  * OPAL_PMI_LOCAL - the data is intended only for other application
386  * processes on the same node. Data marked in this way
387  * will not be included in data packages sent to remote requestors
388  * OPAL_PMI_REMOTE - the data is intended solely for applications processes on
389  * remote nodes. Data marked in this way will not be shared with
390  * other processes on the same node
391  * OPAL_PMI_GLOBAL - the data is to be shared with all other requesting processes,
392  * regardless of location
393  */
394 #define OPAL_PMIX_SCOPE PMIX_UINT
395 typedef enum {
397  OPAL_PMIX_LOCAL, // share to procs also on this node
398  OPAL_PMIX_REMOTE, // share with procs not on this node
401 
402 /* define a range for data "published" by PMI */
403 #define OPAL_PMIX_DATA_RANGE OPAL_UINT
404 typedef enum {
406  OPAL_PMIX_RANGE_RM, // data is intended for the host resource manager
407  OPAL_PMIX_RANGE_LOCAL, // available on local node only
408  OPAL_PMIX_RANGE_NAMESPACE, // data is available to procs in the same nspace only
409  OPAL_PMIX_RANGE_SESSION, // data available to all procs in session
410  OPAL_PMIX_RANGE_GLOBAL, // data available to all procs
411  OPAL_PMIX_RANGE_CUSTOM // range is specified in a opal_value_t
413 
414 /* define a "persistence" policy for data published by clients */
415 typedef enum {
416  OPAL_PMIX_PERSIST_INDEF = 0, // retain until specifically deleted
417  OPAL_PMIX_PERSIST_FIRST_READ, // delete upon first access
418  OPAL_PMIX_PERSIST_PROC, // retain until publishing process terminates
419  OPAL_PMIX_PERSIST_APP, // retain until application terminates
420  OPAL_PMIX_PERSIST_SESSION // retain until session/allocation terminates
422 
423 
424 /* define allocation request flags */
425 typedef enum {
432 
433 
434 
436 /* NOTE: the pmix_info_t is essentially equivalent to the opal_value_t
437  * Hence, we do not define an opal_value_t */
438 
439 
440 
441 typedef struct {
447 
448 
449 
450 typedef struct {
452  char *cmd;
453  char **argv;
454  char **env;
455  char *cwd;
456  int maxprocs;
459 /* utility macros for working with pmix_app_t structs */
461 
462 
463 
464 typedef struct {
467  uint8_t *blob;
468  size_t size;
471 
472 
473 typedef struct {
475  char **keys;
479 
480 
482 typedef void (*opal_pmix_release_cbfunc_t)(void *cbdata);
483 
484 /* define a callback function that is solely used by servers, and
485  * not clients, to return modex data in response to "fence" and "get"
486  * operations. The returned blob contains the data collected from each
487  * server participating in the operation. */
488 typedef void (*opal_pmix_modex_cbfunc_t)(int status,
489  const char *data, size_t ndata, void *cbdata,
490  opal_pmix_release_cbfunc_t relcbfunc, void *relcbdata);
491 
492 /* define a callback function for calls to spawn_nb - the function
493  * will be called upon completion of the spawn command. The status
494  * will indicate whether or not the spawn succeeded. The jobid
495  * of the spawned processes will be returned, along with any provided
496  * callback data. */
497 typedef void (*opal_pmix_spawn_cbfunc_t)(int status, opal_jobid_t jobid, void *cbdata);
498 
499 /* define a callback for common operations that simply return
500  * a status. Examples include the non-blocking versions of
501  * Fence, Connect, and Disconnect */
502 typedef void (*opal_pmix_op_cbfunc_t)(int status, void *cbdata);
503 
504 /* define a callback function for calls to lookup_nb - the
505  * function will be called upon completion of the command with the
506  * status indicating the success of failure of the request. Any
507  * retrieved data will be returned in a list of opal_pmix_pdata_t's.
508  * The nspace/rank of the process that provided each data element is
509  * also returned.
510  *
511  * Note that these structures will be released upon return from
512  * the callback function, so the receiver must copy/protect the
513  * data prior to returning if it needs to be retained */
514 
515 typedef void (*opal_pmix_lookup_cbfunc_t)(int status,
516  opal_list_t *data,
517  void *cbdata);
518 
519 /* define a callback function by which event handlers can notify
520  * us that they have completed their action, and pass along any
521  * further information for subsequent handlers */
522 typedef void (*opal_pmix_notification_complete_fn_t)(int status, opal_list_t *results,
523  opal_pmix_op_cbfunc_t cbfunc, void *thiscbdata,
524  void *notification_cbdata);
525 
526 /* define a callback function for the evhandler. Upon receipt of an
527  * event notification, the active module will execute the specified notification
528  * callback function, providing:
529  *
530  * status - the error that occurred
531  * source - identity of the proc that generated the event
532  * info - any additional info provided regarding the error.
533  * results - any info from prior event handlers
534  * cbfunc - callback function to execute when the evhandler is
535  * finished with the provided data so it can be released
536  * cbdata - pointer to be returned in cbfunc
537  *
538  * Note that different resource managers may provide differing levels
539  * of support for event notification to application processes. Thus, the
540  * info list may be NULL or may contain detailed information of the event.
541  * It is the responsibility of the application to parse any provided info array
542  * for defined key-values if it so desires.
543  *
544  * Possible uses of the opal_value_t list include:
545  *
546  * - for the RM to alert the process as to planned actions, such as
547  * to abort the session, in response to the reported event
548  *
549  * - provide a timeout for alternative action to occur, such as for
550  * the application to request an alternate response to the event
551  *
552  * For example, the RM might alert the application to the failure of
553  * a node that resulted in termination of several processes, and indicate
554  * that the overall session will be aborted unless the application
555  * requests an alternative behavior in the next 5 seconds. The application
556  * then has time to respond with a checkpoint request, or a request to
557  * recover from the failure by obtaining replacement nodes and restarting
558  * from some earlier checkpoint.
559  *
560  * Support for these options is left to the discretion of the host RM. Info
561  * keys are included in the common definions above, but also may be augmented
562  * on a per-RM basis.
563  *
564  * On the server side, the notification function is used to inform the host
565  * server of a detected error in the PMIx subsystem and/or client */
566 typedef void (*opal_pmix_notification_fn_t)(int status,
567  const opal_process_name_t *source,
568  opal_list_t *info, opal_list_t *results,
570  void *cbdata);
571 
572 /* define a callback function for calls to register_evhandler. The
573  * status indicates if the request was successful or not, evhandler_ref is
574  * a size_t reference assigned to the evhandler by PMIX, this reference
575  * must be used to deregister the err handler. A ptr to the original
576  * cbdata is returned. */
577 typedef void (*opal_pmix_evhandler_reg_cbfunc_t)(int status,
578  size_t evhandler_ref,
579  void *cbdata);
580 
581 /* define a callback function for calls to get_nb. The status
582  * indicates if the requested data was found or not - a pointer to the
583  * opal_value_t structure containing the found data is returned. The
584  * pointer will be NULL if the requested data was not found. */
585 typedef void (*opal_pmix_value_cbfunc_t)(int status,
586  opal_value_t *kv, void *cbdata);
587 
588 
589 /* define a callback function for calls to PMIx_Query. The status
590  * indicates if requested data was found or not - a list of
591  * opal_value_t will contain the key/value pairs. */
592 typedef void (*opal_pmix_info_cbfunc_t)(int status,
593  opal_list_t *info,
594  void *cbdata,
595  opal_pmix_release_cbfunc_t release_fn,
596  void *release_cbdata);
597 
598 /* Callback function for incoming tool connections - the host
599  * RTE shall provide a jobid/rank for the connecting tool. We
600  * assume that a rank=0 will be the normal assignment, but allow
601  * for the future possibility of a parallel set of tools
602  * connecting, and thus each proc requiring a rank */
603 typedef void (*opal_pmix_tool_connection_cbfunc_t)(int status,
604  opal_process_name_t proc,
605  void *cbdata);
606 
607 
609 
610 #endif
opal_jobid_t
uint32_t opal_jobid_t
Definition: dss_types.h:44
opal_pmix_alloc_directive_t
opal_pmix_alloc_directive_t
Definition: pmix_types.h:425
OPAL_PMIX_RANGE_RM
@ OPAL_PMIX_RANGE_RM
Definition: pmix_types.h:406
opal_pmix_persistence_t
opal_pmix_persistence_t
Definition: pmix_types.h:415
relcbfunc
static void relcbfunc(void *cbdata)
Definition: pmix_control.c:38
OBJ_CLASS_DECLARATION
OBJ_CLASS_DECLARATION(opal_pmix_pdata_t)
OPAL_PMIX_ALLOC_EXTEND
@ OPAL_PMIX_ALLOC_EXTEND
Definition: pmix_types.h:428
info
static output_desc_t info[64]
Definition: output.c:114
proc.h
opal_value_t
Definition: dss_types.h:137
opal_pmix_release_cbfunc_t
void(* opal_pmix_release_cbfunc_t)(void *cbdata)
Definition: pmix_types.h:482
opal_pmix_modex_cbfunc_t
void(* opal_pmix_modex_cbfunc_t)(int status, const char *data, size_t ndata, void *cbdata, opal_pmix_release_cbfunc_t relcbfunc, void *relcbdata)
Definition: pmix_types.h:488
opal_pmix_notification_fn_t
void(* opal_pmix_notification_fn_t)(int status, const opal_process_name_t *source, opal_list_t *info, opal_list_t *results, opal_pmix_notification_complete_fn_t cbfunc, void *cbdata)
Definition: pmix_types.h:566
opal_pmix_evhandler_reg_cbfunc_t
void(* opal_pmix_evhandler_reg_cbfunc_t)(int status, size_t evhandler_ref, void *cbdata)
Definition: pmix_types.h:577
OPAL_PMIX_REMOTE
@ OPAL_PMIX_REMOTE
Definition: pmix_types.h:398
opal_pmix_app_t::maxprocs
int maxprocs
Definition: pmix_types.h:456
OPAL_PMIX_PERSIST_SESSION
@ OPAL_PMIX_PERSIST_SESSION
Definition: pmix_types.h:420
opal_pmix_modex_data_t::proc
opal_process_name_t proc
Definition: pmix_types.h:466
OPAL_PMIX_GLOBAL
@ OPAL_PMIX_GLOBAL
Definition: pmix_types.h:399
cbfunc
static void cbfunc(int status, void *cbdata)
Definition: show_help.c:619
OPAL_PMIX_PERSIST_INDEF
@ OPAL_PMIX_PERSIST_INDEF
Definition: pmix_types.h:416
OPAL_PMIX_RANGE_UNDEF
@ OPAL_PMIX_RANGE_UNDEF
Definition: pmix_types.h:405
opal_pmix_pdata_t
Definition: pmix_types.h:441
BEGIN_C_DECLS
#define BEGIN_C_DECLS
code that should be in ompi_config_bottom.h regardless of build status
Definition: opal_config_bottom.h:85
jobid
static uint32_t jobid(void)
Definition: coll_hcoll_rte.c:330
dss_types.h
opal_object_t
Base object.
Definition: opal_object.h:194
OPAL_PMIX_RANGE_CUSTOM
@ OPAL_PMIX_RANGE_CUSTOM
Definition: pmix_types.h:411
opal_pmix_scope_t
opal_pmix_scope_t
Definition: pmix_types.h:395
OPAL_PMIX_PERSIST_PROC
@ OPAL_PMIX_PERSIST_PROC
Definition: pmix_types.h:418
OPAL_PMIX_ALLOC_RELEASE
@ OPAL_PMIX_ALLOC_RELEASE
Definition: pmix_types.h:429
opal_pmix_data_range_t
opal_pmix_data_range_t
Definition: pmix_types.h:404
opal_pmix_app_t
Definition: pmix_types.h:450
OPAL_PMIX_RANGE_GLOBAL
@ OPAL_PMIX_RANGE_GLOBAL
Definition: pmix_types.h:410
opal_pmix_pdata_t::value
opal_value_t value
Definition: pmix_types.h:444
OPAL_PMIX_PERSIST_FIRST_READ
@ OPAL_PMIX_PERSIST_FIRST_READ
Definition: pmix_types.h:417
OPAL_PMIX_LOCAL
@ OPAL_PMIX_LOCAL
Definition: pmix_types.h:397
opal_pmix_spawn_cbfunc_t
void(* opal_pmix_spawn_cbfunc_t)(int status, opal_jobid_t jobid, void *cbdata)
Definition: pmix_types.h:497
opal_pmix_modex_data_t::size
size_t size
Definition: pmix_types.h:468
opal_process_name_t
Definition: dss_types.h:46
opal_pmix_tool_connection_cbfunc_t
void(* opal_pmix_tool_connection_cbfunc_t)(int status, opal_process_name_t proc, void *cbdata)
Definition: pmix_types.h:603
opal_list_item_t
Definition: opal_list.h:103
opal_pmix_app_t::argv
char ** argv
Definition: pmix_types.h:453
opal_pmix_pdata_t::proc
opal_process_name_t proc
Definition: pmix_types.h:443
OPAL_PMIX_ALLOC_REAQCUIRE
@ OPAL_PMIX_ALLOC_REAQCUIRE
Definition: pmix_types.h:430
opal_pmix_app_t::super
opal_list_item_t super
Definition: pmix_types.h:451
OPAL_PMIX_PERSIST_APP
@ OPAL_PMIX_PERSIST_APP
Definition: pmix_types.h:419
opal_pmix_value_cbfunc_t
void(* opal_pmix_value_cbfunc_t)(int status, opal_value_t *kv, void *cbdata)
Definition: pmix_types.h:585
OPAL_PMIX_RANGE_NAMESPACE
@ OPAL_PMIX_RANGE_NAMESPACE
Definition: pmix_types.h:408
opal_pmix_modex_data_t
Definition: pmix_types.h:464
opal_pmix_app_t::info
opal_list_t info
Definition: pmix_types.h:457
opal_pmix_query_t
Definition: pmix_types.h:473
opal_pmix_query_t::super
opal_list_item_t super
Definition: pmix_types.h:474
opal_pmix_query_t::qualifiers
opal_list_t qualifiers
Definition: pmix_types.h:476
OPAL_PMIX_RANGE_LOCAL
@ OPAL_PMIX_RANGE_LOCAL
Definition: pmix_types.h:407
opal_pmix_query_t::keys
char ** keys
Definition: pmix_types.h:475
opal_pmix_app_t::cwd
char * cwd
Definition: pmix_types.h:455
OPAL_PMIX_RANGE_SESSION
@ OPAL_PMIX_RANGE_SESSION
Definition: pmix_types.h:409
opal_pmix_notification_complete_fn_t
void(* opal_pmix_notification_complete_fn_t)(int status, opal_list_t *results, opal_pmix_op_cbfunc_t cbfunc, void *thiscbdata, void *notification_cbdata)
Definition: pmix_types.h:522
opal_pmix_modex_data_t::blob
uint8_t * blob
Definition: pmix_types.h:467
opal_list_t
Definition: opal_list.h:152
opal_pmix_pdata_t::super
opal_list_item_t super
Definition: pmix_types.h:442
opal_pmix_modex_data_t::super
opal_object_t super
Definition: pmix_types.h:465
OPAL_PMIX_SCOPE_UNDEF
@ OPAL_PMIX_SCOPE_UNDEF
Definition: pmix_types.h:396
OPAL_PMIX_ALLOC_UNDEF
@ OPAL_PMIX_ALLOC_UNDEF
Definition: pmix_types.h:426
opal_pmix_app_t::env
char ** env
Definition: pmix_types.h:454
OPAL_PMIX_ALLOC_NEW
@ OPAL_PMIX_ALLOC_NEW
Definition: pmix_types.h:427
opal_pmix_info_cbfunc_t
void(* opal_pmix_info_cbfunc_t)(int status, opal_list_t *info, void *cbdata, opal_pmix_release_cbfunc_t release_fn, void *release_cbdata)
Definition: pmix_types.h:592
opal_pmix_lookup_cbfunc_t
void(* opal_pmix_lookup_cbfunc_t)(int status, opal_list_t *data, void *cbdata)
Definition: pmix_types.h:515
opal_pmix_op_cbfunc_t
void(* opal_pmix_op_cbfunc_t)(int status, void *cbdata)
Definition: pmix_types.h:502
END_C_DECLS
#define END_C_DECLS
Definition: opal_config_bottom.h:86
opal_pmix_app_t::cmd
char * cmd
Definition: pmix_types.h:452