Open MPI logo

Hardware Locality Development Mailing List Archives

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

Subject: Re: [hwloc-devel] Ordering of cache and cpu objects
From: Brice Goglin (Brice.Goglin_at_[hidden])
Date: 2010-09-08 05:03:40


We have no way to know if a cache is inside or outside of an object,
except when their cpusets are different. There are some default ordering
rules but they may not always be right depending on the architecture and
processor. So yes, it may be wrong to show your L1 outside of your
cores, but it doesn't really matter since there's a single L1 for each
core anyway, these L1 are useless from a hierarchy point of view anyway.

Brice

Le 08/09/2010 09:41, Pavan Balaji a écrit :
> Folks,
>
> I was poking around with the ordering of the objects found by hwloc.
> Here's the output I got (custom program: space represents the depth of
> the object):
>
> [MACHINE] total memory: 4089507840; local memory: 4089507840
> [SOCKET]
> [CACHE] L2 cache size: 4194304
> [CACHE] L1 cache size: 32768
> [CORE]
> [CACHE] L1 cache size: 32768
> [CORE]
>
> It is clear that the second-level cache is at depth 3, and is
> contained within a socket (depth 2). However, the first-level cache is
> at a lower depth (depth 4) than the cores themselves (depth 5). Is
> there a reason why the ordering of the caches and CPU objects is not
> consistent, or am I misreading these results?
>
> Here's the lstopo output for information on my machine:
>
> % ./src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo
> Machine (3900MB) + Socket #0 + L2 #0 (4096KB)
> L1 #0 (32KB) + Core #0 + PU #0 (phys=0)
> L1 #1 (32KB) + Core #1 + PU #1 (phys=1)
>
> Thanks,
>
> -- Pavan
>