parsec icon indicating copy to clipboard operation
parsec copied to clipboard

Thread binding / reporting

Open abouteiller opened this issue 6 years ago • 3 comments

Original report by Thomas Herault (Bitbucket: herault, GitHub: therault).


Recent work on the BlueGene/Q system showed that the binding capability is limited.

  • Binding using hwloc (or other options) on Mira / Cetus fail with the current code.

  • Reporting of binding is wrong on that system, because hw threads are not identified by a single identifier

    • This part (reporting) might be a little better using hwloc, however, in profiling and traces we simply report the bindto parameter (int) of the startup information.

The proposition is to extend the code by changing the type of bindto parameter. Multiple approaches:

  • force dependence on hwloc and use hwloc structures to describe / assign binding. PRO: the work is done, CON: what if it is complicated to compile hwloc on the target architecture?

  • have target-architecture-dependent structures to describe the binding. PRO: there are only two cases to manage today (cpuset or BG/Q). CON: this is code bloating.

  • define a generic way of describing / assigning binding, and have multiple interfaces (if we are on BG/Q, if we have hwloc, etc...). PRO: might be the cleanest. CON: this is in a way duplicating work done in HWLOC.

abouteiller avatar Apr 25 '18 15:04 abouteiller