Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
core: add environment variable for selective HMEM initialization
In order to provide selection mechanism for HMEM interfaces, a new environment variable has been created -- FI_HMEM. The nature of FI_HMEM is analogous to FI_PROVIDER, but intended for use a selection mechanism for HMEM interfaces and not libfabric providers. If not specified, HMEM interface initialize proceeds as it would prior to this commit -- initializing any HMEM interface that was compiled into the libfabric library. If specified, FI_HMEM limits the initialization of any HMEM provider that does not exist with the string, except FI_HMEM_SYSTEM which is always loaded. This feature allows libfabric customers using a deployment with multiple HMEM interfaces to avoid the costs associated with the dlopen on system where only a subset -- if any -- of the HMEM interfaces are actually available. The benefit of this change is most visible on heterogenous system with a mix of GPU accelerators and the libraries that support them, or on systems with no GPU accelerators but the customer is using a vendor-provided build of libfabric that has support for a variety of HMEM interfaces. Today, Libfabric will attempt to initialize any HMEM monitor that can be initialized. With this change, only selected HMEM interfaces will be initialized even if the library supports more than the customer requested. Signed-off-by: James Swaro <[email protected]>
- Loading branch information