On Oct 20, 2015, at 5:26 PM, Paul Hargrove <phhargr...@lbl.gov> wrote:
> 
> I have multiple ports of the same type, lets say a dual-port Mellanox HCA, 
> and just want to disable one of them (reserving it for Luster perhaps).
> If OMPI is hiding from me the details of the API selection, how do I 
> enable/disable specific ports?
> Right now I believe that I need two distinct MCA params to instruct ibv and 
> mxm both to exclude a given IB port.
> I assume I will need two more params to tell ofi and ucx not to use the port 
> either, right?
> Now lets assume I've got the portals4 reference implementation (over verbs) 
> installed too.
> Now that makes no less than 5 MCA params I might need to pass to tell 5 
> different components to keep their hands off the reserved port.
> 
> If I didn't know the HCA model/vendor, I might need a sixth and seventh MCA 
> param to tell psm and psm2 not to use the port.
> However, if the port name is something like "mlx4_0.0" or "ipath0.0" then we 
> can at least know if mxm or psm* are even possible.

I don't think it gets up to 7 MCA params to guarantee a specific API path is 
used to get to a specific network / port, but your overall point is fair.  I 
think it reduces to:

Should a "higher-level abstraction" CLI set of options include the option to 
select a specific network interface?

I don't know the answer to that.  One could argue that the "expert" layer will 
already let you do that, and that it will be difficult enough to create this 
new set of "higher abstraction" CLI options without *also* allowing the 
specification of interface+port.  But one could also argue -- and I think you 
are :-) -- that without allowing the specification of interface+port, the 
"higher abstraction" CLI options are significantly less useful.

> I don't suggest that OMPI should magically discover "aliases" for a port but 
> if I have IPoIB the problem grows:
> I need yet more MCA params to tell tcp, ofi (and maybe ucx?) not to use the 
> corresponding ibN interface.
> And don't forget about oob_tcp_if_exclude.

I'm not sure you're adding up MCA params correctly.  To guarantee that I use a 
specific IB interface (and not MXM and not PSM and not TCP/IPoIB and not ...), 
for example, you only need three:

    mpirun --mca pml ob1 --mca btl openib,vader,self --mca 
btl_openib_if_include mlx4_0:0 ...

(but don't get me wrong -- I acknowledge that you need to be an OMPI expert to 
know/figure that out, and that's not desirable)

Are there other cases where the MCA param count really does explode to 10 or 
more?

> To ensure that Jeff doesn't dodge the issue, lets assume this desire to 
> disable one port is a *transient* need/desire by an end-user.
> In other words, I don't accept "admin should place all 11 MCA params in the 
> global config file" as a valid solution.

Yes -- same point above: you're arguing that without allowing specifying 
interface+port, the higher-abstraction CLI options aren't as useful.

You might be right.

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to