18.3.46. pmix_fabric_t
pmix_fabric_t — Describes a fabric for use with PMIx fabric interfaces
18.3.46.1. SYNTAX
18.3.46.1.1. C Syntax
#include <pmix_common.h>
typedef struct pmix_fabric_s {
char *name;
size_t index;
pmix_info_t *info;
size_t ninfo;
void *module;
} pmix_fabric_t;
18.3.46.2. DESCRIPTION
The pmix_fabric_t structure is used by a Workload Manager (WLM) to interact with fabric-related PMIx interfaces, and to provide information about the fabric for use in scheduling algorithms or other purposes.
The fields of the structure are:
name— an optional user-supplied string name identifying the fabric referenced by this structure. If provided, the field must be aNULL-terminated string composed of standard alphanumeric values supported by common utilities such asstrcmp.index— a PMIx-provided number identifying this registration object.info— an array of pmix_info_t(5) structures containing information (provided by the PMIx library) about the fabric.ninfo— the number of elements in theinfoarray.module— an opaque object pointer reserved for use by the PMIx server library.
Only the name field is provided by the user — all other fields
are provided by the PMIx library and must not be modified by the user. The
info array contains a varying amount of information depending upon both
the PMIx implementation and the information available from the fabric
vendor.
For performance reasons, the PMIx library does not provide thread protection for accessing the information in the pmix_fabric_t structure. Callers must therefore coordinate their access to the structure with any updates driven by the PMIx library.
18.3.46.3. STATIC INITIALIZER
A statically declared pmix_fabric_t may be initialized with the
PMIX_FABRIC_STATIC_INIT macro, which sets name, info, and module to NULL, index to SIZE_MAX (the “unset” sentinel), and ninfo to 0:
pmix_fabric_t fabric = PMIX_FABRIC_STATIC_INIT;