Branch: refs/heads/main
Revision: 2281d18
Author: jhh67
Link: Unavailable
Log Message:
Merge pull request #20778 from jhh67/binders2
Specify CPU binding via QT_CPUBIND
When using the qthreads binders topology module, specify the CPU
bindings using the QT_CPUBIND environment variable. This removes all
binding policy decisions from binders, as its default policies have
problems such as incorrectly computing the number of workers per
shepherd, always binding shepherds to PUs, and exiting when PUs are
inaccessible. Setting QT_CPUBIND allows us to implement our own binding
policies and avoid these problems with the default binders policies.
Passes all single- and multi-locale tests with the following exceptions:
test/runtime/configMatters/comm/task-overload -- known problem on ss11
test/studies/bale/indexgather/ig-variants -- output order is different,
also fails on main with hwloc topology on ss11
No significant impact on the performance of the core benchmarks described
in Cray/chapel-private#3593 running on an EX.
[Reviewed by @ronawho]
Modified Files:
M runtime/include/chpl-topo.h
M runtime/src/tasks/qthreads/tasks-qthreads.c
M runtime/src/topo/hwloc/topo-hwloc.c
M runtime/src/topo/none/topo-none.c
M third-party/qthread/Makefile
Compare: https://github.com/chapel-lang/chapel/compare/d2213365121f...2281d18ce090