Open MPI logo

Hardware Locality Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Hardware Locality Development mailing list

Subject: Re: [hwloc-devel] hwloc-bind syntax
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2009-12-03 20:32:41


On Dec 3, 2009, at 4:55 PM, Brice Goglin wrote:

[...snipped all that wasn't relevant to reply to...]

> > Has anyone contacted Penguin and/or XHPC (and/or any other SSI projects) to see if they care about being supported by hwloc?
>
> Your friends Joshua from Penguin is supposed to contact me back soon and
> we're supposed to talk about hwloc (and OMX).

Exxxcellent.

> I don't think we've had any contact with other SSI projects.

K.

> > Perhaps hwloc CLI tools should be able to show/accept *both* kinds of indexing...? E.g.:
> >
> > lstopo --physical
> > lstopo --logical
>
> Agreed.
>
> > hwloc-bind --physical ...
> > hwloc-bind --logical ...
>
> Maybe too, yeah.

I'll file a ticket about this.

I'll file another ticket to make the output of lstopo show values that can be used in the default input of hwloc-bind.

> > Ah, ok. To be clear, is it accurate to say that it is one of the following forms:
> >
> > - a hex number (without leading "0x" -- would "0x" be ignored if it is supplied?)
>
> We never used 0x there.

Ok.

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

> We might want to drop the Linux "cpuset" word and use "cgroup" instead.
> Both are supported by Linux, but the latter now contains the former and
> more, so people are supposed to use cgroup now. hwloc supports both.

Linux is likely to be among the most popular target for hwloc -- so can you explain in good words definitions for the following:

- hwloc cpuset (or if "cgroup", if we're renaming it)
- Linux cpuset
- Linux cgroup

(I'm significantly adding to hwloc-bind.1 -- I'll tweak your words a bit and include them as explanation for exactly what we mean by hwloc cpuset/cgroup).

Additionally -- the word "father" is used in the docs. Should we use the gender-neutral "parent" instead?

> > Does it always need to start with system?
>
> You don't care about starting with system or something else. You can
> ignore the system level as you could ignore the socket level between
> nodes and cores.
>
> If you have 1 system with 2 nodes with 2 sockets each with 2 cores each,
> you get:
> node:1 core:2 is equivalent to system:0 node:1 socket:2 core:0 and
> equivalent to system:0 core:6

Did you mean:

  node:1.core:2 == system:0.node:1.socket:2.core:0 == system:0.core:6

?

> But you cannot be that flexible with OS/physical indexes since multiple
> cores/sockets may have the same index.

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 the examples you provided above use hwloc logical numbering, then there's an exact 1-to-1 mapping of all of those -- so why type something longer than "core:6"?

However, if you use physical/OS numbering, you *have* to use foo.bar.baz notation because some of the numbers are the same (as I showed in my first mail -- where multiple cores had index "0"). So:

  node:1.core:0 != node:2.core:0

I think that your point is thatthe foo.bar.baz syntax only have usefulness with physical/OS indexing? Correct?

-- 
Jeff Squyres
jsquyres_at_[hidden]