1
1
Jeff Squyres 3129ccd9ec Make the hwloc paffinity component available for everyone. hwloc
supports a wide variety of operating systems and platforms; see the
opal/mca/paffinity/hwloc/hwloc/README file for details.

This component includes an embedded copy of hwloc, currently based on
hwloc-1.0rc6.  But note that hwloc is properly SVN imported into the
/vendor branch, so it will be easy to update when 1.0 GA is released.
Note that the hwloc tree embedded in opal/mca/paffinity/hwloc/hwloc is
identical to a hwloc distribution tarball, except that much of the
documentation was rm -rf'ed (because we don't need it for the embedded
case).

Since the paffinity framework currently does not understand hardware
threads, the hwloc component compensates for this by identifying cores
by the "first" hardware thread on that core.  Hopefully we'll update
paffinity someday to understand hardware threads.  :-)

configure grew a --with-hwloc option, analogous to what we do for many
other external libraries that OMPI supports.  However, there's a new
feature: due to the request of several distros, OMPI can be configured
to build with its internal copy of hwloc or with an external copy of
hwloc (e.g., a system-installed hwloc).

 1. If --with-hwloc is not specified, Open MPI will try to use its
    internal copy (but silently fail/ignore hwloc if that fails).
 1. If --with-hwloc=<dir> is supplied, Open MPI looks for hwloc
    support in <dir> (and --with-hwloc-libdir=<dir>, if specified).
 1. If --with-hwloc=external is supplied, Open MPI will look for hwloc
    in a compiler/linker default external location.
 1. If --with-hwloc=internal is supplied, Open MPI will use its
    internal copy of hwloc.

Some of OMPI's main configury had to be slightly re-arranged in the
bootstrapping phase to accomodate hwloc's configry needs.

This commit was SVN r23125.
2010-05-13 23:56:05 +00:00

73 строки
2.5 KiB
Makefile

#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
SUBDIRS =
if OPAL_PAFFINITY_HWLOC_INTERNAL
SUBDIRS += hwloc
endif
# To find hwloc_bottom.h. EMBEDDED flags are for if we OMPI's
# internal hwloc is used; paffinity_hwloc_CPPFLAGS is if we are using
# an external install.
AM_CPPFLAGS = $(HWLOC_EMBEDDED_CPPFLAGS) $(paffinity_hwloc_CPPFLAGS)
# To get the cflags for the stuff in hwloc.h
AM_CFLAGS = $(HWLOC_EMBEDDED_CFLAGS) $(paffinity_hwloc_CFLAGS)
sources = \
paffinity_hwloc.h \
paffinity_hwloc_component.c \
paffinity_hwloc_module.c
# Make the output library in this directory, and name it either
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_paffinity_hwloc_DSO
component_noinst =
component_install = mca_paffinity_hwloc.la
else
component_noinst = libmca_paffinity_hwloc.la
component_install =
endif
mcacomponentdir = $(pkglibdir)
mcacomponent_LTLIBRARIES = $(component_install)
mca_paffinity_hwloc_la_SOURCES = $(sources)
mca_paffinity_hwloc_la_LDFLAGS = -module -avoid-version
mca_paffinity_hwloc_la_LIBADD =
if OPAL_PAFFINITY_HWLOC_INTERNAL
mca_paffinity_hwloc_la_LIBADD += \
$(top_ompi_builddir)/opal/mca/paffinity/hwloc/hwloc/src/libhwloc_embedded.la
else
mca_paffinity_hwloc_la_LDFLAGS += $(paffinity_hwloc_LDFLAGS)
mca_paffinity_hwloc_la_LIBADD += $(paffinity_hwloc_LIBS)
endif
noinst_LTLIBRARIES = $(component_noinst)
libmca_paffinity_hwloc_la_SOURCES =$(sources)
libmca_paffinity_hwloc_la_LDFLAGS = -module -avoid-version
libmca_paffinity_hwloc_la_LIBADD =
if OPAL_PAFFINITY_HWLOC_INTERNAL
libmca_paffinity_hwloc_la_LIBADD += \
$(top_ompi_builddir)/opal/mca/paffinity/hwloc/hwloc/src/libhwloc_embedded.la
else
libmca_paffinity_hwloc_la_LDFLAGS += $(paffinity_hwloc_LDFLAGS)
libmca_paffinity_hwloc_la_LIBADD += $(paffinity_hwloc_LIBS)
endif