1
1

WARNING: Work on the temp branch being merged here encountered problems with bugs in subversion. Considerable effort has gone into validating the branch. However, not all conditions can be checked, so users are cautioned that it may be advisable to not update from the trunk for a few days to allow MTT to identify platform-specific issues.

This merges the branch containing the revamped build system based around converting autogen from a bash script to a Perl program. Jeff has provided emails explaining the features contained in the change.

Please note that configure requirements on components HAVE CHANGED. For example. a configure.params file is no longer required in each component directory. See Jeff's emails for an explanation.

This commit was SVN r23764.
Этот коммит содержится в:
Ralph Castain 2010-09-17 23:04:06 +00:00
родитель 09750d0310
Коммит 40a2bfa238
677 изменённых файлов: 3629 добавлений и 8515 удалений

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

@ -48,7 +48,7 @@ developer's checkout, you have three main options:
shell$ svn co http://svn.open-mpi.org/svn/ompi/trunk ompi
shell$ cd ompi
shell$ ./autogen.sh
shell$ ./autogen.pl
shell$ mkdir build
shell$ cd build
shell$ ./configure --with-platform=optimized ...
@ -61,7 +61,7 @@ developer's checkout, you have three main options:
shell$ svn co http://svn.open-mpi.org/svn/ompi/trunk ompi
shell$ cd ompi
shell$ ./autogen.sh
shell$ ./autogen.p
shell$ mkdir build
shell$ cd build
shell$ ../configure ...
@ -194,15 +194,15 @@ NOTE: On MacOS/X, the default "libtool" program is different than the
m4, Autoconf and Automake build and install very quickly; Libtool will
take a minute or two.
5. You can now run OMPI's top-level "autogen.sh" script. This script
5. You can now run OMPI's top-level "autogen.pl" script. This script
will invoke the GNU Autoconf, Automake, and Libtool commands in the
proper order and setup to run OMPI's top-level "configure" script.
Running autogen.sh may take several minutes, depending on your
Running autogen.pl may take several minutes, depending on your
system. It's not very exciting to watch. :-)
If you have a multi-processor system, enabling the multi-threaded
behavior in Automake 1.11 (or newer) can result in autogen.sh
behavior in Automake 1.11 (or newer) can result in autogen.pl
running faster. Do this by setting the AUTOMAKE_JOBS environment
variable to the number of processors (threads) that you want it to
use. For example (you can again put this in your shell startup
@ -213,12 +213,12 @@ NOTE: On MacOS/X, the default "libtool" program is different than the
# For csh/tcsh:
set AUTOMAKE_JOBS 4
5a. You generally need to run autogen.sh whenever the top-level
5a. You generally need to run autogen.pl whenever the top-level
file "configure.ac" changes, or any files in the config/
directory change (the config/ directory is where a lot of
"include" files for OMPI's configure script live).
5b. You do *NOT* need to re-run autogen.sh if you modify a
5b. You do *NOT* need to re-run autogen.pl if you modify a
Makefile.am.
Use of Flex

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

@ -1,102 +1,102 @@
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) 2008 Cisco Systems, Inc. All rights reserved.
$COPYRIGHT$
Additional copyrights may follow
$HEADER$
For More Information
====================
This file is a *very* short overview of building and installing Open
MPI, and building MPI applications. Much more information is
available on the Open MPI web site (e.g., see the FAQ section):
http://www.open-mpi.org/
Developer Builds
================
If you have checked out a DEVELOPER'S COPY of Open MPI (i.e., you
checked out from subversion), you should read the HACKING file before
attempting to build Open MPI. You must then run:
shell$ ./autogen.sh
You will need very recent versions of GNU Autoconf, Automake, and
Libtool. If autogen.sh fails, read the HACKING file. If anything
else fails, read the HACKING file. Finally, we suggest reading the
HACKING file.
*** NOTE: Developer's copies of Open MPI typically include a large
performance penalty at run-time because of extra debugging overhead.
User Builds
===========
Building Open MPI is typically a combination of running "configure"
and "make". Execute the following commands to install the Open MPI
system from within the directory at the top of the tree:
shell$ ./configure --prefix=/where/to/install
[...lots of output...]
shell$ make all install
If you need special access to install, then you can execute "make
all" as a user with write permissions in the build tree, and a
separate "make install" as a user with write permissions to the
install tree.
Compiling support for various networks or other specific hardware may
require additional command ling flags when running configure. See the
README file for more details. Note that VPATH builds are fully
supported. For example:
shell$ gtar zxf openmpi-X.Y.Z.tar.gz
shell$ cd openmpi-X.Y.Z
shell$ mkdir build
shell$ cd build
shell$ ../configure ...your options...
[...lots of output...]
shell$ make all install
Parallel builds are also supported (although some versions of "make",
such as GNU make, will only use the first target listed on the command
line when executable parallel builds). For example (assume GNU make):
shell$ make -j 4 all
[...lots of output...]
shell$ make install
Parallel make is generally only helpful in the build phase; the
installation process is mostly serial and does not benefit much from
parallel make.
Compiling MPI Applications
==========================
MPI applications should be compiled using the Open MPI "wrapper"
compilers:
C programs: mpicc your-code.c
C++ programs: mpiCC your-code.cc or
mpic++ your-code.cc (for case-insensitive filesystems)
F77 programs: mpif77 your-code.f
F90 programs: mpif90 your-code.f90
These compilers simply add various command line flags (such as -lmpi)
and invoke a back-end compiler; they are not compilers in themselves.
1 University Research and Technology
1 Corporation. All rights reserved.
1Copyright (c) 2004-2005 The University of Tennessee and The University
1 of Tennessee Research Foundation. All rights
1 reserved.
1Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
1 University of Stuttgart. All rights reserved.
1Copyright (c) 2004-2005 The Regents of the University of California.
1 All rights reserved.
1Copyright (c) 2008-2010 Cisco Systems, Inc. All rights reserved.
1$COPYRIGHT$
1
1Additional copyrights may follow
1
1$HEADER$
1
1
1For More Information
1====================
1
1This file is a *very* short overview of building and installing Open
1MPI, and building MPI applications. Much more information is
1available on the Open MPI web site (e.g., see the FAQ section):
1
1 http://www.open-mpi.org/
1
1
1Developer Builds
1================
1
1If you have checked out a DEVELOPER'S COPY of Open MPI (i.e., you
1checked out from subversion), you should read the HACKING file before
1attempting to build Open MPI. You must then run:
1
1shell$ ./autogen.pl
1
1You will need very recent versions of GNU Autoconf, Automake, and
1Libtool. If autogen.pl fails, read the HACKING file. If anything
1else fails, read the HACKING file. Finally, we suggest reading the
1HACKING file.
1
1*** NOTE: Developer's copies of Open MPI typically include a large
1performance penalty at run-time because of extra debugging overhead.
1
1
1User Builds
1===========
1
1Building Open MPI is typically a combination of running "configure"
1and "make". Execute the following commands to install the Open MPI
1system from within the directory at the top of the tree:
1
1shell$ ./configure --prefix=/where/to/install
1[...lots of output...]
1shell$ make all install
1
1If you need special access to install, then you can execute "make
1all" as a user with write permissions in the build tree, and a
1separate "make install" as a user with write permissions to the
1install tree.
1
1Compiling support for various networks or other specific hardware may
1require additional command ling flags when running configure. See the
1README file for more details. Note that VPATH builds are fully
1supported. For example:
1
1shell$ gtar zxf openmpi-X.Y.Z.tar.gz
1shell$ cd openmpi-X.Y.Z
1shell$ mkdir build
1shell$ cd build
1shell$ ../configure ...your options...
1[...lots of output...]
1shell$ make all install
1
1Parallel builds are also supported (although some versions of "make",
1such as GNU make, will only use the first target listed on the command
1line when executable parallel builds). For example (assume GNU make):
1
1shell$ make -j 4 all
1[...lots of output...]
1shell$ make install
1
1Parallel make is generally only helpful in the build phase; the
1installation process is mostly serial and does not benefit much from
1parallel make.
1
1
1Compiling MPI Applications
1==========================
1
1MPI applications should be compiled using the Open MPI "wrapper"
1compilers:
1
1C programs: mpicc your-code.c
1C++ programs: mpiCC your-code.cc or
1 mpic++ your-code.cc (for case-insensitive filesystems)
1F77 programs: mpif77 your-code.f
1F90 programs: mpif90 your-code.f90
1
1These compilers simply add various command line flags (such as -lmpi)
1and invoke a back-end compiler; they are not compilers in themselves.

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

@ -18,7 +18,7 @@
#
SUBDIRS = config contrib $(MCA_PROJECT_SUBDIRS) test
EXTRA_DIST = README INSTALL VERSION Doxyfile LICENSE autogen.sh CMakeLists.txt README.WINDOWS
EXTRA_DIST = README INSTALL VERSION Doxyfile LICENSE autogen.pl CMakeLists.txt README.WINDOWS
include examples/Makefile.include

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

@ -14,8 +14,6 @@ Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
reserved.
Copyright (c) 2010 IBM Corporation. All rights reserved.
$COPYRIGHT$
Additional copyrights may follow
@ -164,45 +162,11 @@ Trunk (not on release branches yet)
- Fixed a problem with the Fortran binding for
MPI_FILE_CREATE_ERRHANDLER. Thanks to Secretan Yves for identifying
the issue (** also appeared: 1.5).
- Updates to the LSF PLM to ensure that the path is correctly passed.
Thanks to Teng Lin for the patch (** also appeared: 1.5).
- Fixes for the F90 MPI_COMM_SET_ERRHANDLER and MPI_WIN_SET_ERRHANDLER
bindings. Thanks to Paul Kapinos for pointing out the issue
(** also appeared: 1.5).
- Fixed various MPI_THREAD_MULTIPLE race conditions
- Fixed an issue with an undeclared variable from ptmalloc2 munmap on
BSD systems
- Fixes for BSD interface detection
- Various other BSD fixes. Thanks to Kevin Buckley helping to track
all of this down.
- Fixed issues with the use of the -nper* mpirun command line arguments
- Fixed an issue with coll tuned dynamic rules.
- Fixed an issue with the use of OPAL_DESTDIR being applied too aggressively
- Fixed an issue with one-sided xfers when the displacement exceeds 2GBytes.
- Change to ensure TotalView works properly on Darwin.
- Added support for Visual Studio 2010.
- Fix to ensure proper placement of VampirTrace header files.
- Needed to add volatile keyword to a varialbe used in debugging
(MPIR_being_debugged).
- Fixed a bug in inter-allgather.
- Fixed malloc(0) warnings.
- Corrected a typo the MPI_Comm_size man page (intra -> inter). Thanks
to Simon number.cruncher for pointing this out.
- Fixed a SegV in orted when given more than 127 app_contexts.
- Removed xgrid source code from the 1.4 branch since it is no longer
supported in the 1.4 series.
- Removed the --enable-opal-progress-threads config option since
opal progress thread support does not work in 1.4.x.
- Fixed a defect in VampirTrace's vtfilter.
- Fixed wrong Windows path in hnp_contact.
- Removed the requirement for a paffinity component.
- Removed a hardcoded limit of 64 interconnected jobs.
- Fix to allow singletons to use ompi-server for rendezvous.
- Fixed bug in output-filename option.
- Fix to correctly handle failures in mx_init()
- Fixed a potential Fortran memory leak.
- Fixed an incorrect branch in some ppc32 assembly code. Thanks
to Matthew Clark for this fix.
- Remove use of undocumented AS_VAR_GET macro during configuration.
- Various man page updates
1.4.2

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

@ -1,48 +0,0 @@
dnl -*- shell-script -*-
dnl
dnl Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana
dnl University Research and Technology
dnl Corporation. All rights reserved.
dnl Copyright (c) 2004-2005 The University of Tennessee and The University
dnl of Tennessee Research Foundation. All rights
dnl reserved.
dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
dnl University of Stuttgart. All rights reserved.
dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl All rights reserved.
dnl Copyright (c) 2006-2008 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2006 Los Alamos National Security, LLC. All rights
dnl reserved.
dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
dnl
dnl $HEADER$
dnl
m4_include(config/ompi_get_version.m4)
#
# The config/mca_no_configure_components.m4 file is generated by
# autogen.sh
#
m4_include(config/mca_no_configure_components.m4)
#
# The config/ext_no_configure_components.m4 file is generated by
# autogen.sh
#
m4_include(config/ext_no_configure_components.m4)
#
# mca_m4_config_include.m4 is generated by autogen.sh. It includes
# the list of all component configure.m4 macros.
#
m4_include(config/mca_m4_config_include.m4)
#
# ext_m4_config_include.m4 is generated by autogen.sh. It includes
# the list of all interface extension component configure.m4 macros.
#
m4_include(config/ext_m4_config_include.m4)

1108
autogen.pl Исполняемый файл

Разница между файлами не показана из-за своего большого размера Загрузить разницу

1644
autogen.sh

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@ -21,9 +21,9 @@
EXTRA_DIST = \
distscript.csh \
ompi_get_version.m4sh \
opal_get_version.m4sh \
libltdl-preopen-error.diff \
ltmain_pgi_tp.diff
maintainer-clean-local:
rm -f ompi_get_version.sh
rm -f opal_get_version.sh

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

@ -173,11 +173,73 @@ foreach file (config.guess config.sub)
end
end
#
# Put in date/version number in man pages
# JMS don't have man pages yet -- this is a straight copy from LAM7
#
set ver="$OMPI_VERSION"
#echo "*** Updating version date/number in man pages"
#rm -f manfiles
#find man -type f | grep -v Makefile > manfiles
#set date="`date '+%B, %Y'`"
#cp $srcdir/config/doctext.nroff.def .
#foreach file (`cat manfiles` doctext.nroff.def)
# sed -e "s/-RELEASEDATE-/$date/g" $file > foo
# sed -e "s/-RELEASEVERSION-/$ver/g" foo > bar
# rm -f $file # Needed 'cause automake makes hard links, not copies
# mv bar $file
# rm -f foo
#end
#rm -f manfiles
#
# Make all the man pages -- doctext needs to be in your path
# JMS: Don't have man pages yet; need to do this at some point
#
#
# Now we need to list all these generated man pages in the Makefile.am
# and Makefile.in in man/man3. Ick!
# JMS: Will probably need to do this as well. Sigh.
#
#echo "*** Frobbing Makefile.am and Makefile.in..."
#cd ../../man/man3
#set files="`ls MPI_*3 MPIO_*3 XMPI_*3 MPIL_*3`"
#
# This is unfortunately necessary because $files is too long to do a
# single sed search/replace. Ugh.
# JMS: Will probably need to do this as well. Sigh.
#
#echo "*** Adding man files to Makefile.in..."
#foreach file ($files)
# set name_prefix="`echo $file | cut -c1-4`"
# if ("$name_prefix" == "MPI_") then
# set letter="`echo $file | cut -c5`"
# set div="`expr $letter \> F`"
# set line="generated_man_$div"
# else
# set line="generated_man_other"
# endif
# echo " - $file / $line"
# foreach fix (Makefile.am Makefile.in)
# sed -e "s/$line =/$line =$file /" $fix > $fix.new
# chmod +w $fix
# mv -f $fix.new $fix
# chmod -w $fix
# end
#end
#cd ../..
#
# Put the release version number in the README and INSTALL files
#
set ver="$OMPI_VERSION"
set files="README INSTALL"
echo "*** Updating version number in $files..."
foreach file ($files)

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

@ -17,7 +17,7 @@
+ they acknowledge that it is a problem but no one has come up with
+ a good general solution yet. This Open MPI-specific solution is
+ workable for us, but not workable as a general solution. Hence,
+ we patch in this "if 0" block in autogen.sh after Libtool
+ we patch in this "if 0" block in autogen.pl after Libtool
+ installs libltdl in the opal/ tree.
+ */
LT__SETERROR (FILE_NOT_FOUND);

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

@ -1,49 +0,0 @@
dnl -*- shell-script -*-
dnl
dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
dnl University Research and Technology
dnl Corporation. All rights reserved.
dnl Copyright (c) 2004-2005 The University of Tennessee and The University
dnl of Tennessee Research Foundation. All rights
dnl reserved.
dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
dnl University of Stuttgart. All rights reserved.
dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
dnl
dnl $HEADER$
dnl
dnl
dnl Tests provided by OMPI
dnl General tests
dnl
sinclude(@M4DIR@/opal_functions.m4)
sinclude(@M4DIR@/ompi_get_version.m4)
dnl
dnl C compiler tests
dnl
sinclude(@M4DIR@/opal_setup_cc.m4)
sinclude(@M4DIR@/ompi_check_optflags.m4)
sinclude(@M4DIR@/ompi_check_vendor.m4)
dnl
dnl C++ compiler tests
dnl
sinclude(@M4DIR@/ompi_setup_cxx.m4)
sinclude(@M4DIR@/cxx_find_template_repository.m4)
sinclude(@M4DIR@/cxx_find_template_parameters.m4)
dnl
dnl This will be replaced with s_i_n_c_l_u_d_e(configure.stub) if it
dnl exists for that component, or a blank line if it does not.
dnl
@CONFIGURE_STUB_SINCLUDE@

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

@ -1,408 +0,0 @@
# -*- shell-script -*-
#
# 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$
#
# Additional copyrights may follow
#
# $HEADER$
#
############################################################################
# Initialization and other random setup/init stuff
############################################################################
# Init autoconf
AC_INIT(@PARAM_INIT_FILE@)
AC_PREREQ(2.57)
AC_CONFIG_AUX_DIR(@PARAM_CONFIG_AUX_DIR@)
#
# Start it up
#
OMPI_CONFIGURE_SETUP
ompi_show_title "Configuring MCA @MCA_TYPE@ @MCA_COMPONENT_NAME@ component"
ompi_show_subtitle "Initialization, setup"
#
# Init automake
# The third argument to AM_INIT_AUTOMAKE surpresses the PACKAGE and
# VERSION macros
#
AM_INIT_AUTOMAKE(@PARAM_AM_NAME@, irrelevant-version-number, 'no')
#
# GNU C and autotools are inconsistent about whether this is defined
# so let's make it true everywhere for now...
#
AC_GNU_SOURCE
# Setup the top-level MCA component config.h file
AH_TOP([/* -*- c -*-
*
* Copyright (c) 2004-2005 The Trustees of Indiana University.
* All rights reserved.
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
* 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$
*
* Additional copyrights may follow
*
* $HEADER$
*
* Open MPI configuation header file.
* MCA @MCA_TYPE@: @MCA_COMPONENT_NAME@ component
*/
#ifndef @PARAM_VAR_PREFIX@_CONFIG_H
#define @PARAM_VAR_PREFIX@_CONFIG_H
])
AH_BOTTOM([#endif /* _@PARAM_VAR_PREFIX@_CONFIG_H */])
#
# Do the normal basics of setup:
# - set CLEANFILES
# - figure out the host type
# - set the default prefix
#
OMPI_BASIC_SETUP
#
# Check to see if the user wants this @MCA_TYPE@ to be the default
#
AC_MSG_CHECKING([if want the @MCA_COMPONENT_NAME@ @MCA_TYPE@ to be the default])
want_default=0
result=no
AC_ARG_WITH(@PROCESSED_MCA_TYPE@,
AC_HELP_STRING([--with-@PROCESSED_MCA_TYPE@=name],
[if name is "@MCA_COMPONENT_NAME@", the @MCA_COMPONENT_NAME@ @MCA_TYPE@ will be the default]))
if test "$with_@PROCESSED_MCA_TYPE@" = "@MCA_COMPONENT_NAME@"; then
want_default=1
result=yes
fi
AC_DEFINE_UNQUOTED(@PARAM_VAR_PREFIX@_DEFAULT, $want_default,
[Whether the @MCA_COMPONENT_NAME@ @MCA_TYPE@ is the default @PROCESSED_MCA_TYPE@ or not])
AC_MSG_RESULT([$result])
#
# Part one of libtool magic
#
AM_ENABLE_SHARED
AM_DISABLE_STATIC
#
# Find which components should be built as run-time loadable components
# Acceptable combinations:
#
# [default -- no option given]
# --enable-mca-dso
# --enable-mca-dso=[.+,]*COMPONENT_TYPE[.+,]*
# --enable-mca-dso=[.+,]*COMPONENT_TYPE-COMPONENT_NAME[.+,]*
# --disable-mca-dso
#
AC_MSG_CHECKING([if want component to be a DSO])
AC_ARG_ENABLE(mca-dso,
AC_HELP_STRING([--enable-mca-dso=LIST],
[comma-separated list of types and/or type-component pairs that will be built as run-time loadable components (as opposed to statically linked in), if supported on this platform. The default is to build all components as DSOs; the --disable-mca-dso(=LIST) form can be used to disable building all or some types/components as DSOs. If LIST is "@MCA_TYPE@-@MCA_COMPONENT_NAME@" or "@MCA_COMPONENT_NAME@", then @MCA_COMPONENT_NAME@ will be compiled as a DSO (if supported on this platform).]))
# Manual conversion of $kind to its generic name (e.g., crmpi->cr,
# crompi->cr).
case "@MCA_TYPE@" in
crmpi)
generic_type="cr"
;;
crompi)
generic_type="cr"
;;
*)
generic_type="@MCA_TYPE@"
;;
esac
BUILD_@MCA_TYPE@_@MCA_COMPONENT_NAME@_DSO=0
msg=no
if test "$enable_shared" = "no"; then
msg=no
elif test -z "$enable_mca_dso" -o "$enable_mca_dso" = "yes" -o \
"$enable_mca_dso" = "@MCA_TYPE@" -o "$enable_mca_dso" = "$generic_type"; then
BUILD_@MCA_TYPE@_@MCA_COMPONENT_NAME@_DSO=1
msg=yes
else
ifs_save="$IFS"
IFS="${IFS}$PATH_SEPARATOR,"
for item in $enable_mca_dso; do
if test "$item" = "@MCA_TYPE@-@MCA_COMPONENT_NAME@" -o \
"$item" = "@MCA_TYPE@" -o "$item" = "$generic_type"; then
BUILD_@MCA_TYPE@_@MCA_COMPONENT_NAME@_DSO=1
msg=yes
fi
done
IFS="$ifs_save"
fi
AC_MSG_RESULT([$msg])
unset msg
###########################################################################
# Check for compilers and preprocessors
############################################################################
##################################
# Compiler characteristics
##################################
@C_COMPILER_SETUP@
@CXX_COMPILER_SETUP@
##################################
# Find Open MPI header files
##################################
# Are we building as part of the Open MPI source tree, or outside of it?
AC_ARG_WITH(openmpi,
AC_HELP_STRING([--with-openmpi=DIR],
[specify the location of the Open MPI header files and library. The default is to build within a source tree or be able to find the headers/library without additional CPPFLAGS/LDFLAGS. This option is generally only necessary when components are being configured/built outside of an Open MPI source tree]))
# Establish the top-level OMPI directory. If --with-openmpi was not
# specified, then see if we're building a) within an Open MPI source
# tree, or b) can find the Open MPI headers and library file without
# any additional CPPFLAGS/LDFLAGS.
top_ompi_srcdir=
top_ompi_builddir=
found_ompi_headers=
# Split this into multiple tests because we may have multiple
# possibilities here:
#
# - build in the Open MPI source tree
# - build outside of the Open MPI source tree, and have valid
# --with-openmpi
# - build outside of the Open MPI source tree, and not have a valid
# --with-openmpi
AC_MSG_CHECKING([for Open MPI header files])
# First case: we do not have --with-openmpi, so check and see if we're
# building inside the Open MPI source tree
if test -z "$with_openmpi"; then
# Are we within an Open MPI source tree?
if test -f "$srcdir/../../../../config/mca_configure.ac"; then
# This is needed for VPATH builds, so that it will -I the
# appropriate include directory (don't know why automake
# doesn't do this # automatically).
top_ompi_srcdir='$(top_srcdir)/../../../..'
top_ompi_builddir='$(top_builddir)/../../../..'
INCFLAGS='-I$(top_ompi_srcdir) -I$(top_ompi_builddir) -I$(top_ompi_srcdir)/opal/include -I$(top_ompi_builddir)/opal/include -I$(top_ompi_srcdir)/orte/include -I$(top_ompi_builddir)/orte/include -I$(top_ompi_srcdir)/ompi/include -I$(top_ompi_builddir)/ompi/include'" $CPPFLAGS"
found_ompi_headers=1
AC_MSG_RESULT([already in Open MPI source tree])
fi
fi
# If we haven't found the headers yet, then we know that we're *not*
# building within the Open MPI source tree.
if test -z "$found_ompi_headers"; then
top_ompi_srcdir=""
top_ompi_builddir="$top_ompi_srcdir"
fi
# Now see if a) we haven't found the headers yet, and b) we have
# --with-openmpi
if test -z "$found_ompi_headers"; then
# We're outside the Open MPI build tree, and we have been provided
# a top-level directory where the header files live.
if test -n "$with_openmpi"; then
if test -d $with_opemnpi ; then
if test -d "$with_openmpi/include/openmpi" -a \
-f "$with_openmpi/include/openmpi/include/ompi_socket_errno.h"; then
INCFLAGS="-I$with_openmpi/include/openmpi -I$with_openmpi/include"
found_ompi_headers=1
AC_MSG_RESULT([$with_openmpi/include/openmpi])
elif test -d "$with_openmpi/openmpi" -a \
-f "$with_openmpi/openmpi/include/ompi_socket_errno.h"; then
INCFLAGS="-I$with_openmpi/openmpi I$with_openmpi/openmpi"
found_ompi_headers=1
AC_MSG_RESULT([$with_openmpi/openmpi])
elif test -f "$with_openmpi/include/ompi_socket_errno.h"; then
INCFLAGS="-I$with_openmpi -I$with_openmpi/.."
found_ompi_headers=1
AC_MSG_RESULT([$with_openmpi])
else
AC_MSG_RESULT([got bogus --with-openmpi value])
AC_MSG_WARN([*** Directory $with_openmpi exists])
AC_MSG_WARN([*** But cannot seem to find Open MPI headers in it])
AC_MSG_WARN([*** Looking elsewhere...])
fi
else
AC_MSG_RESULT([got bogus --with-openmpi value])
AC_MSG_WARN([*** Directory $with_openmpi does not seem to exist])
AC_MSG_WARN([*** Trying to find Open MPI headers without it...])
fi
fi
# If we've gotten this far and haven't found the Open MPI headers
# yet, then just try compiling a C program with some of the Open
# MPI headers and see if they're found (i.e., if they're in the
# preprocessor's default search path)
if test -z "$found_ompi_headers"; then
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[#include "include/ompi_socket_errno.h"]],
[[]]),
[found_ompi_headers=1])
if test -n "$found_ompi_headers"; then
AC_MSG_RESULT([default preprocessor path])
fi
fi
fi
# If we got this far and haven't found the Open MPI headers, stick a
# fork in us, 'cause we're done.
if test -z "$found_ompi_headers"; then
AC_MSG_WARN([*** Could not find the Open MPI headers])
AC_MSG_ERROR([*** Cannot continue])
fi
AC_SUBST(top_ompi_srcdir)
AC_SUBST(top_ompi_builddir)
##################################
# @MCA_TYPE@ @MCA_COMPONENT_NAME@ component specific setup
##################################
#
# Unset all *_EXTRA_* flags
#
unset ABORT
for scope in LIBMPI WRAPPER; do
for flags in CFLAGS CXXFLAGS FFLAGS LDFLAGS LIBS; do
str="unset ${scope}_EXTRA_${flags}"
eval $str
done
done
#
# Invoke configure.stub code stubs, if they exist. Have at least one
# statement (well, m4 macro) in each "if" block so that some older sh
# flavors don't complain.
#
if test "$OMPI_WANT_DIST" = "no"; then
OMPI_LOG_MSG([Running configure stub macro])
@CONFIGURE_STUB_MACRO@
else
OMPI_LOG_MSG([Running configure dist stub macro])
@CONFIGURE_DIST_STUB_MACRO@
fi
#
# If any *_EXTRA_* flags were set, save them in $srcdir/post_configure.sh.
# This will be examined by the top-level configure script.
#
create_post_configure_file() {
if test ! -f post_configure.sh; then
cat > post_configure.sh <<EOF
# This file is automatically generated by configure.
# Manual changes will be lost!
# Generated by: `whoami`
# On machine: `hostname`
# On: `date`
EOF
fi
}
rm -f post_configure.sh
if test -n "$ABORT"; then
create_post_configure_file
echo "ABORT=\"$ABORT\"" >> post_configure.sh
AC_MSG_ERROR([*** ABORT flag is set; aborting])
fi
for scope in LIBMPI WRAPPER; do
for flags in CFLAGS CXXFLAGS FFLAGS LDFLAGS LIBS; do
str="found=\$${scope}_EXTRA_${flags}"
eval $str
if test -n "$found"; then
create_post_configure_file
echo "${scope}_EXTRA_${flags}=\"$found\"" >> post_configure.sh
fi
done
done
#
# We delayed doing it until now just so that long include paths don't
# show up in any of the configure output -- purely aesthetic.
#
CPPFLAGS="$CPPFLAGS $INCFLAGS"
CXXCPPFLAGS="$CXXCPPFLAGS $INCFLAGS"
#
# Delayed the substitution of these until now because they may have
# been modified throughout the course of this script.
#
AC_SUBST(CPPFLAGS)
AC_SUBST(CXXCPPFLAGS)
############################################################################
# libtool magic
############################################################################
ompi_show_subtitle "GNU libtool setup"
AM_PROG_LIBTOOL
AM_CONDITIONAL(OMPI_BUILD_@MCA_TYPE@_@MCA_COMPONENT_NAME@_DSO,
test "$BUILD_@MCA_TYPE@_@MCA_COMPONENT_NAME@_DSO" = "1")
############################################################################
# Party on
############################################################################
ompi_show_subtitle "Final output"
AM_CONFIG_HEADER([@PARAM_CONFIG_HEADER_FILE@])
AC_CONFIG_FILES([@PARAM_CONFIG_FILES@])
AC_OUTPUT

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

@ -1,393 +0,0 @@
#!/usr/bin/env perl
#
# 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$
#
# Additional copyrights may follow
#
# $HEADER$
#
use strict;
use Carp;
use Cwd;
use Getopt::Long;
use File::Basename;
############################################################################
# Local variables
############################################################################
my $ompi_topdir;
my $component_topdir;
my %config_values;
my %config_params;
my $initial_cwd = cwd();
my $announce_str = "Open MPI MCA component configure generator";
my %config_param_names = (PIFILE => "PARAM_INIT_FILE",
PCFGAUXDIR => "PARAM_CONFIG_AUX_DIR",
PC => "PARAM_WANT_C",
PCXX => "PARAM_WANT_CXX",
PVARPREFIX => "PARAM_VAR_PREFIX",
PAMNAME => "PARAM_AM_NAME",
PCFGHDRFILE => "PARAM_CONFIG_HEADER_FILE",
PCFGFILES => "PARAM_CONFIG_FILES",
PCOMPILEEXT => "PARAM_WANT_COMPILE_EXTERNAL",
);
############################################################################
# Command line arg procemcang
############################################################################
Getopt::Long::Configure("bundling", "require_order");
my $ok = Getopt::Long::GetOptions("ompidir|l=s" => \$ompi_topdir,
"componentdir|m=s" => \$component_topdir);
if (!$ok) {
print "Usage: $0 [--ompidir=DIR] [--componentdir=DIR]\n";
exit(1);
}
############################################################################
# Try to figure out the ompi and component topdirs
############################################################################
print "$announce_str starting\n";
if (!$ompi_topdir) {
$ompi_topdir = dirname($0);
}
chdir($ompi_topdir);
$ompi_topdir = cwd();
chdir($initial_cwd);
if (!$ompi_topdir || ! -f "$ompi_topdir/autogen.sh") {
croak("Unable to find OMPI base directory (try using --ompidir)");
}
if (!$component_topdir) {
$component_topdir = $initial_cwd;
if ($component_topdir eq $ompi_topdir) {
croak("Unable to determine which component to operate on");
}
}
chdir($component_topdir);
$component_topdir = cwd();
chdir($initial_cwd);
if (!$ompi_topdir || ! -d $component_topdir) {
croak("Unable to find component directory (try using --componentdir)");
}
# Print them out
print "--> Found OMPI top dir: $ompi_topdir\n";
print "--> Found component top dir: $component_topdir\n";
# If we have a configure.params file in the component topdir, we're good to
# go.
if (! -f "$component_topdir/configure.params") {
die("No configure.params in component topdir; nothing to do");
}
# Make a backup
if (-f "$component_topdir/acinclude.m4") {
printf(" *** WARNING: Replacing old acinclude.m4\n");
unlink("$component_topdir/acinclude.m4.bak");
rename("$component_topdir/acinclude.m4", "$component_topdir/acinclude.m4.bak");
}
if (-f "$component_topdir/configure.ac") {
printf(" *** WARNING: Replacing old configure.ac\n");
unlink("$component_topdir/configure.ac.bak");
rename("$component_topdir/configure.ac", "$component_topdir/configure.ac.bak");
}
############################################################################
# Set and calculate sensible default parameter values
############################################################################
# Unchangeable values
# MCA_TYPE: calculate
$config_values{"MCA_TYPE"} = dirname($component_topdir);
$config_values{"MCA_TYPE"} = basename($config_values{"MCA_TYPE"});
# PROCESSED_MCA_TYPE: For "special" MCA types, like "crompi" and
# "crmpi".
$config_values{"PROCESSED_MCA_TYPE"} = $config_values{"MCA_TYPE"};
if ($config_values{"PROCESSED_MCA_TYPE"} eq "crompi" ||
$config_values{"PROCESSED_MCA_TYPE"} eq "crmpi") {
$config_values{"PROCESSED_MCA_TYPE"} = "cr";
}
# MCA_NAME: calculate
$config_values{"MCA_COMPONENT_NAME"} = basename($component_topdir);
# Parameter (changeable) values
# PARAM_COMPILE_EXTERNAL: set
$config_params{$config_param_names{PCOMPILEEXT}} = 0;
# PARAM_CONFIG_AUX_DIR: set
if (-d "$component_topdir/config") {
$config_params{$config_param_names{PCFGAUXDIR}} = "config";
} else {
$config_params{$config_param_names{PCFGAUXDIR}} = ".";
}
$config_params{$config_param_names{PC}} = 1;
$config_params{$config_param_names{PCXX}} = 0;
# PARAM_VAR_PREFIX: calculate
$config_params{$config_param_names{PVARPREFIX}} =
"MCA_" . $config_values{"MCA_TYPE"} .
"_" . $config_values{"MCA_COMPONENT_NAME"};
# PARAM_AM_NAME: calculate
$config_params{$config_param_names{PAMNAME}} =
lc($config_values{"MCA_TYPE"}) .
"-" . lc($config_values{"MCA_COMPONENT_NAME"});
# PARAM_CONFIG_HEADER_FILE: calculate
$config_params{$config_param_names{PCFGHDRFILE}} =
"src/" . lc($config_values{"MCA_TYPE"}) .
"_" . lc($config_values{"MCA_COMPONENT_NAME"}) . "_config.h";
# Is there a config.stub file in the component topdir?
if (-f "$component_topdir/configure.stub") {
$config_values{CONFIGURE_STUB_SINCLUDE} = "#
# Component-specific tests
#
sinclude(configure.stub)\n";
$config_values{CONFIGURE_STUB_MACRO} =
"ompi_show_subtitle \"MCA " . $config_values{"MCA_TYPE"} . " " .
$config_values{"MCA_COMPONENT_NAME"} . "-specific setup\"
MCA_CONFIGURE_STUB";
# See if there's a CONFIGURE_DIST_STUB in configure.stub
open(STUB, "$component_topdir/configure.stub");
my $found = 0;
while (<STUB>) {
$found = 1
if ($_ =~ /MCA_CONFIGURE_DIST_STUB/);
}
close(STUB);
if ($found == 1) {
$config_values{CONFIGURE_DIST_STUB_MACRO} =
"ompi_show_subtitle \"MCA " . $config_values{"MCA_TYPE"} . " " .
$config_values{"MCA_COMPONENT_NAME"} .
"-specific setup (dist specific!)\"
MCA_CONFIGURE_DIST_STUB";
} else {
$config_values{CONFIGURE_DIST_STUB_MACRO} = "true";
}
} else {
$config_values{CONFIGURE_STUB_SINCLUDE} = "";
$config_values{CONFIGURE_STUB_MACRO} = "true";
$config_values{CONFIGURE_DIST_STUB_MACRO} = "true";
}
############################################################################
# Read in the configure.params file (possibly overriding the defaults
# set above)
############################################################################
my $found = 0;
my @names = values %config_param_names;
open(PARAMS, "$component_topdir/configure.params") ||
die("Could not open configure.params in $component_topdir");
while (<PARAMS>) {
chomp;
# Ignore comments and blank lines
my $line = $_;
$line =~ s/^[ \t]+(.*)[ \t]+$/\1/;
$line =~ s/(.*)[\#]+.*/\1/;
next if (length($line) == 0);
# So we have a key=value line
# Split into componenty, and remove quotes
my ($key, $value) = split(/=/, $line);
$key =~ s/^[ \t]+(.*)[ \t]+$/\1/;
$value =~ s/^[ \t]+(.*)[ \t]+$/\1/;
$value =~ s/^[\"](.*)[\"]$/\1/;
$value =~ s/^[\'](.*)[\']$/\1/;
for (my $i = 0; $i <= $#names; ++$i) {
if ($key eq $names[$i]) {
if (!$found) {
printf("--> Found parameter override(s):\n");
$found = 1;
}
printf(" $key = $value\n");
$config_params{$key} = $value;
last;
}
}
}
# Print out the values
print "--> Final configuration values:\n";
foreach my $key (sort keys(%config_param_names)) {
print " $config_param_names{$key} = " .
$config_params{$config_param_names{$key}} . "\n";
}
# Do some error checking on the values that we've determined
if (! -f $config_params{PARAM_INIT_FILE}) {
print "*** WARNING: PARAM_INIT_FILE does not exist:\n";
print "*** WARNING: $config_params{PARAM_INIT_FILE}\n";
print "*** WARNING: resulting configure script will not run properly!\n";
exit(1);
}
my @files = split(/ /, $config_params{PARAM_CONFIG_FILES});
foreach my $file (@files) {
if (! -f "$file.in" && ! -f "$file.am") {
print "*** WARNING: PARAM_CONFIG_FILES file does not exist:\n";
print "*** WARNING: $file.[in|am]\n";
print "*** WARNING: resulting configure script may not run correctly!!\n";
exit(1);
}
}
if (! -d $config_params{PARAM_CONFIG_AUX_DIR}) {
print "*** WARNING: PARAM_CONFIG_AUX_DIR does not exit:\n";
print "*** WARNING: $config_params{PARAM_CONFIG_AUX_DIR}\n";
print "*** WARNING: Taking the liberty of trying to make it...\n";
if (!mkdir($config_params{PARAM_CONFIG_AUX_DIR})) {
print "*** ERROR: Failed to make AUX_DIR: $config_params{PARAM_CONFIG_AUX_DIR}\n";
print "*** ERROR: Cannot continue\n";
exit(1);
}
}
# If we want to be able to compile outside the Open MPI tree, we need
# to copy some files to the auxdir
if ($config_params{PARAM_WANT_COMPILE_EXTERNAL} != 0) {
my $auxdir = $config_params{PARAM_CONFIG_AUX_DIR};
open (ACINCLUDE, "$ompi_topdir/config/mca_acinclude.m4");
{
while (<ACINCLUDE>) {
chomp;
my $filename = $_;
if ($filename =~ /^.*sinclude\(\@M4DIR\@\/(.+)\).*$/) {
$filename =~ s/^.*sinclude\(\@M4DIR\@\/(.+)\).*$/\1/;
unlink("$auxdir/$filename")
if (-f "$auxdir/$filename");
print "--> Copying m4 file: $filename ==> $auxdir\n";
system("cp -f $ompi_topdir/config/$filename $config_params{PARAM_CONFIG_AUX_DIR}");
}
}
close(ACINCLUDE);
}
}
############################################################################
# Read in the configure.ac template
############################################################################
sub make_template {
my ($src, $dest, $mode) = @_;
my $template;
my $search;
my $replace;
# Read in the template file
print "--> Reading template file: $src\n";
open(TEMPLATE, $src) ||
die("Cannot open template file: $src");
while (<TEMPLATE>) {
$template .= $_;
}
close(TEMPLATE);
# Transform the template
# If we want C or C++, substitute in the right setup macros
$search = "\@C_COMPILER_SETUP\@";
$replace = $config_params{$config_param_names{"PC"}} ?
"OMPI_SETUP_CC" : "";
$template =~ s/$search/$replace/;
$search = "\@CXX_COMPILER_SETUP\@";
$replace = $config_params{$config_param_names{"PCXX"}} ?
"OMPI_SETUP_CXX" : "";
$template =~ s/$search/$replace/;
# If we want to be able to compile outside the Open MPI tree, set
# the right include path for the M4 files
$search = "\@M4DIR\@";
$replace = ($config_params{PARAM_WANT_COMPILE_EXTERNAL} == 1) ?
$config_params{PARAM_CONFIG_AUX_DIR} : "../../../../config";
$template =~ s/$search/$replace/g;
# Do all the parameters. This is done last so that any of the
# above can use paramter values in their values, and expect to
# have their respective values substituted in (i.e., a [semi]
# recursive substitution).
print "--> Filling in the template...\n";
foreach my $key (sort keys(%config_values)) {
$search = "@" . $key . "@";
$template =~ s/$search/$config_values{$key}/g;
}
foreach my $key (sort keys(%config_param_names)) {
next if ($key eq "PC" || $key eq "PCXX");
$search = "@" . $config_param_names{$key} . "@";
$template =~
s/$search/$config_params{$config_param_names{$key}}/g;
}
# Write it out
print "--> Writing output file: $dest\n";
open(OUTPUT, ">$dest") ||
die("Cannot open output flie: $dest");
print OUTPUT $template;
close(OUTPUT);
chmod($dest, $mode);
}
# Read and fill in the templates
make_template("$ompi_topdir/config/mca_configure.ac",
"$component_topdir/configure.ac", 0644);
make_template("$ompi_topdir/config/mca_acinclude.m4",
"$component_topdir/acinclude.m4", 0644);
############################################################################
# All done
############################################################################
print "\n$announce_str finished\n";
exit(0);

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

@ -35,15 +35,10 @@ AC_DEFUN([OMPI_CONTRIB],[
dnl for OMPI_CONFIGURE_USER env variable
AC_REQUIRE([OMPI_CONFIGURE_SETUP])
# May someday be expanded to have autogen find the packages
# instead of this hard-coded list
# (https://svn.open-mpi.org/trac/ompi/ticket/1162).
m4_define([contrib_software_list], [libompitrace, vt])
# Option to not build some of the contributed software packages
AC_ARG_ENABLE([contrib-no-build],
AC_HELP_STRING([--enable-contrib-no-build=LIST],
[Comma-separated list of contributed package NAMEs that will not be built. Possible values: contrib_software_list. Example: "--enable-contrib-no-build=libompitrace,vt" will disable building both the "libompitrace" and "vt" contributed software packages.]))
[Comma-separated list of contributed package names that will not be built. Possible values: ompi_mpicontrib_list. Example: "--enable-contrib-no-build=foo,bar" will disable building both the "foo" and "bar" contributed software packages (default: none -- i.e., build all possible contrib packages)]))
# Parse the list to see what we should not build
ompi_show_subtitle "Configuring contributed software packages"
@ -69,14 +64,16 @@ AC_DEFUN([OMPI_CONTRIB],[
# List of contrib subdirs to traverse into
OMPI_CONTRIB_SUBDIRS=
OMPI_CONTRIB_DIST_SUBDIRS=
OMPI_MPI_CONTRIBS=
# Cycle through each of the software packages and
# configure them if not disabled.
m4_foreach(software, [contrib_software_list],
[m4_include([ompi/contrib/]software[/configure.m4])
_OMPI_CONTRIB_CONFIGURE(software)])
m4_foreach(software, [ompi_mpicontrib_list],
[_OMPI_CONTRIB_CONFIGURE(software)])
# Setup the top-level glue
AC_DEFINE_UNQUOTED([OMPI_MPI_CONTRIBS], ["$OMPI_MPI_CONTRIBS"],
[Contributed software packages built with Open MPI])
AC_SUBST(OMPI_CONTRIB_SUBDIRS)
AC_SUBST(OMPI_CONTRIB_DIST_SUBDIRS)
])dnl
@ -116,6 +113,11 @@ AC_DEFUN([_OMPI_CONTRIB_CONFIGURE],[
if test "$OMPI_CONTRIB_HAPPY" = "1"; then
OMPI_CONTRIB_SUBDIRS="$OMPI_CONTRIB_SUBDIRS contrib/$1"
OMPI_CONTRIB_DIST_SUBDIRS="$OMPI_CONTRIB_DIST_SUBDIRS contrib/$1"
if test "$OMPI_MPI_CONTRIBS" = ""; then
OMPI_MPI_CONTRIBS=$1
else
OMPI_MPI_CONTRIBS="$1, $OMPI_MPI_CONTRIBS"
fi
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])

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

@ -3,7 +3,7 @@ dnl
dnl Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana
dnl University Research and Technology
dnl Corporation. All rights reserved.
dnl Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
@ -16,7 +16,7 @@ dnl
# OMPI_EXT
#
# configure the Interface Extensions [similar to MCA version]. Works hand in
# hand with Open MPI's autogen.sh, requiring it's specially formatted lists
# hand with Open MPI's autogen.pl, requiring it's specially formatted lists
# of frameworks, components, etc.
#
# USAGE:
@ -35,16 +35,14 @@ AC_DEFUN([OMPI_EXT],[
#
AC_ARG_ENABLE(mpi-ext,
AC_HELP_STRING([--enable-mpi-ext[=LIST]],
[Comma-separated list of extensions that should be
built (default: none).]))
[Comma-separated list of extensions that should be built. Possible values: ompi_mpiext_list. Example: "--enable-mpi-ext=foo,bar" will enable building the MPI extensions "foo" and "bar". If LIST is empty or the special value "all", then all available MPI extensions will be built (default: none).]))
# print some nice messages about what we're about to do...
AC_MSG_CHECKING([for available MPI Extensions])
AC_MSG_RESULT([ompi_mpiext_list])
AC_MSG_CHECKING([which MPI extension should be enabled])
if test "$enable_mpi_ext" = "yes"; then
if test "$enable_mpi_ext" = "yes" -o "$enable_mpi_ext" = "all"; then
msg="All Extensions"
str="`echo ENABLE_EXT_ALL=1`"
eval $str
@ -66,11 +64,6 @@ AC_DEFUN([OMPI_EXT],[
AC_MSG_RESULT([$msg])
unset msg
dnl - temporary hacks while autogen is rewriten. These can probably be removed some day
m4_if(ext_mpiext_no_config_component_list, [], [],
[m4_fatal([No configure MPI extensions no longer supported, but one found])])
m4_define([ompi_mpiext_list], [ext_mpiext_m4_config_component_list])
m4_ifdef([ompi_mpiext_list], [],
[m4_fatal([Could not find MPI Extensions list. Aborting.])])

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

@ -26,6 +26,10 @@ AC_DEFUN([OMPI_LOAD_PLATFORM], [
command line not in FILE are used. Options on the
command line and in FILE are replaced by what is
in FILE.])])
m4_ifval([autogen_platform_file], [
if test "$with_platform" == "" ; then
with_platform=autogen_platform_file
fi])
if test "$with_platform" = "yes" ; then
AC_MSG_ERROR([--with-platform argument must include FILE option])
elif test "$with_platform" = "no" ; then

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

@ -10,6 +10,7 @@ dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
dnl University of Stuttgart. All rights reserved.
dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl All rights reserved.
dnl Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
@ -27,7 +28,7 @@ AC_DEFUN([OMPI_EVAL_ARG], [$1])
# OMPI_MCA
#
# configure the MCA (modular component architecture). Works hand in hand
# with Open MPI's autogen.sh, requiring it's specially formatted lists
# with Open MPI's autogen.pl, requiring it's specially formatted lists
# of frameworks, components, etc.
#
# USAGE:
@ -210,7 +211,7 @@ AC_DEFUN([OMPI_MCA],[
# if there isn't a project list, abort
m4_ifdef([mca_project_list], [],
[m4_fatal([Could not find project list - rerun autogen.sh without -l])])
[m4_fatal([Could not find project list - please rerun autogen.pl!])])
# now configre all the projects, frameworks, and components. Most
# of the hard stuff is in here
@ -220,12 +221,8 @@ AC_DEFUN([OMPI_MCA],[
MCA_CONFIGURE_PROJECT(mca_project)])
# BWB - fix me... need to automate this somehow
MCA_SETUP_DIRECT_CALL(pml, ompi)
MCA_SETUP_DIRECT_CALL(mtl, ompi)
# make all the config output statements for the no configure
# components
MCA_NO_CONFIG_CONFIG_FILES()
MCA_SETUP_DIRECT_CALL(ompi, pml)
MCA_SETUP_DIRECT_CALL(ompi, mtl)
AC_SUBST(MCA_PROJECT_SUBDIRS)
])
@ -266,7 +263,7 @@ AC_DEFUN([MCA_CONFIGURE_PROJECT],[
# to more libraries) that must be included
# in the project's main library
m4_ifdef([mca_$1_framework_list], [],
[m4_fatal([Could not find mca_$1_framework_list - rerun autogen.sh without -l])])
[m4_fatal([Could not find mca_$1_framework_list - please rerun autogen.pl])])
MCA_$1_FRAMEWORKS=
MCA_$1_FRAMEWORKS_SUBDIRS=
@ -277,26 +274,23 @@ AC_DEFUN([MCA_CONFIGURE_PROJECT],[
m4_foreach(mca_framework, [mca_$1_framework_list],
[m4_ifval(mca_framework,
[# common has to go up front
if test "mca_framework" = "common" ; then
MCA_$1_FRAMEWORKS="mca_framework $MCA_$1_FRAMEWORKS"
MCA_$1_FRAMEWORKS_SUBDIRS="[mca/]mca_framework $MCA_$1_FRAMEWORKS_SUBDIRS"
MCA_$1_FRAMEWORK_COMPONENT_ALL_SUBDIRS="[\$(MCA_]mca_framework[_ALL_SUBDIRS)] $MCA_$1_FRAMEWORK_COMPONENT_ALL_SUBDIRS"
MCA_$1_FRAMEWORK_COMPONENT_DSO_SUBDIRS="[\$(MCA_]mca_framework[_DSO_SUBDIRS)] $MCA_$1_FRAMEWORK_COMPONENT_DSO_SUBDIRS"
MCA_$1_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="[\$(MCA_]mca_framework[_STATIC_SUBDIRS)] $MCA_$1_FRAMEWORK_COMPONENT_STATIC_SUBDIRS"
else
MCA_$1_FRAMEWORKS="$MCA_$1_FRAMEWORKS mca_framework"
MCA_$1_FRAMEWORKS_SUBDIRS="$MCA_$1_FRAMEWORKS_SUBDIRS [mca/]mca_framework"
MCA_$1_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_$1_FRAMEWORK_COMPONENT_ALL_SUBDIRS [\$(MCA_]mca_framework[_ALL_SUBDIRS)]"
MCA_$1_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_$1_FRAMEWORK_COMPONENT_DSO_SUBDIRS [\$(MCA_]mca_framework[_DSO_SUBDIRS)]"
MCA_$1_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_$1_FRAMEWORK_COMPONENT_STATIC_SUBDIRS [\$(MCA_]mca_framework[_STATIC_SUBDIRS)]"
fi
if test "mca_framework" != "common" ; then
MCA_$1_FRAMEWORK_LIBS="$MCA_$1_FRAMEWORK_LIBS [mca/]mca_framework[/libmca_]mca_framework[.la]"
fi
MCA_$1_FRAMEWORK_LIBS="$MCA_$1_FRAMEWORK_LIBS [\$(MCA_]mca_framework[_STATIC_LTLIBS)]"
m4_ifdef([MCA_]mca_framework[_CONFIG],
[MCA_]mca_framework[_CONFIG]($1, mca_framework),
[dnl common has to go up front
m4_if(mca_framework, [common],
[MCA_$1_FRAMEWORKS="mca_framework $MCA_$1_FRAMEWORKS"
MCA_$1_FRAMEWORKS_SUBDIRS="[mca/]mca_framework $MCA_$1_FRAMEWORKS_SUBDIRS"
MCA_$1_FRAMEWORK_COMPONENT_ALL_SUBDIRS="[\$(MCA_]$1[_]mca_framework[_ALL_SUBDIRS)] $MCA_$1_FRAMEWORK_COMPONENT_ALL_SUBDIRS"
MCA_$1_FRAMEWORK_COMPONENT_DSO_SUBDIRS="[\$(MCA_]$1[_]mca_framework[_DSO_SUBDIRS)] $MCA_$1_FRAMEWORK_COMPONENT_DSO_SUBDIRS"
MCA_$1_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="[\$(MCA_]$1[_]mca_framework[_STATIC_SUBDIRS)] $MCA_$1_FRAMEWORK_COMPONENT_STATIC_SUBDIRS"
], [
MCA_$1_FRAMEWORKS="$MCA_$1_FRAMEWORKS mca_framework"
MCA_$1_FRAMEWORKS_SUBDIRS="$MCA_$1_FRAMEWORKS_SUBDIRS [mca/]mca_framework"
MCA_$1_FRAMEWORK_COMPONENT_ALL_SUBDIRS="$MCA_$1_FRAMEWORK_COMPONENT_ALL_SUBDIRS [\$(MCA_]$1[_]mca_framework[_ALL_SUBDIRS)]"
MCA_$1_FRAMEWORK_COMPONENT_DSO_SUBDIRS="$MCA_$1_FRAMEWORK_COMPONENT_DSO_SUBDIRS [\$(MCA_]$1[_]mca_framework[_DSO_SUBDIRS)]"
MCA_$1_FRAMEWORK_COMPONENT_STATIC_SUBDIRS="$MCA_$1_FRAMEWORK_COMPONENT_STATIC_SUBDIRS [\$(MCA_]$1[_]mca_framework[_STATIC_SUBDIRS)]"
MCA_$1_FRAMEWORK_LIBS="$MCA_$1_FRAMEWORK_LIBS [mca/]mca_framework[/libmca_]mca_framework[.la]"])
MCA_$1_FRAMEWORK_LIBS="$MCA_$1_FRAMEWORK_LIBS [\$(MCA_]$1[_]mca_framework[_STATIC_LTLIBS)]"
m4_ifdef([MCA_]$1[_]mca_framework[_CONFIG],
[MCA_]$1[_]mca_framework[_CONFIG]($1, mca_framework),
[MCA_CONFIGURE_FRAMEWORK($1, mca_framework, 1)])])])
AC_SUBST(MCA_$1_FRAMEWORKS)
@ -307,6 +301,25 @@ AC_DEFUN([MCA_CONFIGURE_PROJECT],[
AC_SUBST(MCA_$1_FRAMEWORK_LIBS)
])
# MCA_ORDER_COMPONENT_LIST(project_name, framework_name)
AC_DEFUN([MCA_ORDER_COMPONENT_LIST], [
m4_foreach(mca_component, [mca_$1_$2_m4_config_component_list],
[m4_ifval(mca_component,
[m4_ifdef([MCA_]$1[_]$2[_]mca_component[_PRIORITY], [],
[m4_fatal([MCA_$1_$2_]mca_component[_PRIORITY not found, but required.])])])])
m4_define([component_list],
[esyscmd([config/ompi_mca_priority_sort.pl] m4_foreach([mca_component], [mca_$1_$2_m4_config_component_list],
[m4_ifval(mca_component, [mca_component ]OMPI_EVAL_ARG([MCA_]$1[_]$2[_]mca_component[_PRIORITY ]))]))])
])
AC_DEFUN([MCA_CHECK_IGNORED_PRIORITY], [
m4_foreach(mca_component, [mca_$1_$2_m4_config_component_list],
[m4_ifval(mca_component,
[m4_ifdef([MCA_]$1[_]$2[_]mca_component[_PRIORITY],
[m4_warn([unsupported], [MCA_]$1[_]$2[_]mca_component[_PRIORITY found, but ignored.])])])])
])
######################################################################
#
# MCA_CONFIGURE_FRAMEWORK
@ -326,6 +339,11 @@ AC_DEFUN([MCA_CONFIGURE_PROJECT],[
AC_DEFUN([MCA_CONFIGURE_FRAMEWORK],[
ompi_show_subsubtitle "Configuring MCA framework $2"
m4_ifdef([mca_$1_$2_no_config_component_list], [],
[m4_fatal([Could not find mca_$1_$2_no_config_component_list - please rerun autogen.pl])])
m4_ifdef([mca_$1_$2_m4_config_component_list], [],
[m4_fatal([Could not find mca_$1_$2_m4_config_component_list - please rerun autogen.pl])])
# setup for framework
all_components=
static_components=
@ -336,13 +354,12 @@ AC_DEFUN([MCA_CONFIGURE_FRAMEWORK],[
# exists. Need to do this for VPATH builds, because the directory
# may not exist yet. For the "common" type, it's not really a
# component, so it doesn't have a base.
if test "$2" = "common" ; then
outdir=$1/mca/common
else
outdir=$1/mca/$2/base
fi
m4_if([$2], [common], [outdir=$1/mca/common], [outdir=$1/mca/$2/base])
AS_MKDIR_P([$outdir])
# emit Makefile rule
AC_CONFIG_FILES([$1/mca/$2/Makefile])
# remove any previously generated #include files
outfile_real=$outdir/static-components.h
outfile=$outfile_real.new
@ -351,26 +368,21 @@ AC_DEFUN([MCA_CONFIGURE_FRAMEWORK],[
# print some nice messages about what we're about to do...
AC_MSG_CHECKING([for no configure components in framework $2])
AC_MSG_RESULT([mca_$2_no_config_component_list])
AC_MSG_RESULT([mca_$1_$2_no_config_component_list])
AC_MSG_CHECKING([for m4 configure components in framework $2])
AC_MSG_RESULT([mca_$2_m4_config_component_list])
AC_MSG_RESULT([mca_$1_$2_m4_config_component_list])
# configure components that don't have any component-specific
# configuration. See comment in CONFIGURE_PROJECT about the
# m4_ifval in the m4_foreach. If there isn't a component list,
# abort with a reasonable message. If there are components in the
# list, but we're doing one of the "special" selection logics,
# abort with a reasonable message.
m4_ifdef([mca_$2_no_config_component_list], [],
[m4_fatal([Could not find mca_$2_no_config_component_list - rerun autogen.sh without -l])])
# make sure priority stuff set right
m4_if(OMPI_EVAL_ARG([MCA_]mca_framework[_CONFIGURE_MODE]), [STOP_AT_FIRST],
[m4_ifval(mca_$2_no_config_component_list,
# If there are components in the no configure list, but we're
# doing one of the "special" selection logics, abort with a
# reasonable message.
m4_if(OMPI_EVAL_ARG([MCA_$1_$2_CONFIGURE_MODE]), [STOP_AT_FIRST],
[m4_ifval(mca_$1_$2_no_config_component_list,
[m4_fatal([Framework $2 using STOP_AT_FIRST but at least one component has no configure.m4])])])
m4_if(OMPI_EVAL_ARG([MCA_]mca_framework[_CONFIGURE_MODE]), [STOP_AT_FIRST_PRIORITY],
[m4_ifval(mca_$2_no_config_component_list,
m4_if(OMPI_EVAL_ARG([MCA_$1_$2_CONFIGURE_MODE]), [STOP_AT_FIRST_PRIORITY],
[m4_ifval(mca_$1_$2_no_config_component_list,
[m4_fatal([Framework $2 using STOP_AT_FIRST_PRIORITY but at least one component has no configure.m4])])])
m4_foreach(mca_component, [mca_$2_no_config_component_list],
# run the configure logic for the no-config components
m4_foreach(mca_component, [mca_$1_$2_no_config_component_list],
[m4_ifval(mca_component,
[MCA_CONFIGURE_NO_CONFIG_COMPONENT($1, $2, mca_component,
[all_components],
@ -379,22 +391,19 @@ AC_DEFUN([MCA_CONFIGURE_FRAMEWORK],[
[static_ltlibs],
[$3])])])
# configure components that use built-in configuration scripts see
# comment in CONFIGURE_PROJECT about the m4_ifval in the
# m4_foreach. if there isn't a component list, abort
m4_ifdef([mca_$2_m4_config_component_list], [],
[m4_fatal([Could not find mca_$2_m4_config_component_list - rerun autogen.sh without -l])])
# configure components that use built-in configuration scripts
m4_ifdef([component_list], [m4_undefine([component_list])])
m4_if(OMPI_EVAL_ARG([MCA_$1_$2_CONFIGURE_MODE]), [STOP_AT_FIRST], [MCA_ORDER_COMPONENT_LIST($1, $2)],
[m4_if(OMPI_EVAL_ARG([MCA_$1_$2_CONFIGURE_MODE]), [STOP_AT_FIRST_PRIORITY], [MCA_ORDER_COMPONENT_LIST($1, $2)],
[m4_define([component_list], [mca_$1_$2_m4_config_component_list])])])
best_mca_component_priority=0
components_looking_for_succeed=$3
components_last_result=0
m4_foreach(mca_component, [mca_$2_m4_config_component_list],
m4_foreach(mca_component, [component_list],
[m4_ifval(mca_component,
[m4_if(OMPI_EVAL_ARG([MCA_]mca_framework[_CONFIGURE_MODE]), [STOP_AT_FIRST_PRIORITY],
[ # get the component's priority...
infile="$srcdir/$1/mca/$2/mca_component/configure.params"
mca_component_priority="`$GREP PARAM_CONFIG_PRIORITY= $infile | cut -d= -f2-`"
AS_IF([test -z "$mca_component_priority"], [mca_component_priority=0])
AS_IF([test $best_mca_component_priority -gt $mca_component_priority], [components_looking_for_succeed=0])])
[m4_if(OMPI_EVAL_ARG([MCA_$1_$2_CONFIGURE_MODE]), [STOP_AT_FIRST_PRIORITY],
[AS_IF([test $best_mca_component_priority -gt MCA_$1_$2_]mca_component[_PRIORITY], [components_looking_for_succeed=0])])
MCA_CONFIGURE_M4_CONFIG_COMPONENT($1, $2, mca_component,
[all_components],
[static_components],
@ -403,34 +412,36 @@ AC_DEFUN([MCA_CONFIGURE_FRAMEWORK],[
[$components_looking_for_succeed],
[components_last_result=1],
[components_last_result=0])
m4_if(OMPI_EVAL_ARG([MCA_]mca_framework[_CONFIGURE_MODE]), [STOP_AT_FIRST],
m4_if(OMPI_EVAL_ARG([MCA_$1_$2_CONFIGURE_MODE]), [STOP_AT_FIRST],
[AS_IF([test $components_last_result -eq 1], [components_looking_for_succeed=0])])
m4_if(OMPI_EVAL_ARG([MCA_]mca_framework[_CONFIGURE_MODE]), [STOP_AT_FIRST_PRIORITY],
[AS_IF([test $components_last_result -eq 1], [best_mca_component_priority=$mca_component_priority])])])])
m4_if(OMPI_EVAL_ARG([MCA_$1_$2_CONFIGURE_MODE]), [STOP_AT_FIRST_PRIORITY],
[AS_IF([test $components_last_result -eq 1], [best_mca_component_priority=]OMPI_EVAL_ARG([MCA_$1_$2_]mca_component[_PRIORITY]))])
])])
# configure components that provide their own configure script.
# It would be really hard to run these for "find first that
# works", so we don't :)
m4_if(OMPI_EVAL_ARG([MCA_]mca_framework[_CONFIGURE_MODE]), [STOP_AT_FIRST], [],
[m4_if(OMPI_EVAL_ARG([MCA_]mca_framework[_CONFIGURE_MODE]), [STOP_AT_FIRST_PRIORITY], [],
[AS_IF([test "$3" != "0"],
m4_if(OMPI_EVAL_ARG([MCA_$1_]$2[_CONFIGURE_MODE]), [STOP_AT_FIRST], [],
[m4_if(OMPI_EVAL_ARG([MCA_$1_]$2[_CONFIGURE_MODE]), [STOP_AT_FIRST_PRIORITY], [],
[MCA_CHECK_IGNORED_PRIORITY($1, $2)
AS_IF([test "$3" != "0"],
[MCA_CONFIGURE_ALL_CONFIG_COMPONENTS($1, $2, [all_components],
[static_components], [dso_components],
[static_ltlibs])])])])
MCA_$2_ALL_COMPONENTS="$all_components"
MCA_$2_STATIC_COMPONENTS="$static_components"
MCA_$2_DSO_COMPONENTS="$dso_components"
MCA_$2_STATIC_LTLIBS="$static_ltlibs"
MCA_$1_$2_ALL_COMPONENTS="$all_components"
MCA_$1_$2_STATIC_COMPONENTS="$static_components"
MCA_$1_$2_DSO_COMPONENTS="$dso_components"
MCA_$1_$2_STATIC_LTLIBS="$static_ltlibs"
AC_SUBST(MCA_$2_ALL_COMPONENTS)
AC_SUBST(MCA_$2_STATIC_COMPONENTS)
AC_SUBST(MCA_$2_DSO_COMPONENTS)
AC_SUBST(MCA_$2_STATIC_LTLIBS)
AC_SUBST(MCA_$1_$2_ALL_COMPONENTS)
AC_SUBST(MCA_$1_$2_STATIC_COMPONENTS)
AC_SUBST(MCA_$1_$2_DSO_COMPONENTS)
AC_SUBST(MCA_$1_$2_STATIC_LTLIBS)
OMPI_MCA_MAKE_DIR_LIST(MCA_$2_ALL_SUBDIRS, $2, [$all_components])
OMPI_MCA_MAKE_DIR_LIST(MCA_$2_STATIC_SUBDIRS, $2, [$static_components])
OMPI_MCA_MAKE_DIR_LIST(MCA_$2_DSO_SUBDIRS, $2, [$dso_components])
OMPI_MCA_MAKE_DIR_LIST(MCA_$1_$2_ALL_SUBDIRS, $2, [$all_components])
OMPI_MCA_MAKE_DIR_LIST(MCA_$1_$2_STATIC_SUBDIRS, $2, [$static_components])
OMPI_MCA_MAKE_DIR_LIST(MCA_$1_$2_DSO_SUBDIRS, $2, [$dso_components])
# Create the final .h file that will be included in the type's
# top-level glue. This lists all the static components. We don't
@ -511,11 +522,13 @@ AC_DEFUN([MCA_CONFIGURE_NO_CONFIG_COMPONENT],[
# set the AM_CONDITIONAL on how we should build
if test "$compile_mode" = "dso" ; then
BUILD_$2_$3_DSO=1
BUILD_$1_$2_$3_DSO=1
else
BUILD_$2_$3_DSO=0
BUILD_$1_$2_$3_DSO=0
fi
AM_CONDITIONAL(OMPI_BUILD_$2_$3_DSO, test "$BUILD_$2_$3_DSO" = "1")
AM_CONDITIONAL(MCA_BUILD_$1_$2_$3_DSO, test "$BUILD_$1_$2_$3_DSO" = "1")
AC_CONFIG_FILES([$1/mca/$2/$3/Makefile])
unset compile_mode
])
@ -538,28 +551,23 @@ AC_DEFUN([MCA_CONFIGURE_NO_CONFIG_COMPONENT],[
#
######################################################################
AC_DEFUN([MCA_CONFIGURE_M4_CONFIG_COMPONENT],[
ompi_show_subsubsubtitle "MCA component $2:$3 (m4 configuration macro)"
m4_ifdef([MCA_$1_$2_$3_PRIORITY],
[ompi_show_subsubsubtitle "MCA component $2:$3 (m4 configuration macro, priority MCA_$1_$2_$3_PRIORITY)"],
[ompi_show_subsubsubtitle "MCA component $2:$3 (m4 configuration macro)"])
MCA_COMPONENT_BUILD_CHECK($1, $2, $3, [should_build=$8], [should_build=0])
# Allow the component to override the build mode if it really wants to.
# It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE
m4_ifdef([MCA_$2_$3_COMPILE_MODE],
[MCA_$2_$3_COMPILE_MODE($1, $2, $3, compile_mode)],
m4_ifdef([MCA_$1_$2_$3_COMPILE_MODE],
[MCA_$1_$2_$3_COMPILE_MODE($1, $2, $3, compile_mode)],
[MCA_COMPONENT_COMPILE_MODE($1, $2, $3, compile_mode)])
# try to configure the component. pay no attention to
# --enable-dist, since we'll always have makefiles.
AS_IF([test "$should_build" = "1"],
[m4_ifdef([MCA_]$2[_]$3[_CONFIG],
[MCA_$2_$3_CONFIG([should_build=1],
[should_build=0])],
# If they forgot to define an MCA_<fw>_<comp>_CONFIG
# macro, print a friendly warning and abort.
[AC_MSG_WARN([*** The $2:$3 did not define an])
AC_MSG_WARN([*** MCA_$2_$3_CONFIG macro in the])
AC_MSG_WARN([*** $1/$2/$3/configure.m4 file])
AC_MSG_ERROR([Cannot continue])])
])
m4_ifdef([MCA_$1_$2_$3_CONFIG],
[MCA_$1_$2_$3_CONFIG([should_build=$should_build],
[should_build=0])],
[m4_fatal([MCA_$1_$2_$3_CONFIG macro not found])])
AS_IF([test "$should_build" = "1"],
[MCA_PROCESS_COMPONENT($1, $2, $3, $4, $5, $6, $7, $compile_mode)],
@ -567,14 +575,14 @@ AC_DEFUN([MCA_CONFIGURE_M4_CONFIG_COMPONENT],[
# add component to all component list
$4="$$4 $3"])
m4_ifdef([MCA_$2_$3_POST_CONFIG],
[MCA_$2_$3_POST_CONFIG($should_build)])
m4_ifdef([MCA_$1_$2_$3_POST_CONFIG],
[MCA_$1_$2_$3_POST_CONFIG($should_build)])
# set the AM_CONDITIONAL on how we should build
AS_IF([test "$compile_mode" = "dso"],
[BUILD_$2_$3_DSO=1],
[BUILD_$2_$3_DSO=0])
AM_CONDITIONAL(OMPI_BUILD_$2_$3_DSO, test "$BUILD_$2_$3_DSO" = "1")
[BUILD_$1_$2_$3_DSO=1],
[BUILD_$1_$2_$3_DSO=0])
AM_CONDITIONAL(MCA_BUILD_$1_$2_$3_DSO, test "$BUILD_$1_$2_$3_DSO" = "1")
AS_IF([test "$should_build" = "1"], [$9], [$10])
@ -756,7 +764,7 @@ AC_DEFUN([MCA_PROCESS_COMPONENT],[
if test "$DIRECT_$2" = "$component" ; then
if test "`$GREP DIRECT_CALL_HEADER $infile`" != "" ; then
line="`$GREP DIRECT_CALL_HEADER $infile | cut -d= -f2-`"
str="MCA_${framework}_DIRECT_CALL_HEADER=$line"
str="MCA_${project}_${framework}_DIRECT_CALL_HEADER=$line"
eval $str
else
AC_MSG_ERROR([*** ${framework} component ${component} was supposed to be direct-called, but
@ -915,26 +923,26 @@ AC_DEFUN([MCA_COMPONENT_BUILD_CHECK],[
# call building
#
# USAGE:
# MCA_SETUP_DIRECT_CALL(framework, project)
# MCA_SETUP_DIRECT_CALL(project, framework)
#
######################################################################
AC_DEFUN([MCA_SETUP_DIRECT_CALL],[
if test ! -z "$DIRECT_$1" ; then
MCA_$1_DIRECT_CALL_COMPONENT=$DIRECT_$1
MCA_$1_DIRECT_CALL=1
if test ! -z "$DIRECT_$2" ; then
MCA_$1_$2_DIRECT_CALL_COMPONENT=$DIRECT_$2
MCA_$1_$2_DIRECT_CALL=1
else
MCA_$1_DIRECT_CALL_COMPONENT=
MCA_$1_DIRECT_CALL=0
MCA_$1_$2_DIRECT_CALL_COMPONENT=
MCA_$1_$2_DIRECT_CALL=0
fi
AC_SUBST(MCA_$1_DIRECT_CALL_HEADER)
AC_DEFINE_UNQUOTED([MCA_$1_DIRECT_CALL], [$MCA_$1_DIRECT_CALL],
[Defined to 1 if $1 should use direct calls instead of components])
AC_DEFINE_UNQUOTED([MCA_$1_DIRECT_CALL_COMPONENT], [$MCA_$1_DIRECT_CALL_COMPONENT],
[name of component to use for direct calls, if MCA_$1_DIRECT_CALL is 1])
AC_DEFINE_UNQUOTED([MCA_$1_DIRECT_CALL_HEADER],
["[$MCA_]$1[_DIRECT_CALL_HEADER]"],
[Header $1 includes to be direct called])
AC_SUBST(MCA_$1_$2_DIRECT_CALL_HEADER)
AC_DEFINE_UNQUOTED([MCA_$1_$2_DIRECT_CALL], [$MCA_$1_$2_DIRECT_CALL],
[Defined to 1 if $1:$2 should use direct calls instead of components])
AC_DEFINE_UNQUOTED([MCA_$1_$2_DIRECT_CALL_COMPONENT], [$MCA_$1_$2_DIRECT_CALL_COMPONENT],
[name of component to use for direct calls, if MCA_$1_$2_DIRECT_CALL is 1])
AC_DEFINE_UNQUOTED([MCA_$1_$2_DIRECT_CALL_HEADER],
["[$MCA_]$1[_]$2[_DIRECT_CALL_HEADER]"],
[Header $1:$2 includes to be direct called])
])

31
config/ompi_mca_priority_sort.pl Исполняемый файл
Просмотреть файл

@ -0,0 +1,31 @@
#!/usr/bin/env perl
#
# Copyright (c) 2010 Sandia National Laboratories. All rights reserved.
#
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
my $components;
my @result;
while (@ARGV) {
my $component;
$component->{"name"} = shift(@ARGV);
$component->{"value"} = shift(@ARGV);
push(@{$components}, $component);
}
foreach my $component (sort { $b->{value} <=> $a->{value} } @{$components}) {
push(@result, $component->{name});
}
sub commify_series {
(@_ == 0) ? '' :
(@_ == 1) ? $_[0] :
join(", ", @_[0 .. ($#_-1)], "$_[-1]");
}
print commify_series(@result);

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

@ -10,7 +10,7 @@ dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
dnl University of Stuttgart. All rights reserved.
dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl All rights reserved.
dnl Copyright (c) 2008 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2008-2010 Cisco Systems, Inc. All rights reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
@ -18,14 +18,14 @@ dnl
dnl $HEADER$
dnl
# OMPI_SAVE_VERSION(project_short, project-long,
# OPAL_SAVE_VERSION(project_short, project-long,
# version_file, header_file])
# ----------------------------------------------
# creates version information for project from version_file, using
# OMPI_GET_VERSION(). Information is AC_SUBSTed and put in
# OPAL_GET_VERSION(). Information is AC_SUBSTed and put in
# header_file.
AC_DEFUN([OMPI_SAVE_VERSION], [
OMPI_GET_VERSION([$3], [$1])
AC_DEFUN([OPAL_SAVE_VERSION], [
OPAL_GET_VERSION([$3], [$1])
AC_SUBST($1[_MAJOR_VERSION])
AC_SUBST($1[_MINOR_VERSION])

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

@ -19,10 +19,10 @@ dnl $HEADER$
dnl
dnl
dnl This file is also used as input to ompi_get_version.sh.
dnl This file is also used as input to opal_get_version.sh.
dnl
# OMPI_GET_VERSION(version_file, variable_prefix)
# OPAL_GET_VERSION(version_file, variable_prefix)
# -----------------------------------------------
# parse version_file for version information, setting
# the following shell variables:
@ -36,7 +36,7 @@ dnl
# prefix_WANT_SVN
# prefix_SVN_R
# prefix_RELEASE_DATE
m4_define([OMPI_GET_VERSION],[
m4_define([OPAL_GET_VERSION],[
: ${ompi_ver_need_svn=1}
: ${svnversion_result=-1}

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

@ -2,7 +2,7 @@ m4_define([_m4_divert(SCRIPT)], 100)
m4_divert_push([SCRIPT])dnl
#!/bin/sh
#
# ompi_get_version is created from ompi_get_version.m4 and ompi_get_version.m4sh.
# opal_get_version is created from opal_get_version.m4 and opal_get_version.m4sh.
#
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
# University Research and Technology
@ -14,7 +14,7 @@ m4_divert_push([SCRIPT])dnl
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2008 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2008-2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -22,7 +22,7 @@ m4_divert_push([SCRIPT])dnl
# $HEADER$
#
m4_include([ompi_get_version.m4])
m4_include([opal_get_version.m4])
srcfile="$1"
option="$2"
@ -40,7 +40,7 @@ esac
if test -z "$srcfile"; then
option="--help"
else
OMPI_GET_VERSION([$srcfile],[OMPI])
OPAL_GET_VERSION([$srcfile],[OPAL])
if test "$option" = ""; then
option="--full"
@ -49,31 +49,31 @@ fi
case "$option" in
--full|-v|--version)
echo $OMPI_VERSION
echo $OPAL_VERSION
;;
--major)
echo $OMPI_MAJOR_VERSION
echo $OPAL_MAJOR_VERSION
;;
--minor)
echo $OMPI_MINOR_VERSION
echo $OPAL_MINOR_VERSION
;;
--release)
echo $OMPI_RELEASE_VERSION
echo $OPAL_RELEASE_VERSION
;;
--greek)
echo $OMPI_GREEK_VERSION
echo $OPAL_GREEK_VERSION
;;
--svn)
echo $OMPI_SVN_R
echo $OPAL_SVN_R
;;
--base)
echo $OMPI_BASE_VERSION
echo $OPAL_BASE_VERSION
;;
--release-date)
echo $OMPI_RELEASE_DATE
echo $OPAL_RELEASE_DATE
;;
--all)
echo ${OMPI_VERSION} ${OMPI_MAJOR_VERSION} ${OMPI_MINOR_VERSION} ${OMPI_RELEASE_VERSION} ${OMPI_GREEK_VERSION} ${OMPI_SVN_R}
echo ${OPAL_VERSION} ${OPAL_MAJOR_VERSION} ${OPAL_MINOR_VERSION} ${OPAL_RELEASE_VERSION} ${OPAL_GREEK_VERSION} ${OPAL_SVN_R}
;;
-h|--help)
cat <<EOF

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

@ -27,20 +27,21 @@
# Initialization, version number, and other random setup/init stuff
############################################################################
# Load project list and names
m4_include([config/project_list.m4])
m4_pattern_allow([m4_ifval])
# Load in everything found by autogen.pl
m4_include([config/autogen_found_items.m4])
# Load the version code. Because this is also used directly as a
# shell script, no ac_defun
m4_include([config/opal_get_version.m4])
# Init autoconf
# We don't have the version number to put in here yet, and we can't
# call OMPI_GET_VERSION (etc.) before AC_INIT. So use the shell
# call OPAL_GET_VERSION (etc.) before AC_INIT. So use the shell
# version. project_name_* comes from config/project_list.m4, which
# was set during autogen.sh.
AC_INIT([project_name_long],
[m4_normalize(esyscmd([config/ompi_get_version.sh VERSION --base]))],
[m4_normalize(esyscmd([config/opal_get_version.sh VERSION --base]))],
[http://www.open-mpi.org/community/help/], [project_name_short])
AC_PREREQ(2.60)
AC_CONFIG_AUX_DIR(config)
@ -98,15 +99,15 @@ ompi_show_subtitle "Checking versions"
# Get the version of OMPI that we are installing
m4_ifdef([project_ompi],
[OMPI_SAVE_VERSION([OMPI], [Open MPI], [$srcdir/VERSION],
[OPAL_SAVE_VERSION([OMPI], [Open MPI], [$srcdir/VERSION],
[ompi/include/ompi/version.h])])
m4_ifdef([project_orte],
[OMPI_SAVE_VERSION([ORTE], [Open MPI Run-Time Environment],
[OPAL_SAVE_VERSION([ORTE], [Open MPI Run-Time Environment],
[$srcdir/VERSION],
[orte/include/orte/version.h])])
OMPI_SAVE_VERSION([OPAL], [Open Portable Access Layer], [$srcdir/VERSION],
OPAL_SAVE_VERSION([OPAL], [Open Portable Access Layer], [$srcdir/VERSION],
[opal/include/opal/version.h])
# Get shared library version numbers

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

@ -101,7 +101,7 @@ EXTRA_DIST = \
platform/win32/CMakeModules/ompi_check_Microsoft.cmake \
platform/win32/CMakeModules/ompi_configure.cmake \
platform/win32/CMakeModules/ompi_find_type.cmake \
platform/win32/CMakeModules/ompi_get_version.cmake \
platform/win32/CMakeModules/opal_get_version.cmake \
platform/win32/CMakeModules/opal_functions.cmake \
platform/win32/CMakeModules/setup_f77.cmake \
platform/win32/ConfigFiles/revision.in \

15
contrib/dist/make_dist_tarball поставляемый
Просмотреть файл

@ -57,6 +57,7 @@ fi
greekonly=0
want_ompi=1
autogen_args=
while test "$1" != ""; do
case $1 in
-greekonly) greekonly=1 ;;
@ -65,6 +66,12 @@ while test "$1" != ""; do
--highok) highok=1 ;;
-no-ompi) want_ompi=0 ;;
--no-ompi) want_ompi=0 ;;
-autogen-args) autogen_args=$2; shift ;;
--autogen-args) autogen_args=$2; shift ;;
*)
echo Unrecognized argument: $1
exit 1
;;
esac
shift
done
@ -216,12 +223,12 @@ make_tarball() {
#
# Autogen
#
echo "*** Running autogen.sh..."
echo "*** Running autogen $autogen_args..."
rm -f success
if test "$want_ompi" = "1" ; then
(./autogen.sh 2>&1 && touch success) | tee auto.out
(./autogen.pl $autogen_args 2>&1 && touch success) | tee auto.out
else
(./autogen.sh -no-ompi 2>&1 && touch success) | tee auto.out
(./autogen.pl -no-ompi $autogen_args 2>&1 && touch success) | tee auto.out
fi
if test ! -f success; then
echo "Autogen failed. Aborting"
@ -292,7 +299,7 @@ check_gnu_version flex $FLEX_TARGET_VERSION
# Verify that we're in a top Open MPI dir
#
echo "*** Checking to ensure in top-level Open MPI directory..."
if test -f VERSION -a -f configure.ac -a -f config/ompi_get_version.m4 ; then
if test -f VERSION -a -f configure.ac -a -f config/opal_get_version.m4 ; then
happy=1
else
echo "Do not appear to be in an Open MPI top directory. Abort!"

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

@ -10,7 +10,7 @@
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -278,7 +278,7 @@ USER="ompibuilder"
export USER
# autogen is our friend
do_command "./autogen.sh"
do_command "./autogen.pl"
# do config
do_command "./configure --enable-dist"

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

@ -21,6 +21,7 @@ enable_mpi_cxx=no
enable_mpi_cxx_seek=no
enable_memchecker=no
enable_mca_no_build=carto,crs,memchecker,filem,plm-slurm,plm-xgrid,snapc,ess-slurm,sstore,compress,errmgr-autor,errmgr-crmig,errmgr-example
enable_mca_only_build=rmcast-tcp,rmaps-resilient
with_memory_manager=no
with_devel_headers=yes
with_xgrid=no

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

@ -10,7 +10,7 @@ prefix=$1
shift 1
platform=$1
./autogen.sh -l -no-ompi
./autogen.pl -no-ompi
./configure --prefix="${prefix}" --with-platform=contrib/platform/embedded/"${platform}"
make clean > /dev/null
make -j2 all > /dev/null

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

@ -57,7 +57,7 @@
# Run the aclocal/autoconf/automake hierarchy.
# cd $SRC_DIR
# ./autogen.sh 2>&1 | tee -a build.log
# ./autogen.pl 2>&1 | tee -a build.log
# cd $OLDPWD

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

@ -36,7 +36,7 @@ fi
SRCDIR=${SRCDIR:-..}
COMPILER=${COMPILER:-gnu}
INSTALL_ROOT=${INSTALL_ROOT:-/sw/xt5/ompi}
VERSION=${VERSION:-"`${SRCDIR}/config/ompi_get_version.sh ${SRCDIR}/VERSION`"}
VERSION=${VERSION:-"`${SRCDIR}/config/opal_get_version.sh ${SRCDIR}/VERSION`"}
SVER=${SVER:-"cnl`echo "${XTOS_VERSION}" | cut -c1-3`"}
CVER=${CVER:-"${COMPILER}`gcc --version | awk '/gcc/{print $3}'`"}

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

@ -4,6 +4,7 @@
# Copyright (c) 2008 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -88,7 +89,7 @@ OMPI_DEF(OMPI_BUILD_HOST $ENV{COMPUTERNAME} "Host on which the package has been
OMPI_DEF(OPAL_ARCH "${CMAKE_SYSTEM_PROCESSOR} ${CMAKE_SYSTEM}" "OMPI architecture string" 1 1)
INCLUDE(ompi_get_version)
INCLUDE(opal_get_version)
OMPI_DEF(OMPI_RELEASE_DATE ${RELEASE_DATE} "Release date of the package" 1 1)

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

@ -9,7 +9,7 @@
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2008-2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2008-2010 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
# Copyright (c) 2010 Sandia National Laboratories. All rights reserved.
# $COPYRIGHT$
@ -137,11 +137,9 @@ nodist_man_MANS =
# Conditionally install the header files
ompidir = $(includedir)/openmpi/$(subdir)
if WANT_INSTALL_HEADERS
ompidir = $(includedir)/openmpi/ompi
nobase_ompi_HEADERS += $(headers)
else
ompidir = $(includedir)
endif
include class/Makefile.am

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

@ -10,7 +10,8 @@ dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
dnl University of Stuttgart. All rights reserved.
dnl Copyright (c) 2004-2005 The Regents of the University of California.
dnl All rights reserved.
dnl Copyright (c) 2006-2010 Oracle and/or its affiliates. All rights reserved.
dnl Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved.
dnl Use is subject to license terms.
dnl Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
dnl $COPYRIGHT$
dnl
@ -30,13 +31,9 @@ dnl
# unexpected behavior for the user in the past.
AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[
WRAPPER_EXTRA_FFLAGS=
WRAPPER_EXTRA_FFLAGS_PREFIX=
WRAPPER_EXTRA_FCFLAGS=
WRAPPER_EXTRA_FCFLAGS_PREFIX=
USER_WRAPPER_EXTRA_FFLAGS=
USER_WRAPPER_EXTRA_FFLAGS_PREFIX=
USER_WRAPPER_EXTRA_FCFLAGS=
USER_WRAPPER_EXTRA_FCLAGS_PREFIX=
AC_ARG_WITH([wrapper-fflags],
[AC_HELP_STRING([--with-wrapper-fflags],
@ -47,15 +44,6 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[
USER_WRAPPER_EXTRA_FFLAGS="$with_wrapper_fflags"
fi
AC_ARG_WITH([wrapper-fflags-prefix],
[AC_HELP_STRING([--with-wrapper-fflags-prefix],
[Extra flags (before user flags) to add to FFLAGS when using mpif77])])
if test "$with_wrapper_fflags_prefix" = "yes" -o "$with_wrapper_fflags_prefix" = "no"; then
AC_MSG_ERROR([--with-wrapper-fflags-prefix must have an argument. Aborting])
elif test ! -z "$with_wrapper_fflags_prefix" ; then
USER_WRAPPER_EXTRA_FFLAGS_PREFIX="$with_wrapper_fflags_prefix"
fi
AC_ARG_WITH([wrapper-fcflags],
[AC_HELP_STRING([--with-wrapper-fcflags],
[Extra flags to add to FCFLAGS when using mpif90])])
@ -64,16 +52,6 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[
elif test ! -z "$with_wrapper_fcflags" ; then
USER_WRAPPER_EXTRA_FCFLAGS="$with_wrapper_fcflags"
fi
AC_ARG_WITH([wrapper-fcflags-prefix],
[AC_HELP_STRING([--with-wrapper-fcflags-prefix],
[Extra flags (before user flags) to add to FCFLAGS when using mpif90])])
if test "$with_wrapper_fcflags_prefix" = "yes" -o "$with_wrapper_fcflags_prefix" = "no"; then
AC_MSG_ERROR([--with-wrapper-fcflags-prefix must have an argument. Aborting])
elif test ! -z "$with_wrapper_fcflags_prefix" ; then
USER_WRAPPER_EXTRA_FCFLAGS_PREFIX="$with_wrapper_fcflags_prefix"
fi
])
AC_DEFUN([_OMPI_SETUP_ORTE_WRAPPERS],[
@ -87,41 +65,21 @@ AC_DEFUN([_OMPI_SETUP_ORTE_WRAPPERS],[
AC_SUBST([OMPI_WRAPPER_EXTRA_CFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CFLAGS])
AC_MSG_CHECKING([for OMPI CFLAGS_PREFIX])
OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX="$ORTE_WRAPPER_EXTRA_CFLAGS_PREFIX"
AC_SUBST([OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX])
AC_MSG_CHECKING([for OMPI CXXFLAGS])
OMPI_WRAPPER_EXTRA_CXXFLAGS="$ORTE_WRAPPER_EXTRA_CXXFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_CXXFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CXXFLAGS])
AC_MSG_CHECKING([for OMPI CXXFLAGS_PREFIX])
OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX="$ORTE_WRAPPER_EXTRA_CXXFLAGS_PREFIX"
AC_SUBST([OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX])
AC_MSG_CHECKING([for OMPI FFLAGS])
OMPI_WRAPPER_EXTRA_FFLAGS="$WRAPPER_EXTRA_FFLAGS $USER_WRAPPER_EXTRA_FFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_FFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FFLAGS])
AC_MSG_CHECKING([for OMPI FFLAGS_PREFIX])
OMPI_WRAPPER_EXTRA_FFLAGS_PREFIX="$WRAPPER_EXTRA_FFLAGS_PREFIX $USER_WRAPPER_EXTRA_FFLAGS_PREFIX"
AC_SUBST([OMPI_WRAPPER_EXTRA_FFLAGS_PREFIX])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FFLAGS_PREFIX])
AC_MSG_CHECKING([for OMPI FCFLAGS])
OMPI_WRAPPER_EXTRA_FCFLAGS="$WRAPPER_EXTRA_FCFLAGS $USER_WRAPPER_EXTRA_FCFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_FCFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FCFLAGS])
AC_MSG_CHECKING([for OMPI FCFLAGS_PREFIX])
OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX="$WRAPPER_EXTRA_FCFLAGS_PREFIX $USER_WRAPPER_EXTRA_FCFLAGS_PREFIX"
AC_SUBST([OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX])
AC_MSG_CHECKING([for OMPI LDFLAGS])
OMPI_WRAPPER_EXTRA_LDFLAGS="$ompi_WRAPPER_EXTRA_LDFLAGS $ORTE_WRAPPER_EXTRA_LDFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_LDFLAGS])
@ -149,41 +107,21 @@ AC_DEFUN([_OMPI_SETUP_OPAL_WRAPPERS],[
AC_SUBST([OMPI_WRAPPER_EXTRA_CFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CFLAGS])
AC_MSG_CHECKING([for OMPI CFLAGS_PREFIX])
OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX="$OPAL_WRAPPER_EXTRA_CFLAGS_PREFIX"
AC_SUBST([OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CFLAGS_PREFIX])
AC_MSG_CHECKING([for OMPI CXXFLAGS])
OMPI_WRAPPER_EXTRA_CXXFLAGS="$OPAL_WRAPPER_EXTRA_CXXFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_CXXFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CXXFLAGS])
AC_MSG_CHECKING([for OMPI CXXFLAGS_PREFIX])
OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX="$OPAL_WRAPPER_EXTRA_CXXFLAGS_PREFIX"
AC_SUBST([OMPI_WRAPPER_EXTRA_CXXFLAGS_PREFIX])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_CXXFLAGS])
AC_MSG_CHECKING([for OMPI FFLAGS])
OMPI_WRAPPER_EXTRA_FFLAGS="$WRAPPER_EXTRA_FFLAGS $USER_WRAPPER_EXTRA_FFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_FFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FFLAGS])
AC_MSG_CHECKING([for OMPI FFLAGS_PREFIX])
OMPI_WRAPPER_EXTRA_FFLAGS_PREFIX="$WRAPPER_EXTRA_FFLAGS_PREFIX $USER_WRAPPER_EXTRA_FFLAGS_PREFIX"
AC_SUBST([OMPI_WRAPPER_EXTRA_FFLAGS_PREFIX])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FFLAGS_PREFIX])
AC_MSG_CHECKING([for OMPI FCFLAGS])
OMPI_WRAPPER_EXTRA_FCFLAGS="$WRAPPER_EXTRA_FCFLAGS $USER_WRAPPER_EXTRA_FCFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_FCFLAGS])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FCFLAGS])
AC_MSG_CHECKING([for OMPI FCFLAGS_PREFIX])
OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX="$WRAPPER_EXTRA_FCFLAGS_PREFIX $USER_WRAPPER_EXTRA_FCFLAGS_PREFIX"
AC_SUBST([OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX])
AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX])
AC_MSG_CHECKING([for OMPI LDFLAGS])
OMPI_WRAPPER_EXTRA_LDFLAGS="$ompi_WRAPPER_EXTRA_LDFLAGS $OPAL_WRAPPER_EXTRA_LDFLAGS"
AC_SUBST([OMPI_WRAPPER_EXTRA_LDFLAGS])
@ -202,9 +140,7 @@ AC_DEFUN([_OMPI_SETUP_OPAL_WRAPPERS],[
AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[
OMPI_UNIQ([WRAPPER_EXTRA_FFLAGS])
OMPI_UNIQ([WRAPPER_EXTRA_FFLAGS_PREFIX])
OMPI_UNIQ([WRAPPER_EXTRA_FCFLAGS])
OMPI_UNIQ([WRAPPER_EXTRA_FCFLAGS_PREFIX])
OMPI_UNIQ([ompi_WRAPPER_EXTRA_LDFLAGS])
OMPI_UNIQ([ompi_WRAPPER_EXTRA_LIBS])
@ -254,23 +190,14 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[
# compatibility defines that will eventually go away
WRAPPER_EXTRA_FFLAGS="$OMPI_WRAPPER_EXTRA_FFLAGS"
WRAPPER_EXTRA_FFLAGS_PREFIX="$OMPI_WRAPPER_EXTRA_FFLAGS_PREFIX"
WRAPPER_EXTRA_FCFLAGS="$OMPI_WRAPPER_EXTRA_FCFLAGS"
WRAPPER_EXTRA_FCFLAGS_PREFIX="$OMPI_WRAPPER_EXTRA_FCFLAGS_PREFIX"
AC_SUBST([WRAPPER_EXTRA_FFLAGS])
AC_SUBST([WRAPPER_EXTRA_FFLAGS_PREFIX])
AC_SUBST([WRAPPER_EXTRA_FCFLAGS])
AC_SUBST([WRAPPER_EXTRA_FCFLAGS_PREFIX])
AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_FFLAGS, "$WRAPPER_EXTRA_FFLAGS",
[Additional FFLAGS to pass through the wrapper compilers])
AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_FFLAGS_PREFIX, "$WRAPPER_EXTRA_FFLAGS_PREFIX",
[Additional FFLAGS to pass through the wrapper compilers])
AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_FCFLAGS, "$WRAPPER_EXTRA_FCFLAGS",
[Additional FCFLAGS to pass through the wrapper compilers])
AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_FCFLAGS_PREFIX, "$WRAPPER_EXTRA_FCFLAGS_PREFIX",
[Additional FCFLAGS to pass through the wrapper compilers])
# if wrapper compilers were requested, set the ompi one up
if test "$WANT_SCRIPT_WRAPPER_COMPILERS" = "1" ; then

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

@ -22,5 +22,6 @@
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([OMPI_contrib_libompitrace_CONFIG],[
AC_CONFIG_FILES([ompi/contrib/libompitrace/Makefile])
$1
])dnl

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -3,8 +3,8 @@
version of the OTF library
(so it's possible to add these objects to 3rd-party shared libraries)
- fixed and enhanced calculation of trace file size in otfinfo
- temporary disabled OpenMP support completely if the PGI compiler is
used to work around some uncleared compile errors
- disable OpenMP support in otfprofile if the PGI compiler
is used to work around some compiler errors
- patched libtool:
- to avoid a bug in detection of the PGI 10 C++ compiler
- to detect IBM cross compilers on BlueGene/P

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

@ -1,27 +1,11 @@
AC_DEFUN([CHECK_OMP],
[
check_omp="yes"
have_omp="no"
AC_ARG_VAR(OPENMP_CXXFLAGS, [C++ compiler flags to enable support for OpenMP])
dnl Disable OpenMP if the PGI compiler is used to work around the following errors:
dnl compiler version compiler error
dnl < 9.0-3 PGCC-S-0000-Internal compiler error. calc_dw_tag:no tag
dnl (see Technical Problem Report 4337 at http://www.pgroup.com/support/release_tprs_90.htm)
dnl 10.1 - 10.6 this kind of pragma may not be used here
dnl #pargma omp barrier
case `$CC -V 2>&1` in
*pgcc*)
check_omp="no"
;;
esac
AS_IF([test "$check_omp" = "yes"],
[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AX_OPENMP([have_omp="yes"])
AC_LANG_RESTORE
])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AX_OPENMP([have_omp="yes"])
AC_LANG_RESTORE
])

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

@ -12,6 +12,7 @@
# All rights reserved.
# Copyright (c) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -42,9 +43,7 @@ libdatatype_la_SOURCES = \
libdatatype_la_LIBADD =
# Conditionally install the header files
ompidir = $(includedir)/openmpi/$(subdir)
if WANT_INSTALL_HEADERS
ompidir = $(includedir)/openmpi/ompi/datatype
ompi_HEADERS = $(headers)
else
ompidir = $(includedir)
endif

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

@ -74,9 +74,7 @@ libompi_dbg_msgq_la_LDFLAGS = -module -avoid-version
# Conditionally install the header files
ompidir = $(includedir)/openmpi/$(subdir)
if WANT_INSTALL_HEADERS
ompidir = $(includedir)/openmpi/ompi/debuggers
ompi_HEADERS = $(headers)
else
ompidir = $(includedir)
endif

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

@ -52,12 +52,11 @@ nodist_include_HEADERS += \
mpif-config.h
endif
ompidir = $(includedir)/openmpi/$(subdir)
if WANT_INSTALL_HEADERS
ompidir = $(includedir)/openmpi
nobase_dist_ompi_HEADERS = $(headers)
nobase_nodist_ompi_HEADERS = $(nodist_headers)
else
ompidir = $(includedir)
nobase_dist_noinst_HEADERS = $(headers)
nobase_nodist_noinst_HEADERS = $(nodist_headers)
endif

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

@ -9,6 +9,7 @@
# 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
@ -28,11 +29,9 @@ headers = allocator.h
libmca_allocator_la_SOURCES += $(headers)
# Conditionally install the header files
ompidir = $(includedir)/openmpi/$(subdir)
if WANT_INSTALL_HEADERS
nobase_ompi_HEADERS += $(headers)
ompidir = $(includedir)/openmpi/ompi/mca/allocator
else
ompidir = $(includedir)
endif
include base/Makefile.am

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

@ -9,6 +9,7 @@
# 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
@ -26,7 +27,7 @@ sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_allocator_basic_DSO
if MCA_BUILD_ompi_allocator_basic_DSO
component_noinst =
component_install = mca_allocator_basic.la
else

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -9,6 +9,7 @@
# 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
@ -27,7 +28,7 @@ sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_allocator_bucket_DSO
if MCA_BUILD_ompi_allocator_bucket_DSO
component_noinst =
component_install = mca_allocator_bucket.la
else

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -9,6 +9,7 @@
# 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
@ -28,11 +29,9 @@ headers = bml.h
libmca_bml_la_SOURCES += $(headers)
# Conditionally install the header files
ompidir = $(includedir)/openmpi/$(subdir)
if WANT_INSTALL_HEADERS
nobase_ompi_HEADERS += $(headers)
ompidir = $(includedir)/openmpi/ompi/mca/bml
else
ompidir = $(includedir)
endif
include base/Makefile.am

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

@ -7,6 +7,7 @@
# 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
@ -25,7 +26,7 @@ r2_sources = \
dist_pkgdata_DATA = help-mca-bml-r2.txt
if OMPI_BUILD_bml_r2_DSO
if MCA_BUILD_ompi_bml_r2_DSO
component_noinst =
component_install = mca_bml_r2.la
else

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -9,6 +9,7 @@
# 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
@ -30,11 +31,9 @@ headers = btl.h
libmca_btl_la_SOURCES += $(headers)
# Conditionally install the header files
ompidir = $(includedir)/openmpi/$(subdir)
if WANT_INSTALL_HEADERS
nobase_ompi_HEADERS += $(headers)
ompidir = $(includedir)/openmpi/ompi/mca/btl
else
ompidir = $(includedir)
endif
include base/Makefile.am

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

@ -2,6 +2,7 @@
# Copyright (c) 2004-2007 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -18,7 +19,7 @@ btl_elan_sources = btl_elan.c btl_elan.h btl_elan_component.c btl_elan_endpoint.
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_btl_elan_DSO
if MCA_BUILD_ompi_btl_elan_DSO
component_noinst =
component_install = mca_btl_elan.la
else

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

@ -3,7 +3,7 @@
# Copyright (c) 2007 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -54,7 +54,9 @@ AC_DEFUN([OMPI_CHECK_ELAN],[
# MCA_btl_elan_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_btl_elan_CONFIG],[
AC_DEFUN([MCA_ompi_btl_elan_CONFIG],[
AC_CONFIG_FILES([ompi/mca/btl/elan/Makefile])
OMPI_CHECK_ELAN([btl_elan],
[btl_elan_happy="yes"],
[btl_elan_happy="no"])

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

@ -1,15 +0,0 @@
# -*- shell-script -*-
#
# Copyright (c) 2004-2007 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -9,6 +9,7 @@
# 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
@ -33,7 +34,7 @@ gm_sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_btl_gm_DSO
if MCA_BUILD_ompi_btl_gm_DSO
component_noinst =
component_install = mca_btl_gm.la
else

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

@ -154,7 +154,7 @@ int mca_btl_gm_component_open(void)
#else
mca_btl_gm_module.super.btl_flags = MCA_BTL_FLAGS_SEND;
#endif
mca_btl_gm_module.super.btl_bandwidth = 2000; /* Mbs */
mca_btl_gm_module.super.btl_bandwidth = 250;
mca_btl_gm_module.super.btl_latency = 0;
mca_btl_base_param_register(&mca_btl_gm_component.super.btl_version,
&mca_btl_gm_module.super);

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

@ -10,6 +10,7 @@
# 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
@ -21,7 +22,9 @@
# MCA_btl_gm_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_btl_gm_CONFIG],[
AC_DEFUN([MCA_ompi_btl_gm_CONFIG],[
AC_CONFIG_FILES([ompi/mca/btl/gm/Makefile])
OMPI_CHECK_GM([btl_gm],
[btl_gm_happy="yes"],
[btl_gm_happy="no"])

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -9,6 +9,7 @@
# 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
@ -25,7 +26,7 @@ btl_mx_sources = btl_mx.c btl_mx.h btl_mx_component.c btl_mx_endpoint.c \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_btl_mx_DSO
if MCA_BUILD_ompi_btl_mx_DSO
component_noinst =
component_install = mca_btl_mx.la
else

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

@ -10,6 +10,7 @@
# 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
@ -21,7 +22,9 @@
# MCA_btl_mx_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_btl_mx_CONFIG],[
AC_DEFUN([MCA_ompi_btl_mx_CONFIG],[
AC_CONFIG_FILES([ompi/mca/btl/mx/Makefile])
OMPI_CHECK_MX([btl_mx],
[btl_mx_happy="yes"],
[btl_mx_happy="no"])

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -11,6 +11,7 @@
# All rights reserved.
# Copyright (c) 2006 Sandia National Laboratories. All rights
# reserved.
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -35,7 +36,7 @@ sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_btl_ofud_DSO
if MCA_BUILD_ompi_btl_ofud_DSO
lib =
lib_sources =
component = mca_btl_ofud.la

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

@ -12,6 +12,7 @@
# All rights reserved.
# Copyright (c) 2006 Sandia National Laboratories. All rights
# reserved.
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -23,7 +24,9 @@
# MCA_btl_ofud_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_btl_ofud_CONFIG],[
AC_DEFUN([MCA_ompi_btl_ofud_CONFIG],[
AC_CONFIG_FILES([ompi/mca/btl/ofud/Makefile])
OMPI_CHECK_OPENIB([btl_ofud],
[btl_ofud_happy="yes"],
[btl_ofud_happy="no"])

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

@ -1,26 +0,0 @@
# -*- shell-script -*-
#
# 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) 2006 Sandia National Laboratories. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_INIT_FILE=btl_ofud.c
PARAM_CONFIG_HEADER_FILE="ofud_config.h"
PARAM_CONFIG_FILES="Makefile"

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

@ -9,7 +9,7 @@
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2007-2010 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
# $COPYRIGHT$
#
@ -101,7 +101,7 @@ endif
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_btl_openib_DSO
if MCA_BUILD_ompi_btl_openib_DSO
lib =
lib_sources =
component = mca_btl_openib.la

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

@ -10,7 +10,7 @@
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2007-2010 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2008 Mellanox Technologies. All rights reserved.
# $COPYRIGHT$
#
@ -21,7 +21,7 @@
# MCA_btl_openib_POST_CONFIG([should_build])
# ------------------------------------------
AC_DEFUN([MCA_btl_openib_POST_CONFIG], [
AC_DEFUN([MCA_ompi_btl_openib_POST_CONFIG], [
AM_CONDITIONAL([MCA_btl_openib_have_xrc], [test $1 -eq 1 -a "x$btl_openib_have_xrc" = "x1"])
AM_CONDITIONAL([MCA_btl_openib_have_rdmacm], [test $1 -eq 1 -a "x$btl_openib_have_rdmacm" = "x1"])
AM_CONDITIONAL([MCA_btl_openib_have_ibcm], [test $1 -eq 1 -a "x$btl_openib_have_ibcm" = "x1"])
@ -31,7 +31,9 @@ AC_DEFUN([MCA_btl_openib_POST_CONFIG], [
# MCA_btl_openib_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_btl_openib_CONFIG],[
AC_DEFUN([MCA_ompi_btl_openib_CONFIG],[
AC_CONFIG_FILES([ompi/mca/btl/openib/Makefile])
OMPI_VAR_SCOPE_PUSH([cpcs have_threads])
cpcs="oob"

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -41,7 +41,6 @@
# Voltaire 0x08f1
# HP 0x1708
# Sun 0x03ba
# Bull 0x119f
# vendor_part_id: a comma-delimited list of integers of different
# NIC/HCA models from a single vendor, expressed in either decimal or
@ -155,7 +154,7 @@ max_inline_data = 128
# A.k.a. ConnectX
[Mellanox Hermon]
vendor_id = 0x2c9,0x5ad,0x66a,0x8f1,0x1708,0x03ba,0x15b3,0x119f
vendor_id = 0x2c9,0x5ad,0x66a,0x8f1,0x1708,0x03ba,0x15b3
vendor_part_id = 25408,25418,25428,26418,26428,25448,26438,26448,26468,26478,26488
use_eager_rdma = 1
mtu = 2048

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

@ -9,6 +9,7 @@
# 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
@ -20,7 +21,7 @@
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_btl_portals_DSO
if MCA_BUILD_ompi_btl_portals_DSO
component_noinst =
component_install = mca_btl_portals.la
else

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

@ -10,6 +10,7 @@
# 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
@ -21,7 +22,9 @@
# MCA_btl_portals_CONFIG(action-if-can-compile,
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_btl_portals_CONFIG],[
AC_DEFUN([MCA_ompi_btl_portals_CONFIG],[
AC_CONFIG_FILES([ompi/mca/btl/portals/Makefile])
OMPI_CHECK_PORTALS([btl_portals],
[btl_portals_happy="yes"],
[btl_portals_happy="no"])

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -9,7 +9,7 @@
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2007-2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -43,7 +43,7 @@ sources = \
# (for static builds).
if OMPI_BUILD_btl_sctp_DSO
if MCA_BUILD_ompi_btl_sctp_DSO
lib =
lib_sources =
component = mca_btl_sctp.la

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

@ -10,7 +10,7 @@
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -122,7 +122,9 @@ AC_DEFUN([OMPI_CHECK_SCTP],[
# MCA_btl_sctp_CONFIG([action-if-found], [action-if-not-found])
# -----------------------------------------------------------
AC_DEFUN([MCA_btl_sctp_CONFIG],[
AC_DEFUN([MCA_ompi_btl_sctp_CONFIG],[
AC_CONFIG_FILES([ompi/mca/btl/sctp/Makefile])
OMPI_CHECK_SCTP([btl_sctp],
[btl_sctp_happy="yes"],
[btl_sctp_happy="no"])

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -9,6 +9,7 @@
# 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
@ -29,7 +30,7 @@ libmca_btl_self_la_sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_btl_self_DSO
if MCA_BUILD_ompi_btl_self_DSO
component_noinst =
component_install = mca_btl_self.la
else

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -9,7 +9,7 @@
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -34,7 +34,7 @@ libmca_btl_sm_la_sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_btl_sm_DSO
if MCA_BUILD_ompi_btl_sm_DSO
component_noinst =
component_install = mca_btl_sm.la
else

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

@ -3,7 +3,7 @@
# Copyright (c) 2009 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -66,7 +66,9 @@ AC_DEFUN([OMPI_CHECK_KNEM],[
# MCA_btl_sm_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_btl_sm_CONFIG],[
AC_DEFUN([MCA_ompi_btl_sm_CONFIG],[
AC_CONFIG_FILES([ompi/mca/btl/sm/Makefile])
OMPI_VAR_SCOPE_PUSH([btl_sm_knem_happy])
OMPI_CHECK_KNEM([btl_sm],
[btl_sm_knem_happy=1],

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -9,7 +9,7 @@
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -40,7 +40,7 @@ sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_btl_tcp_DSO
if MCA_BUILD_ompi_btl_tcp_DSO
lib =
lib_sources =
component = mca_btl_tcp.la

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

@ -10,6 +10,7 @@
# 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
@ -19,7 +20,9 @@
# MCA_btl_tcp_CONFIG([action-if-found], [action-if-not-found])
# -----------------------------------------------------------
AC_DEFUN([MCA_btl_tcp_CONFIG],[
AC_DEFUN([MCA_ompi_btl_tcp_CONFIG],[
AC_CONFIG_FILES([ompi/mca/btl/tcp/Makefile])
# check for sockaddr_in (a good sign we have TCP)
AC_CHECK_TYPES([struct sockaddr_in],
[$1],

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -9,6 +9,7 @@
# 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
@ -35,7 +36,7 @@ sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_btl_template_DSO
if MCA_BUILD_ompi_btl_template_DSO
lib =
lib_sources =
component = mca_btl_template.la

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -11,6 +11,7 @@
# All rights reserved.
# Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
#
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -42,7 +43,7 @@ udapl_sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_btl_udapl_DSO
if MCA_BUILD_ompi_btl_udapl_DSO
component_noinst =
component_install = mca_btl_udapl.la
else

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

@ -10,7 +10,7 @@
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2006 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2007-2010 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2007-2008 Sun Microsystems, Inc. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -305,7 +305,7 @@ int mca_btl_udapl_register_mca_params(void)
mca_btl_udapl_module.super.btl_rdma_pipeline_frag_size = 128 * 1024;
mca_btl_udapl_module.super.btl_min_rdma_pipeline_size = 0;
mca_btl_udapl_module.super.btl_flags = MCA_BTL_FLAGS_PUT | MCA_BTL_FLAGS_SEND;
mca_btl_udapl_module.super.btl_bandwidth = 16000; /* Mbits/sec */
mca_btl_udapl_module.super.btl_bandwidth = 225;
mca_btl_udapl_module.super.btl_latency = 0;
mca_btl_base_param_register(&mca_btl_udapl_component.super.btl_version,

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

@ -11,6 +11,7 @@
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
@ -22,7 +23,9 @@
# MCA_btl_udapl_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_btl_udapl_CONFIG],[
AC_DEFUN([MCA_ompi_btl_udapl_CONFIG],[
AC_CONFIG_FILES([ompi/mca/btl/udapl/Makefile])
OMPI_CHECK_UDAPL([btl_udapl],
[btl_udapl_happy="yes"],
[btl_udapl_happy="no"])

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

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

@ -9,6 +9,7 @@
# 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
@ -30,11 +31,9 @@ headers = coll.h
libmca_coll_la_SOURCES += $(headers)
# Conditionally install the header files
ompidir = $(includedir)/openmpi/$(subdir)
if WANT_INSTALL_HEADERS
nobase_ompi_HEADERS += $(headers)
ompidir = $(includedir)/openmpi/ompi/mca/coll
else
ompidir = $(includedir)
endif
include base/Makefile.am

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

@ -9,6 +9,7 @@
# 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
@ -43,7 +44,7 @@ sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_coll_basic_DSO
if MCA_BUILD_ompi_coll_basic_DSO
component_noinst =
component_install = mca_coll_basic.la
else

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES=Makefile

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

@ -9,6 +9,7 @@
# 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
@ -43,7 +44,7 @@ sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_coll_demo_DSO
if MCA_BUILD_ompi_coll_demo_DSO
component_noinst =
component_install = mca_coll_demo.la
else

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

@ -1,28 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_INIT_FILE=coll_demo_component.c
PARAM_CONFIG_HEADER_FILE=coll_demo_config.h
PARAM_CONFIG_FILES="Makefile"
PARAM_CONFIG_AUX_DIR=config
PARAM_WANT_COMPILE_EXTERNAL=1

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

@ -24,7 +24,7 @@ coll_fca_sources = \
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_coll_fca_DSO
if MCA_BUILD_ompi_coll_fca_DSO
component_noinst =
component_install = mca_coll_fca.la
else

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

@ -60,7 +60,8 @@ struct mca_coll_fca_fca_ops_t {
void (*free_rank_info)(void *rank_info);
/* Local communicator creation */
int (*comm_init)(fca_t *context, fca_comm_init_spec_t *spec, fca_comm_t** fca_comm);
int (*comm_init)(fca_t *context, int proc_idx, int num_procs, int comm_size,
fca_comm_desc_t *comm_desc, fca_comm_t** fca_comm);
void (*comm_destroy)(fca_comm_t *comm);
int (*comm_get_caps)(fca_comm_t *comm, fca_comm_caps_t *caps);
@ -68,13 +69,10 @@ struct mca_coll_fca_fca_ops_t {
int (*do_reduce)(fca_comm_t *comm, fca_reduce_spec_t *spec);
int (*do_all_reduce)(fca_comm_t *comm, fca_reduce_spec_t *spec);
int (*do_bcast)(fca_comm_t *comm, fca_bcast_spec_t *spec);
int (*do_allgather)(fca_comm_t *comm, fca_gather_spec_t *spec);
int (*do_allgatherv)(fca_comm_t *comm, fca_gatherv_spec_t *spec);
int (*do_barrier)(fca_comm_t *comm);
/* Helper functions */
unsigned long (*get_version)(void);
char * (*get_version_string)(void);
int (*maddr_ib_pton)(const char *mlid_str, const char *mgid_str, fca_mcast_addr_t *dst);
int (*maddr_inet_pton)(int af, const char *src, fca_mcast_addr_t *dst);
fca_init_spec_t *(*parse_spec_file)(char* spec_ini_file);
@ -143,42 +141,6 @@ struct mca_coll_fca_component_t {
/** MCA parameter: Enable FCA */
int fca_enable;
/** MCA parameter: Enable FCA Barrier */
int fca_enable_barrier;
/** MCA parameter: Enable FCA Bcast */
int fca_enable_bcast;
/** MCA parameter: Enable FCA Reduce */
int fca_enable_reduce;
/** MCA parameter: Enable FCA Reduce_Scatter */
int fca_enable_reduce_scatter;
/** MCA parameter: Enable FCA Allreduce */
int fca_enable_allreduce;
/** MCA parameter: Enable FCA Allgather */
int fca_enable_allgather;
/** MCA parameter: Enable FCA Allgatherv */
int fca_enable_allgatherv;
/** MCA parameter: Enable FCA Gather */
int fca_enable_gather;
/** MCA parameter: Enable FCA Gatherv */
int fca_enable_gatherv;
/** MCA parameter: Enable FCA AlltoAll */
int fca_enable_alltoall;
/** MCA parameter: Enable FCA AlltoAllv */
int fca_enable_alltoallv;
/** MCA parameter: Enable FCA AlltoAllw */
int fca_enable_alltoallw;
/** MCA parameter: FCA NP */
int fca_np;
@ -218,22 +180,7 @@ struct mca_coll_fca_module_t {
mca_coll_base_module_t *previous_bcast_module;
mca_coll_base_module_barrier_fn_t previous_barrier;
mca_coll_base_module_t *previous_barrier_module;
mca_coll_base_module_allgather_fn_t previous_allgather;
mca_coll_base_module_t *previous_allgather_module;
mca_coll_base_module_allgatherv_fn_t previous_allgatherv;
mca_coll_base_module_t *previous_allgatherv_module;
mca_coll_base_module_alltoall_fn_t previous_alltoall;
mca_coll_base_module_t *previous_alltoall_module;
mca_coll_base_module_alltoallv_fn_t previous_alltoallv;
mca_coll_base_module_t *previous_alltoallv_module;
mca_coll_base_module_alltoallw_fn_t previous_alltoallw;
mca_coll_base_module_t *previous_alltoallw_module;
mca_coll_base_module_gather_fn_t previous_gather;
mca_coll_base_module_t *previous_gather_module;
mca_coll_base_module_gatherv_fn_t previous_gatherv;
mca_coll_base_module_t *previous_gatherv_module;
mca_coll_base_module_reduce_scatter_fn_t previous_reduce_scatter;
mca_coll_base_module_t *previous_reduce_scatter_module;
};
typedef struct mca_coll_fca_module_t mca_coll_fca_module_t;
@ -262,58 +209,7 @@ int mca_coll_fca_reduce(void *sbuf, void* rbuf, int count,
int mca_coll_fca_barrier(struct ompi_communicator_t *comm,
mca_coll_base_module_t *module);
int mca_coll_fca_allgather(void *sbuf, int scount, struct ompi_datatype_t *sdtype,
void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module);
int mca_coll_fca_allgatherv(void *sbuf, int scount,
struct ompi_datatype_t *sdtype,
void *rbuf, int *rcounts, int *disps,
struct ompi_datatype_t *rdtype,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module);
int mca_coll_fca_alltoall(void *sbuf, int scount,
struct ompi_datatype_t *sdtype,
void *rbuf, int rcount,
struct ompi_datatype_t *rdtype,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module);
int mca_coll_fca_alltoallv(void *sbuf, int *scounts, int *sdisps,
struct ompi_datatype_t *sdtype,
void *rbuf, int *rcounts, int *rdisps,
struct ompi_datatype_t *rdtype,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module);
int mca_coll_fca_alltoallw(void *sbuf, int *scounts, int *sdisps,
struct ompi_datatype_t **sdtypes,
void *rbuf, int *rcounts, int *rdisps,
struct ompi_datatype_t **rdtypes,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module);
int mca_coll_fca_gather(void *sbuf, int scount,
struct ompi_datatype_t *sdtype,
void *rbuf, int rcount,
struct ompi_datatype_t *rdtype,
int root, struct ompi_communicator_t *comm,
mca_coll_base_module_t *module);
int mca_coll_fca_gatherv(void *sbuf, int scount,
struct ompi_datatype_t *sdtype,
void *rbuf, int *rcounts, int *disps,
struct ompi_datatype_t *rdtype, int root,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module);
int mca_coll_fca_reduce_scatter(void *sbuf, void *rbuf, int *rcounts,
struct ompi_datatype_t *dtype,
struct ompi_op_t *op,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module);
END_C_DECLS

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

@ -65,8 +65,7 @@ mca_coll_fca_component_t mca_coll_fca_component = {
#define FCA_MINOR_BIT (16UL)
#define FCA_MAJOR_BIT (24UL)
#define FCA_API_ABI_MAJOR (2)
#define FCA_API_ABI_MINOR (0)
#define FCA_API_CLEAR_MICRO(__x) ((__x>>FCA_MINOR_BIT)<<FCA_MINOR_BIT)
#define FCA_API_VER(__major,__minor) (__major<<FCA_MAJOR_BIT | __minor<<FCA_MINOR_BIT)
@ -95,8 +94,7 @@ static int mca_coll_fca_mpi_progress_cb(void)
if (!mca_coll_fca_component.fca_context)
return 0;
if (mca_coll_fca_component.fca_ops.progress)
mca_coll_fca_component.fca_ops.progress(mca_coll_fca_component.fca_context);
mca_coll_fca_component.fca_ops.progress(mca_coll_fca_component.fca_context);
return 0;
}
@ -105,7 +103,7 @@ static int mca_coll_fca_mpi_progress_cb(void)
*/
static void mca_coll_fca_init_fca_translations(void)
{
int i;
int i, ret;
for (i = 0; i < FCA_DT_MAX_PREDEFINED; ++i) {
mca_coll_fca_component.fca_dtypes[i].mpi_dtype = MPI_DATATYPE_NULL;
@ -138,20 +136,10 @@ int mca_coll_fca_get_fca_lib(struct ompi_communicator_t *comm)
FCA_VERBOSE(1, "FCA Loaded from: %s", mca_coll_fca_component.fca_lib_path);
GET_FCA_SYM(get_version);
GET_FCA_SYM(get_version_string);
fca_ver = FCA_API_CLEAR_MICRO(mca_coll_fca_component.fca_ops.get_version());
if (fca_ver < FCA_API_VER(FCA_API_ABI_MAJOR,FCA_API_ABI_MINOR)) {
FCA_ERROR("Unsupported FCA version: %s Please upgrade FCA to at least v%d.%d",
mca_coll_fca_component.fca_ops.get_version_string(),
FCA_API_ABI_MAJOR,
FCA_API_ABI_MINOR);
return OMPI_ERROR;
}
GET_FCA_SYM(init);
GET_FCA_SYM(cleanup);
GET_FCA_SYM(progress);
GET_FCA_SYM(comm_new);
GET_FCA_SYM(comm_end);
GET_FCA_SYM(get_rank_info);
@ -163,8 +151,6 @@ int mca_coll_fca_get_fca_lib(struct ompi_communicator_t *comm)
GET_FCA_SYM(do_all_reduce);
GET_FCA_SYM(do_bcast);
GET_FCA_SYM(do_barrier);
GET_FCA_SYM(do_allgather);
GET_FCA_SYM(do_allgatherv);
GET_FCA_SYM(maddr_ib_pton);
GET_FCA_SYM(maddr_inet_pton);
GET_FCA_SYM(parse_spec_file);
@ -193,13 +179,18 @@ int mca_coll_fca_get_fca_lib(struct ompi_communicator_t *comm)
mca_coll_fca_component.fca_ops.free_init_spec(spec);
mca_coll_fca_init_fca_translations();
opal_progress_register(mca_coll_fca_mpi_progress_cb);
if (fca_ver > FCA_API_VER(1,2)) {
GET_FCA_SYM(progress);
opal_progress_register(mca_coll_fca_mpi_progress_cb);
}
return OMPI_SUCCESS;
}
static void mca_coll_fca_close_fca_lib(void)
{
opal_progress_unregister(mca_coll_fca_mpi_progress_cb);
if (NULL != mca_coll_fca_component.fca_ops.progress) {
opal_progress_unregister(mca_coll_fca_mpi_progress_cb);
}
mca_coll_fca_component.fca_ops.cleanup(mca_coll_fca_component.fca_context);
mca_coll_fca_component.fca_context = NULL;
dlclose(mca_coll_fca_component.fca_lib_handle);
@ -248,80 +239,6 @@ static int fca_register(void)
64,
&mca_coll_fca_component.fca_np);
mca_base_param_reg_int(c, "enable_barrier",
"[1|0|] Enable/Disable FCA Barrier support",
false, false,
1,
&mca_coll_fca_component.fca_enable_barrier);
mca_base_param_reg_int(c, "enable_bcast",
"[1|0|] Enable/Disable FCA Bcast support",
false, false,
1,
&mca_coll_fca_component.fca_enable_bcast);
mca_base_param_reg_int(c, "enable_reduce",
"[1|0|] Enable/Disable FCA Reduce support",
false, false,
1,
&mca_coll_fca_component.fca_enable_reduce);
mca_base_param_reg_int(c, "enable_reduce_scatter",
"[1|0|] Enable/Disable FCA Reduce support",
false, false,
0,
&mca_coll_fca_component.fca_enable_reduce_scatter);
mca_base_param_reg_int(c, "enable_allreduce",
"[1|0|] Enable/Disable FCA Allreduce support",
false, false,
1,
&mca_coll_fca_component.fca_enable_allreduce);
mca_base_param_reg_int(c, "enable_allgather",
"[1|0|] Enable/Disable FCA Allgather support",
false, false,
0,
&mca_coll_fca_component.fca_enable_allgather);
mca_base_param_reg_int(c, "enable_allgatherv",
"[1|0|] Enable/Disable FCA Allgatherv support",
false, false,
0,
&mca_coll_fca_component.fca_enable_allgatherv);
mca_base_param_reg_int(c, "enable_gather",
"[1|0|] Enable/Disable FCA Gather support",
false, false,
0,
&mca_coll_fca_component.fca_enable_gather);
mca_base_param_reg_int(c, "enable_gatherv",
"[1|0|] Enable/Disable FCA Gatherv support",
false, false,
0,
&mca_coll_fca_component.fca_enable_gatherv);
mca_base_param_reg_int(c, "enable_alltoall",
"[1|0|] Enable/Disable FCA AlltoAll support",
false, false,
0,
&mca_coll_fca_component.fca_enable_alltoall);
mca_base_param_reg_int(c, "enable_alltoallv",
"[1|0|] Enable/Disable FCA AlltoAllv support",
false, false,
0,
&mca_coll_fca_component.fca_enable_alltoallv);
mca_base_param_reg_int(c, "enable_alltoallw",
"[1|0|] Enable/Disable FCA AlltoAllw support",
false, false,
0,
&mca_coll_fca_component.fca_enable_alltoallw);
return OMPI_SUCCESS;
}

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

@ -50,23 +50,37 @@ static int __get_local_ranks(mca_coll_fca_module_t *fca_module)
{
ompi_communicator_t *comm = fca_module->comm;
ompi_proc_t* proc;
int rank;
int rank, index;
/* Count local ranks */
fca_module->num_local_procs = 0;
for (rank = 0; rank < ompi_comm_size(comm); ++rank) {
proc = __local_rank_lookup(comm, rank);
if (FCA_IS_LOCAL_PROCESS(proc->proc_flags))
++fca_module->num_local_procs;
FCA_MODULE_VERBOSE(fca_module, 4, "rank %d flags 0x%x host %s", rank,
proc->proc_flags,
proc->proc_hostname);
}
fca_module->local_ranks = calloc(fca_module->num_local_procs, sizeof *fca_module->local_ranks);
/* Get local ranks */
index = 0;
for (rank = 0; rank< ompi_comm_size(comm); ++rank) {
proc = __local_rank_lookup(comm, rank);
if (!FCA_IS_LOCAL_PROCESS(proc->proc_flags))
continue;
if (rank == fca_module->rank) {
fca_module->local_proc_idx = fca_module->num_local_procs;
}
++fca_module->num_local_procs;
if (rank == fca_module->rank)
fca_module->local_proc_idx = index;
fca_module->local_ranks[index] = rank;
++index;
}
FCA_MODULE_VERBOSE(fca_module, 3, "i am %d/%d", fca_module->local_proc_idx,
fca_module->num_local_procs);
FCA_MODULE_VERBOSE(fca_module, 3, "num_local_ranks: %d, node_root: %d",
fca_module->num_local_procs, fca_module->local_ranks[0]);
return OMPI_SUCCESS;
}
@ -173,28 +187,23 @@ int __fca_comm_new(mca_coll_fca_module_t *fca_module)
static int __create_fca_comm(mca_coll_fca_module_t *fca_module)
{
fca_comm_init_spec_t spec;
int rc, ret, node_root;
int comm_size;
fca_comm_desc_t comm_desc;
int rc, ret;
rc = __fca_comm_new(fca_module);
if (rc != OMPI_SUCCESS)
return rc;
/* allocate comm_init_spec */
comm_size = ompi_comm_size(fca_module->comm);
spec.rank = fca_module->rank;
spec.size = comm_size;
spec.desc = fca_module->fca_comm_desc;
spec.proc_idx = fca_module->local_proc_idx;
spec.num_procs = fca_module->num_local_procs;
FCA_MODULE_VERBOSE(fca_module, 1, "Starting COMM_INIT comm_id %d proc_idx %d num_procs %d",
fca_module->fca_comm_desc.comm_id, fca_module->local_proc_idx,
fca_module->num_local_procs);
ret = mca_coll_fca_component.fca_ops.comm_init(mca_coll_fca_component.fca_context,
&spec, &fca_module->fca_comm);
fca_module->local_proc_idx,
fca_module->num_local_procs,
ompi_comm_size(fca_module->comm),
&fca_module->fca_comm_desc,
&fca_module->fca_comm);
if (ret < 0) {
FCA_ERROR("COMM_INIT failed: %s", mca_coll_fca_component.fca_ops.strerror(ret));
return OMPI_ERROR;
@ -231,33 +240,43 @@ static void __destroy_fca_comm(mca_coll_fca_module_t *fca_module)
fca_module->fca_comm_desc.comm_id);
}
#define FCA_SAVE_PREV_COLL_API(__api) do {\
fca_module->previous_ ## __api = comm->c_coll.coll_ ## __api;\
fca_module->previous_ ## __api ## _module = comm->c_coll.coll_ ## __api ## _module;\
OBJ_RETAIN(fca_module->previous_ ## __api ## _module);\
if (!comm->c_coll.coll_ ## __api || !comm->c_coll.coll_ ## __api ## _module) {\
FCA_VERBOSE(1, "(%d/%s): no underlying " # __api"; disqualifying myself",\
comm->c_contextid, comm->c_name);\
return OMPI_ERROR;\
}\
} while(0)
static int __save_coll_handlers(mca_coll_fca_module_t *fca_module)
{
ompi_communicator_t *comm = fca_module->comm;
FCA_SAVE_PREV_COLL_API(barrier);
FCA_SAVE_PREV_COLL_API(bcast);
FCA_SAVE_PREV_COLL_API(reduce);
FCA_SAVE_PREV_COLL_API(allreduce);
FCA_SAVE_PREV_COLL_API(allgather);
FCA_SAVE_PREV_COLL_API(allgatherv);
FCA_SAVE_PREV_COLL_API(gather);
FCA_SAVE_PREV_COLL_API(gatherv);
FCA_SAVE_PREV_COLL_API(alltoall);
FCA_SAVE_PREV_COLL_API(alltoallv);
FCA_SAVE_PREV_COLL_API(alltoallw);
FCA_SAVE_PREV_COLL_API(reduce_scatter);
if (!comm->c_coll.coll_reduce || !comm->c_coll.coll_reduce_module ||
!comm->c_coll.coll_allreduce || !comm->c_coll.coll_allreduce_module ||
!comm->c_coll.coll_bcast || !comm->c_coll.coll_bcast_module ||
!comm->c_coll.coll_barrier || !comm->c_coll.coll_barrier_module) {
FCA_VERBOSE(1, "(%d/%s): no underlying reduce; disqualifying myself",
comm->c_contextid, comm->c_name);
return OMPI_ERROR;
}
fca_module->previous_allreduce = comm->c_coll.coll_allreduce;
fca_module->previous_allreduce_module = comm->c_coll.coll_allreduce_module;
OBJ_RETAIN(fca_module->previous_allreduce_module);
FCA_VERBOSE(14, "saving fca_module->previous_allreduce_module=%p, fca_module->previous_allreduce=%p, fca_module=%p,fca_module->super.coll_allreduce=%p",
fca_module->previous_allreduce_module, fca_module->previous_allreduce, fca_module, fca_module->super.coll_allreduce);
fca_module->previous_reduce = comm->c_coll.coll_reduce;
fca_module->previous_reduce_module = comm->c_coll.coll_reduce_module;
OBJ_RETAIN(fca_module->previous_reduce_module);
FCA_VERBOSE(14, "saving fca_module->previous_reduce_module=%p, fca_module->previous_reduce=%p, fca_module=%p,fca_module->super.coll_reduce=%p",
fca_module->previous_reduce_module, fca_module->previous_reduce, fca_module, fca_module->super.coll_reduce);
fca_module->previous_bcast = comm->c_coll.coll_bcast;
fca_module->previous_bcast_module = comm->c_coll.coll_bcast_module;
OBJ_RETAIN(fca_module->previous_bcast_module);
FCA_VERBOSE(14, "saving fca_module->bcast=%p, fca_module->bcast_module=%p, fca_module=%p, fca_module->super.coll_bcast=%p",
fca_module->previous_bcast, fca_module->previous_bcast_module, fca_module, fca_module->super.coll_bcast);
fca_module->previous_barrier = comm->c_coll.coll_barrier;
fca_module->previous_barrier_module = comm->c_coll.coll_barrier_module;
OBJ_RETAIN(fca_module->previous_barrier_module);
FCA_VERBOSE(14, "saving fca_module->barrier=%p, fca_module->barrier_module=%p, fca_module=%p, fca_module->super.coll_barrier=%p",
fca_module->previous_barrier, fca_module->previous_barrier_module, fca_module, fca_module->super.coll_barrier);
return OMPI_SUCCESS;
}
@ -304,20 +323,12 @@ static int mca_coll_fca_ft_event(int state)
static void mca_coll_fca_module_clear(mca_coll_fca_module_t *fca_module)
{
fca_module->num_local_procs = 0;
fca_module->local_ranks = NULL;
fca_module->fca_comm = NULL;
fca_module->previous_barrier = NULL;
fca_module->previous_bcast = NULL;
fca_module->previous_reduce = NULL;
fca_module->previous_allreduce = NULL;
fca_module->previous_allgather = NULL;
fca_module->previous_allgatherv = NULL;
fca_module->previous_gather = NULL;
fca_module->previous_gatherv = NULL;
fca_module->previous_alltoall = NULL;
fca_module->previous_alltoallv = NULL;
fca_module->previous_alltoallw = NULL;
fca_module->previous_reduce_scatter = NULL;
fca_module->previous_allreduce = NULL;
fca_module->previous_reduce = NULL;
fca_module->previous_bcast = NULL;
fca_module->previous_barrier = NULL;
}
static void mca_coll_fca_module_construct(mca_coll_fca_module_t *fca_module)
@ -330,21 +341,16 @@ static void mca_coll_fca_module_destruct(mca_coll_fca_module_t *fca_module)
{
FCA_VERBOSE(5, "==>");
int rc = OMPI_SUCCESS;
OBJ_RELEASE(fca_module->previous_barrier_module);
OBJ_RELEASE(fca_module->previous_bcast_module);
OBJ_RELEASE(fca_module->previous_reduce_module);
OBJ_RELEASE(fca_module->previous_allreduce_module);
OBJ_RELEASE(fca_module->previous_allgather_module);
OBJ_RELEASE(fca_module->previous_allgatherv_module);
OBJ_RELEASE(fca_module->previous_gather_module);
OBJ_RELEASE(fca_module->previous_gatherv_module);
OBJ_RELEASE(fca_module->previous_alltoall_module);
OBJ_RELEASE(fca_module->previous_alltoallv_module);
OBJ_RELEASE(fca_module->previous_alltoallw_module);
OBJ_RELEASE(fca_module->previous_reduce_scatter_module);
OBJ_RELEASE(fca_module->previous_reduce_module);
OBJ_RELEASE(fca_module->previous_bcast_module);
OBJ_RELEASE(fca_module->previous_barrier_module);
if (fca_module->fca_comm)
__destroy_fca_comm(fca_module);
free(fca_module->local_ranks);
mca_coll_fca_module_clear(fca_module);
}
@ -379,19 +385,19 @@ mca_coll_fca_comm_query(struct ompi_communicator_t *comm, int *priority)
fca_module->super.coll_module_enable = mca_coll_fca_module_enable;
fca_module->super.ft_event = mca_coll_fca_ft_event;
fca_module->super.coll_allgather = mca_coll_fca_component.fca_enable_allgather? mca_coll_fca_allgather : NULL;
fca_module->super.coll_allgatherv = mca_coll_fca_component.fca_enable_allgatherv? mca_coll_fca_allgatherv : NULL;
fca_module->super.coll_allreduce = mca_coll_fca_component.fca_enable_allreduce? mca_coll_fca_allreduce : NULL;
fca_module->super.coll_alltoall = mca_coll_fca_component.fca_enable_alltoall? mca_coll_fca_alltoall : NULL;
fca_module->super.coll_alltoallv = mca_coll_fca_component.fca_enable_alltoallv? mca_coll_fca_alltoallv : NULL;
fca_module->super.coll_alltoallw = mca_coll_fca_component.fca_enable_alltoallw? mca_coll_fca_alltoallw : NULL;
fca_module->super.coll_barrier = mca_coll_fca_component.fca_enable_barrier? mca_coll_fca_barrier : NULL;
fca_module->super.coll_bcast = mca_coll_fca_component.fca_enable_bcast? mca_coll_fca_bcast : NULL;
fca_module->super.coll_allgather = NULL;
fca_module->super.coll_allgatherv = NULL;
fca_module->super.coll_allreduce = mca_coll_fca_allreduce;
fca_module->super.coll_alltoall = NULL;
fca_module->super.coll_alltoallv = NULL;
fca_module->super.coll_alltoallw = NULL;
fca_module->super.coll_barrier = mca_coll_fca_barrier;
fca_module->super.coll_bcast = mca_coll_fca_bcast;
fca_module->super.coll_exscan = NULL;
fca_module->super.coll_gather = mca_coll_fca_component.fca_enable_gather? mca_coll_fca_gather : NULL;
fca_module->super.coll_gatherv = mca_coll_fca_component.fca_enable_gatherv? mca_coll_fca_gatherv : NULL;
fca_module->super.coll_reduce = mca_coll_fca_component.fca_enable_reduce? mca_coll_fca_reduce : NULL;
fca_module->super.coll_reduce_scatter = mca_coll_fca_component.fca_enable_reduce_scatter? mca_coll_fca_reduce_scatter : NULL;
fca_module->super.coll_gather = NULL;
fca_module->super.coll_gatherv = NULL;
fca_module->super.coll_reduce = mca_coll_fca_reduce;
fca_module->super.coll_reduce_scatter = NULL;
fca_module->super.coll_scan = NULL;
fca_module->super.coll_scatter = NULL;
fca_module->super.coll_scatterv = NULL;

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

@ -12,6 +12,20 @@
#include "coll_fca.h"
/**
* Returns the index of the rank 'ran' in the local ranks group, or -1 if not exists.
*/
static inline int __find_local_rank(mca_coll_fca_module_t *fca_module, int rank)
{
int i;
for (i = 0; i < fca_module->num_local_procs; ++i) {
if (rank == fca_module->local_ranks[i])
return i;
}
return -1;
}
static mca_coll_fca_dtype_info_t* mca_coll_fca_get_dtype(ompi_datatype_t *dtype)
{
mca_coll_fca_dtype_info_t *dtype_info;
@ -72,18 +86,22 @@ static mca_coll_fca_op_info_t *mca_coll_fca_get_op(ompi_op_t *op)
return NULL;
}
static int mca_coll_fca_get_buf_size(ompi_datatype_t *dtype, int count,
int contiguous_count)
static int mca_coll_fca_get_buf_size(ompi_datatype_t *dtype, int count)
{
ptrdiff_t true_lb, true_extent;
/* Check that the type in contiguous */
if (!FCA_DT_IS_CONTIGUOUS_MEMORY_LAYOUT(dtype, contiguous_count)) {
FCA_DT_GET_TRUE_EXTENT(dtype, &true_lb, &true_extent);
/* If the datatype is the same packed as it is unpacked, we
can save a memory copy and just do the reduction operation
directly. However, if the representation is not the same, then we need to get a
receive convertor and a temporary buffer to receive into. */
if (!FCA_DT_IS_CONTIGUOUS_MEMORY_LAYOUT(dtype, count)) {
FCA_VERBOSE(5, "Unsupported datatype layout, only contiguous is supported now");
return OMPI_ERROR;
}
FCA_DT_GET_TRUE_EXTENT(dtype, &true_lb, &true_extent);
/* TODO add support for non-contiguous layout */
return true_extent * count;
}
@ -164,7 +182,7 @@ int mca_coll_fca_bcast(void *buff, int count, struct ompi_datatype_t *datatype,
FCA_VERBOSE(5,"[%d] Calling mca_coll_fca_bcast, root=%d, count=%d",
ompi_comm_rank(comm), root, count);
spec.size = mca_coll_fca_get_buf_size(datatype, count, count);
spec.size = mca_coll_fca_get_buf_size(datatype, count);
if (spec.size < 0 || spec.size > fca_module->fca_comm_caps.max_payload) {
FCA_VERBOSE(5, "Unsupported bcast operation, dtype=%s[%d] using fallback\n",
datatype->name, count);
@ -173,8 +191,8 @@ int mca_coll_fca_bcast(void *buff, int count, struct ompi_datatype_t *datatype,
}
FCA_VERBOSE(5,"Using FCA Bcast");
spec.buf = buff;
spec.root = root;
spec.buf = buff;
spec.root_indx = __find_local_rank(fca_module, root);
ret = mca_coll_fca_component.fca_ops.do_bcast(fca_module->fca_comm, &spec);
if (ret < 0) {
FCA_ERROR("Bcast failed: %s", mca_coll_fca_component.fca_ops.strerror(ret));
@ -200,11 +218,10 @@ int mca_coll_fca_reduce(void *sbuf, void *rbuf, int count,
fca_reduce_spec_t spec;
int ret;
spec.root = root;
spec.sbuf = sbuf;
spec.rbuf = rbuf;
if (mca_coll_fca_fill_reduce_spec(count, dtype, op, &spec,
fca_module->fca_comm_caps.max_payload)
spec.is_root = fca_module->rank == root;
spec.sbuf = sbuf;
spec.rbuf = rbuf;
if (mca_coll_fca_fill_reduce_spec(count, dtype, op, &spec, fca_module->fca_comm_caps.max_payload)
!= OMPI_SUCCESS) {
FCA_VERBOSE(5, "Unsupported reduce operation %s, using fallback\n", op->o_name);
return fca_module->previous_reduce(sbuf, rbuf, count, dtype, op, root,
@ -236,10 +253,9 @@ int mca_coll_fca_allreduce(void *sbuf, void *rbuf, int count,
fca_reduce_spec_t spec;
int ret;
spec.sbuf = sbuf;
spec.rbuf = rbuf;
if (mca_coll_fca_fill_reduce_spec(count, dtype, op, &spec,
fca_module->fca_comm_caps.max_payload)
spec.sbuf = sbuf;
spec.rbuf = rbuf;
if (mca_coll_fca_fill_reduce_spec(count, dtype, op, &spec, fca_module->fca_comm_caps.max_payload)
!= OMPI_SUCCESS) {
FCA_VERBOSE(5, "Unsupported allreduce operation %s, using fallback\n", op->o_name);
return fca_module->previous_allreduce(sbuf, rbuf, count, dtype, op,
@ -255,178 +271,3 @@ int mca_coll_fca_allreduce(void *sbuf, void *rbuf, int count,
return OMPI_SUCCESS;
}
/*
* Allgather
*
* Function: - allgather
* Accepts: - same as MPI_Allgather()
* Returns: - MPI_SUCCESS or error code
*/
int mca_coll_fca_allgather(void *sbuf, int scount, struct ompi_datatype_t *sdtype,
void *rbuf, int rcount, struct ompi_datatype_t *rdtype,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module)
{
mca_coll_fca_module_t *fca_module = (mca_coll_fca_module_t*)module;
fca_gather_spec_t spec = {0,};
int ret;
spec.sbuf = sbuf;
spec.rbuf = rbuf;
spec.size = mca_coll_fca_get_buf_size(sdtype, scount, scount);
if (spec.size < 0 || spec.size > fca_module->fca_comm_caps.max_payload) {
FCA_VERBOSE(5, "Unsupported allgather operation size %d, using fallback\n",
spec.size);
goto orig_allgather;
}
if (spec.size != mca_coll_fca_get_buf_size(rdtype, rcount, rcount)) {
FCA_VERBOSE(5, "Unsupported allgather: send_size != recv_size\n");
goto orig_allgather;
}
FCA_VERBOSE(5,"Using FCA Allgather");
ret = mca_coll_fca_component.fca_ops.do_allgather(fca_module->fca_comm, &spec);
if (ret < 0) {
FCA_ERROR("Allgather failed: %s", mca_coll_fca_component.fca_ops.strerror(ret));
return OMPI_ERROR;
}
return OMPI_SUCCESS;
orig_allgather:
return fca_module->previous_allgather(sbuf, scount, sdtype, rbuf, rcount, rdtype,
comm, fca_module->previous_allgather_module);
}
int mca_coll_fca_allgatherv(void *sbuf, int scount,
struct ompi_datatype_t *sdtype,
void *rbuf, int *rcounts, int *disps,
struct ompi_datatype_t *rdtype,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module)
{
mca_coll_fca_module_t *fca_module = (mca_coll_fca_module_t*)module;
fca_gatherv_spec_t spec;
int relemsize;
int comm_size;
int i, ret;
comm_size = ompi_comm_size(fca_module->comm);
spec.sbuf = sbuf;
spec.rbuf = rbuf;
spec.sendsize = mca_coll_fca_get_buf_size(sdtype, scount, scount);
if (spec.sendsize < 0 || spec.sendsize > fca_module->fca_comm_caps.max_payload) {
FCA_VERBOSE(5, "Unsupported allgatherv operation size %d, using fallback\n",
spec.sendsize);
goto orig_allgatherv;
}
spec.recvsizes = alloca(sizeof *spec.recvsizes * comm_size);
spec.displs = alloca(sizeof *spec.displs * comm_size);
/* convert MPI counts which depend on dtype) to FCA sizes (which are in bytes) */
relemsize = mca_coll_fca_get_buf_size(rdtype, 1, comm_size);
for (i = 0; i < comm_size; ++i) {
spec.recvsizes[i] *= relemsize;
spec.displs[i] *= relemsize;
}
FCA_VERBOSE(5,"Using FCA Allgatherv");
ret = mca_coll_fca_component.fca_ops.do_allgatherv(fca_module->fca_comm, &spec);
if (ret < 0) {
FCA_ERROR("Allgatherv failed: %s", mca_coll_fca_component.fca_ops.strerror(ret));
return OMPI_ERROR;
}
return OMPI_SUCCESS;
orig_allgatherv:
return fca_module->previous_allgatherv(sbuf, scount, sdtype, rbuf, rcounts,
disps, rdtype, comm,
fca_module->previous_allgatherv_module);
}
int mca_coll_fca_alltoall(void *sbuf, int scount,
struct ompi_datatype_t *sdtype,
void *rbuf, int rcount,
struct ompi_datatype_t *rdtype,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module)
{
mca_coll_fca_module_t *fca_module = (mca_coll_fca_module_t*)module;
/* not implemented yet */
return fca_module->previous_alltoall(sbuf, scount, sdtype, rbuf, rcount, rdtype,
comm, fca_module->previous_alltoall_module);
}
int mca_coll_fca_alltoallv(void *sbuf, int *scounts, int *sdisps,
struct ompi_datatype_t *sdtype,
void *rbuf, int *rcounts, int *rdisps,
struct ompi_datatype_t *rdtype,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module)
{
mca_coll_fca_module_t *fca_module = (mca_coll_fca_module_t*)module;
/* not implemented yet */
return fca_module->previous_alltoallv(sbuf, scounts, sdisps, sdtype, rbuf, rcounts, rdisps, rdtype,
comm, fca_module->previous_alltoallv_module);
}
int mca_coll_fca_alltoallw(void *sbuf, int *scounts, int *sdisps,
struct ompi_datatype_t **sdtypes,
void *rbuf, int *rcounts, int *rdisps,
struct ompi_datatype_t **rdtypes,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module)
{
mca_coll_fca_module_t *fca_module = (mca_coll_fca_module_t*)module;
/* not implemented yet */
return fca_module->previous_alltoallw(sbuf, scounts, sdisps, sdtypes, rbuf, rcounts, rdisps, rdtypes,
comm, fca_module->previous_alltoallw_module);
}
int mca_coll_fca_gather(void *sbuf, int scount,
struct ompi_datatype_t *sdtype,
void *rbuf, int rcount,
struct ompi_datatype_t *rdtype,
int root, struct ompi_communicator_t *comm,
mca_coll_base_module_t *module)
{
mca_coll_fca_module_t *fca_module = (mca_coll_fca_module_t*)module;
/* not implemented yet */
return fca_module->previous_gather(sbuf, scount, sdtype, rbuf, rcount, rdtype, root,
comm, fca_module->previous_gather_module);
}
int mca_coll_fca_gatherv(void *sbuf, int scount,
struct ompi_datatype_t *sdtype,
void *rbuf, int *rcounts, int *disps,
struct ompi_datatype_t *rdtype, int root,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module)
{
mca_coll_fca_module_t *fca_module = (mca_coll_fca_module_t*)module;
/* not implemented yet */
return fca_module->previous_gatherv(sbuf, scount, sdtype, rbuf, rcounts, disps, rdtype, root,
comm, fca_module->previous_gatherv_module);
}
int mca_coll_fca_reduce_scatter(void *sbuf, void *rbuf, int *rcounts,
struct ompi_datatype_t *dtype,
struct ompi_op_t *op,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module)
{
mca_coll_fca_module_t *fca_module = (mca_coll_fca_module_t*)module;
/* not implemented yet */
return fca_module->previous_reduce_scatter(sbuf, rbuf, rcounts, dtype, op,
comm, fca_module->previous_reduce_scatter_module);
}

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

@ -13,7 +13,9 @@
# MCA_coll_fca_CONFIG([action-if-can-compile],
# [action-if-cant-compile])
# ------------------------------------------------
AC_DEFUN([MCA_coll_fca_CONFIG],[
AC_DEFUN([MCA_ompi_coll_fca_CONFIG],[
AC_CONFIG_FILES([ompi/mca/coll/fca/Makefile])
OMPI_CHECK_FCA([coll_fca],
[coll_fca_happy="yes"],
[coll_fca_happy="no"])

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

@ -1,14 +0,0 @@
# -*- shell-script -*-
#
#
# Copyright (c) 2010 Voltaire, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES=Makefile

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

@ -9,6 +9,7 @@
# 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
@ -22,7 +23,7 @@ EXTRA_DIST = .windows
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).
if OMPI_BUILD_coll_hierarch_DSO
if MCA_BUILD_ompi_coll_hierarch_DSO
component_noinst =
component_install = mca_coll_hierarch.la
else

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

@ -1,24 +0,0 @@
# -*- shell-script -*-
#
# 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) 2007 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Specific to this module
PARAM_CONFIG_FILES="Makefile"

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше