Skip to content

Commit c5eaa38

Browse files
committed
mtl ofi: Change from opt-in to opt-out provider selection
Change default provider selection logic for the OFI MTL. The old logic was whitelist-only, so any new HPC NIC provider would have to ask users to do extra work or wait for an OMPI release to be whitelisted. The reason for the logic was to avoid selecting a "generic" provider like sockets or shm that would frequently have worse performance than the optimized BTL options Open MPI supports. With the change, we blacklist the (small, relatively static) list of providers that duplicate internal capabilities. Users can use one of thse blacklisted providers in two ways: first, they can explicitly request the provider in the include list (which will override the default exclude list) and second, the can set a new empty exclude list. Since most HPC networks require special libraries and therefore an explicit build of libfabric, it is highly unlikely that this change will cause users to use libfabric when they didn't want to do so. It does, however, solve the whitelisting problem. Signed-off-by: Brian Barrett <bbarrett@amazon.com>
1 parent c028ed5 commit c5eaa38

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

ompi/mca/mtl/ofi/mtl_ofi_component.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ ompi_mtl_ofi_component_register(void)
124124
MCA_BASE_VAR_SCOPE_READONLY,
125125
&param_priority);
126126

127-
prov_include = "psm,psm2,gni";
127+
prov_include = NULL;
128128
mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version,
129129
"provider_include",
130130
"Comma-delimited list of OFI providers that are considered for use (e.g., \"psm,psm2\"; an empty value means that all providers will be considered). Mutually exclusive with mtl_ofi_provider_exclude.",
@@ -133,7 +133,7 @@ ompi_mtl_ofi_component_register(void)
133133
MCA_BASE_VAR_SCOPE_READONLY,
134134
&prov_include);
135135

136-
prov_exclude = NULL;
136+
prov_exclude = "shm,sockets,tcp,udp,rstream";
137137
mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version,
138138
"provider_exclude",
139139
"Comma-delimited list of OFI providers that are not considered for use (default: \"sockets,mxm\"; empty value means that all providers will be considered). Mutually exclusive with mtl_ofi_provider_include.",

0 commit comments

Comments
 (0)