hwloc-1.x vs hwloc-2.x interoperability is very poor.
Example where we crash in flames while the user shouldn't be blamed, it seems:
localhost ~/cado $ ./build/localhost/tests/linalg/bwc/test_cpubinding -s "Package:2 [NUMANode] Core:8 PU:2" thr=8x8 cpubinding=./parameters/misc/cpubinding.conf
hwloc_topology_set_synthetic(Package:2 :2 [NUMANode] Core:8 PU:2 ) [mangled for hwloc<1.9] failed
code BUG() : condition rc >= 0 failed in read_param_list at /home/thome/NFS/cado/linalg/bwc/cpubinding.cpp:895 -- Abort
Aborted
(hwloc-2.x build)
The syntax Package:2 [NUMANode] Core:8 PU:2
should be recognized, but it's not. At any rate, user-friendly messages related to the hwloc-1.x vs hwloc-2.x issue should be provided.
There's also no reason to abort()
when we encounter matchers in cpubinding.conf
that have ambiguous meaning in hwloc-2.x