<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>HI all,</p>
<p>did anyone build Slurm using a recent version of HWLOC like 2.0.1
or 2.0.2? <br>
</p>
<p>When I try to I end up with <br>
</p>
<p>task_cgroup_cpuset.c:486:40: error: 'struct hwloc_obj' has no
member named 'allowed_cpuset'<br>
hwloc_bitmap_or(cpuset, cpuset, pobj->allowed_cpuset);<br>
^<br>
task_cgroup_cpuset.c:492:39: error: 'struct hwloc_obj' has no
member named 'allowed_cpuset'<br>
hwloc_bitmap_or(cpuset, cpuset, obj->allowed_cpuset);<br>
^<br>
task_cgroup_cpuset.c:496:38: error: 'struct hwloc_obj' has no
member named 'allowed_cpuset'<br>
hwloc_bitmap_or(cpuset, cpuset, obj->allowed_cpuset);<br>
^<br>
task_cgroup_cpuset.c: In function
'_task_cgroup_cpuset_dist_cyclic':<br>
task_cgroup_cpuset.c:621:31: error: 'struct hwloc_obj' has no
member named 'allowed_cpuset'<br>
(hwloc_bitmap_first(obj->allowed_cpuset) != -1)) {<br>
^<br>
task_cgroup_cpuset.c:632:14: error: 'struct hwloc_obj' has no
member named 'allowed_cpuset'<br>
obj->allowed_cpuset) != -1)) {<br>
^<br>
task_cgroup_cpuset.c: In function '_validate_mask':<br>
task_cgroup_cpuset.c:880:29: error: 'struct hwloc_obj' has no
member named 'allowed_cpuset'<br>
j = hwloc_bitmap_isset(obj->allowed_cpuset, i);<br>
^<br>
task_cgroup_cpuset.c:893:30: error: 'struct hwloc_obj' has no
member named 'allowed_cpuset'<br>
if (hwloc_bitmap_isset(obj->allowed_cpuset, i) > 0)<br>
</p>
<p><br>
</p>
<p>which is completely in sync with <br>
</p>
<h1>allowed_cpuset and allowed_nodeset only in the main topology</h1>
<p>Objects do not have <code>allowed_cpuset</code> and <code>allowed_nodeset</code>
anymore. They are only available for the entire topology using <a
class="el"
href="https://www.open-mpi.org/projects/hwloc/doc/v2.0.1/a00166.php#ga517d5d68ec9f24583d8933aab713be8e"
title="Get allowed CPU set. ">hwloc_topology_get_allowed_cpuset()</a>
and <a class="el"
href="https://www.open-mpi.org/projects/hwloc/doc/v2.0.1/a00166.php#ga21a4d7237a11e76b912ed4524ab78cbd"
title="Get allowed node set. ">hwloc_topology_get_allowed_nodeset()</a>.</p>
<p>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 </p>
<pre class="fragment">hwloc_bitmap_intersects(obj->cpuset, hwloc_topology_get_allowed_cpuset(topology))
</pre>
<p> Replace cpusets with nodesets for NUMA nodes. To find out which
ones, replace intersects() with and() to get the actual
intersection.</p>
<p>at <a class="moz-txt-link-freetext" href="https://www.open-mpi.org/projects/hwloc/doc/v2.0.1/a00327.php">https://www.open-mpi.org/projects/hwloc/doc/v2.0.1/a00327.php</a></p>
<p>Yet in the source code of Slurm there are already some
preprocessor switches for HWLOC 2. <br>
</p>
<p>Any hints welcome. <br>
</p>
<p>Best, <br>
</p>
<p>Andreas Henkel<br>
</p>
</body>
</html>