Library Constants#

ISHMEM_MAJOR_VERSION#

Integer representing the major version of Intel® SHMEM Specification in use.

ISHMEM_MINOR_VERSION#

Integer representing the minor version of Intel® SHMEM Specification in use.

ISHMEM_MAX_NAME_LEN#

Integer representing the maximum length of ISHMEM_VENDOR_STRING.

ISHMEM_VENDOR_STRING#

String representing vendor defined information of size at most ISHMEM_MAX_NAME_LEN. The string ISHMEM_VENDOR_STRING is terminated by a null character.

Environment Variables#

The Intel® SHMEM specification provides a set of environment variables that allows users to configure the implementation and receive information about the implementation.

ISHMEM_VERSION#

If set to any value, print the library version at startup.

ISHMEM_INFO#

If set to any value, print helpful text about all these environment variables.

ISHMEM_SYMMETRIC_SIZE#

Specifies the size (in bytes) of the symmetric heap memory per PE. The resulting size is implementation-defined and must be at least as large as the integer ceiling of the product of the numeric prefix and the scaling factor. The allowed character suffixes for the scaling factor are as follows:

  • k or K multiplies by \(2^{10}\) (kibibytes)

  • m or M multiplies by \(2^{20}\) (mebibytes)

  • g or G multiplies by \(2^{30}\) (gibibytes)

  • t or T multiplies by \(2^{40}\) (tebibytes)

For example, string “20m” is equivalent to the integer value 20971520, or 20 mebibytes. Similarly the string “3.1M” is equivalent to the integer value 3250586. Only one multiplier is recognized and any characters following the multiplier are ignored, so “20kk” will not produce the same result as “20m”. Usage of string “.5m” will yield the same result as the string “0.5m”. An invalid value for ISHMEM_SYMMETRIC_SIZE is an error, which causes the Intel® SHMEM library to terminate the program.

ISHMEM_DEBUG#

If set to any value, enable debugging messages.

ISHMEM_SHMEM_LIB_NAME#

Informs the Intel® SHMEM library of the shared object name (e.g. libshmem.so) of the host-side OpenSHMEM library to be dynamically loaded. The default value is libsma.so.

ISHMEM_ENABLE_GPU_IPC#

Enables the intra-node inter-process communication (IPC) implementation. The default value is 1 which enables use of the Intel® \(\text{X}^e\) Link fabric for inter-GPU communications on the same super-node. The value can be set to 0 for situations in which Intel® \(\text{X}^e\) Link fabric is not available or does not connect all the GPUs.

ISHMEM_ENABLE_GPU_IPC_PIDFD#

Enables the pidfd implementation of IPC. This is enabled by default, but will fail on older Linux kernels that do not support the necessary systiem calls. In such cases, use ISHMEM_ENABLE_GPU_IPC_PIDFD=0

ISHMEM_ENABLE_ACCESSIBLE_HOST_HEAP#

Place symmetric heap in host unified shared memory (allocated on the host and accessible by the host and device).