Thinking more about it, I don't know if it's a good idea. The
alternatives for the value of a nodeset containing the whole memory when
there are no NUMA nodes are:
1) full nodeset (current behavior). The behavior is thus different in
non-NUMA and NUMA cases. It makes make check a bit more tricky, but this
may not matter in real applications unless they really play a lot with
nodesets (compare them, ...).
2) Only mark first bit of the nodeset. That's what libnuma does.
Convenient in some cases, maybe not in others.
3) Mark nothing since there are actually no NUMA nodes in the machine.
The main difference between 1/2 and 3 is that the latter is really a set
of existing nodes, while the formers are a set of physical nodes OR the
whole memory if the machine isn't NUMA.
Le 05/10/2010 10:03, bgoglin_at_[hidden] a écrit :
> Author: bgoglin
> Date: 2010-10-05 04:03:06 EDT (Tue, 05 Oct 2010)
> New Revision: 2553
> URL: https://svn.open-mpi.org/trac/hwloc/changeset/2553
> Specify in the API that we use a full nodeset when manipulating the whole memory of a machine without any NUMA node
> Text files modified:
> trunk/include/hwloc.h | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
> Modified: trunk/include/hwloc.h
> --- trunk/include/hwloc.h (original)
> +++ trunk/include/hwloc.h 2010-10-05 04:03:06 EDT (Tue, 05 Oct 2010)
> @@ -81,6 +81,10 @@
> /** \brief A node set is a bitmap whose bits are set according to NUMA memory node physical OS indexes.
> * It may be consulted and modified with the bitmap API as any ::hwloc_bitmap_t (see hwloc/bitmap.h).
> + *
> + * If there are no NUMA nodes in the system (when the whole memory is considered
> + * as a single memory bank), the nodeset may be either empty (no memory selected)
> + * or full (whole memory selected).
> typedef hwloc_bitmap_t hwloc_nodeset_t;
> /** \brief A non-modifiable ::hwloc_nodeset_t.
> hwloc-svn mailing list