Your last point about the qualifiers is kinda what I was hinting at in my note. 
If you have usnic support via the OFi MTL, why do you also need it as a BTL? 
The BTL needs libfabric anyway, yes? So is there some value in having both 
methods?

Same question for PSM and PSM2, and probably others I imagine. Do we really 
need all these multiple ways?


> On Oct 20, 2015, at 1:45 PM, Jeff Squyres (jsquyres) <jsquy...@cisco.com> 
> wrote:
> 
> On Oct 20, 2015, at 3:42 PM, Jeff Squyres (jsquyres) <jsquy...@cisco.com> 
> wrote:
>> 
>> I'm guessing we'll talk about this at the Feb dev meeting, but we need to 
>> think about this a bit before hand.  Here's a little more fuel for the fire: 
>> let's at least specify the problem space a bit more precisely...
> 
> I'm replying to my own mail because I wanted a separate email for a 
> (half-baked) proposal.
> 
> How about something like this:
> 
>   mpirun --[enable|disable] 
> NETWORK_TYPE[:QUALIFIER][,NETWORK_TYPE[:QUALIFIER]]*
> 
> 1. Both forms take a comma-delimited list of 1 or more items.
> 
> 2. --enable would work similar to our "include" MCA params: OMPI will *only* 
> use the network type(s) listed.
> 
> 3. --disable would work similar to our "exclude" MCA params: OMPI will use 
> all network types *except* those listed.
> 
> --> Alternative, if "--enable" and "--disable" are too general, we could use 
> "--net" and "--nonet", or something like that.  Suggestions welcome.
> 
> 4. NETWORK_TYPE values can be registered via an OPAL API, e.g.:
> 
>   // In the TCP BTL
>   opal_register_network_type("eth", ...some TCP BTL callback function...);
>   // In the usnic BTL
>   opal_register_network_type("eth", ...some usnic BTL callback function...);
> 
>   // In the openib BTL
>   opal_register_network_type("ib", ...some openib BTL callback function...);
>   // In the MXM MTL
>   opal_register_network_type("ib", ...some MXM MTL callback function...);
> 
> The main idea, though, is that various components can register themselves to 
> these network type names that can be specified on the mpirun/orterun/oshrun 
> command lines.  Once a user specifies a network type, I'm not quite sure what 
> OMPI does next (e.g., what will that callback function pointer do?), ...but I 
> thought I'd at least capture these thoughts far. :-)
> 
> We can even allow synonyms:
> 
>   opal_register_network_synonym("eth", "ethernet");
>   opal_register_network_synonym("ib", "infiniband");
> 
> 5. ":QUALIFIER" is optional for each NETWORK_TYPE specified, and can be used 
> to disambiguate when a given network type can be reached multiple ways in 
> OMPI.  E.g., it can help choose between the openib BTL, the MXM MTL, and the 
> Yalla PML.  E.g.:
> 
>   mpirun --enable ib:btl
>   mpirun --enable ib:mtl
>   mpirun --enable ib:yalla
> 
> That being said, I don't like these names (btl, mtl, yalla) -- they mean 
> nothing to non-OMPI experts.  But I like the idea that a QUALIFIER can help 
> choose between the different possibilities.
> 
>   mpirun --enable eth:tcp
>   mpirun --enable eth:usnic
> 
> These QUALIFIER values are a *little* better, but not much.  And usnic is 
> going to get confusing when it starts supporting the OFI MTL tag matching 
> interface (i.e., you'll be able to use usNIC support via the usnic BTL and 
> the OFI MTL).
> 
> ...thoughts?
> 
> -- 
> Jeff Squyres
> jsquy...@cisco.com
> For corporate legal information go to: 
> http://www.cisco.com/web/about/doing_business/legal/cri/
> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post: 
> http://www.open-mpi.org/community/lists/devel/2015/10/18210.php

Reply via email to