On Jan 7, 2013, at 1:09 PM, Brice Goglin <brice.gog...@inria.fr>
 wrote:

> Your argument works for selecting among I/O components like
> cuda/nvml/opencl that are all independent (like several components in
> the same framework in OMPI). But it doesn't work when the order matters
> between components that discover the same things. Like "I want x86 first
> because it works better than the solaris component on my machine, and
> then the other usual components for to discover everything else".
> 
> Remember that HWLOC_COMPONENTS="foo" means "foo first and then all the
> usual ones that do not conflict". It's not "only foo", which should be
> written as "foo,stop" (should be rare since the core excludes all
> conflicting components automatically).

Gotcha.  I missed those two subtleties:

1. order matters
2. there's an implicit "...and all the rest" at the end of the specification

BTW, don't get me wrong -- I'm not against a different meaning than OMPI's.  I 
was just trying to explain what OMPI uses an why.

But that being said, having a "...and all the rest" implicitly implied at the 
end of the COMPONENTS specification is a little surprising (to me, IMHO).  
Perhaps you could have a special token that means "...and all the rest"?  
Perhaps:

COMPONENTS=foo,bar,*

Which means "try foo first, then try bar, and then try all the rest in whatever 
order you want".  Because then a user could specify:

COMPONENTS=foo,bar

if they *didn't* want all the others to be used.

Just a thought.

> BTW, if we change the hwloc syntax, we may want to not use ^ to avoid
> confusion with OMPI. ~ and ! could work but some shells may not like them?


Hah.  Our mails crossed in the ether.  :-)

Short version: I agree.  ~ and ! have the drawback of requiring escaping, which 
is kind of a pain (and everyone will get it wrong).

-- 
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