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