On Dec 4, 2009, at 5:36 AM, Brice Goglin wrote: > > It might be good to safely ignore 0x if it's present, but that's a small > > feature enhancement that can be done at any time (I filed a future ticket). > > It seems to work actually :)
Hmm -- I don't think so...? "0x1" can't pass this test in hwloc_mask_process_arg(): } else if (strlen(arg) == strspn(arg, "0123456789abcdefABCDEF,")) { In my tests, it's falling through to the "err = -1" case, but just not printing out an error. Even more fun -- note the lack of error shown, and the lack of "ls" output, except for when we specify -v: ---- [8:33] rtp-jsquyres-8711:~/svn/hwloc % ./utils/hwloc-bind 0x1 ls [8:33] rtp-jsquyres-8711:~/svn/hwloc % ./utils/hwloc-bind -v 0x1 ls assuming the command starts at 0x1 execvp: No such file or directory ----- If think that if execvp() fails, we should *always* print an error, not just if -v was specified. I'll fix. > > Linux is likely to be among the most popular target for hwloc -- so can you > > explain in good words definitions for the following: [snipped] Thanks. > > Additionally -- the word "father" is used in the docs. Should we use the > > gender-neutral "parent" instead? > > I am not sure. The object structure contains a father pointer. We use > parent in the API, but it might refer to different things, like father, > grandfather, ... FWIW, the english word "parent" definitely refers to the immediate ancestor. It does *not* refer to grandparents or great-grandparents, etc. > > What I meant by my question was -- aren't the 3 diagrams above equivalent > > to "core:6"? If so, what's the value of the foo.bar.baz notation? > > If you have a 96 core machine like we do, the hierarchical notation > (foo.bar.baz) is really nice. If I want to bind on > node:2.socket:3.core:4, it's much easier than looking at the topology > and finding that it's core:70. Ah, ok. Fair enough. > Using physical or logical indexes doesn't > change anything here. I agree that we don't do that often in real > applications, but I actually use that quite a lot for my own debugging :) Another good reason. :-) > I actually don't see why people would like to use physical numbers in > such a hierarchical notation since physical socket/core numbers are > often strange/illogical and nobody remembers them. However, I agree that > the physical indexes are useful when *not* using a hierarchical > notation, ie I want to bind on thread OS index #46. As a server vendor, using physical/OS indexes is actually quite useful to me (e.g., to ensure that the hardware and OS are playing nicely). My point is that everyone has a different view here -- we should just support both. IMHO, the common case is logical indexes -- so let's make those the default. But there are definitely cases where physical indexes are useful as well. -- Jeff Squyres jsquy...@cisco.com