Commits

Ralph Castain committed f274b7a

Remove the old version of hwloc. Update the new one to reflect the official release dates.

Refs #3744

Comments (0)

Files changed (86)

Add a comment to this file

opal/mca/hwloc/hwloc152/.ompi_ignore

Empty file removed.

opal/mca/hwloc/hwloc152/Makefile.am

-#
-# Copyright (c) 2011-2013 Cisco Systems, Inc.  All rights reserved.
-# $COPYRIGHT$
-# 
-# Additional copyrights may follow
-# 
-# $HEADER$
-#
-
-# Need to include these files so that these directories are carried in
-# the tarball (in case someone invokes autogen.sh on a dist tarball).
-EXTRA_DIST = \
-        hwloc/doc/README.txt \
-        hwloc/tests/README.txt \
-        hwloc/utils/README.txt
-
-SUBDIRS = hwloc
-
-# Headers and sources
-headers = hwloc152.h
-sources = hwloc152_component.c
-
-# We only ever build this component statically
-noinst_LTLIBRARIES = libmca_hwloc_hwloc152.la
-libmca_hwloc_hwloc152_la_SOURCES = $(headers) $(sources)
-nodist_libmca_hwloc_hwloc152_la_SOURCES = $(nodist_headers)
-libmca_hwloc_hwloc152_la_LDFLAGS = -module -avoid-version $(opal_hwloc_hwloc152_LDFLAGS)
-libmca_hwloc_hwloc152_la_LIBADD = $(opal_hwloc_hwloc152_LIBS)
-libmca_hwloc_hwloc152_la_DEPENDENCIES = \
-    $(HWLOC_top_builddir)/src/libhwloc_embedded.la
-
-# Since the rest of the code base includes the underlying hwloc.h, we
-# also have to install the underlying header files when
-# --with-devel-headers is specified.  hwloc doesn't support this; the
-# least gross way to make this happen is just to list all of hwloc's
-# header files here.  :-(
-headers += \
-        hwloc/include/hwloc.h \
-        hwloc/include/hwloc/bitmap.h \
-        hwloc/include/hwloc/helper.h \
-        hwloc/include/hwloc/myriexpress.h \
-        hwloc/include/hwloc/openfabrics-verbs.h \
-        hwloc/include/hwloc/cuda.h \
-        hwloc/include/hwloc/cudart.h \
-        hwloc/include/hwloc/rename.h \
-        hwloc/include/private/private.h \
-        hwloc/include/private/debug.h \
-        hwloc/include/private/misc.h \
-        hwloc/include/private/cpuid.h
-nodist_headers = hwloc/include/hwloc/autogen/config.h
-
-if HWLOC_HAVE_LINUX
-headers += \
-        hwloc/include/hwloc/linux.h \
-        hwloc/include/hwloc/linux-libnuma.h
-endif HWLOC_HAVE_LINUX
-
-if HWLOC_HAVE_SCHED_SETAFFINITY
-headers += hwloc/include/hwloc/glibc-sched.h
-endif HWLOC_HAVE_SCHED_SETAFFINITY
-
-# Conditionally install the header files
-if WANT_INSTALL_HEADERS
-opaldir = $(includedir)/openmpi/$(subdir)
-nobase_opal_HEADERS = $(headers)
-nobase_nodist_opal_HEADERS = $(nodist_headers)
-endif

opal/mca/hwloc/hwloc152/README-ompi.txt

-Applied the following patches from the upstream hwloc 1.5 branch after
-the v1.5.2 release:
-
-https://svn.open-mpi.org/trac/hwloc/changeset/5513
-https://svn.open-mpi.org/trac/hwloc/changeset/5588
-https://svn.open-mpi.org/trac/hwloc/changeset/5592
-

opal/mca/hwloc/hwloc152/configure.m4

-# -*- shell-script -*-
-#
-# Copyright (c) 2009-2013 Cisco Systems, Inc.  All rights reserved.
-#
-# $COPYRIGHT$
-# 
-# Additional copyrights may follow
-# 
-# $HEADER$
-#
-
-#
-# Priority
-#
-AC_DEFUN([MCA_opal_hwloc_hwloc152_PRIORITY], [75])
-
-#
-# Force this component to compile in static-only mode
-#
-AC_DEFUN([MCA_opal_hwloc_hwloc152_COMPILE_MODE], [
-    AC_MSG_CHECKING([for MCA component $2:$3 compile mode])
-    $4="static"
-    AC_MSG_RESULT([$$4])
-])
-
-# Include hwloc m4 files
-m4_include(opal/mca/hwloc/hwloc152/hwloc/config/hwloc.m4)
-m4_include(opal/mca/hwloc/hwloc152/hwloc/config/hwloc_pkg.m4)
-m4_include(opal/mca/hwloc/hwloc152/hwloc/config/hwloc_check_attributes.m4)
-m4_include(opal/mca/hwloc/hwloc152/hwloc/config/hwloc_check_visibility.m4)
-m4_include(opal/mca/hwloc/hwloc152/hwloc/config/hwloc_check_vendor.m4)
-
-# MCA_hwloc_hwloc152_POST_CONFIG()
-# ---------------------------------
-AC_DEFUN([MCA_opal_hwloc_hwloc152_POST_CONFIG],[
-    OPAL_VAR_SCOPE_PUSH([opal_hwloc_hwloc152_basedir])
-
-    # If we won, then do all the rest of the setup
-    AS_IF([test "$1" = "1"], 
-          [
-           # Set this variable so that the framework m4 knows what
-           # file to include in opal/mca/hwloc/hwloc.h
-           opal_hwloc_hwloc152_basedir=opal/mca/hwloc/hwloc152
-           opal_hwloc_base_include="$opal_hwloc_hwloc152_basedir/hwloc152.h"
-
-           # Add some stuff to CPPFLAGS so that the rest of the source
-           # tree can be built
-           file=$opal_hwloc_hwloc152_basedir/hwloc
-           CPPFLAGS="$CPPFLAGS -I$OMPI_TOP_SRCDIR/$file/include"
-           AS_IF([test "$OMPI_TOP_BUILDDIR" != "$OMPI_TOP_SRCDIR"],
-                 [CPPFLAGS="$CPPFLAGS -I$OMPI_TOP_BUILDDIR/$file/include"])
-           unset file
-          ])
-    OPAL_VAR_SCOPE_POP
-
-    # This must be run unconditionally
-    HWLOC_DO_AM_CONDITIONALS
-])dnl
-
-
-# MCA_hwloc_hwloc152_CONFIG([action-if-found], [action-if-not-found])
-# --------------------------------------------------------------------
-AC_DEFUN([MCA_opal_hwloc_hwloc152_CONFIG],[
-    # Hwloc needs to know if we have Verbs support
-    AC_REQUIRE([OPAL_CHECK_VERBS_DIR])
-
-    AC_CONFIG_FILES([opal/mca/hwloc/hwloc152/Makefile])
-
-    OPAL_VAR_SCOPE_PUSH([HWLOC_VERSION opal_hwloc_hwloc152_save_CPPFLAGS opal_hwloc_hwloc152_save_LDFLAGS opal_hwloc_hwloc152_save_LIBS opal_hwloc_hwloc152_save_cairo opal_hwloc_hwloc152_save_xml opal_hwloc_hwloc152_basedir opal_hwloc_hwloc152_file opal_hwloc_hwloc152_save_cflags])
-
-    # default to this component not providing support
-    opal_hwloc_hwloc152_basedir=opal/mca/hwloc/hwloc152
-    opal_hwloc_hwloc152_support=no
-
-    if test "$with_hwloc" = "internal" -o "$with_hwloc" = "" -o "$with_hwloc" = "yes"; then
-        opal_hwloc_hwloc152_save_CPPFLAGS=$CPPFLAGS
-        opal_hwloc_hwloc152_save_LDFLAGS=$LDFLAGS
-        opal_hwloc_hwloc152_save_LIBS=$LIBS
-
-        # Run the hwloc configuration - set the prefix to minimize
-        # the chance that someone will use the internal symbols
-        HWLOC_SET_SYMBOL_PREFIX([opal_hwloc152_])
-
-        # save XML or graphical options
-        opal_hwloc_hwloc152_save_cairo=$enable_cairo
-        opal_hwloc_hwloc152_save_xml=$enable_xml
-
-        # never enable hwloc's graphical option
-        enable_cairo=no
-
-        # Override -- disable hwloc's libxml2 support, but enable the
-        # native hwloc XML support
-        enable_libxml2=no
-        enable_xml=yes
-
-        # hwloc checks for compiler visibility, and its needs to do
-        # this without "picky" flags.
-        opal_hwloc_hwloc152_save_cflags=$CFLAGS
-        CFLAGS=$OMPI_CFLAGS_BEFORE_PICKY
-        HWLOC_SETUP_CORE([opal/mca/hwloc/hwloc152/hwloc], 
-                  [AC_MSG_CHECKING([whether hwloc configure succeeded])
-                   AC_MSG_RESULT([yes])
-                   HWLOC_VERSION="internal v`$srcdir/$opal_hwloc_hwloc152_basedir/hwloc/config/hwloc_get_version.sh $srcdir/$opal_hwloc_hwloc152_basedir/hwloc/VERSION`"
-
-                   # Build flags for our Makefile.am
-                   opal_hwloc_hwloc152_LDFLAGS='$(HWLOC_EMBEDDED_LDFLAGS)'
-                   opal_hwloc_hwloc152_LIBS='$(top_ompi_builddir)/'"$opal_hwloc_hwloc152_basedir"'/hwloc/src/libhwloc_embedded.la $(HWLOC_EMBEDDED_LIBS)'
-                   opal_hwloc_hwloc152_support=yes
-
-                   AC_DEFINE_UNQUOTED([HWLOC_HWLOC152_HWLOC_VERSION], 
-                       ["$HWLOC_VERSION"], 
-                       [Version of hwloc])
-
-                   # Do we have verbs support?
-                   CPPFLAGS_save=$CPPFLAGS
-                   AS_IF([test "$opal_want_verbs" = "yes"],
-                         [CPPFLAGS="-I$opal_verbs_dir/include $CPPFLAGS"])
-                   AC_CHECK_HEADERS([infiniband/verbs.h])
-                   CPPFLAGS=$CPPFLAGS_save
-                  ],
-                  [AC_MSG_CHECKING([whether hwloc configure succeeded])
-                   AC_MSG_RESULT([no])
-                   opal_hwloc_hwloc152_support=no])
-        CFLAGS=$opal_hwloc_hwloc152_save_cflags
-
-        # Restore some env variables, if necessary
-        AS_IF([test -n "$opal_hwloc_hwloc152_save_cairo"],
-              [enable_cairo=$opal_hwloc_hwloc152_save_cairo])
-        AS_IF([test -n "$opal_hwloc_hwloc152_save_xml"],
-              [enable_xml=$opal_hwloc_hwloc152_save_xml])
-       
-        CPPFLAGS=$opal_hwloc_hwloc152_save_CPPFLAGS
-        LDFLAGS=$opal_hwloc_hwloc152_save_LDFLAGS
-        LIBS=$opal_hwloc_hwloc152_save_LIBS
-
-        AC_SUBST([opal_hwloc_hwloc152_CFLAGS])
-        AC_SUBST([opal_hwloc_hwloc152_CPPFLAGS])
-        AC_SUBST([opal_hwloc_hwloc152_LDFLAGS])
-        AC_SUBST([opal_hwloc_hwloc152_LIBS])
-
-        # Finally, add some flags to the wrapper compiler so that our
-        # headers can be found.
-        hwloc_hwloc152_WRAPPER_EXTRA_LDFLAGS="$HWLOC_EMBEDDED_LDFLAGS"
-        hwloc_hwloc152_WRAPPER_EXTRA_LIBS="$HWLOC_EMBEDDED_LIBS"
-        hwloc_hwloc152_WRAPPER_EXTRA_CPPFLAGS='-I${includedir}/openmpi/'"$opal_hwloc_hwloc152_basedir/hwloc/include"
-    fi
-
-    # Done!
-    AS_IF([test "$opal_hwloc_hwloc152_support" = "yes"],
-          [$1],
-          [$2])
-
-    OPAL_VAR_SCOPE_POP
-])dnl

opal/mca/hwloc/hwloc152/hwloc/AUTHORS

-Cédric Augonnet <Cedric.Augonnet@labri.fr>
-Jérôme Clet-Ortega <Jerome.Clet-Ortega@labri.fr>
-Ludovic Courtès <Ludovic.Courtes@inria.fr>
-Brice Goglin <Brice.Goglin@inria.fr>
-Nathalie Furmento <Nathalie.Furmento@labri.fr>
-Samuel Thibault <Samuel.Thibault@labri.fr>
-Jeff Squyres <jsquyres@cisco.com>
-Alexey Kardashevskiy <aik@au1.ibm.com>

opal/mca/hwloc/hwloc152/hwloc/COPYING

-Copyright © 2009 CNRS
-Copyright © 2009 inria.  All rights reserved.
-Copyright © 2009 Université Bordeaux 1
-Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
-See COPYING in top-level directory.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

opal/mca/hwloc/hwloc152/hwloc/Makefile.am

-# Copyright © 2009      inria.  All rights reserved.
-# Copyright © 2009      Université Bordeaux 1
-# Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
-# See COPYING in top-level directory.
-
-# Note that the -I directory must *exactly* match what was specified
-# via AC_CONFIG_MACRO_DIR in configure.ac.
-ACLOCAL_AMFLAGS = -I ./config
-
-SUBDIRS = src include
-if HWLOC_BUILD_STANDALONE
-SUBDIRS += utils tests doc
-endif
-
-# Do not let automake automatically add the non-standalone dirs to the
-# distribution tarball if we're building in embedded mode.
-DIST_SUBDIRS = $(SUBDIRS)
-
-# Only install the pkg file if we're building in standalone mode
-if HWLOC_BUILD_STANDALONE
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = hwloc.pc
-endif
-
-# Only install the valgrind suppressions file if we're building in standalone mode
-if HWLOC_BUILD_STANDALONE
-dist_pkgdata_DATA = contrib/hwloc-valgrind.supp
-endif
-
-#
-# "make distcheck" requires that tarballs are able to be able to "make
-# dist", so we have to include config/distscript.csh.
-#
-EXTRA_DIST = \
-        README VERSION COPYING AUTHORS \
-        config/hwloc_get_version.sh \
-        config/distscript.csh
-
-if HWLOC_BUILD_STANDALONE
-#
-# Double check that we generated both the doxygen docs and a new copy
-# of the top-level README file.
-#
-cannot-dist:
-	@echo "ERROR: Did not build both of the doxygen docs and README."
-	@echo "ERROR: This tarball is not complete!"
-	@echo "ERROR: Cowardly refusing to complete successfully..."
-	@exit 1
-
-# Refuse to make dist if we can't make the doxygen stuff (note that
-# BUILD_DOXYGEN will automatically be false if we're not building
-# standalone).
-if !HWLOC_BUILD_DOXYGEN
-dist-hook: cannot-dist
-else
-if !HWLOC_BUILD_README
-dist-hook: cannot-dist
-else
-dist-hook:
-	csh "$(top_srcdir)/config/distscript.csh" "$(top_srcdir)" "$(distdir)" "$(HWLOC_VERSION)" "$(HWLOC_SVN_R)"
-endif HWLOC_BUILD_README
-endif HWLOC_BUILD_DOXYGEN
-endif HWLOC_BUILD_STANDALONE
-
-#
-# Build the top-level README file
-#
-
-if HWLOC_BUILD_STANDALONE
-.PHONY: doc readme
-doc readme:
-	$(MAKE) -C doc readme
-endif HWLOC_BUILD_STANDALONE
-
-#
-# Winball specific rules, to be manually run after make install
-#
-if HWLOC_BUILD_STANDALONE
-.PHONY: install-winball
-install-winball:
-	sed -e 's/$$/'$$'\015'/ < $(srcdir)/README > $(prefix)/README.txt
-	sed -e 's/$$/'$$'\015'/ < $(srcdir)/NEWS > $(prefix)/NEWS.txt
-	sed -e 's/$$/'$$'\015'/ < $(srcdir)/COPYING > $(prefix)/COPYING.txt
-	$(RM) $(pkgconfigdir)/hwloc.pc
-endif HWLOC_BUILD_STANDALONE

opal/mca/hwloc/hwloc152/hwloc/NEWS

-Copyright © 2009 CNRS
-Copyright © 2009-2012 inria.  All rights reserved.
-Copyright © 2009-2012 Université Bordeaux 1
-Copyright © 2009-2011 Cisco Systems, Inc.  All rights reserved.
-
-$COPYRIGHT$
-
-Additional copyrights may follow
-
-$HEADER$
-
-===========================================================================
-
-This file contains the main features as well as overviews of specific
-bug fixes (and other actions) for each version of hwloc since version
-0.9 (as initially released as "libtopology", then re-branded to "hwloc"
-in v0.9.1).
-
-
-Version 1.5.2 (some of these changes are in v1.6.2 but not in v1.6)
--------------
-* Use libpciaccess instead of pciutils/libpci by default for I/O discovery.
-  pciutils/libpci is only used if --enable-libpci is given to configure
-  because its GPL license may taint hwloc. See the Installation section
-  in the documentation for details.
-* Fix get_cpubind on Solaris when bound to a single PU with
-  processor_bind(). Thanks to Eugene Loh for reporting the problem
-  and providing a patch.
-* Fix some DIR descriptor leaks on Linux.
-* Fix I/O device lists when some were filtered out after a XML import.
-* Add missing Backend string info on Solaris in most cases.
-* Fix the removal of I/O objects when importing a I/O-enabled XML topology
-  without any I/O topology flag.
-* Fix the output of hwloc-calc -H --hierarchical when using logical
-  indexes in the output.
-* Fix the pkg-config output with --libs --static.
-  Thanks to Erik Schnetter for reporting one of the problems.
-
-
-Version 1.5.1
--------------
-* Fix block OS device detection on Linux kernel 3.3 and later.
-  Thanks to Guy Streeter for reporting the problem and testing the fix.
-* Fix the cpuid code in the x86 backend (for FreeBSD). Thanks to
-  Sebastian Kuzminsky for reporting problems and testing patches.
-* Fix 64bit detection on FreeBSD.
-* Fix some corner cases in the management of the thissystem flag with
-  respect to topology flags and environment variables.
-* Fix some corner cases in command-line parsing checks in hwloc-distrib
-  and hwloc-distances.
-* Make sure we do not miss some block OS devices on old Linux kernels
-  when a single PCI device has multiple IDE hosts/devices behind it.
-* Do not disable I/O devices or instruction caches in hwloc-assembler output.
-
-
-Version 1.5.0
--------------
-* Backends
-  + Do not limit the number of processors to 1024 on Solaris anymore.
-  + Gather total machine memory on FreeBSD.
-  + XML topology files do not depend on the locale anymore. Float numbers
-    such as NUMA distances or PCI link speeds now always use a dot as a
-    decimal separator.
-  + Add instruction caches detection on Linux, AIX, Windows and Darwin.
-  + Add get_last_cpu_location() support for the current thread on AIX.
-  + Support binding on AIX when threads or processes were bound with
-    bindprocessor(). Thanks to Hendryk Bockelmann for reporting the issue
-    and testing patches, and to Farid Parpia for explaining the binding
-    interfaces.
-  + Improve AMD topology detection in the x86 backend (for FreeBSD) using
-    the topoext feature.
-* API
-  + Increase HWLOC_API_VERSION to 0x00010500 so that API changes may be
-    detected at build-time.
-  + Add a cache type attribute describind Data, Instruction and Unified
-    caches. Caches with different types but same depth (for instance L1d
-    and L1i) are placed on different levels.
-  + Add hwloc_get_cache_type_depth() to retrieve the hwloc level depth of
-    of the given cache depth and type, for instance L1i or L2.
-    It helps  disambiguating the case where hwloc_get_type_depth() returns
-    HWLOC_TYPE_DEPTH_MULTIPLE.
-  + Instruction caches are ignored unless HWLOC_TOPOLOGY_FLAG_ICACHES is
-    passed to hwloc_topology_set_flags() before load.
-  + Add hwloc_ibv_get_device_osdev_by_name() OpenFabrics helper in
-    openfabrics-verbs.h to find the hwloc OS device object corresponding to
-    an OpenFabrics device.
-* Tools
-  + Add lstopo-no-graphics, a lstopo built without graphical support to
-    avoid dependencies on external libraries such as Cairo and X11. When
-    supported, graphical outputs are only available in the original lstopo
-    program.
-    - Packagers splitting lstopo and lstopo-no-graphics into different
-      packages are advised to use the alternatives system so that lstopo
-      points to the best available binary.
-  + Instruction caches are enabled in lstopo by default. User --no-icaches
-    to disable them.
-  + Add -t/--threads to show threads in hwloc-ps.
-* Removal of obsolete components
-  + Remove the old cpuset interface (hwloc/cpuset.h) which is deprecated and
-    superseded by the bitmap API (hwloc/bitmap.h) since v1.1.
-    hwloc_cpuset and nodeset types are still defined, but all hwloc_cpuset_*
-    compatibility wrappers are now gone.
-  + Remove Linux libnuma conversion helpers for the deprecated and
-    broken nodemask_t interface.
-  + Remove support for "Proc" type name, it was superseded by "PU" in v1.0.
-  + Remove hwloc-mask symlinks, it was replaced by hwloc-calc in v1.0.
-* Misc
-  + Fix PCIe 3.0 link speed computation.
-  + Non-printable characters are dropped from strings during XML export.
-  + Fix importing of escaped characters with the minimalistic XML backend.
-  + Assert hwloc_is_thissystem() in several I/O related helpers.
-  + Fix some memory leaks in the x86 backend for FreeBSD.
-  + Minor fixes to ease native builds on Windows.
-  + Limit the number of retries when operating on all threads within a
-    process on Linux if the list of threads is heavily getting modified.
-
-
-Version 1.4.2
--------------
-* Fix build on Solaris 9 and earlier when fabsf() is not a compiler
-  built-in. Thanks to Igor Galić for reporting the problem.
-* Fix support for more than 32 processors on Windows. Thanks to Hartmut
-  Kaiser for reporting the problem.
-* Fix process-wide binding and cpulocation routines on Linux when some
-  threads disappear in the meantime. Thanks to Vlad Roubtsov for reporting
-  the issue.
-* Make installed scripts executable. Thanks to Jirka Hladky for reporting
-  the problem.
-* Fix libtool revision management when building for Windows. This fix was
-  also released as hwloc v1.4.1.1 Windows builds. Thanks to Hartmut Kaiser
-  for reporting the problem.
-* Fix the __hwloc_inline keyword in public headers when compiling with a
-  C++ compiler.
-* Add Port info attribute to network OS devices inside OpenFabrics PCI
-  devices so as to identify which interface corresponds to which port.
-* Document requirements for interoperability helpers: I/O devices discovery
-  is required for some of them; the topology must match the current host
-  for most of them.
-
-
-Version 1.4.1
--------------
-* This release contains all changes from v1.3.2.
-* Fix hwloc_alloc_membind, thanks Karl Napf for reporting the issue.
-* Fix memory leaks in some get_membind() functions.
-* Fix helpers converting from Linux libnuma to hwloc (hwloc/linux-libnuma.h)
-  in case of out-of-order NUMA node ids.
-* Fix some overzealous assertions in the distance grouping code.
-* Workaround BIOS reporting empty I/O locality in cuda and openfabrics
-  helpers on Linux. Thanks to Albert Solernou for reporting the problem.
-* Install a valgrind suppressions file hwloc-valgrind.supp (see the FAQ).
-* Fix memory binding documentation. Thanks to Karl Napf for reporting the
-  issues.
-
-
-Version 1.4.0 (does not contain all v1.3.2 changes)
--------------
-* Major features
-  + Add "custom" interface and "assembler" tools to build multi-node
-    topology. See the Multi-node Topologies section in the documentation
-    for details.
-* Interface improvements
-  + Add symmetric_subtree object attribute to ease assumptions when consulting
-    regular symmetric topologies.
-  + Add a CPUModel and CPUType info attribute to Socket objects on Linux
-    and Solaris.
-  + Add hwloc_get_obj_index_inside_cpuset() to retrieve the "logical" index
-    of an object within a subtree of the topology.
-  + Add more NVIDIA CUDA helpers in cuda.h and cudart.h to find hwloc objects
-    corresponding to CUDA devices.
-* Discovery improvements
-  + Add a group object above partial distance matrices to make sure
-    the matrices are available in the final topology, except when this
-    new object would contradict the existing hierarchy.
-  + Grouping by distances now also works when loading from XML.
-  + Fix some corner cases in object insertion, for instance when dealing
-    with NUMA nodes without any CPU.
-* Backends
-  + Implement hwloc_get_area_membind() on Linux.
-  + Honor I/O topology flags when importing from XML.
-  + Further improve XML-related error checking and reporting.
-  + Hide synthetic topology error messages unless HWLOC_SYNTHETIC_VERBOSE=1.
-* Tools
-  + Add synthetic exporting of symmetric topologies to lstopo.
-  + lstopo --horiz and --vert can now be applied to some specific object types.
-  + lstopo -v -p now displays distance matrices with physical indexes.
-  + Add hwloc-distances utility to list distances.
-* Documentation
-  + Fix and/or document the behavior of most inline functions in hwloc/helper.h
-    when the topology contains some I/O or Misc objects.
-  + Backend documentation enhancements.
-* Bug fixes
-  + Fix missing last bit in hwloc_linux_get_thread_cpubind().
-    Thanks to Carolina Gómez-Tostón Gutiérrez for reporting the issue.
-  + Fix FreeBSD build without cpuid support.
-  + Fix several Windows build issues.
-  + Fix inline keyword definition in public headers.
-  + Fix dependencies in the embedded library.
-  + Improve visibility support detection. Thanks to Dave Love for providing
-    the patch.
-  + Remove references to internal symbols in the tools.
-
-
-Version 1.3.2
--------------
-* Fix missing last bit in hwloc_linux_get_thread_cpubind().
-  Thanks to Carolina Gómez-Tostón Gutiérrez for reporting the issue.
-* Fix build with -mcmodel=medium. Thanks to Devendar Bureddy for reporting
-  the issue.
-* Fix build with Solaris Studio 12 compiler when XML is disabled.
-  Thanks to Paul H. Hargrove for reporting the problem.
-* Fix installation with old GNU sed, for instance on Red Hat 8.
-  Thanks to Paul H. Hargrove for reporting the problem.
-* Fix PCI locality when Linux cgroups restrict the available CPUs.
-* Fix floating point issue when grouping by distance on mips64 architecture.
-  Thanks to Paul H. Hargrove for reporting the problem.
-* Fix conversion from/to Linux libnuma when some NUMA nodes have no memory.
-* Fix support for gccfss compilers with broken ffs() support. Thanks to
-  Paul H. Hargrove for reporting the problem and providing a patch.
-* Fix FreeBSD build without cpuid support.
-* Fix several Windows build issues.
-* Fix inline keyword definition in public headers.
-* Fix dependencies in the embedded library.
-* Detect when a compiler such as xlc may not report compile errors
-  properly, causing some configure checks to be wrong. Thanks to
-  Paul H. Hargrove for reporting the problem and providing a patch.
-* Improve visibility support detection. Thanks to Dave Love for providing
-  the patch.
-* Remove references to internal symbols in the tools.
-* Fix installation on systems with limited command-line size.
-  Thanks to Paul H. Hargrove for reporting the problem.
-* Further improve XML-related error checking and reporting.
-
-
-Version 1.3.1
--------------
-* Fix pciutils detection with pkg-config when not installed in standard
-  directories.
-* Fix visibility options detection with the Solaris Studio compiler.
-  Thanks to Igor Galić and Terry Dontje for reporting the problems.
-* Fix support for old Linux sched.h headers such as those found
-  on Red Hat 8. Thanks to Paul H. Hargrove for reporting the problems.
-* Fix inline and attribute support for Solaris compilers. Thanks to
-  Dave Love for reporting the problems.
-* Print a short summary at the end of the configure output. Thanks to
-  Stefan Eilemann for the suggestion.
-* Add --disable-libnuma configure option to disable libnuma-based
-  memory binding support on Linux.  Thanks to Rayson Ho for the
-  suggestion.
-* Make hwloc's configure script properly obey $PKG_CONFIG.  Thanks to
-  Nathan Phillip Brink for raising the issue.
-* Silence some harmless pciutils warnings, thanks to Paul H. Hargrove
-  for reporting the problem.
-* Fix the documentation with respect to hwloc_pid_t and hwloc_thread_t
-  being either pid_t and pthread_t on Unix, or HANDLE on Windows.
-
-
-Version 1.3.0
--------------
-* Major features
-  + Add I/O devices and bridges to the topology using the pciutils
-    library. Only enabled after setting the relevant flag with
-    hwloc_topology_set_flags() before hwloc_topology_load(). See the
-    I/O Devices section in the documentation for details.
-* Discovery improvements
-  + Add associativity to the cache attributes.
-  + Add support for s390/z11 "books" on Linux.
-  + Add the HWLOC_GROUPING_ACCURACY environment variable to relax
-    distance-based grouping constraints. See the Environment Variables
-    section in the documentation for details about grouping behavior
-    and configuration.
-  + Allow user-given distance matrices to remove or replace those
-    discovered by the OS backend.
-* XML improvements
-  + XML is now always supported: a minimalistic custom import/export
-    code is used when libxml2 is not available. It is only guaranteed
-    to read XML files generated by hwloc.
-  + hwloc_topology_export_xml() and export_xmlbuffer() now return an
-    integer.
-  + Add hwloc_free_xmlbuffer() to free the buffer allocated by
-    hwloc_topology_export_xmlbuffer().
-  + Hide XML topology error messages unless HWLOC_XML_VERBOSE=1.
-* Minor API updates
-  + Add hwloc_obj_add_info to customize object info attributes.
-* Tools
-  + lstopo now displays I/O devices by default. Several options are
-    added to configure the I/O discovery.
-  + hwloc-calc and hwloc-bind now accept I/O devices as input.
-  + Add --restrict option to hwloc-calc and hwloc-distribute.
-  + Add --sep option to change the output field separator in hwloc-calc.
-  + Add --whole-system option to hwloc-ps.
-
-
-Version 1.2.2
--------------
-* Fix build on AIX 5.2, thanks Utpal Kumar Ray for the report.
-* Fix XML import of very large page sizes or counts on 32bits platform,
-  thanks to Karsten Hopp for the RedHat ticket.
-* Fix crash when administrator limitations such as Linux cgroup require
-  to restrict distance matrices. Thanks to Ake Sandgren for reporting the
-  problem.
-* Fix the removal of objects such as AMD Magny-Cours dual-node sockets
-  in case of administrator restrictions.
-* Improve error reporting and messages in case of wrong synthetic topology
-  description.
-* Several other minor internal fixes and documentation improvements.
-
-
-Version 1.2.1
--------------
-* Improve support of AMD Bulldozer "Compute-Unit" modules by detecting
-  logical processors with different core IDs on Linux.
-* Fix hwloc-ps crash when listing processes from another Linux cpuset.
-  Thanks to Carl Smith for reporting the problem.
-* Fix build on AIX and Solaris. Thanks to Carl Smith and Andreas Kupries
-  for reporting the problems.
-* Fix cache size detection on Darwin. Thanks to Erkcan Özcan for reporting
-  the problem.
-* Make configure fail if --enable-xml or --enable-cairo is given and
-  proper support cannot be found. Thanks to Andreas Kupries for reporting
-  the XML problem.
-* Fix spurious L1 cache detection on AIX. Thanks to Hendryk Bockelmann
-  for reporting the problem.
-* Fix hwloc_get_last_cpu_location(THREAD) on Linux. Thanks to Gabriele
-  Fatigati for reporting the problem.
-* Fix object distance detection on Solaris.
-* Add pthread_self weak symbol to ease static linking.
-* Minor documentation fixes.
-
-
-Version 1.2.0
--------------
-* Major features
-  + Expose latency matrices in the API as an array of distance structures
-    within objects. Add several helpers to find distances.
-  + Add hwloc_topology_set_distance_matrix() and environment variables
-    to provide a matrix of distances between a given set of objects.
-  + Add hwloc_get_last_cpu_location() and hwloc_get_proc_last_cpu_location()
-    to retrieve the processors where a process or thread recently ran.
-    - Add the corresponding --get-last-cpu-location option to hwloc-bind.
-  + Add hwloc_topology_restrict() to restrict an existing topology to a
-    given cpuset.
-    - Add the corresponding --restrict option to lstopo.
-* Minor API updates
-  + Add hwloc_bitmap_list_sscanf/snprintf/asprintf to convert between bitmaps
-    and strings such as 4-5,7-9,12,15-
-  + hwloc_bitmap_set/clr_range() now support infinite ranges.
-  + Clarify the difference between inserting Misc objects by cpuset or by
-    parent.
-  + hwloc_insert_misc_object_by_cpuset() now returns NULL in case of error.
-* Discovery improvements
-  + x86 backend (for freebsd): add x2APIC support
-  + Support standard device-tree phandle, to get better support on e.g. ARM
-    systems providing it.
-  + Detect cache size on AIX. Thanks Christopher and IBM.
-  + Improve grouping to support asymmetric topologies.
-* Tools
-  + Command-line tools now support "all" and "root" special locations
-    consisting in the entire topology, as well as type names with depth
-    attributes such as L2 or Group4.
-  + hwloc-calc improvements:
-    - Add --number-of/-N option to report the number of objects of a given
-      type or depth.
-    - -I is now equivalent to --intersect for listing the indexes of
-      objects of a given type or depth that intersects the input.
-    - Add -H to report the output as a hierarchical combination of types
-      and depths.
-  + Add --thissystem to lstopo.
-  + Add lstopo-win, a console-less lstopo variant on Windows.
-* Miscellaneous
-  + Remove C99 usage from code base.
-  + Rename hwloc-gather-topology.sh into hwloc-gather-topology
-  + Fix AMD cache discovery on freebsd when there is no L3 cache, thanks
-    Andriy Gapon for the fix.
-
-
-Version 1.1.2
--------------
-* Fix a segfault in the distance-based grouping code when some objects
-  are not placed in any group. Thanks to Bernd Kallies for reporting
-  the problem and providing a patch.
-* Fix the command-line parsing of hwloc-bind --mempolicy interleave.
-  Thanks to Guy Streeter for reporting the problem.
-* Stop truncating the output in hwloc_obj_attr_snprintf() and in the
-  corresponding lstopo output. Thanks to Guy Streeter for reporting the
-  problem.
-* Fix object levels ordering in synthetic topologies.
-* Fix potential incoherency between device tree and kernel information,
-  when SMT is disabled on Power machines.
-* Fix and document the behavior of hwloc_topology_set_synthetic() in case
-  of invalid argument. Thanks to Guy Streeter for reporting the problem.
-* Add some verbose error message reporting when it looks like the OS
-  gives erroneous information.
-* Do not include unistd.h and stdint.h in public headers on Windows.
-* Move config.h files into their own subdirectories to avoid name
-  conflicts when AC_CONFIG_HEADERS adds -I's for them.
-* Remove the use of declaring variables inside "for" loops.
-* Some other minor fixes.
-* Many minor documentation fixes.
-
-
-Version 1.1.1
--------------
-* Add hwloc_get_api_version() which returns the version of hwloc used
-  at runtime. Thanks to Guy Streeter for the suggestion.
-* Fix the number of hugepages reported for NUMA nodes on Linux.
-* Fix hwloc_bitmap_to_ulong() right after allocating the bitmap.
-  Thanks to Bernd Kallies for reporting the problem.
-* Fix hwloc_bitmap_from_ith_ulong() to properly zero the first ulong.
-  Thanks to Guy Streeter for reporting the problem.
-* Fix hwloc_get_membind_nodeset() on Linux.
-  Thanks to Bernd Kallies for reporting the problem and providing a patch.
-* Fix some file descriptor leaks in the Linux discovery.
-* Fix the minimum width of NUMA nodes, caches and the legend in the graphical
-  lstopo output. Thanks to Jirka Hladky for reporting the problem.
-* Various fixes to bitmap conversion from/to taskset-strings.
-* Fix and document snprintf functions behavior when the buffer size is too
-  small or zero. Thanks to Guy Streeter for reporting the problem.
-* Fix configure to avoid spurious enabling of the cpuid backend.
-  Thanks to Tim Anderson for reporting the problem.
-* Cleanup error management in hwloc-gather-topology.sh.
-  Thanks to Jirka Hladky for reporting the problem and providing a patch.
-* Add a manpage and usage for hwloc-gather-topology.sh on Linux.
-  Thanks to Jirka Hladky for providing a patch.
-* Memory binding documentation enhancements.
-
-
-Version 1.1.0
--------------
-
-* API
-  + Increase HWLOC_API_VERSION to 0x00010100 so that API changes may be
-    detected at build-time.
-  + Add a memory binding interface.
-  + The cpuset API (hwloc/cpuset.h) is now deprecated. It is replaced by
-    the bitmap API (hwloc/bitmap.h) which offers the same features with more
-    generic names since it applies to CPU sets, node sets and more.
-    Backward compatibility with the cpuset API and ABI is still provided but
-    it will be removed in a future release.
-    Old types (hwloc_cpuset_t, ...) are still available as a way to clarify
-    what kind of hwloc_bitmap_t each API function manipulates.
-    Upgrading to the new API only requires to replace hwloc_cpuset_ function
-    calls with the corresponding hwloc_bitmap_ calls, with the following
-    renaming exceptions:
-    - hwloc_cpuset_cpu -> hwloc_bitmap_only
-    - hwloc_cpuset_all_but_cpu -> hwloc_bitmap_allbut
-    - hwloc_cpuset_from_string -> hwloc_bitmap_sscanf
-  + Add an `infos' array in each object to store couples of info names and
-    values. It enables generic storage of things like the old dmi board infos
-    that were previously stored in machine specific attributes.
-  + Add linesize cache attribute.
-* Features
-  + Bitmaps (and thus CPU sets and node sets) are dynamically (re-)allocated,
-    the maximal number of CPUs (HWLOC_NBMAXCPUS) has been removed.
-  + Improve the distance-based grouping code to better support irregular
-    distance matrices.
-  + Add support for device-tree to get cache information (useful on Power
-    architectures).
-* Helpers
-  + Add NVIDIA CUDA helpers in cuda.h and cudart.h to ease interoperability
-    with CUDA Runtime and Driver APIs.
-  + Add Myrinet Express helper in myriexpress.h to ease interoperability.
-* Tools
-  + lstopo now displays physical/OS indexes by default in graphical mode
-    (use -l to switch back to logical indexes). The textual output still uses
-    logical by default (use -p to switch to physical indexes).
-  + lstopo prefixes logical indexes with `L#' and physical indexes with `P#'.
-    Physical indexes are also printed as `P#N' instead of `phys=N' within
-    object attributes (in parentheses).
-  + Add a legend at the bottom of the lstopo graphical output, use --no-legend
-    to remove it.
-  + Add hwloc-ps to list process' bindings.
-  + Add --membind and --mempolicy options to hwloc-bind.
-  + Improve tools command-line options by adding a generic --input option
-    (and more) which replaces the old --xml, --synthetic and --fsys-root.
-  + Cleanup lstopo output configuration by adding --output-format.
-  + Add --intersect in hwloc-calc, and replace --objects with --largest.
-  + Add the ability to work on standard input in hwloc-calc.
-  + Add --from, --to and --at in hwloc-distrib.
-  + Add taskset-specific functions and command-line tools options to
-    manipulate CPU set strings in the format of the taskset program.
-  + Install hwloc-gather-topology.sh on Linux.
-
-
-Version 1.0.3
--------------
-
-* Fix support for Linux cpuset when emulated by a cgroup mount point.
-* Remove unneeded runtime dependency on libibverbs.so in the library and
-  all utils programs.
-* Fix hwloc_cpuset_to_linux_libnuma_ulongs in case of non-linear OS-indexes
-  for NUMA nodes.
-* lstopo now displays physical/OS indexes by default in graphical mode
-  (use -l to switch back to logical indexes). The textual output still uses
-  logical by default (use -p to switch to physical indexes).
-
-
-Version 1.0.2
--------------
-
-* Public headers can now be included directly from C++ programs.
-* Solaris fix for non-contiguous cpu numbers.  Thanks to Rolf vandeVaart for
-  reporting the issue.
-* Darwin 10.4 fix.  Thanks to Olivier Cessenat for reporting the issue.
-* Revert 1.0.1 patch that ignored sockets with unknown ID values since it
-  only slightly helped POWER7 machines with old Linux kernels while it
-  prevents recent kernels from getting the complete POWER7 topology.
-* Fix hwloc_get_common_ancestor_obj().
-* Remove arch-specific bits in public headers.
-* Some fixes in the lstopo graphical output.
-* Various man page clarifications and minor updates.
-
-
-Version 1.0.1
--------------
-
-* Various Solaris fixes.  Thanks to Yannick Martin for reporting the issue.
-* Fix "non-native" builds on x86 platforms (e.g., when building 32
-  bit executables with compilers that natively build 64 bit).
-* Ignore sockets with unknown ID values (which fixes issues on POWER7
-  machines).  Thanks to Greg Bauer for reporting the issue.
-* Various man page clarifications and minor updates.
-* Fixed memory leaks in hwloc_setup_group_from_min_distance_clique().
-* Fix cache type filtering on MS Windows 7.  Thanks to Αλέξανδρος
-  Παπαδογιαννάκ for reporting the issue.
-* Fixed warnings when compiling with -DNDEBUG.
-
-
-Version 1.0.0
--------------
-
-* The ABI of the library has changed.
-* Backend updates
-  + Add FreeBSD support.
-  + Add x86 cpuid based backend.
-  + Add Linux cgroup support to the Linux cpuset code.
-  + Support binding of entire multithreaded process on Linux.
-  + Fix and enable Group support in Windows.
-  + Cleanup XML export/import.
-* Objects
-  + HWLOC_OBJ_PROC is renamed into HWLOC_OBJ_PU for "Processing Unit",
-    its stringified type name is now "PU".
-  + Use new HWLOC_OBJ_GROUP objects instead of MISC when grouping
-    objects according to NUMA distances or arbitrary OS aggregation.
-  + Rework memory attributes.
-  + Add different cpusets in each object to specify processors that
-    are offline, unavailable, ...
-  + Cleanup the storage of object names and DMI infos.
-* Features
-  + Add support for looking up specific PID topology information.
-  + Add hwloc_topology_export_xml() to export the topology in a XML file.
-  + Add hwloc_topology_get_support() to retrieve the supported features
-    for the current topology context.
-  + Support non-SYSTEM object as the root of the tree, use MACHINE in
-    most common cases.
-  + Add hwloc_get_*cpubind() routines to retrieve the current binding
-    of processes and threads.
-* API
-  + Add HWLOC_API_VERSION to help detect the currently used API version.
-  + Add missing ending "e" to *compare* functions.
-  + Add several routines to emulate PLPA functions.
-  + Rename and rework the cpuset and/or/xor/not/clear operators to output
-    their result in a dedicated argument instead of modifying one input.
-  + Deprecate hwloc_obj_snprintf() in favor of hwloc_obj_type/attr_snprintf().
-  + Clarify the use of parent and ancestor in the API, do not use father.
-  + Replace hwloc_get_system_obj() with hwloc_get_root_obj().
-  + Return -1 instead of HWLOC_OBJ_TYPE_MAX in the API since the latter
-    isn't public.
-  + Relax constraints in hwloc_obj_type_of_string().
-  + Improve displaying of memory sizes.
-  + Add 0x prefix to cpuset strings.
-* Tools
-  + lstopo now displays logical indexes by default, use --physical to
-    revert back to OS/physical indexes.
-  + Add colors in the lstopo graphical outputs to distinguish between online,
-    offline, reserved, ... objects.
-  + Extend lstopo to show cpusets, filter objects by type, ...
-  + Renamed hwloc-mask into hwloc-calc which supports many new options.
-* Documentation
-  + Add a hwloc(7) manpage containing general information.
-  + Add documentation about how to switch from PLPA to hwloc.
-  + Cleanup the distributed documentation files.
-* Miscellaneous
-  + Many compilers warning fixes.
-  + Cleanup the ABI by using the visibility attribute.
-  + Add project embedding support.
-
-
-Version 0.9.4 (unreleased)
---------------------------
-
-* Fix reseting colors to normal in lstopo -.txt output.
-* Fix Linux pthread_t binding error report.
-
-
-Version 0.9.3
--------------
-
-* Fix autogen.sh to work with Autoconf 2.63.
-* Fix various crashes in particular conditions:
-  - xml files with root attributes
-  - offline CPUs
-  - partial sysfs support
-  - unparseable /proc/cpuinfo
-  - ignoring NUMA level while Misc level have been generated
-* Tweak documentation a bit
-* Do not require the pthread library for binding the current thread on Linux
-* Do not erroneously consider the sched_setaffinity prototype is the old version
-  when there is actually none.
-* Fix _syscall3 compilation on archs for which we do not have the
-  sched_setaffinity system call number.
-* Fix AIX binding.
-* Fix libraries dependencies: now only lstopo depends on libtermcap, fix
-  binutils-gold link
-* Have make check always build and run hwloc-hello.c
-* Do not limit size of a cpuset.
-
-
-Version 0.9.2
--------------
-
-* Trivial documentation changes.
-
-
-Version 0.9.1
--------------
-
-* Re-branded to "hwloc" and moved to the Open MPI project, relicensed under the
-  BSD license.
-* The prefix of all functions and tools is now hwloc, and some public
-  functions were also renamed for real.
-* Group NUMA nodes into Misc objects according to their physical distance
-  that may be reported by the OS/BIOS.
-  May be ignored by setting HWLOC_IGNORE_DISTANCES=1 in the environment.
-* Ignore offline CPUs on Solaris.
-* Improved binding support on AIX.
-* Add HP-UX support.
-* CPU sets are now allocated/freed dynamically.
-* Add command line options to tune the lstopo graphical output, add
-  semi-graphical textual output
-* Extend topobind to support multiple cpusets or objects on the command
-  line as topomask does.
-* Add an Infiniband-specific helper hwloc/openfabrics-verbs.h to retrieve
-  the physical location of IB devices.
-
-
-Version 0.9 (libtopology)
--------------------------
-
-* First release.

opal/mca/hwloc/hwloc152/hwloc/README

-Introduction
-
-hwloc provides command line tools and a C API to obtain the hierarchical map of
-key computing elements, such as: NUMA memory nodes, shared caches, processor
-sockets, processor cores, processing units (logical processors or "threads")
-and even I/O devices. hwloc also gathers various attributes such as cache and
-memory information, and is portable across a variety of different operating
-systems and platforms. Additionally it may assemble the topologies of multiple
-machines into a single one so as to let applications consult the topology of an
-entire fabric or cluster at once.
-
-hwloc primarily aims at helping high-performance computing (HPC) applications,
-but is also applicable to any project seeking to exploit code and/or data
-locality on modern computing platforms.
-
-Note that the hwloc project represents the merger of the libtopology project
-from inria and the Portable Linux Processor Affinity (PLPA) sub-project from
-Open MPI. Both of these prior projects are now deprecated. The first hwloc
-release was essentially a "re-branding" of the libtopology code base, but with
-both a few genuinely new features and a few PLPA-like features added in. Prior
-releases of hwloc included documentation about switching from PLPA to hwloc;
-this documentation has been dropped on the assumption that everyone who was
-using PLPA has already switched to hwloc.
-
-hwloc supports the following operating systems:
-
-  * Linux (including old kernels not having sysfs topology information, with
- knowledge of cpusets, offline CPUs, ScaleMP vSMP, and Kerrighed support)
-  * Solaris
-  * AIX
-  * Darwin / OS X
-  * FreeBSD and its variants, such as kFreeBSD/GNU
-  * OSF/1 (a.k.a., Tru64)
-  * HP-UX
-  * Microsoft Windows
-
-Since it uses standard Operating System information, hwloc's support is mostly
-independant from the processor type (x86, powerpc, ...) and just relies on the
-Operating System support. The only exception to this is kFreeBSD, which does
-not support topology information, and hwloc thus uses an x86-only CPUID-based
-backend (which could be used for other OSes too).
-
-To check whether hwloc works on a particular machine, just try to build it and
-run lstopo or lstopo-no-graphics. If some things do not look right (e.g. bogus
-or missing cache information), see Questions and Bugs below.
-
-hwloc only reports the number of processors on unsupported operating systems;
-no topology information is available.
-
-For development and debugging purposes, hwloc also offers the ability to work
-on "fake" topologies:
-
-  * Symmetrical tree of resources generated from a list of level arities
-  * Remote machine simulation through the gathering of Linux sysfs topology
- files
-
-hwloc can display the topology in a human-readable format, either in graphical
-mode (X11), or by exporting in one of several different formats, including:
-plain text, PDF, PNG, and FIG (see CLI Examples below). Note that some of the
-export formats require additional support libraries.
-
-hwloc offers a programming interface for manipulating topologies and objects.
-It also brings a powerful CPU bitmap API that is used to describe topology
-objects location on physical/logical processors. See the Programming Interface
-below. It may also be used to binding applications onto certain cores or memory
-nodes. Several utility programs are also provided to ease command-line
-manipulation of topology objects, binding of processes, and so on.
-
-Perl bindings are available from Bernd Kallies on CPAN.
-
-Python bindings are available from Guy Streeter:
-
-  * Fedora RPM and tarball.
-  * git tree (html).
-
-Installation
-
-hwloc (http://www.open-mpi.org/projects/hwloc/) is available under the BSD
-license. It is hosted as a sub-project of the overall Open MPI project (http://
-www.open-mpi.org/). Note that hwloc does not require any functionality from
-Open MPI -- it is a wholly separate (and much smaller!) project and code base.
-It just happens to be hosted as part of the overall Open MPI project.
-
-Nightly development snapshots are available on the web site. Additionally, the
-code can be directly checked out of Subversion:
-
-shell$ svn checkout http://svn.open-mpi.org/svn/hwloc/trunk hwloc-trunk
-shell$ cd hwloc-trunk
-shell$ ./autogen.sh
-
-Note that GNU Autoconf >=2.63, Automake >=1.10 and Libtool >=2.2.6 are required
-when building from a Subversion checkout.
-
-Installation by itself is the fairly common GNU-based process:
-
-shell$ ./configure --prefix=...
-shell$ make
-shell$ make install
-
-The hwloc command-line tool "lstopo" produces human-readable topology maps, as
-mentioned above. It can also export maps to the "fig" file format. Support for
-PDF, Postscript, and PNG exporting is provided if the "Cairo" development
-package can be found in "lstopo" when hwloc is configured and build.
-
-The hwloc core may also benefit from the following development packages:
-
-  * libnuma for memory binding and migration support on Linux.
-  * libxml2 for full XML import/export support (otherwise, the internal
- minimalistic parser will only be able to import XML files that were
- exported by the same hwloc release). See Importing and exporting topologies
- from/to XML files for details.
-  * hwloc can use one of two different libraries for I/O device discovery:
-  1. libpciaccess (BSD).
-  2. libpci, from the pciutils package (GPL).
-
-Note that because of the possibility of GPL taint (remember that hwloc is
-BSD-licensed), hwloc's configure script will prefer libpciaccess to the
-pciutils package. Indeed, if libpciaccess is not found, hwloc will not use
-pciutils unless it is specifically requested via the --enable-libpci flag is
-provided.
-
-Also note that if you install supplemental libraries in non-standard locations,
-hwloc's configure script may not be able to find them without some help. You
-may need to specify additional CPPFLAGS, LDFLAGS, or PKG_CONFIG_PATH values on
-the configure command line.
-
-For example, if libpciaccess was installed into /opt/pciaccess, hwloc's
-configure script may not find it be default. Try adding PKG_CONFIG_PATH to the
-./configure command line, like this:
-
-./configure PKG_CONFIG_PATH=/opt/pciaccess/lib/pkgconfig ...
-
-CLI Examples
-
-On a 4-socket 2-core machine with hyperthreading, the lstopo tool may show the
-following graphical output:
-
-dudley.png
-
-Here's the equivalent output in textual form:
-
-Machine (16GB)
-  Socket L#0 + L3 L#0 (4096KB)
- L2 L#0 (1024KB) + L1 L#0 (16KB) + Core L#0
-   PU L#0 (P#0)
-   PU L#1 (P#8)
- L2 L#1 (1024KB) + L1 L#1 (16KB) + Core L#1
-   PU L#2 (P#4)
-   PU L#3 (P#12)
-  Socket L#1 + L3 L#1 (4096KB)
- L2 L#2 (1024KB) + L1 L#2 (16KB) + Core L#2
-   PU L#4 (P#1)
-   PU L#5 (P#9)
- L2 L#3 (1024KB) + L1 L#3 (16KB) + Core L#3
-   PU L#6 (P#5)
-   PU L#7 (P#13)
-  Socket L#2 + L3 L#2 (4096KB)
- L2 L#4 (1024KB) + L1 L#4 (16KB) + Core L#4
-   PU L#8 (P#2)
-   PU L#9 (P#10)
- L2 L#5 (1024KB) + L1 L#5 (16KB) + Core L#5
-   PU L#10 (P#6)
-   PU L#11 (P#14)
-  Socket L#3 + L3 L#3 (4096KB)
- L2 L#6 (1024KB) + L1 L#6 (16KB) + Core L#6
-   PU L#12 (P#3)
-   PU L#13 (P#11)
- L2 L#7 (1024KB) + L1 L#7 (16KB) + Core L#7
-   PU L#14 (P#7)
-   PU L#15 (P#15)
-
-Finally, here's the equivalent output in XML. Long lines were artificially
-broken for document clarity (in the real output, each XML tag is on a single
-line), and only socket #0 is shown for brevity:
-
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE topology SYSTEM "hwloc.dtd">
-<topology>
-  <object type="Machine" os_index="0" cpuset="0x0000ffff"
-   complete_cpuset="0x0000ffff" online_cpuset="0x0000ffff"
-   allowed_cpuset="0x0000ffff"
-   dmi_board_vendor="Dell Computer Corporation" dmi_board_name="0RD318"
-   local_memory="16648183808">
- <page_type size="4096" count="4064498"/>
- <page_type size="2097152" count="0"/>
- <object type="Socket" os_index="0" cpuset="0x00001111" ... >
-   <object type="Cache" cpuset="0x00001111" ...
-       cache_size="4194304" depth="3" cache_linesize="64">
-     <object type="Cache" cpuset="0x00000101" ...
-         cache_size="1048576" depth="2" cache_linesize="64">
-       <object type="Cache" cpuset="0x00000101" ...
-           cache_size="16384" depth="1" cache_linesize="64">
-         <object type="Core" os_index="0" ... >
-           <object type="PU" os_index="0" cpuset="0x00000001"
-               complete_cpuset="0x00000001" online_cpuset="0x00000001"
-               allowed_cpuset="0x00000001"/>
-           <object type="PU" os_index="8" cpuset="0x00000100"
-               complete_cpuset="0x00000100" online_cpuset="0x00000100"
-               allowed_cpuset="0x00000100"/>
-         </object>
-       </object>
-     </object>
-     <object type="Cache" cpuset="0x00001010" ...
-         cache_size="1048576" depth="2" cache_linesize="64">
-       <object type="Cache" cpuset="0x00001010"
-           cache_size="16384" depth="1" cache_linesize="64">
-         <object type="Core" os_index="1" cpuset="0x00001010" ... >
-           <object type="PU" os_index="4" cpuset="0x00000010"
-               complete_cpuset="0x00000010" online_cpuset="0x00000010"
-               allowed_cpuset="0x00000010"/>
-           <object type="PU" os_index="12" cpuset="0x00001000"
-               complete_cpuset="0x00001000" online_cpuset="0x00001000"
-               allowed_cpuset="0x00001000"/>
-         </object>
-       </object>
-     </object>
-   </object>
- </object>
- <!-- ...other sockets listed here ... -->
-  </object>
-</topology>
-
-On a 4-socket 2-core Opteron NUMA machine, the lstopo tool may show the
-following graphical output:
-
-hagrid.png
-
-Here's the equivalent output in textual form:
-
-Machine (32GB)
-  NUMANode L#0 (P#0 8190MB) + Socket L#0
- L2 L#0 (1024KB) + L1 L#0 (64KB) + Core L#0 + PU L#0 (P#0)
- L2 L#1 (1024KB) + L1 L#1 (64KB) + Core L#1 + PU L#1 (P#1)
-  NUMANode L#1 (P#1 8192MB) + Socket L#1
- L2 L#2 (1024KB) + L1 L#2 (64KB) + Core L#2 + PU L#2 (P#2)
- L2 L#3 (1024KB) + L1 L#3 (64KB) + Core L#3 + PU L#3 (P#3)
-  NUMANode L#2 (P#2 8192MB) + Socket L#2
- L2 L#4 (1024KB) + L1 L#4 (64KB) + Core L#4 + PU L#4 (P#4)
- L2 L#5 (1024KB) + L1 L#5 (64KB) + Core L#5 + PU L#5 (P#5)
-  NUMANode L#3 (P#3 8192MB) + Socket L#3
- L2 L#6 (1024KB) + L1 L#6 (64KB) + Core L#6 + PU L#6 (P#6)
- L2 L#7 (1024KB) + L1 L#7 (64KB) + Core L#7 + PU L#7 (P#7)
-
-And here's the equivalent output in XML. Similar to above, line breaks were
-added and only PU #0 is shown for brevity:
-
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE topology SYSTEM "hwloc.dtd">
-<topology>
-  <object type="Machine" os_index="0" cpuset="0x000000ff"
-   complete_cpuset="0x000000ff" online_cpuset="0x000000ff"
-   allowed_cpuset="0x000000ff" nodeset="0x000000ff"
-   complete_nodeset="0x000000ff" allowed_nodeset="0x000000ff"
-   dmi_board_vendor="TYAN Computer Corp" dmi_board_name="S4881 ">
- <page_type size="4096" count="0"/>
- <page_type size="2097152" count="0"/>
- <object type="NUMANode" os_index="0" cpuset="0x00000003" ...
-     nodeset="0x00000001" ... local_memory="7514177536">
-   <page_type size="4096" count="1834516"/>
-   <page_type size="2097152" count="0"/>
-   <object type="Socket" os_index="0" cpuset="0x00000003" ... >
-     <object type="Cache" cpuset="0x00000001" ...
-         cache_size="1048576" depth="2" cache_linesize="64">
-       <object type="Cache" cpuset="0x00000001" ...
-           cache_size="65536" depth="1" cache_linesize="64">
-         <object type="Core" os_index="0" ... >
-           <object type="PU" os_index="0" cpuset="0x00000001"
-               complete_cpuset="0x00000001" online_cpuset="0x00000001"
-               allowed_cpuset="0x00000001" nodeset="0x00000001"
-               complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
-         </object>
-       </object>
-     </object>
-  <!-- ...more objects listed here ... -->
-</topology>
-
-On a 2-socket quad-core Xeon (pre-Nehalem, with 2 dual-core dies into each
-socket):
-
-emmett.png
-
-Here's the same output in textual form:
-
-Machine (16GB)
-  Socket L#0
- L2 L#0 (4096KB)
-   L1 L#0 (32KB) + Core L#0 + PU L#0 (P#0)
-   L1 L#1 (32KB) + Core L#1 + PU L#1 (P#4)
- L2 L#1 (4096KB)
-   L1 L#2 (32KB) + Core L#2 + PU L#2 (P#2)
-   L1 L#3 (32KB) + Core L#3 + PU L#3 (P#6)
-  Socket L#1
- L2 L#2 (4096KB)
-   L1 L#4 (32KB) + Core L#4 + PU L#4 (P#1)
-   L1 L#5 (32KB) + Core L#5 + PU L#5 (P#5)
- L2 L#3 (4096KB)
-   L1 L#6 (32KB) + Core L#6 + PU L#6 (P#3)
-   L1 L#7 (32KB) + Core L#7 + PU L#7 (P#7)
-
-And the same output in XML (line breaks added, only PU #0 shown):
-
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE topology SYSTEM "hwloc.dtd">
-<topology>
-  <object type="Machine" os_index="0" cpuset="0x000000ff"
-   complete_cpuset="0x000000ff" online_cpuset="0x000000ff"
-   allowed_cpuset="0x000000ff" dmi_board_vendor="Dell Inc."
-   dmi_board_name="0NR282" local_memory="16865292288">
- <page_type size="4096" count="4117503"/>
- <page_type size="2097152" count="0"/>
- <object type="Socket" os_index="0" cpuset="0x00000055" ... >
-   <object type="Cache" cpuset="0x00000011" ...
-       cache_size="4194304" depth="2" cache_linesize="64">
-     <object type="Cache" cpuset="0x00000001" ...
-         cache_size="32768" depth="1" cache_linesize="64">
-       <object type="Core" os_index="0" ... >
-         <object type="PU" os_index="0" cpuset="0x00000001"
-             complete_cpuset="0x00000001" online_cpuset="0x00000001"
-             allowed_cpuset="0x00000001"/>
-       </object>
-     </object>
-     <object type="Cache" cpuset="0x00000010" ...
-         cache_size="32768" depth="1" cache_linesize="64">
-       <object type="Core" os_index="1" ... >
-         <object type="PU" os_index="4" cpuset="0x00000010" ...
-             complete_cpuset="0x00000010" online_cpuset="0x00000010"
-             allowed_cpuset="0x00000010"/>
-       </object>
-     </object>
-   </object>
-  <!-- ...more objects listed here ... -->
-</topology>
-
-Programming Interface
-
-The basic interface is available in hwloc.h. It essentially offers low-level
-routines for advanced programmers that want to manually manipulate objects and
-follow links between them. Documentation for everything in hwloc.h are provided
-later in this document. Developers should also look at hwloc/helper.h (and also
-in this document, which provides good higher-level topology traversal
-examples).
-
-To precisely define the vocabulary used by hwloc, a Terms and Definitions
-section is available and should probably be read first.
-
-Each hwloc object contains a cpuset describing the list of processing units
-that it contains. These bitmaps may be used for CPU binding and Memory binding.
-hwloc offers an extensive bitmap manipulation interface in hwloc/bitmap.h.
-
-Moreover, hwloc also comes with additional helpers for interoperability with
-several commonly used environments. See the Interoperability With Other
-Software section for details.
-
-The complete API documentation is available in a full set of HTML pages, man
-pages, and self-contained PDF files (formatted for both both US letter and A4
-formats) in the source tarball in doc/doxygen-doc/.
-
-NOTE: If you are building the documentation from a Subversion checkout, you
-will need to have Doxygen and pdflatex installed -- the documentation will be
-built during the normal "make" process. The documentation is installed during
-"make install" to $prefix/share/doc/hwloc/ and your systems default man page
-tree (under $prefix, of course).
-
-Portability
-
-As shown in CLI Examples, hwloc can obtain information on a wide variety of
-hardware topologies. However, some platforms and/or operating system versions
-will only report a subset of this information. For example, on an PPC64-based
-system with 32 cores (each with 2 hardware threads) running a default
-2.6.18-based kernel from RHEL 5.4, hwloc is only able to glean information
-about NUMA nodes and processor units (PUs). No information about caches,
-sockets, or cores is available.
-
-Similarly, Operating System have varying support for CPU and memory binding,
-e.g. while some Operating Systems provide interfaces for all kinds of CPU and
-memory bindings, some others provide only interfaces for a limited number of
-kinds of CPU and memory binding, and some do not provide any binding interface
-at all. Hwloc's binding functions would then simply return the ENOSYS error
-(Function not implemented), meaning that the underlying Operating System does
-not provide any interface for them. CPU binding and Memory binding provide more
-information on which hwloc binding functions should be preferred because
-interfaces for them are usually available on the supported Operating Systems.
-
-Here's the graphical output from lstopo on this platform when Simultaneous
-Multi-Threading (SMT) is enabled:
-
-ppc64-with-smt.png
-
-And here's the graphical output from lstopo on this platform when SMT is
-disabled:
-
-ppc64-without-smt.png
-
-Notice that hwloc only sees half the PUs when SMT is disabled. PU #15, for
-example, seems to change location from NUMA node #0 to #1. In reality, no PUs
-"moved" -- they were simply re-numbered when hwloc only saw half as many.
-Hence, PU #15 in the SMT-disabled picture probably corresponds to PU #30 in the
-SMT-enabled picture.
-
-This same "PUs have disappeared" effect can be seen on other platforms -- even
-platforms / OSs that provide much more information than the above PPC64 system.
-This is an unfortunate side-effect of how operating systems report information
-to hwloc.
-
-Note that upgrading the Linux kernel on the same PPC64 system mentioned above
-to 2.6.34, hwloc is able to discover all the topology information. The
-following picture shows the entire topology layout when SMT is enabled:
-
-ppc64-full-with-smt.png
-
-Developers using the hwloc API or XML output for portable applications should
-therefore be extremely careful to not make any assumptions about the structure
-of data that is returned. For example, per the above reported PPC topology, it
-is not safe to assume that PUs will always be descendants of cores.
-
-Additionally, future hardware may insert new topology elements that are not
-available in this version of hwloc. Long-lived applications that are meant to
-span multiple different hardware platforms should also be careful about making
-structure assumptions. For example, there may someday be an element "lower"
-than a PU, or perhaps a new element may exist between a core and a PU.
-
-API Example
-
-The following small C example (named ``hwloc-hello.c'') prints the topology of
-the machine and bring the process to the first logical processor of the second
-core of the machine.
-
-/* Example hwloc API program.
- *
- * Copyright (c) 2009-2010 inria.  All rights reserved.
- * Copyright (c) 2009-2011 Universit?eacute; Bordeaux 1
- * Copyright (c) 2009-2010 Cisco Systems, Inc.  All rights reserved.
- * See COPYING in top-level directory.
- *
- * hwloc-hello.c
- */
-
-#include <hwloc.h>
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-static void print_children(hwloc_topology_t topology, hwloc_obj_t obj, 
-                        int depth)
-{
- char string[128];
- unsigned i;
-
- hwloc_obj_snprintf(string, sizeof(string), topology, obj, "#", 0);
- printf("%*s%s\n", 2*depth, "", string);
- for (i = 0; i < obj->arity; i++) {
-     print_children(topology, obj->children[i], depth + 1);
- }
-}
-
-int main(void)
-{
- int depth;
- unsigned i, n;
- unsigned long size;
- int levels;
- char string[128];
- int topodepth;
- hwloc_topology_t topology;
- hwloc_cpuset_t cpuset;
- hwloc_obj_t obj;
-
- /* Allocate and initialize topology object. */
- hwloc_topology_init(&topology);
-
- /* ... Optionally, put detection configuration here to ignore
-    some objects types, define a synthetic topology, etc....  
-
-    The default is to detect all the objects of the machine that
-    the caller is allowed to access.  See Configure Topology
-    Detection. */
-
- /* Perform the topology detection. */
- hwloc_topology_load(topology);
-
- /* Optionally, get some additional topology information
-    in case we need the topology depth later. */
- topodepth = hwloc_topology_get_depth(topology);
-
- /*****************************************************************
-  * First example:
-  * Walk the topology with an array style, from level 0 (always
-  * the system level) to the lowest level (always the proc level).
-  *****************************************************************/
- for (depth = 0; depth < topodepth; depth++) {
-     printf("*** Objects at level %d\n", depth);
-     for (i = 0; i < hwloc_get_nbobjs_by_depth(topology, depth); 
-          i++) {
-         hwloc_obj_snprintf(string, sizeof(string), topology,
-                    hwloc_get_obj_by_depth(topology, depth, i),
-                    "#", 0);
-         printf("Index %u: %s\n", i, string);
-     }
- }
-
- /*****************************************************************
-  * Second example:
-  * Walk the topology with a tree style.
-  *****************************************************************/
- printf("*** Printing overall tree\n");
- print_children(topology, hwloc_get_root_obj(topology), 0);
-
- /*****************************************************************
-  * Third example:
-  * Print the number of sockets.
-  *****************************************************************/
- depth = hwloc_get_type_depth(topology, HWLOC_OBJ_SOCKET);
- if (depth == HWLOC_TYPE_DEPTH_UNKNOWN) {
-     printf("*** The number of sockets is unknown\n");
- } else {
-     printf("*** %u socket(s)\n", 
-            hwloc_get_nbobjs_by_depth(topology, depth));
- }
-
- /*****************************************************************
-  * Fourth example:
-  * Compute the amount of cache that the first logical processor
-  * has above it.
-  *****************************************************************/
- levels = 0;
- size = 0;
- for (obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_PU, 0);
-      obj;
-      obj = obj->parent)
-   if (obj->type == HWLOC_OBJ_CACHE) {
-     levels++;
-     size += obj->attr->cache.size;
-   }
- printf("*** Logical processor 0 has %d caches totaling %luKB\n", 
-        levels, size / 1024);
-
- /*****************************************************************
-  * Fifth example:
-  * Bind to only one thread of the last core of the machine.
-  *
-  * First find out where cores are, or else smaller sets of CPUs if
-  * the OS doesn't have the notion of a "core".
-  *****************************************************************/
- depth = hwloc_get_type_or_below_depth(topology, HWLOC_OBJ_CORE);
-
- /* Get last core. */
- obj = hwloc_get_obj_by_depth(topology, depth,
-                hwloc_get_nbobjs_by_depth(topology, depth) - 1);
- if (obj) {
-     /* Get a copy of its cpuset that we may modify. */
-     cpuset = hwloc_bitmap_dup(obj->cpuset);
-
-     /* Get only one logical processor (in case the core is
-        SMT/hyperthreaded). */
-     hwloc_bitmap_singlify(cpuset);
-
-     /* And try to bind ourself there. */
-     if (hwloc_set_cpubind(topology, cpuset, 0)) {
-         char *str;
-         int error = errno;
-         hwloc_bitmap_asprintf(&str, obj->cpuset);
-         printf("Couldn't bind to cpuset %s: %s\n", str, strerror(error));
-         free(str);
-     }
-
-     /* Free our cpuset copy */
-     hwloc_bitmap_free(cpuset);
- }
-
- /*****************************************************************
-  * Sixth example:
-  * Allocate some memory on the last NUMA node, bind some existing
-  * memory to the last NUMA node.
-  *****************************************************************/
- /* Get last node. */
- n = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_NODE);
- if (n) {
-     void *m;
-     size = 1024*1024;
-
-     obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_NODE, n - 1);
-     m = hwloc_alloc_membind_nodeset(topology, size, obj->nodeset,
-             HWLOC_MEMBIND_DEFAULT, 0);
-     hwloc_free(topology, m, size);
-
-     m = malloc(size);
-     hwloc_set_area_membind_nodeset(topology, m, size, obj->nodeset,
-             HWLOC_MEMBIND_DEFAULT, 0);
-     free(m);
- }
-
- /* Destroy topology object. */
- hwloc_topology_destroy(topology);
-
- return 0;
-}
-
-hwloc provides a pkg-config executable to obtain relevant compiler and linker
-flags. For example, it can be used thusly to compile applications that utilize
-the hwloc library (assuming GNU Make):
-
-CFLAGS += $(pkg-config --cflags hwloc)
-LDLIBS += $(pkg-config --libs hwloc)
-cc hwloc-hello.c $(CFLAGS) -o hwloc-hello $(LDLIBS)
-
-On a machine with 4GB of RAM and 2 processor sockets -- each socket of which
-has two processing cores -- the output from running hwloc-hello could be
-something like the following:
-
-shell$ ./hwloc-hello
-*** Objects at level 0
-Index 0: Machine(3938MB)
-*** Objects at level 1
-Index 0: Socket#0
-Index 1: Socket#1
-*** Objects at level 2
-Index 0: Core#0
-Index 1: Core#1
-Index 2: Core#3
-Index 3: Core#2
-*** Objects at level 3
-Index 0: PU#0
-Index 1: PU#1
-Index 2: PU#2
-Index 3: PU#3
-*** Printing overall tree
-Machine(3938MB)
-  Socket#0
- Core#0
-   PU#0
- Core#1
-   PU#1
-  Socket#1
- Core#3
-   PU#2
- Core#2
-   PU#3
-*** 2 socket(s)
-shell$
-
-Questions and Bugs
-
-Questions should be sent to the devel mailing list (http://www.open-mpi.org/
-community/lists/hwloc.php). Bug reports should be reported in the tracker (
-https://svn.open-mpi.org/trac/hwloc/).
-
-If hwloc discovers an incorrect topology for your machine, the very first thing
-you should check is to ensure that you have the most recent updates installed
-for your operating system. Indeed, most of hwloc topology discovery relies on
-hardware information retrieved through the operation system (e.g., via the /sys
-virtual filesystem of the Linux kernel). If upgrading your OS or Linux kernel
-does not solve your problem, you may also want to ensure that you are running
-the most recent version of the BIOS for your machine.
-
-If those things fail, contact us on the mailing list for additional help.
-Please attach the output of lstopo after having given the --enable-debug option
-to ./configure and rebuilt completely, to get debugging output. Also attach the
-/proc + /sys tarball generated by the installed script hwloc-gather-topology.sh
-when submitting problems about Linux, or send the output of kstat cpu_info in
-the Solaris case, or the output of sysctl hw in the Darwin or BSD cases.
-
-History / Credits
-
-hwloc is the evolution and merger of the libtopology (http://
-runtime.bordeaux.inria.fr/libtopology/) project and the Portable Linux
-Processor Affinity (PLPA) (http://www.open-mpi.org/projects/plpa/) project.
-Because of functional and ideological overlap, these two code bases and ideas
-were merged and released under the name "hwloc" as an Open MPI sub-project.
-
-libtopology was initially developed by the inria Runtime Team-Project (http://
-runtime.bordeaux.inria.fr/) (headed by Raymond Namyst (http://
-dept-info.labri.fr/~namyst/). PLPA was initially developed by the Open MPI
-development team as a sub-project. Both are now deprecated in favor of hwloc,
-which is distributed as an Open MPI sub-project.
-
-Further Reading
-
-The documentation chapters include
-
-  * Terms and Definitions
-  * Command-Line Tools
-  * Environment Variables
-  * CPU and Memory Binding Overview
-  * I/O Devices
-  * Multi-node Topologies
-  * Importing and exporting topologies from/to XML files
-  * Interoperability With Other Software
-  * Thread Safety
-  * Embedding hwloc in Other Software
-  * Frequently Asked Questions
-
-Make sure to have had a look at those too!
-
--------------------------------------------------------------------------------
-
-Generated on Sun Feb 24 2013 16:45:27 for Hardware Locality (hwloc) by   
-doxygen 1.8.3.1

opal/mca/hwloc/hwloc152/hwloc/VERSION

-# This is the VERSION file for hwloc, describing the precise version
-# of hwloc in this distribution.  The various components of the version
-# number below are combined to form a single version number string.
-
-# major, minor, and release are generally combined in the form
-# <major>.<minor>.<release>.  If release is zero, then it is omitted.
-
-major=1
-minor=5
-release=2
-
-# greek is used for alpha or beta release tags.  If it is non-empty,
-# it will be appended to the version number.  It does not have to be
-# numeric.  Common examples include a1 (alpha release 1), b1 (beta
-# release 1), sc2005 (Super Computing 2005 release).  The only
-# requirement is that it must be entirely printable ASCII characters
-# and have no white space.
-
-greek=
-
-# If want_repo_rev=1, then the SVN r number will be included in the overall
-# hwloc version number in some form.
-
-want_repo_rev=0
-
-# If repo_rev=-1, then the repository version number will be obtained
-# dynamically at run time, either: 
-#
-# 1) via the "svnversion" command (if this is a Subversion checkout)
-#    in the form "r<svn_r>", or 
-# 2) via the "hg -v -R tip" command (if this is a Mercurial clone)
-#    in the form of "hg<hash>", using the hash tag at the tip
-# 3) via the "git log -1" command (if this is a Git clone) in the form
-#    of "git<hash>", using the hash tag at the HEAD
-# 4) with the date (if none of the above work) in the form of
-#    "date<date>".
-#
-# Alternatively, if repo_rev is not -1, the value of repo_rev_r will
-# be directly appended to the version string.  This happens during
-# "make dist", for example: if the distribution tarball is being made
-# from an SVN checkout, if repo_rev=-1, then its value is replaced
-# with the output of "svnversion".
-
-repo_rev=r5394
-
-# The date when this release was created
-
-date="Feb 24, 2013"
-
-# The shared library version of hwloc's public library.  This version
-# is maintained in accordance with the "Library Interface Versions"
-# chapter from the GNU Libtool documentation.  Notes:
-
-# 1. Since version numbers are associated with *releases*, the version
-# number maintained on the hwloc SVN trunk (and developer branches) is
-# always 0:0:0.
-
-# 2. Version numbers are described in the Libtool current:revision:age
-# format.
-
-libhwloc_so_version=6:2:1

opal/mca/hwloc/hwloc152/hwloc/aclocal.m4

-# generated automatically by aclocal 1.12.2 -*- Autoconf -*-
-
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-You have another version of autoconf.  It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.12'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.12.2], [],
-      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too.  Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.12.2])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 1
-
-# AM_PROG_AR([ACT-IF-FAIL])
-# -------------------------
-# Try to determine the archiver interface, and trigger the ar-lib wrapper
-# if it is needed.  If the detection of archiver interface fails, run
-# ACT-IF-FAIL (default is to abort configure with a proper error message).
-AC_DEFUN([AM_PROG_AR],
-[AC_BEFORE([$0], [LT_INIT])dnl
-AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl
-AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([ar-lib])dnl
-AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false])
-: ${AR=ar}
-
-AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface],
-  [am_cv_ar_interface=ar
-   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])],
-     [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
-      AC_TRY_EVAL([am_ar_try])
-      if test "$ac_status" -eq 0; then
-        am_cv_ar_interface=ar
-      else
-        am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
-        AC_TRY_EVAL([am_ar_try])
-        if test "$ac_status" -eq 0; then
-          am_cv_ar_interface=lib
-        else
-          am_cv_ar_interface=unknown
-        fi
-      fi
-      rm -f conftest.lib libconftest.a
-     ])
-   ])
-
-case $am_cv_ar_interface in
-ar)
-  ;;
-lib)
-  # Microsoft lib, so override with the ar-lib wrapper script.
-  # FIXME: It is wrong to rewrite AR.
-  # But if we don't then we get into trouble of one sort or another.
-  # A longer-term fix would be to have automake use am__AR in this case,
-  # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something
-  # similar.
-  AR="$am_aux_dir/ar-lib $AR"
-  ;;
-unknown)
-  m4_default([$1],
-             [AC_MSG_ERROR([could not determine $AR interface])])
-  ;;
-esac
-AC_SUBST([AR])dnl
-])
-
-# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
-
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 2
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory.  The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run.  This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-#    fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-#    fails if $ac_aux_dir is absolute,
-#    fails when called from a subdirectory in a VPATH build with
-#          a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is '.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
-#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-#   MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH.  The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
-])
-
-# AM_CONDITIONAL                                            -*- Autoconf -*-
-
-# Copyright (C) 1997-2012 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,