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 a NULL-terminated string composed of standard alphanumeric values supported by common utilities such as strcmp.

  • 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 the info array.

  • 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;