PS: sorry, I missed to tell the SLurm-Version: it's 17.11.7
On 10/24/18 9:43 AM, Andreas Henkel wrote: > > HI all, > > did anyone build Slurm using a recent version of HWLOC like 2.0.1 or > 2.0.2? > > When I try to I end up with > > task_cgroup_cpuset.c:486:40: error: 'struct hwloc_obj' has no member > named 'allowed_cpuset' > hwloc_bitmap_or(cpuset, cpuset, pobj->allowed_cpuset); > ^ > task_cgroup_cpuset.c:492:39: error: 'struct hwloc_obj' has no member > named 'allowed_cpuset' > hwloc_bitmap_or(cpuset, cpuset, obj->allowed_cpuset); > ^ > task_cgroup_cpuset.c:496:38: error: 'struct hwloc_obj' has no member > named 'allowed_cpuset' > hwloc_bitmap_or(cpuset, cpuset, obj->allowed_cpuset); > ^ > task_cgroup_cpuset.c: In function '_task_cgroup_cpuset_dist_cyclic': > task_cgroup_cpuset.c:621:31: error: 'struct hwloc_obj' has no member > named 'allowed_cpuset' > (hwloc_bitmap_first(obj->allowed_cpuset) != -1)) { > ^ > task_cgroup_cpuset.c:632:14: error: 'struct hwloc_obj' has no member > named 'allowed_cpuset' > obj->allowed_cpuset) != -1)) { > ^ > task_cgroup_cpuset.c: In function '_validate_mask': > task_cgroup_cpuset.c:880:29: error: 'struct hwloc_obj' has no member > named 'allowed_cpuset' > j = hwloc_bitmap_isset(obj->allowed_cpuset, i); > ^ > task_cgroup_cpuset.c:893:30: error: 'struct hwloc_obj' has no member > named 'allowed_cpuset' > if (hwloc_bitmap_isset(obj->allowed_cpuset, i) > 0) > > > which is completely in sync with > > > allowed_cpuset and allowed_nodeset only in the main topology > > Objects do not have |allowed_cpuset| and |allowed_nodeset| anymore. > They are only available for the entire topology using > hwloc_topology_get_allowed_cpuset() > <https://www.open-mpi.org/projects/hwloc/doc/v2.0.1/a00166.php#ga517d5d68ec9f24583d8933aab713be8e> > and hwloc_topology_get_allowed_nodeset() > <https://www.open-mpi.org/projects/hwloc/doc/v2.0.1/a00166.php#ga21a4d7237a11e76b912ed4524ab78cbd>. > > As usual, those are only needed when the WHOLE_SYSTEM topology flag is > given, which means disallowed objects are kept in the topology. If so, > one may find out whether some PUs inside an object is allowed by checking > > hwloc_bitmap_intersects(obj->cpuset, > hwloc_topology_get_allowed_cpuset(topology)) > > Replace cpusets with nodesets for NUMA nodes. To find out which ones, > replace intersects() with and() to get the actual intersection. > > at https://www.open-mpi.org/projects/hwloc/doc/v2.0.1/a00327.php > > Yet in the source code of Slurm there are already some preprocessor > switches for HWLOC 2. > > Any hints welcome. > > Best, > > Andreas Henkel >