Skip to content

Commit 8b30249

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 <[email protected]> (cherry picked from commit c5eaa38)
1 parent 468418a commit 8b30249

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
@@ -108,7 +108,7 @@ ompi_mtl_ofi_component_register(void)
108108
MCA_BASE_VAR_SCOPE_READONLY,
109109
&param_priority);
110110

111-
prov_include = "psm,psm2,gni";
111+
prov_include = NULL;
112112
mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version,
113113
"provider_include",
114114
"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.",
@@ -117,7 +117,7 @@ ompi_mtl_ofi_component_register(void)
117117
MCA_BASE_VAR_SCOPE_READONLY,
118118
&prov_include);
119119

120-
prov_exclude = NULL;
120+
prov_exclude = "shm,sockets,tcp,udp,rstream";
121121
mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version,
122122
"provider_exclude",
123123
"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)