It's just a coincidence. Most modern machines (many of them are NUMA) have non sequential numbers (to maximize memory bandwidth in the dumb cases).

Brice




Le 01/08/2011 15:29, Gabriele Fatigati a écrit :
Ok,

now it's more clear. Just a little question. Why in a NUMA machine, PU# are sequential (page 17), and in a non NUMA machine are not sequential? ( page 16)

2011/8/1 Brice Goglin <Brice.Goglin@inria.fr>
You're confusing object types with index types.

PU is an object type, like Core, Socket, ... "logical processor" is a generic name for cores when there's no SMT, hardware threads when there's SMT/Hyperthreading, ... PU is basically the smallest thing that can run a software thread.

"P#" is just the way you're numbering object, it works for PU and for other object types.

Any object of any type can be identified through a unique logical index, and possibly non-unique physical index.

We don't often use the name "logical processor" because it's indeed confusing. "Processing Unit" is less confusing, that's why it's the official name for the smallest objects in hwloc.

Brice







Le 01/08/2011 15:04, Gabriele Fatigati a écrit :
Hi Brice,

you said:

"PU P#0" means "PU object with physical index 0".
"P#" prefix means "physical index".

But from the hwloc manual, page 58:


HWLOC_OBJ_PU: Processing Unit, or (Logical) Processor..


but it is in conflict with what you said :(


2011/8/1 Brice Goglin <Brice.Goglin@inria.fr>
"PU P#0" means "PU object with physical index 0".
"P#" prefix means "physical index".
"L#" prefix means "logical index" (the one you want to use in get_obj_by_type).
Use -l or -p to switch from one to the other in lstopo.

Brice



Le 01/08/2011 14:47, Gabriele Fatigati a écrit :
Hi Brice,

so, if I inderstand well, PU P# numbers are not  the same specified  as HWLOC_OBJ_PU flag?

2011/8/1 Brice Goglin <Brice.Goglin@inria.fr>
Le 01/08/2011 12:16, Gabriele Fatigati a écrit :
> Hi,
>
> reading a hwloc-v1.2-a4 manual, on page 15, i look an example
> with 4-socket 2-core machine with hyperthreading.
>
> Core id's are not exclusive as said before. PU's id are exclusive but
> not physically sequential (I suppose)
>
> PU P#0 is in socket P#0 on Core P#0. PU P#1 is in another socket!

These indexes are "physical indexes" (that's the default in the
graphical lstopo output). But we may want to make that clearer in the doc.

Brice




--
Ing. Gabriele Fatigati

Parallel programmer

CINECA Systems & Tecnologies Department

Supercomputing Group

Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy

www.cineca.it                    Tel:   +39 051 6171722

g.fatigati [AT] cineca.it          




--
Ing. Gabriele Fatigati

Parallel programmer

CINECA Systems & Tecnologies Department

Supercomputing Group

Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy

www.cineca.it                    Tel:   +39 051 6171722

g.fatigati [AT] cineca.it          




--
Ing. Gabriele Fatigati

Parallel programmer

CINECA Systems & Tecnologies Department

Supercomputing Group

Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy

www.cineca.it                    Tel:   +39 051 6171722

g.fatigati [AT] cineca.it