On Jan 7, 2013, at 1:09 PM, Brice Goglin <Brice.Goglin_at_[hidden]>
> 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:
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:
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).
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/