18.3.41. pmix_locality_t

pmix_locality_t — Bitmask describing the relative locality of two processes

18.3.41.1. SYNTAX

18.3.41.1.1. C Syntax

#include <pmix_common.h>

typedef uint16_t pmix_locality_t;
#define PMIX_LOCALITY_UNKNOWN           0x0000
#define PMIX_LOCALITY_NONLOCAL          0x8000
#define PMIX_LOCALITY_SHARE_HWTHREAD    0x0001
#define PMIX_LOCALITY_SHARE_CORE        0x0002
#define PMIX_LOCALITY_SHARE_L1CACHE     0x0004
#define PMIX_LOCALITY_SHARE_L2CACHE     0x0008
#define PMIX_LOCALITY_SHARE_L3CACHE     0x0010
#define PMIX_LOCALITY_SHARE_PACKAGE     0x0020
#define PMIX_LOCALITY_SHARE_NUMA        0x0040
#define PMIX_LOCALITY_SHARE_NODE        0x4000

18.3.41.2. DESCRIPTION

The pmix_locality_t datatype is a uint16_t bitmask that defines the relative locality of two processes on a node. The following constants represent specific bits in the mask and can be tested using standard bit-test methods. Multiple PMIX_LOCALITY_SHARE_* bits may be set simultaneously to describe the full set of hardware locations shared by the two processes.

PMIX_LOCALITY_UNKNOWN (0x0000)

All bits are set to zero, indicating that the relative locality of the two processes is unknown.

PMIX_LOCALITY_NONLOCAL (0x8000)

The two processes do not share any common locations.

PMIX_LOCALITY_SHARE_HWTHREAD (0x0001)

The two processes share at least one hardware thread.

PMIX_LOCALITY_SHARE_CORE (0x0002)

The two processes share at least one core.

PMIX_LOCALITY_SHARE_L1CACHE (0x0004)

The two processes share at least an L1 cache.

PMIX_LOCALITY_SHARE_L2CACHE (0x0008)

The two processes share at least an L2 cache.

PMIX_LOCALITY_SHARE_L3CACHE (0x0010)

The two processes share at least an L3 cache.

PMIX_LOCALITY_SHARE_PACKAGE (0x0020)

The two processes share at least a package.

PMIX_LOCALITY_SHARE_NUMA (0x0040)

The two processes share at least one NUMA region.

PMIX_LOCALITY_SHARE_NODE (0x4000)

The two processes are executing on the same node.

Implementers and vendors may choose to extend these definitions as needed to describe a particular system.

A pmix_locality_t value is computed by PMIx_Get_relative_locality(3) from the locality strings of two processes.