Open MPI logo

Hardware Locality Development Mailing List Archives

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

Subject: Re: [hwloc-devel] How to get information about hwloc objects?
From: Brice Goglin (Brice.Goglin_at_[hidden])
Date: 2010-07-07 06:56:44


Le 07/07/2010 12:37, Jirka Hladky a écrit :
> I have also tested depth argument for --list. (BTW, what has happened with
> hwloc-info? I cannot find it anymore. Is there some replacement?)
>

It's a symlink that we create during make install. It doesn't exist in
the build directory. Did you make install?

> ===========================================
> [root_at_intel-sunriseridge-02 utils]# hwloc-info (version 1.0.1!!!)
> depth 0: 1 Machine (type #1)
> depth 1: 3 NUMANodes (type #2)
> depth 2: 4 Sockets (type #3)
> depth 3: 4 Caches (type #4)
> depth 4: 32 Caches (type #4)
> depth 5: 32 Caches (type #4)
> depth 6: 32 Cores (type #5)
> depth 7: 64 PUs (type #6)
>
> Latest and patched version of hwloc:
>
> [root_at_intel-sunriseridge-02 utils]# ./hwloc-calc -v --list 4 proc:60
> object #60 depth 7 below cpuset 0xffffffff,0xffffffff found
> adding 0x08000000 to 0x0
> adding 0x08000000 to 0x0
> 30
> [root_at_intel-sunriseridge-02 utils]# ./hwloc-calc -v --list 5 proc:60
> object #60 depth 7 below cpuset 0xffffffff,0xffffffff found
> adding 0x08000000 to 0x0
> adding 0x08000000 to 0x0
> 30
> [root_at_intel-sunriseridge-02 utils]# ./hwloc-calc -v --list 6 proc:60
> object #60 depth 7 below cpuset 0xffffffff,0xffffffff found
> adding 0x08000000 to 0x0
> adding 0x08000000 to 0x0
> 30
> =============================================
>
> It works! :-) Just one question: I would expect Cache to be reported as well.
> At level 4-6 it reports Core #. Any comment on this?
>

I don't see what you're referring to.

> ================== NEHALEM box =================
> [root_at_intel-sunriseridge-02 utils]# ./lstopo -
> Machine (6042MB)
> NUMANode #0 (phys=0 1946MB)
> Socket #0 + L3 #0 (24MB)
> L2 #0 (256KB) + L1 #0 (32KB) + Core #0
> PU #0 (phys=0)
> PU #1 (phys=32)
> L2 #1 (256KB) + L1 #1 (32KB) + Core #1
> PU #2 (phys=4)
> PU #3 (phys=36)
> ........ (stripped)
>
> ./hwloc-calc --objects proc:0
> PU:0
> ./hwloc-calc --objects socket:0
> Socket:0
> ./hwloc-calc --objects node:0
> NUMANode:0
> ./hwloc-calc --objects machine:0
> Machine:0
>

Having NUMANode != Socket on a Nehalem box is strange. This is probably
a BIOS bug. hwloc cannot fix this. lstopo will be wrong as long as the
BIOS/kernel reports that 2 sockets are in the same numa node. All other
hwloc tools have the same knowledge of the topology, it's expected that
they are wrong too.

> Those errors are only reported when -v is given (as well as other
>> verbose messages). You're right, we should always show them.
>>
> Yes, you are right, -v works.
>
> Error handling (without -v) has been improved in case that NUMA does not exist
> at all.
> $hwloc-calc --list numanode --physical proc:0
> unavailable list type NUMANode
>
> You will still get no error mesage when you specify wrong processor which does
> not exist.
>

Yes, recently added error messages are ok, I need to fix the old ones,
those that only appear in verbose mode.

> BTW, you have added quite few new options:-) Any plans to release them?
>

Once I found option names possibly more satisfying than "--list" and
"--objects", I commit this patch. We won't backport that to 1.0.x but we
can start talking about doing 1.1. There are a couple branches that are
ready to merge. The big missing piece if the memory binding interface,
but we haven't made any progress there. Unless we discuss this soon [1],
I'd rather do a 1.1 without it.

Brice

[1] https://svn.open-mpi.org/trac/hwloc/ticket/9