PMIX_VALUE_T(5)

πŸ“¦ version 6.1.1~rc2, in ubuntu stonking

πŸ’– 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)

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