1
1
* Should fix the issues with 32 bit builds on 64 bit platforms
 * A few windows fixes
 * A few other minor / misc fixes

This commit was SVN r23226.
Этот коммит содержится в:
Jeff Squyres 2010-06-01 14:51:25 +00:00
родитель e734939ddf
Коммит 61f5528ec4
17 изменённых файлов: 505 добавлений и 295 удалений

Просмотреть файл

@ -7,7 +7,7 @@
major=1
minor=0
release=0
release=1
# 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
@ -16,7 +16,7 @@ release=0
# requirement is that it must be entirely printable ASCII characters
# and have no white space.
greek=
greek=rc1
# If want_svn=1, then the SVN r number will be included in the overall
# hwloc version number in some form.
@ -33,11 +33,11 @@ want_svn=0
# distribution tarball is being made from an SVN checkout, the value
# of svn_r in this file is replaced with the output of "svnversion".
svn_r=r2100
svn_r=r2165
# The date when this release was created
date="May 17, 2010"
date="May 28, 2010"
# The shared library version of hwloc's public library. This version
# is maintained in accordance with the "Library Interface Versions"

Просмотреть файл

@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
# Free Software Foundation, Inc.
timestamp='2010-03-22'
timestamp='2010-05-21'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@ -124,8 +124,9 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
@ -1307,7 +1308,8 @@ case $os in
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
| -mingw32* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \

Просмотреть файл

@ -62,6 +62,7 @@ EOF])
# the real $top_srcdir, because we may be building in embedded
# mode). First, go back to the startdir incase the $srcdir is
# relative.
cd "$HWLOC_startdir"
cd "$srcdir"/hwloc_config_prefix
HWLOC_top_srcdir="`pwd`"
@ -141,6 +142,53 @@ EOF])
[AC_DEFINE([HWLOC_SYM_TRANSFORM], [0])],
[AC_DEFINE([HWLOC_SYM_TRANSFORM], [1])])
#
# Define C flags
#
# hwloc uses C99 style, so ensure that we can figure out which
# compiler flags will drive this.
hwloc_CC_save=$CC
hwloc_CFLAGS_save=$CFLAGS
AC_PROG_CC_C99
AS_IF([test x"$ac_cv_prog_cc_c99" = xno],
[AC_WARN([C99 support is required by hwloc])
$3],
[HWLOC_SETUP_CORE_AFTER_C99($1, $2, $3, $4)])
])
dnl Same order of parameters form HWLOC-SETUP-CORE
AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
hwloc_CC_c99_flags=`echo $CC | sed -e "s/^$hwloc_CC_save//"`
CC=$hwloc_CC_save
CFLAGS=$hwloc_CFLAGS_save
# GCC specifics.
if test "x$GCC" = "xyes"; then
HWLOC_GCC_CFLAGS="-Wall -Wmissing-prototypes -Wundef"
HWLOC_GCC_CFLAGS="$HWLOC_GCC_CFLAGS -Wpointer-arith -Wcast-align"
fi
# Enample system extensions for O_DIRECTORY, fdopen, fssl, etc.
AC_USE_SYSTEM_EXTENSIONS
AH_VERBATIM([USE_HPUX_SYSTEM_EXTENSIONS],
[/* Enable extensions on HP-UX. */
#ifndef _HPUX_SOURCE
# undef _HPUX_SOURCE
#endif
])
AC_DEFINE([_HPUX_SOURCE], [1], [Are we building for HP-UX?])
AC_LANG_PUSH([C])
# Check to see if we're producing a 32 or 64 bit executable by
# checking the sizeof void*. Note that AC CHECK_SIZEOF even works
# when cross compiling (!), according to the AC 2.64 docs. This
# check is needed because on some systems, you can instruct the
# compiler to specifically build 32 or 64 bit executables -- even
# though the $target may indicate something different.
AC_CHECK_SIZEOF([void *])
#
# Check OS support
#
@ -210,57 +258,26 @@ EOF])
#
AC_MSG_CHECKING([which CPU support to include])
case ${target} in
i*86-*-*)
AC_DEFINE(HWLOC_X86_32_ARCH, 1, [Define to 1 on x86_32])
hwloc_x86_32=yes
AC_MSG_RESULT([x86_32])
;;
x86_64-*-*)
AC_DEFINE(HWLOC_X86_64_ARCH, 1, [Define to 1 on x86_64])
hwloc_x86_64=yes
AC_MSG_RESULT([x86_64])
;;
i*86-*-*|x86_64-*-*)
case ${ac_cv_sizeof_void_p} in
4)
AC_DEFINE(HWLOC_X86_32_ARCH, 1, [Define to 1 on x86_32])
hwloc_x86_32=yes
AC_MSG_RESULT([x86_32])
;;
8)
AC_DEFINE(HWLOC_X86_64_ARCH, 1, [Define to 1 on x86_64])
hwloc_x86_64=yes
AC_MSG_RESULT([x86_64])
;;
*)
AC_DEFINE(HWLOC_X86_64_ARCH, 1, [Define to 1 on x86_64])
hwloc_x86_64=yes
AC_MSG_RESULT([unknown -- assuming x86_64])
;;
esac
esac
#
# Define C flags
#
# hwloc uses C99 style, so ensure that we can figure out which
# compiler flags will drive this.
hwloc_CC_save=$CC
hwloc_CFLAGS_save=$CFLAGS
AC_PROG_CC_C99
AS_IF([test x"$ac_cv_prog_cc_c99" = xno],
[AC_WARN([C99 support is required by hwloc])
$3],
[HWLOC_SETUP_CORE_AFTER_C99($1, $2, $3, $4)])
])
dnl Same order of parameters form HWLOC-SETUP-CORE
AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
hwloc_CC_c99_flags=`echo $CC | sed -e "s/^$hwloc_CC_save//"`
CC=$hwloc_CC_save
CFLAGS=$hwloc_CFLAGS_save
# GCC specifics.
if test "x$GCC" = "xyes"; then
HWLOC_GCC_CFLAGS="-Wall -Wmissing-prototypes -Wundef"
HWLOC_GCC_CFLAGS="$HWLOC_GCC_CFLAGS -Wpointer-arith -Wcast-align"
fi
# Enample system extensions for O_DIRECTORY, fdopen, fssl, etc.
AC_USE_SYSTEM_EXTENSIONS
AH_VERBATIM([USE_HPUX_SYSTEM_EXTENSIONS],
[/* Enable extensions on HP-UX. */
#ifndef _HPUX_SOURCE
# undef _HPUX_SOURCE
#endif
])
AC_DEFINE([_HPUX_SOURCE], [1], [Are we building for HP-UX?])
AC_LANG_PUSH([C])
_HWLOC_CHECK_DIFF_U
AC_CHECK_SIZEOF([unsigned long])
@ -445,7 +462,7 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
)
# check for kerrighed, but don't abort if not found
HWLOC_PKG_CHECK_MODULES([KERRIGHED], [kerrighed >= 2.0], [], [:])
HWLOC_PKG_CHECK_MODULES([KERRIGHED], [kerrighed >= 2.0], [], [], [:])
AC_PATH_PROGS([HWLOC_MS_LIB], [lib])
AC_ARG_VAR([HWLOC_MS_LIB], [Path to Microsoft's Visual Studio `lib' tool])

Просмотреть файл

@ -186,7 +186,7 @@ EOF
# Cairo support
if test "x$enable_cairo" != "xno"; then
HWLOC_PKG_CHECK_MODULES([CAIRO], [cairo], [:], [enable_cairo="no"])
HWLOC_PKG_CHECK_MODULES([CAIRO], [cairo], [cairo_fill], [:], [enable_cairo=no])
if test "x$enable_cairo" != "xno"; then
AC_PATH_XTRA
CFLAGS_save=$CFLAGS
@ -220,7 +220,7 @@ EOF
# XML support
if test "x$enable_xml" != "xno"; then
HWLOC_PKG_CHECK_MODULES([XML], [libxml-2.0], [:], [enable_xml="no"])
HWLOC_PKG_CHECK_MODULES([XML], [libxml-2.0], [xmlNewDoc], [:], [enable_xml="no"])
fi
if test "x$enable_xml" != "xno"; then

Просмотреть файл

@ -123,6 +123,7 @@ AC_DEFUN([HWLOC_PKG_CHECK_MODULES],[
and HWLOC_[]$1[]_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.])
# Check for failure of pkg-config
if test $HWLOC_pkg_failed = yes; then
_HWLOC_PKG_SHORT_ERRORS_SUPPORTED
if test $HWLOC_pkg_short_errors_supported = yes; then
@ -133,7 +134,7 @@ See the pkg-config man page for more details.])
# Put the nasty error message in config.log where it belongs
echo "$HWLOC_[]$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
ifelse([$4], , [AC_MSG_ERROR(dnl
ifelse([$5], , [AC_MSG_ERROR(dnl
[Package requirements ($2) were not met:
$HWLOCC_$1_PKG_ERRORS
@ -144,9 +145,9 @@ installed software in a non-standard prefix.
_HWLOC_PKG_TEXT
])],
[AC_MSG_RESULT([no])
$4])
$5])
elif test $HWLOC_pkg_failed = untried; then
ifelse([$4], , [AC_MSG_FAILURE(dnl
ifelse([$5], , [AC_MSG_FAILURE(dnl
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the HWLOC_PKG_CONFIG environment variable to the full
path to pkg-config.
@ -154,11 +155,32 @@ path to pkg-config.
_HWLOC_PKG_TEXT
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
[$4])
[$5])
else
HWLOC_[]$1[]_CFLAGS=$HWLOC_pkg_cv_HWLOC_[]$1[]_CFLAGS
HWLOC_[]$1[]_LIBS=$HWLOC_pkg_cv_HWLOC_[]$1[]_LIBS
AC_MSG_RESULT([yes])
ifelse([$3], , :, [$3])
# If we got good results from pkg-config, check that they
# actually work (i.e., that we can link against the resulting
# $LIBS). The canonical example why we do this is if
# pkg-config returns 64 bit libraries but ./configure was run
# with CFLAGS=-m32 LDFLAGS=-m32. pkg-config gave us valid
# results, but we'll fail if we try to link. So detect that
# failure now.
hwloc_cflags_save=$CFLAGS
hwloc_libs_save=$LIBS
CFLAGS="$CFLAGS $HWLOC_pkg_cv_HWLOC_[]$1[]_CFLAGS"
LIBS="$LIBS $HWLOC_pkg_cv_HWLOC_[]$1[]_LIBS"
AC_CHECK_FUNC([$3], [hwloc_result=yes], [hwloc_result=no])
CFLAGS=$hwloc_cflags_save
LIBS=$hwloc_libs_save
AC_MSG_CHECKING([for final $1 support])
AS_IF([test "$hwloc_result" = "yes"],
[HWLOC_[]$1[]_CFLAGS=$HWLOC_pkg_cv_HWLOC_[]$1[]_CFLAGS
HWLOC_[]$1[]_LIBS=$HWLOC_pkg_cv_HWLOC_[]$1[]_LIBS
AC_MSG_RESULT([yes])
ifelse([$4], , :, [$4])],
[AC_MSG_RESULT([no])
ifelse([$5], , :, [$5])])
fi[]dnl
])# HWLOC_PKG_CHECK_MODULES

474
opal/mca/paffinity/hwloc/hwloc/configure поставляемый
Просмотреть файл

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.65 for hwloc 1.0.
# Generated by GNU Autoconf 2.65 for hwloc 1.0.1rc1.
#
# Report bugs to <http://www.open-mpi.org/community/help/>.
#
@ -701,8 +701,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='hwloc'
PACKAGE_TARNAME='hwloc'
PACKAGE_VERSION='1.0'
PACKAGE_STRING='hwloc 1.0'
PACKAGE_VERSION='1.0.1rc1'
PACKAGE_STRING='hwloc 1.0.1rc1'
PACKAGE_BUGREPORT='http://www.open-mpi.org/community/help/'
PACKAGE_URL=''
@ -1541,7 +1541,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures hwloc 1.0 to adapt to many kinds of systems.
\`configure' configures hwloc 1.0.1rc1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1616,7 +1616,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of hwloc 1.0:";;
short | recursive ) echo "Configuration of hwloc 1.0.1rc1:";;
esac
cat <<\_ACEOF
@ -1770,7 +1770,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
hwloc configure 1.0
hwloc configure 1.0.1rc1
generated by GNU Autoconf 2.65
Copyright (C) 2009 Free Software Foundation, Inc.
@ -2412,7 +2412,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by hwloc $as_me 1.0, which was
It was created by hwloc $as_me 1.0.1rc1, which was
generated by GNU Autoconf 2.65. Invocation command line was
$ $0 $@
@ -3346,7 +3346,7 @@ fi
# Define the identity of the package.
PACKAGE='hwloc'
VERSION='1.0'
VERSION='1.0.1rc1'
cat >>confdefs.h <<_ACEOF
@ -5349,6 +5349,7 @@ $as_echo "$hwloc_mode" >&6; }
# the real $top_srcdir, because we may be building in embedded
# mode). First, go back to the startdir incase the $srcdir is
# relative.
cd "$HWLOC_startdir"
cd "$srcdir"/
HWLOC_top_srcdir="`pwd`"
@ -5460,132 +5461,6 @@ else
fi
#
# Check OS support
#
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which OS support to include" >&5
$as_echo_n "checking which OS support to include... " >&6; }
case ${target} in
*-*-linux*)
$as_echo "#define HWLOC_LINUX_SYS 1" >>confdefs.h
hwloc_linux=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Linux" >&5
$as_echo "Linux" >&6; }
;;
*-*-irix*)
$as_echo "#define HWLOC_IRIX_SYS 1" >>confdefs.h
hwloc_irix=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: IRIX" >&5
$as_echo "IRIX" >&6; }
;;
*-*-darwin*)
$as_echo "#define HWLOC_DARWIN_SYS 1" >>confdefs.h
hwloc_darwin=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
$as_echo "Darwin" >&6; }
;;
*-*-solaris*)
$as_echo "#define HWLOC_SOLARIS_SYS 1" >>confdefs.h
hwloc_solaris=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Solaris" >&5
$as_echo "Solaris" >&6; }
;;
*-*-aix*)
$as_echo "#define HWLOC_AIX_SYS 1" >>confdefs.h
hwloc_aix=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: AIX" >&5
$as_echo "AIX" >&6; }
;;
*-*-osf*)
$as_echo "#define HWLOC_OSF_SYS 1" >>confdefs.h
hwloc_osf=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: OSF" >&5
$as_echo "OSF" >&6; }
;;
*-*-hpux*)
$as_echo "#define HWLOC_HPUX_SYS 1" >>confdefs.h
hwloc_hpux=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: HP-UX" >&5
$as_echo "HP-UX" >&6; }
;;
*-*-mingw*|*-*-cygwin*)
$as_echo "#define HWLOC_WIN_SYS 1" >>confdefs.h
hwloc_windows=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Windows" >&5
$as_echo "Windows" >&6; }
;;
*-*-*freebsd*)
$as_echo "#define HWLOC_FREEBSD_SYS 1" >>confdefs.h
hwloc_freebsd=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: FreeBSD" >&5
$as_echo "FreeBSD" >&6; }
;;
*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Unsupported! ($target)" >&5
$as_echo "Unsupported! ($target)" >&6; }
$as_echo "#define HWLOC_UNSUPPORTED_SYS 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ***********************************************************" >&5
$as_echo "$as_me: WARNING: ***********************************************************" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** hwloc does not support this system." >&5
$as_echo "$as_me: WARNING: *** hwloc does not support this system." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** hwloc will *attempt* to build (but it may not work)." >&5
$as_echo "$as_me: WARNING: *** hwloc will *attempt* to build (but it may not work)." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** hwloc's run-time results may be reduced to showing just one processor." >&5
$as_echo "$as_me: WARNING: *** hwloc's run-time results may be reduced to showing just one processor." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** You have been warned." >&5
$as_echo "$as_me: WARNING: *** You have been warned." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Pausing to give you time to read this message..." >&5
$as_echo "$as_me: WARNING: *** Pausing to give you time to read this message..." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ***********************************************************" >&5
$as_echo "$as_me: WARNING: ***********************************************************" >&2;}
sleep 10
;;
esac
#
# Check CPU support
#
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which CPU support to include" >&5
$as_echo_n "checking which CPU support to include... " >&6; }
case ${target} in
i*86-*-*)
$as_echo "#define HWLOC_X86_32_ARCH 1" >>confdefs.h
hwloc_x86_32=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: x86_32" >&5
$as_echo "x86_32" >&6; }
;;
x86_64-*-*)
$as_echo "#define HWLOC_X86_64_ARCH 1" >>confdefs.h
hwloc_x86_64=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: x86_64" >&5
$as_echo "x86_64" >&6; }
;;
esac
#
# Define C flags
#
@ -5801,6 +5676,184 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
# Check to see if we're producing a 32 or 64 bit executable by
# checking the sizeof void*. Note that AC CHECK_SIZEOF even works
# when cross compiling (!), according to the AC 2.64 docs. This
# check is needed because on some systems, you can instruct the
# compiler to specifically build 32 or 64 bit executables -- even
# though the $target may indicate something different.
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
$as_echo_n "checking size of void *... " >&6; }
if test "${ac_cv_sizeof_void_p+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
else
if test "$ac_cv_type_void_p" = yes; then
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ as_fn_set_status 77
as_fn_error "cannot compute sizeof (void *)
See \`config.log' for more details." "$LINENO" 5; }; }
else
ac_cv_sizeof_void_p=0
fi
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
$as_echo "$ac_cv_sizeof_void_p" >&6; }
cat >>confdefs.h <<_ACEOF
#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
_ACEOF
#
# Check OS support
#
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which OS support to include" >&5
$as_echo_n "checking which OS support to include... " >&6; }
case ${target} in
*-*-linux*)
$as_echo "#define HWLOC_LINUX_SYS 1" >>confdefs.h
hwloc_linux=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Linux" >&5
$as_echo "Linux" >&6; }
;;
*-*-irix*)
$as_echo "#define HWLOC_IRIX_SYS 1" >>confdefs.h
hwloc_irix=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: IRIX" >&5
$as_echo "IRIX" >&6; }
;;
*-*-darwin*)
$as_echo "#define HWLOC_DARWIN_SYS 1" >>confdefs.h
hwloc_darwin=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
$as_echo "Darwin" >&6; }
;;
*-*-solaris*)
$as_echo "#define HWLOC_SOLARIS_SYS 1" >>confdefs.h
hwloc_solaris=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Solaris" >&5
$as_echo "Solaris" >&6; }
;;
*-*-aix*)
$as_echo "#define HWLOC_AIX_SYS 1" >>confdefs.h
hwloc_aix=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: AIX" >&5
$as_echo "AIX" >&6; }
;;
*-*-osf*)
$as_echo "#define HWLOC_OSF_SYS 1" >>confdefs.h
hwloc_osf=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: OSF" >&5
$as_echo "OSF" >&6; }
;;
*-*-hpux*)
$as_echo "#define HWLOC_HPUX_SYS 1" >>confdefs.h
hwloc_hpux=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: HP-UX" >&5
$as_echo "HP-UX" >&6; }
;;
*-*-mingw*|*-*-cygwin*)
$as_echo "#define HWLOC_WIN_SYS 1" >>confdefs.h
hwloc_windows=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Windows" >&5
$as_echo "Windows" >&6; }
;;
*-*-*freebsd*)
$as_echo "#define HWLOC_FREEBSD_SYS 1" >>confdefs.h
hwloc_freebsd=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: FreeBSD" >&5
$as_echo "FreeBSD" >&6; }
;;
*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Unsupported! ($target)" >&5
$as_echo "Unsupported! ($target)" >&6; }
$as_echo "#define HWLOC_UNSUPPORTED_SYS 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ***********************************************************" >&5
$as_echo "$as_me: WARNING: ***********************************************************" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** hwloc does not support this system." >&5
$as_echo "$as_me: WARNING: *** hwloc does not support this system." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** hwloc will *attempt* to build (but it may not work)." >&5
$as_echo "$as_me: WARNING: *** hwloc will *attempt* to build (but it may not work)." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** hwloc's run-time results may be reduced to showing just one processor." >&5
$as_echo "$as_me: WARNING: *** hwloc's run-time results may be reduced to showing just one processor." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** You have been warned." >&5
$as_echo "$as_me: WARNING: *** You have been warned." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Pausing to give you time to read this message..." >&5
$as_echo "$as_me: WARNING: *** Pausing to give you time to read this message..." >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ***********************************************************" >&5
$as_echo "$as_me: WARNING: ***********************************************************" >&2;}
sleep 10
;;
esac
#
# Check CPU support
#
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which CPU support to include" >&5
$as_echo_n "checking which CPU support to include... " >&6; }
case ${target} in
i*86-*-*|x86_64-*-*)
case ${ac_cv_sizeof_void_p} in
4)
$as_echo "#define HWLOC_X86_32_ARCH 1" >>confdefs.h
hwloc_x86_32=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: x86_32" >&5
$as_echo "x86_32" >&6; }
;;
8)
$as_echo "#define HWLOC_X86_64_ARCH 1" >>confdefs.h
hwloc_x86_64=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: x86_64" >&5
$as_echo "x86_64" >&6; }
;;
*)
$as_echo "#define HWLOC_X86_64_ARCH 1" >>confdefs.h
hwloc_x86_64=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown -- assuming x86_64" >&5
$as_echo "unknown -- assuming x86_64" >&6; }
;;
esac
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether diff accepts -u" >&5
$as_echo_n "checking whether diff accepts -u... " >&6; }
@ -9424,6 +9477,7 @@ fi
# Check for failure of pkg-config
if test $HWLOC_pkg_failed = yes; then
if $HWLOC_PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -9445,11 +9499,43 @@ $as_echo "no" >&6; }
elif test $HWLOC_pkg_failed = untried; then
:
else
HWLOC_KERRIGHED_CFLAGS=$HWLOC_pkg_cv_HWLOC_KERRIGHED_CFLAGS
HWLOC_KERRIGHED_LIBS=$HWLOC_pkg_cv_HWLOC_KERRIGHED_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
:
# If we got good results from pkg-config, check that they
# actually work (i.e., that we can link against the resulting
# $LIBS). The canonical example why we do this is if
# pkg-config returns 64 bit libraries but ./configure was run
# with CFLAGS=-m32 LDFLAGS=-m32. pkg-config gave us valid
# results, but we'll fail if we try to link. So detect that
# failure now.
hwloc_cflags_save=$CFLAGS
hwloc_libs_save=$LIBS
CFLAGS="$CFLAGS $HWLOC_pkg_cv_HWLOC_KERRIGHED_CFLAGS"
LIBS="$LIBS $HWLOC_pkg_cv_HWLOC_KERRIGHED_LIBS"
ac_fn_c_check_func "$LINENO" "" "ac_cv_func_"
if test "x$ac_cv_func_" = x""yes; then :
hwloc_result=yes
else
hwloc_result=no
fi
CFLAGS=$hwloc_cflags_save
LIBS=$hwloc_libs_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for final KERRIGHED support" >&5
$as_echo_n "checking for final KERRIGHED support... " >&6; }
if test "$hwloc_result" = "yes"; then :
HWLOC_KERRIGHED_CFLAGS=$HWLOC_pkg_cv_HWLOC_KERRIGHED_CFLAGS
HWLOC_KERRIGHED_LIBS=$HWLOC_pkg_cv_HWLOC_KERRIGHED_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
:
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
:
fi
fi
for ac_prog in lib
@ -10968,6 +11054,7 @@ fi
# Check for failure of pkg-config
if test $HWLOC_pkg_failed = yes; then
if $HWLOC_PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -10985,15 +11072,47 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
enable_cairo="no"
enable_cairo=no
elif test $HWLOC_pkg_failed = untried; then
enable_cairo="no"
enable_cairo=no
else
HWLOC_CAIRO_CFLAGS=$HWLOC_pkg_cv_HWLOC_CAIRO_CFLAGS
HWLOC_CAIRO_LIBS=$HWLOC_pkg_cv_HWLOC_CAIRO_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
:
# If we got good results from pkg-config, check that they
# actually work (i.e., that we can link against the resulting
# $LIBS). The canonical example why we do this is if
# pkg-config returns 64 bit libraries but ./configure was run
# with CFLAGS=-m32 LDFLAGS=-m32. pkg-config gave us valid
# results, but we'll fail if we try to link. So detect that
# failure now.
hwloc_cflags_save=$CFLAGS
hwloc_libs_save=$LIBS
CFLAGS="$CFLAGS $HWLOC_pkg_cv_HWLOC_CAIRO_CFLAGS"
LIBS="$LIBS $HWLOC_pkg_cv_HWLOC_CAIRO_LIBS"
ac_fn_c_check_func "$LINENO" "cairo_fill" "ac_cv_func_cairo_fill"
if test "x$ac_cv_func_cairo_fill" = x""yes; then :
hwloc_result=yes
else
hwloc_result=no
fi
CFLAGS=$hwloc_cflags_save
LIBS=$hwloc_libs_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for final CAIRO support" >&5
$as_echo_n "checking for final CAIRO support... " >&6; }
if test "$hwloc_result" = "yes"; then :
HWLOC_CAIRO_CFLAGS=$HWLOC_pkg_cv_HWLOC_CAIRO_CFLAGS
HWLOC_CAIRO_LIBS=$HWLOC_pkg_cv_HWLOC_CAIRO_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
:
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
enable_cairo=no
fi
fi
if test "x$enable_cairo" != "xno"; then
if test "$no_x" = yes; then
@ -11633,6 +11752,7 @@ fi
# Check for failure of pkg-config
if test $HWLOC_pkg_failed = yes; then
if $HWLOC_PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -11654,11 +11774,43 @@ $as_echo "no" >&6; }
elif test $HWLOC_pkg_failed = untried; then
enable_xml="no"
else
HWLOC_XML_CFLAGS=$HWLOC_pkg_cv_HWLOC_XML_CFLAGS
HWLOC_XML_LIBS=$HWLOC_pkg_cv_HWLOC_XML_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
:
# If we got good results from pkg-config, check that they
# actually work (i.e., that we can link against the resulting
# $LIBS). The canonical example why we do this is if
# pkg-config returns 64 bit libraries but ./configure was run
# with CFLAGS=-m32 LDFLAGS=-m32. pkg-config gave us valid
# results, but we'll fail if we try to link. So detect that
# failure now.
hwloc_cflags_save=$CFLAGS
hwloc_libs_save=$LIBS
CFLAGS="$CFLAGS $HWLOC_pkg_cv_HWLOC_XML_CFLAGS"
LIBS="$LIBS $HWLOC_pkg_cv_HWLOC_XML_LIBS"
ac_fn_c_check_func "$LINENO" "xmlNewDoc" "ac_cv_func_xmlNewDoc"
if test "x$ac_cv_func_xmlNewDoc" = x""yes; then :
hwloc_result=yes
else
hwloc_result=no
fi
CFLAGS=$hwloc_cflags_save
LIBS=$hwloc_libs_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for final XML support" >&5
$as_echo_n "checking for final XML support... " >&6; }
if test "$hwloc_result" = "yes"; then :
HWLOC_XML_CFLAGS=$HWLOC_pkg_cv_HWLOC_XML_CFLAGS
HWLOC_XML_LIBS=$HWLOC_pkg_cv_HWLOC_XML_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
:
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
enable_xml="no"
fi
fi
fi
@ -12534,13 +12686,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
(eval echo "\"\$as_me:12537: $ac_compile\"" >&5)
(eval echo "\"\$as_me:12689: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
(eval echo "\"\$as_me:12540: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval echo "\"\$as_me:12692: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
(eval echo "\"\$as_me:12543: output\"" >&5)
(eval echo "\"\$as_me:12695: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@ -13742,7 +13894,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
echo '#line 13745 "configure"' > conftest.$ac_ext
echo '#line 13897 "configure"' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
@ -15242,11 +15394,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:15245: $lt_compile\"" >&5)
(eval echo "\"\$as_me:15397: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:15249: \$? = $ac_status" >&5
echo "$as_me:15401: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@ -15581,11 +15733,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:15584: $lt_compile\"" >&5)
(eval echo "\"\$as_me:15736: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:15588: \$? = $ac_status" >&5
echo "$as_me:15740: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@ -15686,11 +15838,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:15689: $lt_compile\"" >&5)
(eval echo "\"\$as_me:15841: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:15693: \$? = $ac_status" >&5
echo "$as_me:15845: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@ -15741,11 +15893,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:15744: $lt_compile\"" >&5)
(eval echo "\"\$as_me:15896: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:15748: \$? = $ac_status" >&5
echo "$as_me:15900: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@ -18108,7 +18260,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 18111 "configure"
#line 18263 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -18204,7 +18356,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 18207 "configure"
#line 18359 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -19067,7 +19219,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by hwloc $as_me 1.0, which was
This file was extended by hwloc $as_me 1.0.1rc1, which was
generated by GNU Autoconf 2.65. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -19137,7 +19289,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
hwloc config.status 1.0
hwloc config.status 1.0.1rc1
configured by $0, generated by GNU Autoconf 2.65,
with options \\"\$ac_cs_config\\"

Просмотреть файл

@ -447,6 +447,9 @@
/* The size of `unsigned long', as computed by sizeof. */
#undef SIZEOF_UNSIGNED_LONG
/* The size of `void *', as computed by sizeof. */
#undef SIZEOF_VOID_P
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

Просмотреть файл

@ -1303,18 +1303,20 @@ look_sysfscpu(struct hwloc_topology *topology, const char *path)
sprintf(str, "%s/cpu%d/topology/physical_package_id", path, i);
hwloc_parse_sysfs_unsigned(str, &mysocketid, topology->backend_params.sysfs.root_fd);
sprintf(str, "%s/cpu%d/topology/core_siblings", path, i);
socketset = hwloc_parse_cpumap(str, topology->backend_params.sysfs.root_fd);
if (socketset && hwloc_cpuset_weight(socketset) >= 1) {
if (hwloc_cpuset_first(socketset) == i) {
/* first cpu in this socket, add the socket */
socket = hwloc_alloc_setup_object(HWLOC_OBJ_SOCKET, mysocketid);
socket->cpuset = socketset;
hwloc_debug_1arg_cpuset("os socket %u has cpuset %s\n",
mysocketid, socketset);
hwloc_insert_object_by_cpuset(topology, socket);
} else
hwloc_cpuset_free(socketset);
if (mysocketid != (unsigned) -1) {
sprintf(str, "%s/cpu%d/topology/core_siblings", path, i);
socketset = hwloc_parse_cpumap(str, topology->backend_params.sysfs.root_fd);
if (socketset && hwloc_cpuset_weight(socketset) >= 1) {
if (hwloc_cpuset_first(socketset) == i) {
/* first cpu in this socket, add the socket */
socket = hwloc_alloc_setup_object(HWLOC_OBJ_SOCKET, mysocketid);
socket->cpuset = socketset;
hwloc_debug_1arg_cpuset("os socket %u has cpuset %s\n",
mysocketid, socketset);
hwloc_insert_object_by_cpuset(topology, socket);
} else
hwloc_cpuset_free(socketset);
}
}
/* look at the core */

Просмотреть файл

@ -323,9 +323,9 @@ hwloc_look_windows(struct hwloc_topology *topology)
GROUP_AFFINITY *GroupMask;
/* Ignore non-data caches */
if (procInfo->Relationship == RelationCache &&
(procInfo->Cache.Type == CacheUnified
|| procInfo->Cache.Type == CacheData))
if (procInfo->Relationship == RelationCache
&& procInfo->Cache.Type != CacheUnified
&& procInfo->Cache.Type != CacheData)
continue;
id = -1;
@ -366,6 +366,7 @@ hwloc_look_windows(struct hwloc_topology *topology)
continue;
default:
/* Don't know how to get the mask. */
hwloc_debug("unknown relation %d\n", procInfo->Relationship);
continue;
}

Просмотреть файл

@ -140,8 +140,10 @@ hwloc_setup_group_from_min_distance_clique(unsigned nbobjs,
unsigned size = 1; /* current object i */
/* if already grouped, skip */
if (groupids[i])
if (groupids[i]) {
hwloc_cpuset_free(closest_objs_set);
continue;
}
/* find closest nodes */
for(j=i+1; j<nbobjs; j++) {
@ -164,6 +166,7 @@ hwloc_setup_group_from_min_distance_clique(unsigned nbobjs,
(*distances)[j][k] != min_distance) {
/* the minimal-distance graph is not complete. abort */
hwloc_debug("%s", "found incomplete minimal-distance graph, aborting\n");
hwloc_cpuset_free(closest_objs_set);
return 0;
}
@ -539,10 +542,12 @@ hwloc_get_type_order(hwloc_obj_type_t type)
return obj_type_order[type];
}
#if !defined(NDEBUG)
static hwloc_obj_type_t hwloc_get_order_type(int order)
{
return obj_order_type[order];
}
#endif
int hwloc_compare_types (hwloc_obj_type_t type1, hwloc_obj_type_t type2)
{
@ -2093,12 +2098,14 @@ hwloc__check_children(struct hwloc_obj *parent)
continue;
/* check that child cpuset is included in the parent */
assert(hwloc_cpuset_isincluded(parent->children[j]->cpuset, remaining_parent_set));
#if !defined(NDEBUG)
/* check that children are correctly ordered (see below), empty ones may be anywhere */
if (!hwloc_cpuset_iszero(parent->children[j]->cpuset)) {
int firstchild = hwloc_cpuset_first(parent->children[j]->cpuset);
int firstparent = hwloc_cpuset_first(remaining_parent_set);
assert(firstchild == firstparent);
}
#endif
/* clear previously used parent cpuset bits so that we actually checked above
* that children cpusets do not intersect and are ordered properly
*/

Просмотреть файл

@ -1,8 +1,6 @@
Machine (phys=0 local=1025408KB total=1025408KB)
Socket #0
PU #0 (phys=0)
PU #1 (phys=1)
PU #0 (phys=0)
PU #1 (phys=1)
depth 0: 1 Machine (type #1)
depth 1: 1 Socket (type #3)
depth 2: 2 PUs (type #6)
depth 1: 2 PUs (type #6)
Topology not from this system

Просмотреть файл

@ -1,33 +1,28 @@
Machine (phys=0)
Socket #0
L3Cache #0 (4096KB)
L2Cache #0 (256KB)
L1Cache #0 (16KB)
Core #0 (phys=0)
PU #0 (phys=0)
Socket #1
L3Cache #1 (4096KB)
L2Cache #1 (256KB)
L1Cache #1 (16KB)
Core #1 (phys=0)
PU #1 (phys=1)
Socket #2
L3Cache #2 (4096KB)
L2Cache #2 (256KB)
L1Cache #2 (16KB)
Core #2 (phys=0)
PU #2 (phys=2)
Socket #3
L3Cache #3 (4096KB)
L2Cache #3 (256KB)
L1Cache #3 (16KB)
Core #3 (phys=0)
PU #3 (phys=3)
L3Cache #0 (4096KB)
L2Cache #0 (256KB)
L1Cache #0 (16KB)
Core #0 (phys=0)
PU #0 (phys=0)
L3Cache #1 (4096KB)
L2Cache #1 (256KB)
L1Cache #1 (16KB)
Core #1 (phys=0)
PU #1 (phys=1)
L3Cache #2 (4096KB)
L2Cache #2 (256KB)
L1Cache #2 (16KB)
Core #2 (phys=0)
PU #2 (phys=2)
L3Cache #3 (4096KB)
L2Cache #3 (256KB)
L1Cache #3 (16KB)
Core #3 (phys=0)
PU #3 (phys=3)
depth 0: 1 Machine (type #1)
depth 1: 4 Sockets (type #3)
depth 1: 4 Caches (type #4)
depth 2: 4 Caches (type #4)
depth 3: 4 Caches (type #4)
depth 4: 4 Caches (type #4)
depth 5: 4 Cores (type #5)
depth 6: 4 PUs (type #6)
depth 4: 4 Cores (type #5)
depth 5: 4 PUs (type #6)
Topology not from this system

Просмотреть файл

@ -23,16 +23,16 @@ Use OS/physical indexes instead of logical indexes for both input and output.
\fB\-l\fR \fB\-\-logical\fR
Use logical indexes instead of physical/OS indexes for both input and output (default).
.TP
\fB\--pi\fR \fB\-\-physical-input\fR
\fB\-\-pi\fR \fB\-\-physical\-input\fR
Use OS/physical indexes instead of logical indexes for input.
.TP
\fB\--li\fR \fB\-\-logical-input\fR
\fB\-\-li\fR \fB\-\-logical\-input\fR
Use logical indexes instead of physical/OS indexes for input (default).
.TP
\fB\--po\fR \fB\-\-physical-input\fR
\fB\-\-po\fR \fB\-\-physical\-input\fR
Use OS/physical indexes instead of logical indexes for output.
.TP
\fB\--lo\fR \fB\-\-logical-output\fR
\fB\-\-lo\fR \fB\-\-logical\-output\fR
Use logical indexes instead of physical/OS indexes for output (default).
.TP
\fB\-\-proclist\fR

Просмотреть файл

@ -134,7 +134,10 @@ int main(int argc, char *argv[])
hwloc_obj_t obj = hwloc_get_first_largest_obj_inside_cpuset(topology, remaining);
hwloc_obj_type_snprintf(type, sizeof(type), obj, 1);
idx = logicalo ? obj->logical_index : obj->os_index;
printf("%s%s:%u", first ? "" : " ", type, idx);
if (idx == (unsigned) -1)
printf("%s%s", first ? "" : " ", type);
else
printf("%s%s:%u", first ? "" : " ", type, idx);
hwloc_cpuset_andnot(remaining, remaining, obj->cpuset);
first = 0;
}

Просмотреть файл

@ -15,7 +15,7 @@ hwloc-distrib \- Build a number of cpu masks distributed on the system
.\" **************************
.SH OPTIONS
.TP
\fB\-v\fR
\fB\-\-single\fR
Singlify each output to a single CPU.
.TP
\fB\-v\fR
@ -55,19 +55,27 @@ If 4 processes have to be distributed across a machine, their CPU masks
may be obtained with:
$ hwloc-distrib 4
0000000f
00000f00
000000f0
0000f000
0x0000000f
0x00000f00
0x000000f0
0x0000f000
To get a single processor of each CPU masks (prevent migration in case
of binding)
$ hwloc-distrib 4 --single
00000001
00000100
00000010
00001000
0x00000001
0x00000100
0x00000010
0x00001000
Each output line may be converted independently with hwloc-calc and xargs:
$ hwloc-distrib 4 --single | xargs -n 1 hwloc-calc --objects
PU:0
PU:1
PU:2
PU:3
To convert the output into a list of processors that may be passed to
dplace -c inside a mpirun command line:

Просмотреть файл

@ -13,7 +13,7 @@ static void usage(FILE *where)
{
fprintf(where, "Usage: hwloc-distrib [options] number\n");
fprintf(where, "Options:\n");
fprintf(where, " --single\tsinglify each output to a single CPU\n");
fprintf(where, " --single\tsinglify each output to a single CPU\n");
fprintf(where, " -v\t\t\tverbose messages\n");
fprintf(where, " --synthetic \"2 2\"\tsimulate a fake hierarchy\n");
#ifdef HWLOC_HAVE_XML

Просмотреть файл

@ -39,7 +39,7 @@ These indexes are prefixed with "p#" instead of "#".
\fB\-c\fR \fB\-\-cpuset\fR
Display the cpuset of each object.
.TP
\fB\-C\fR \fB\-\-cpuset-only\fR
\fB\-C\fR \fB\-\-cpuset\-only\fR
Only display the cpuset of each object; do not display anything else
about the object.
.TP
@ -67,7 +67,7 @@ topology on the local machine). If <path> is "\-", the standard input
is used. XML support must have been compiled in to hwloc for this
option to be usable.
.TP
\fB\-\-fsys-root\fR <path>
\fB\-\-fsys\-root\fR <path>
Read topology from the chroot specified by <path> (instead of
discovering the topology on the local machine). This option is
generally only available on Linux.
@ -77,7 +77,7 @@ Detect topology as seen by process <pid>, i.e. as if process <pid> did the
discovery itself, and show its current binding. Note that this can for instance
change the set of allowed processors. If 0 is given as pid, the current binding for the lstopo process will be shown.
.TP
\fB\-\-top\fR <pid>
\fB\-\-top\fR
Show existing processes as misc objects in the output. To avoid uselessly
cluttering the output, only processes that are restricted to some part of the
machine are shown. On Linux, kernel threads are not shown.