PMIX_VALUE_T(5)
π pmix_value_t β bestie edition π
okay so this is the pmix_value_t man page (that's the section 5 of the OpenPMIx manuals, iykyk) and honestly? it's giving "the little struct that could". it's a value plus its type. that's it. that's the whole vibe. but fr fr it's kind of the main character of the entire PMIx universe, so let's get into it π«Ά
β¨ NAME β¨
pmix_value_t β defines a value along with its type π
β¨ SYNTAX β¨
πΈ C Syntax πΈ
#include <pmix_common.h>
typedef struct pmix_value {
pmix_data_type_t type;
union {
bool flag;
uint8_t byte;
char *string;
size_t size;
pid_t pid;
int integer;
int8_t int8;
int16_t int16;
int32_t int32;
int64_t int64;
unsigned int uint;
uint8_t uint8;
uint16_t uint16;
uint32_t uint32;
uint64_t uint64;
float fval;
double dval;
struct timeval tv;
time_t time;
pmix_status_t status;
pmix_rank_t rank;
pmix_nspace_t *nspace;
pmix_proc_t *proc;
pmix_byte_object_t bo;
pmix_persistence_t persist;
pmix_scope_t scope;
pmix_data_range_t range;
pmix_proc_state_t state;
pmix_proc_info_t *pinfo;
pmix_data_array_t *darray;
void *ptr;
pmix_alloc_directive_t adir;
pmix_resource_block_directive_t rbdir;
pmix_envar_t envar;
pmix_coord_t *coord;
pmix_link_state_t linkstate;
pmix_job_state_t jstate;
pmix_topology_t *topo;
pmix_cpuset_t *cpuset;
pmix_locality_t locality;
pmix_geometry_t *geometry;
pmix_device_type_t devtype;
pmix_device_t *device;
pmix_device_distance_t *devdist;
pmix_endpoint_t *endpoint;
pmix_data_buffer_t *dbuf;
pmix_resource_unit_t *resunit;
pmix_node_pid_t *nodepid;
} data;
} pmix_value_t;
no cap, that union is long. it's a whole roster of possible types and only ONE of them is real at any given moment β the type field is the one that tells you which π
π Python Syntax π
from pmix import *
foo = {'value': value, 'val_type': type}
where type is the PMIx datatype of value, and value is the associated value expressed in the appropriate Python form for the specified datatype β¨
β¨ DESCRIPTION β¨
so pmix_value_t is the structure that carries a value around. it's what you hand to PMIx_Put and what PMIx_Get hands back to you β plus it shows up in a whole bunch of the other PMIx functions too. it's everywhere. iconic behaviour, honestly. π
and here's the slay part: if you wanna stash a whole collection of values under a single key, you just pass a pmix_value_t that contains an array of type pmix_data_array_t, and every element inside that array carries its own object. one key, many values. we love a bundle π
see also: π
PMIx_Initialized(3)
π Copyright π
2014-2026, OpenPMIx Community
okay that's the whole page bestie, you ate it, go forth and check your datatypes before you read that union π
this was PMIX_VALUE_T(5), page PMIX_VALUE_T(5) from the OpenPMIx manual set, dated Aug 04, 2026. mwah πβ¨π¦
π¦ where this page comes from
- ubuntu stonking: libpmix-dev 6.1.1~rc2-4 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms