
This commit adds support for placing the send memory segment in a traditional shared memory segment when XPMEM is not available. The current default is to reserve 4MB for shared memory on each process. The latest benchmarks show vader performing better than sm on both Intel and AMD CPUs. For large messages vader will now use CMA if it is available (and XPMEM is not). cmr=v1.7.5:reviewer=jsquyres This commit was SVN r30123.
87 строки
3.2 KiB
Bash
87 строки
3.2 KiB
Bash
# -*- shell-script -*-
|
|
#
|
|
# Copyright (c) 2009 The University of Tennessee and The University
|
|
# of Tennessee Research Foundation. All rights
|
|
# reserved.
|
|
# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
|
|
# Copyright (c) 2011 Los Alamos National Security, LLC.
|
|
# All rights reserved.
|
|
# $COPYRIGHT$
|
|
#
|
|
# Additional copyrights may follow
|
|
#
|
|
# $HEADER$
|
|
#
|
|
|
|
# OMPI_CHECK_XPMEM(prefix, [action-if-found], [action-if-not-found])
|
|
# --------------------------------------------------------
|
|
# check if XPMEM support can be found. sets prefix_{CPPFLAGS,
|
|
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
|
|
# support, otherwise executes action-if-not-found
|
|
AC_DEFUN([OMPI_CHECK_XPMEM], [
|
|
OPAL_VAR_SCOPE_PUSH([ompi_check_xpmem_happy])
|
|
AC_ARG_WITH([xpmem],
|
|
[AC_HELP_STRING([--with-xpmem(=DIR)],
|
|
[Build with XPMEM kernel module support, searching for headers in DIR])])
|
|
OMPI_CHECK_WITHDIR([xpmem], [$with_xpmem], [include/xpmem.h])
|
|
|
|
AC_ARG_WITH([xpmem-libdir],
|
|
[AC_HELP_STRING([--with-xpmem-libdir=DIR],
|
|
[Search for XPMEM library in DIR])])
|
|
OMPI_CHECK_WITHDIR([xpmem-libdir], [$with_xpmem_libdir], [libxpmem.*])
|
|
|
|
AS_IF([test "$with_xpmem" != "no"],
|
|
[AS_IF([test ! -z "$with_xpmem" -a "$with_xpmem" != "yes"],
|
|
[ompi_check_xpmem_dir="$with_xpmem"])
|
|
AS_IF([test ! -z "$with_xpmem_libdir" -a "$with_xpmem_libdir" != "yes"],
|
|
[ompi_check_xpmem_libdir="$with_xpmem_libdir"])
|
|
OMPI_CHECK_PACKAGE([$1],[xpmem.h],[xpmem],[xpmem_make],[],
|
|
[$ompi_check_xpmem_dir],[$ompi_check_xpmem_libdir],
|
|
[ompi_check_xpmem_happy="yes"], [ompi_check_xpmem_happy="no"])],
|
|
[ompi_check_xpmem_happy="no"])
|
|
|
|
AS_IF([test "$ompi_check_xpmem_happy" = "yes"],
|
|
[$2],
|
|
[AS_IF([test ! -z "$with_xpmem" -a "$with_xpmem" != "no"],
|
|
[AC_MSG_ERROR([XPMEM support requested but not found. Aborting])])
|
|
$3])
|
|
OPAL_VAR_SCOPE_POP
|
|
])dnl
|
|
|
|
# MCA_btl_sm_CONFIG([action-if-can-compile],
|
|
# [action-if-cant-compile])
|
|
# ------------------------------------------------
|
|
AC_DEFUN([MCA_ompi_btl_vader_CONFIG],[
|
|
AC_CONFIG_FILES([ompi/mca/btl/vader/Makefile])
|
|
|
|
OPAL_VAR_SCOPE_PUSH([btl_vader_xpmem_happy btl_vader_cma_happy])
|
|
|
|
btl_vader_cma_happy=0
|
|
btl_vader_xpmem_happy=0
|
|
|
|
# default to using XPMEM if it is available
|
|
OMPI_CHECK_XPMEM([btl_vader], [btl_vader_xpmem_happy=1], [])
|
|
|
|
AC_DEFINE_UNQUOTED([OMPI_BTL_VADER_HAVE_XPMEM], [$btl_vader_xpmem_happy],
|
|
[If XPMEM support can be enabled within vader])
|
|
|
|
if test $btl_vader_xpmem_happy = 0 ; then
|
|
# check for CMA if requested. it won't be used if xpmem was available
|
|
OMPI_CHECK_CMA([btl_vader], [btl_vader_cma_happy=1], [])
|
|
fi
|
|
|
|
AC_DEFINE_UNQUOTED([OMPI_BTL_VADER_HAVE_CMA], [$btl_vader_cma_happy],
|
|
[If CMA support can be enabled within vader])
|
|
|
|
OPAL_VAR_SCOPE_POP
|
|
|
|
# always happy
|
|
[$1]
|
|
|
|
# substitute in the things needed to build with XPMEM support
|
|
AC_SUBST([btl_vader_CFLAGS])
|
|
AC_SUBST([btl_vader_CPPFLAGS])
|
|
AC_SUBST([btl_vader_LDFLAGS])
|
|
AC_SUBST([btl_vader_LIBS])
|
|
])dnl
|