12.8. Internal frameworks
The Modular Component Architecture (MCA) is the backbone of PMIx – most services and functionality are implemented through MCA components.
Here is a list of all the component frameworks in PMIx as of this writing July-2024:
bfrops
: Buffer Operations, including support for pack/unpack, copy, print, compare, and load of data types and structured objectsgds
: Generalized DataStore for storing job-level and other datapcompress
: Compress to support compression of large data objectspdl
: DLopen supportpfexec
: Fork/Exec support to allow tools to start child processespgpu
: GPU supportpif
: Interface discoverypinstalldirs
: Install Directories - provides a struct containing all installation locationsplog
: Logging of user-provided alertspmdl
: Programming Model - provides support for a range of programming models and libraries, including collection of default parameters and environmental variables for forwarding and setting of library-specific environmental variablespnet
: Network support, including computation of endpoints to support theinstant on
launch procedurepreg
: Regular expression generator and parserprm
: Resource Manager support - translation of generic PMIx directives (e.g., mapping and resource definitions) to RM-specific values and general RM-specific supportpsec
: Security operations such as connection handshakespsensor
: Sensor framework for monitoring processes, including resource utilization and state-of-health (e.g., heartbeat)psquash
: Internal framework for squashing integer data values during transmissionpstat
: Statistics, including reporting resource usage at the process, node, and disk levelspstrg
: Storage system support for querying availability and characteristics of file systemsptl
: Transport Layer for client-server and tool-server communication
12.8.1. Framework notes
Each framework typically has one or more components that are used at
run-time. For example, the bfrops
framework is used by PMIx
to pack/unpack data for transmission, copy data objects, and other
data manipulation operations. The v3
component, for example,
supports the data object definitions introduced in v3 of the
library, while the v41
component supports those introduced
in v4.1.
12.8.2. MCA parameter notes
Each component typically has some tunable parameters that can be changed at run-time. Use the pmix_info(1) command to check a component to see what its tunable parameters are. For example:
shell$ pmix_info --param psensor file
shows the parameters (and default values) for the file
psensor
component.
See this section for details on how to set MCA parameters at run time.