Skip to content

LikwidNomenclature

Thomas Roehl edited this page Nov 20, 2020 · 5 revisions

Introduction

Todays computing systems get more and more diverse and the naming of the various units in a system differs in many software packages. This is, of course, also true for LIKWID. With LIKWID 5.1.0, we tried to make it consistent in all tools of LIKWID.

What are we talking about?

Let's look at the smallest compute unit in a processor, the thing that executes the code. Here are a few examples of names for it:

  • /proc/cpuinfo: processor
  • /sys/devices/system/cpu/cpuX: cpu obviously
  • lscpu: CPU(s)
  • hwloc library: PU aka "processing units". In the hwloc documentation, there is also logical processor or just "threads"
  • numactl: cpus
  • likwid-*: core (changed with 5.1.0 to hardware thread or short HWthread)

The OpenMP specification chooses the term processor for an entity which can run an OpenMP thread. Hence, on today's architectures, an OpenMP processor is a hardware thread.

LIKWID Nomenclature

  • A CPU is the whole thing you can hold in your hands (other names: package or socket)
  • A CPU may be assembled of multiple CPU dies
  • A CPU die may contain multiple memory domains (other names: NUMA domain)
  • A CPU die contains nowadays multiple CPU cores
  • A CPU core may contain multiple hardware threads (other names: logical processor, logical core, SMT thread or hyperthreads)
  • A node may comprise multiple CPUs and runs one instance of an operating system
Clone this wiki locally