I was poking through /tmp/jnysal-openib-wireup branch this morning
(because I suddenly have a need for btl_openib_if_include and
btl_openib_if_exclude) and found two minor problems:
1. The logic for if_exclude was not correct. I committed a fix for
2. I'm a bit confused on a) how the new MCA params mca_num_hcas and
map_num_procs_per_hca are supposed to be used and b) what their
default values should be.
2a. I don't quite understand the logic of is_hca_allowed(); I could
not get it to work properly. Specifically, I have 2 machines each
with 2 HCAs (mthca0 has 1 port, mthca1 has 2 ports). If I ran 2
procs (regardless of byslot or bynode), is_hca_allowed() would always
return false for the 2nd proc. So I put a temporary override in
is_hca_allowed() to simply always return true. Can you explain how
the logic is supposed to work in that function?
2b. The default values of max_num_hcas and map_num_procs_per_hca are
both 1. Based on my (potentially flawed) understanding of how these
MCA params are meant to be used, this is different than the current
default behavior. The current default is that all procs use all
ACTIVE ports on all HCAs. I *think* your new default param values
will set each proc to use the ACTIVE ports on exactly one HCA,
regardless how many there are in the host. Did you mean to do that?
Also: both values must currently be >=1; should we allow -1 for both
of these values, meaning that they can be "infinite" (i.e., based on
the number of HCAs in the host)?