[cfarm-users] Fixing CPU/core/threads count

Brice Goglin Brice.Goglin at free.fr
Wed Apr 8 08:46:39 CEST 2020


Le 07/04/2020 à 23:57, Segher Boessenkool via cfarm-users a écrit :
> Hi!
>
> On Sat, Apr 04, 2020 at 08:28:49PM +0200, Baptiste Jonglez via cfarm-users wrote:
>> Following up on a thread from 2018 [1], we still have issue with counting
>> the number of CPU, cores and threads on "exotic" machines.
>>
>> I gave a try at hwloc on all farm machines, below is the result where:
>>
>> M = machine
>> N = node (NUMA node)
>> P = package
>> C = core
>> T = pu (thread)
> Other than "M", and perhaps "T", what do those things even *mean*?
>
> Mapping this to the various ways this is expressed on different
> architectures (all of those an approximation as well), is more of a
> judgment call than a science, as well.

I agree that there are some caveat but overall it's well defined:

* package = the physical thing that goes into a physical socket on the
motherboard

* core = minimal set of hardware threads and their units (FPU, etc).
cores have their own units (not talking about caches here). it's
basically why a judge ruled that "dual-core" compute units were not
actual dual-cores (the FPU was shared between those 2 "fake" cores).

* NUMA node = bunch of memory with uniform access performance

We had some discussion with hardware vendors 10 years ago to settle this
(for instance, they requested we say Package instead of Socket) but now
everybody seems agree.

Of course, sometimes they don't have the required stuff in firmware or
OS to expose all the details. That's why ARM big.LITTLE exposes 2
packages (one package of big cores and one package of small cores): they
need something between package and core but Linux didn't have anything
like that until Intel added "Die" recently.

Brice




More information about the cfarm-users mailing list