<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>