Skip to content

Display topology and group columns accordingly #4

@Saruspete

Description

@Saruspete

Display the topology in the header and re-order CPUs columns accordingly.
Allow to group either by memory, numa, package, die...

We would need to :

  • Select what topology we want to be used: Memory Node, Package, NUMA Node, Socket, Core (SMT)
  • Allow to display accordingly a separator between the columns
  • Filter process and columns by topology

Ex: OpenMPI --report-bindings option:

[clxap2:464044] MCW rank 0 bound to socket 0[core 0[hwt 0]]: [B/././././././././././././././././././././././.][./././././././././././././././././././././././.][./././././././././././././././././././././././.][./././././././././././././././././././././././.]
[clxap2:464044] MCW rank 1 bound to socket 0[core 1[hwt 0]]: [./B/./././././././././././././././././././././.][./././././././././././././././././././././././.][./././././././././././././././././././././././.][./././././././././././././././././././././././.]

But seems to be very verbose / unreadable when lot of numa/cores is on the system:

mpirun --report-bindings uname -n ``` [clxap2:463958] MCW rank 0 bound to socket 0[core 0[hwt 0]], socket 0[core 1[hwt 0]], socket 0[core 2[hwt 0]], socket 0[core 3[hwt 0]], socket 0[core 4[hwt 0]], socket 0[core 5[hwt 0]], socket 0[core 6[hwt 0]], socket 0[core 7[hwt 0]], socket 0[core 8[hwt 0]], socket 0[core 9[hwt 0]], socket 0[core 10[hwt 0]], socket 0[core 11[hwt 0]], socket 0[core 12[hwt 0]], socket 0[core 13[hwt 0]], socket 0[core 14[hwt 0]], socket 0[core 15[hwt 0]], socket 0[core 16[hwt 0]], socket 0[core 17[hwt 0]], socket 0[core 18[hwt 0]], socket 0[core 19[hwt 0]], socket 0[core 20[hwt 0]], socket 0[core 21[hwt 0]], socket 0[core 22[hwt 0]], socket 0[core 23[hwt 0]]: [B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B][./././././././././././././././././././././././.][./././././././././././././././././././././././.][./././././././././././././././././././././././.] [clxap2:463958] MCW rank 1 bound to socket 1[core 24[hwt 0]], socket 1[core 25[hwt 0]], socket 1[core 26[hwt 0]], socket 1[core 27[hwt 0]], socket 1[core 28[hwt 0]], socket 1[core 29[hwt 0]], socket 1[core 30[hwt 0]], socket 1[core 31[hwt 0]], socket 1[core 32[hwt 0]], socket 1[core 33[hwt 0]], socket 1[core 34[hwt 0]], socket 1[core 35[hwt 0]], socket 1[core 36[hwt 0]], socket 1[core 37[hwt 0]], socket 1[core 38[hwt 0]], socket 1[core 39[hwt 0]], socket 1[core 40[hwt 0]], socket 1[core 41[hwt 0]], socket 1[core 42[hwt 0]], socket 1[core 43[hwt 0]], socket 1[core 44[hwt 0]], socket 1[core 45[hwt 0]], socket 1[core 46[hwt 0]], socket 1[core 47[hwt 0]]: [./././././././././././././././././././././././.][B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B][./././././././././././././././././././././././.][./././././././././././././././././././././././.] [clxap2:463958] MCW rank 2 bound to socket 2[core 48[hwt 0]], socket 2[core 49[hwt 0]], socket 2[core 50[hwt 0]], socket 2[core 51[hwt 0]], socket 2[core 52[hwt 0]], socket 2[core 53[hwt 0]], socket 2[core 54[hwt 0]], socket 2[core 55[hwt 0]], socket 2[core 56[hwt 0]], socket 2[core 57[hwt 0]], socket 2[core 58[hwt 0]], socket 2[core 59[hwt 0]], socket 2[core 60[hwt 0]], socket 2[core 61[hwt 0]], socket 2[core 62[hwt 0]], socket 2[core 63[hwt 0]], socket 2[core 64[hwt 0]], socket 2[core 65[hwt 0]], socket 2[core 66[hwt 0]], socket 2[core 67[hwt 0]], socket 2[core 68[hwt 0]], socket 2[core 69[hwt 0]], socket 2[core 70[hwt 0]], socket 2[core 71[hwt 0]]: [./././././././././././././././././././././././.][./././././././././././././././././././././././.][B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B][./././././././././././././././././././././././.] [clxap2:463958] MCW rank 3 bound to socket 3[core 72[hwt 0]], socket 3[core 73[hwt 0]], socket 3[core 74[hwt 0]], socket 3[core 75[hwt 0]], socket 3[core 76[hwt 0]], socket 3[core 77[hwt 0]], socket 3[core 78[hwt 0]], socket 3[core 79[hwt 0]], socket 3[core 80[hwt 0]], socket 3[core 81[hwt 0]], socket 3[core 82[hwt 0]], socket 3[core 83[hwt 0]], socket 3[core 84[hwt 0]], socket 3[core 85[hwt 0]], socket 3[core 86[hwt 0]], socket 3[core 87[hwt 0]], socket 3[core 88[hwt 0]], socket 3[core 89[hwt 0]], socket 3[core 90[hwt 0]], socket 3[core 91[hwt 0]], socket 3[core 92[hwt 0]], socket 3[core 93[hwt 0]], socket 3[core 94[hwt 0]], socket 3[core 95[hwt 0]]: [./././././././././././././././././././././././.][./././././././././././././././././././././././.][./././././././././././././././././././././././.][B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B] [clxap2:463958] MCW rank 4 bound to socket 0[core 0[hwt 0]], socket 0[core 1[hwt 0]], socket 0[core 2[hwt 0]], socket 0[core 3[hwt 0]], socket 0[core 4[hwt 0]], socket 0[core 5[hwt 0]], socket 0[core 6[hwt 0]], socket 0[core 7[hwt 0]], socket 0[core 8[hwt 0]], socket 0[core 9[hwt 0]], socket 0[core 10[hwt 0]], socket 0[core 11[hwt 0]], socket 0[core 12[hwt 0]], socket 0[core 13[hwt 0]], socket 0[core 14[hwt 0]], socket 0[core 15[hwt 0]], socket 0[core 16[hwt 0]], socket 0[core 17[hwt 0]], socket 0[core 18[hwt 0]], socket 0[core 19[hwt 0]], socket 0[core 20[hwt 0]], socket 0[core 21[hwt 0]], socket 0[core 22[hwt 0]], socket 0[core 23[hwt 0]]: [B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B][./././././././././././././././././././././././.][./././././././././././././././././././././././.][./././././././././././././././././././././././.] [clxap2:463958] MCW rank 5 bound to socket 1[core 24[hwt 0]], socket 1[core 25[hwt 0]], socket 1[core 26[hwt 0]], socket 1[core 27[hwt 0]], socket 1[core 28[hwt 0]], socket 1[core 29[hwt 0]], socket 1[core 30[hwt 0]], socket 1[core 31[hwt 0]], socket 1[core 32[hwt 0]], socket 1[core 33[hwt 0]], socket 1[core 34[hwt 0]], socket 1[core 35[hwt 0]], socket 1[core 36[hwt 0]], socket 1[core 37[hwt 0]], socket 1[core 38[hwt 0]], socket 1[core 39[hwt 0]], socket 1[core 40[hwt 0]], socket 1[core 41[hwt 0]], socket 1[core 42[hwt 0]], socket 1[core 43[hwt 0]], socket 1[core 44[hwt 0]], socket 1[core 45[hwt 0]], socket 1[core 46[hwt 0]], socket 1[core 47[hwt 0]]: [./././././././././././././././././././././././.][B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B][./././././././././././././././././././././././.][./././././././././././././././././././././././.] [clxap2:463958] MCW rank 6 bound to socket 2[core 48[hwt 0]], socket 2[core 49[hwt 0]], socket 2[core 50[hwt 0]], socket 2[core 51[hwt 0]], socket 2[core 52[hwt 0]], socket 2[core 53[hwt 0]], socket 2[core 54[hwt 0]], socket 2[core 55[hwt 0]], socket 2[core 56[hwt 0]], socket 2[core 57[hwt 0]], socket 2[core 58[hwt 0]], socket 2[core 59[hwt 0]], socket 2[core 60[hwt 0]], socket 2[core 61[hwt 0]], socket 2[core 62[hwt 0]], socket 2[core 63[hwt 0]], socket 2[core 64[hwt 0]], socket 2[core 65[hwt 0]], socket 2[core 66[hwt 0]], socket 2[core 67[hwt 0]], socket 2[core 68[hwt 0]], socket 2[core 69[hwt 0]], socket 2[core 70[hwt 0]], socket 2[core 71[hwt 0]]: [./././././././././././././././././././././././.][./././././././././././././././././././././././.][B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B][./././././././././././././././././././././././.] [clxap2:463958] MCW rank 7 bound to socket 3[core 72[hwt 0]], socket 3[core 73[hwt 0]], socket 3[core 74[hwt 0]], socket 3[core 75[hwt 0]], socket 3[core 76[hwt 0]], socket 3[core 77[hwt 0]], socket 3[core 78[hwt 0]], socket 3[core 79[hwt 0]], socket 3[core 80[hwt 0]], socket 3[core 81[hwt 0]], socket 3[core 82[hwt 0]], socket 3[core 83[hwt 0]], socket 3[core 84[hwt 0]], socket 3[core 85[hwt 0]], socket 3[core 86[hwt 0]], socket 3[core 87[hwt 0]], socket 3[core 88[hwt 0]], socket 3[core 89[hwt 0]], socket 3[core 90[hwt 0]], socket 3[core 91[hwt 0]], socket 3[core 92[hwt 0]], socket 3[core 93[hwt 0]], socket 3[core 94[hwt 0]], socket 3[core 95[hwt 0]]: [./././././././././././././././././././././././.][./././././././././././././././././././././././.][./././././././././././././././././././././././.][B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B/B]
</details>

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions