Topología en SMP

Presenter Notes

Resumen:

  • False sharing
  • Distancias
  • Ubicación
  • Impacto

Nicolás Wolovick 20200515

Presenter Notes

False sharing

Presenter Notes

Cache (Coherency) Line Size (CLS)

1 zx81:$ cat /sys/devices/system/cpu/cpu*/cache/index*/coherency_line_size | sort | uniq -c
2     112 64

Todos los niveles de caché tienen líneas de 64 bytes.

Presenter Notes

Exponiendo el false sharing

 1 #pragma omp parallel sections
 2 {
 3     #pragma omp section
 4     {
 5     for (size_t i=0; i<N/2; ++i) {
 6         sum[0] += i;
 7     }
 8     }
 9     #pragma omp section
10     {
11     for (size_t i=N/2; i<N; ++i) {
12         sum[OFFSET] += i;
13     }
14     }
15 }
  • Ir variando el OFFSET de 1 a 15 y ver que pasa.
  • Siempre con -O0 o usa registros para acumular y chau false-shaing.

Presenter Notes

Topología

  • Cómputo:
    • Sockets.
    • CPUs.
    • Unidades compartidas (KNL, Bulldozer)
    • Hilos virtuales (SMT, Hyperthreading®).
  • Memoria:
    • Cache.
    • NUMA.
  • Comunicación:
    • A que socket están conectadas las GPUs, NICs, Storage, etc.

Portable Hardware Locality hwloc

  • Proyecto de OpenMPI.
  • libhwloc, lstopo.

Presenter Notes

Sencillas

Core 2 Duo (Penryn)

  • No hay nada complejo ... nada.

Presenter Notes

Sencillas

i7 980 (Gulftown, 32nm shink de Nehalem)

  • Aun nada complejo ... nada.

Presenter Notes

Dos nodos NUMA (nabu)

2 * E5-2680v2

Presenter Notes

Dos nodos NUMA (2 * E5-2620v3, zx81)

Presenter Notes

Hyperthreading

Notar numeración "Intel", primero los físicos, luego los lógicos.

Presenter Notes

4 nodos NUMA (AMD Bulldozer)

  • Cores adjacentes comparten L1i y L2
  • En realidad cada dos Bulldozer cores se forma un Cluster Multi-Threading (CMT). Dos ALU 256 bits, una FPU de 256 bits.
  • Numeración "AMD" físico-lógico-físico-lógico-...

Presenter Notes

Bulldozer, compute nodes

Presenter Notes

KNL (7210, Eulogia)

Presenter Notes

Demasiado grande, lo naveguemos

1 $ lstopo -i topo_7210_knl.xml

Son 32 módulos de dos 2*VPU (vector processing units)

Presenter Notes

NUMA

¿Cómo transformar una máquina NUMA en UMA?

Presenter Notes

Bibliografía

Presenter Notes

Bibliografía

Presenter Notes

La clase que viene

  • Affinity aka placement.

Presenter Notes