diff --git a/NEWS b/NEWS index 08c701a671..490e5d4b3b 100644 --- a/NEWS +++ b/NEWS @@ -66,6 +66,7 @@ included in the vX.Y.Z section and be denoted as: - Added OFI MTL (usable with PSM in libfabric v1.1.0). - Added Intel Omni-Path support via new PSM2 MTL. - Added "yalla" PML for faster MXM support. +- Removed support for MX - Added persistent distributed virtual machine (pDVM) support for fast workflow executions. - Fixed typo in GCC inline assembly introduced in Open MPI v1.8.8. diff --git a/README b/README index fec20a5317..c84cd980c7 100644 --- a/README +++ b/README @@ -608,7 +608,6 @@ Network Support - "cm" supports a smaller number of networks (and they cannot be used together), but may provide better overall MPI performance: - - Myrinet MX and Open-MX - QLogic InfiniPath / Intel True Scale PSM - Intel Omni-Path PSM2 - Mellanox MXM @@ -685,9 +684,8 @@ Network Support v2.6.15 with libibverbs v1.1 or later (first released as part of OFED v1.2), per restrictions imposed by the OFED network stack. -- The Myrinet MX BTL has been removed; MX support is now only - available through the MX MTL. Please use a prior version of Open - MPI is you need the MX BTL support. +- Support for Myrinet MX has been removed. Please use a prior version of Open + MPI if you need the MX support. - Linux "knem" support is used when the "vader" or "sm" (shared memory) BTLs are compiled with knem support (see the --with-knem @@ -873,21 +871,6 @@ NETWORKING SUPPORT / OPTIONS directory>/lib64, which covers most cases. This option is only needed for special configurations. ---with-mx= - Specify the directory where the MX libraries and header files are - located. This option is generally only necessary if the MX headers - and libraries are not in default compiler/linker search paths. - - MX is the support library for Myrinet-based networks. An open - source software package named Open-MX provides the same - functionality on Ethernet-based clusters (Open-MX can provide - MPI performance improvements compared to TCP messaging). - ---with-mx-libdir= - Look in directory for the MX libraries. By default, Open MPI will - look in /lib and /lib64, which covers - most cases. This option is only needed for special configurations. - --with-mxm= Specify the directory where the Mellanox MXM library and header files are located. This option is generally only necessary if the @@ -1942,8 +1925,7 @@ Each framework typically has one or more components that are used at run-time. For example, the btl framework is used by the MPI layer to send bytes across different types underlying networks. The tcp btl, for example, sends messages across TCP-based networks; the openib btl -sends messages across OpenFabrics-based networks; the MX btl sends -messages across Myrinet MX / Open-MX networks. +sends messages across OpenFabrics-based networks. Each component typically has some tunable parameters that can be changed at run-time. Use the ompi_info command to check a component @@ -2034,11 +2016,9 @@ passed on the mpirun command line will override an environment variable; an environment variable will override the system-wide defaults. -Each component typically activates itself when relavant. For example, -the MX component will detect that MX devices are present and will -automatically be used for MPI communications. The SLURM component -will automatically detect when running inside a SLURM job and activate -itself. And so on. +Each component typically activates itself when relavant. For +example, the SLURM component will automatically detect when running +inside a SLURM job and activate itself. And so on. Components can be manually activated or deactivated if necessary, of course. The most common components that are manually activated, diff --git a/VERSION b/VERSION index ae8e21b7f0..77c2a9b6a4 100644 --- a/VERSION +++ b/VERSION @@ -100,7 +100,6 @@ liboshmem_so_version=8:0:0 # OMPI layer libmca_common_cuda_so_version=1:7:0 -libmca_common_mx_so_version=2:5:0 libmca_common_sm_so_version=4:4:0 libmca_common_ugni_so_version=2:1:2 libmca_common_verbs_so_version=7:0:0 diff --git a/config/ompi_check_mx.m4 b/config/ompi_check_mx.m4 deleted file mode 100644 index ac7d6e7d52..0000000000 --- a/config/ompi_check_mx.m4 +++ /dev/null @@ -1,140 +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-2007 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) 2009 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# _OMPI_CHECK_MX_MAPPER() -# ------------------------ -# Check if the MX library provide the necessary functions in order to -# figure out the mapper version and MAC for each board. -AC_DEFUN([_OMPI_CHECK_MX_MAPPER],[ - AC_CACHE_CHECK([for mx_open_board], - [ompi_cv_func_mx_open_board], - [AC_LINK_IFELSE([AC_LANG_PROGRAM( - [ -#include -#include -#include - ], [ -mx_open_board(0, NULL); - ])], - [ompi_cv_func_mx_open_board="yes"], - [ompi_cv_func_mx_open_board="no"])]) - - AC_CACHE_CHECK([for mx__get_mapper_state], - [ompi_cv_func_mx__get_mapper_state], - [AC_LINK_IFELSE([AC_LANG_PROGRAM( - [ -#include -#include -#include - ], [ -mx__get_mapper_state(NULL, NULL); - ])], - [ompi_cv_func_mx__get_mapper_state="yes"], - [ompi_cv_func_mx__get_mapper_state="no"])]) - - AS_IF([test "$ompi_cv_func_mx_open_board" = "yes" -a "$ompi_cv_func_mx__get_mapper_state" = "yes"], - [mx_provide_mapper_state=1 - $2], - [mx_provide_mapper_state=0 - $3]) - AC_DEFINE_UNQUOTED([MX_HAVE_MAPPER_STATE], [$mx_provide_mapper_state], - [MX installation provide access to the mx_open_board and mx__get_mapper_state functions]) -]) - - -# OMPI_CHECK_MX(prefix, [action-if-found], [action-if-not-found]) -# -------------------------------------------------------- -# check if MX 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_MX],[ - AC_ARG_WITH([mx], - [AC_HELP_STRING([--with-mx(=DIR)], - [Build MX (Myrinet Express) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])]) - OMPI_CHECK_WITHDIR([mx], [$with_mx], [include/myriexpress.h]) - AC_ARG_WITH([mx-libdir], - [AC_HELP_STRING([--with-mx-libdir=DIR], - [Search for MX (Myrinet Express) libraries in DIR])]) - OMPI_CHECK_WITHDIR([mx-libdir], [$with_mx_libdir], [libmyriexpress.*]) - - ompi_check_mx_$1_save_CPPFLAGS="$CPPFLAGS" - ompi_check_mx_$1_save_LDFLAGS="$LDFLAGS" - ompi_check_mx_$1_save_LIBS="$LIBS" - - AS_IF([test "$with_mx" != "no"], - [AS_IF([test ! -z "$with_mx" -a "$with_mx" != "yes"], - [ompi_check_mx_dir="$with_mx"]) - AS_IF([test ! -z "$with_mx_libdir" -a "$with_mx_libdir" != "yes"], - [ompi_check_mx_libdir="$with_mx_libdir"]) - - OMPI_CHECK_PACKAGE([$1], - [myriexpress.h], - [myriexpress], - [mx_finalize], - [], - [$ompi_check_mx_dir], - [$ompi_check_mx_libdir], - [ompi_check_mx_happy="yes"], - [ompi_check_mx_happy="no"])], - [ompi_check_mx_happy="no"]) - - CPPFLAGS="$CPPFLAGS $$1_CPPFLAGS" - LDFLAGS="$LDFLAGS $$1_LDFLAGS" - LIBS="$LIBS $$1_LIBS" - - # need at least version 1.0 - AS_IF([test "ompi_check_mx_happy" = "yes"], - [AC_CACHE_CHECK([for MX version 1.0 or later], - [ompi_cv_mx_version_ok], - [AC_PREPROC_IFELSE( - [AC_LANG_PROGRAM([ -#include - ],[ -#if MX_API < 0x300 -#error "Version less than 0x300" -#endif - ])], - [ompi_cv_mx_version_ok="yes"], - [ompi_cv_mx_version_ok="no"])])]) - AS_IF([test "$ompi_cv_mx_version_ok" = "no"], [ompi_check_mx_happy="no"]) - - AS_IF([test "$ompi_check_mx_happy" = "yes"], - [AC_CHECK_HEADERS([mx_extensions.h], - [AC_CHECK_FUNCS([mx_forget mx_register_unexp_handler]) - _OMPI_CHECK_MX_MAPPER()], - [AC_MSG_WARN([The MX support for Open MPI will be compiled without the -MX extensions, which may result in lower performance. Please upgrade -to at least MX 1.2.0 to enable the MX extensions.])])]) - - CPPFLAGS="$ompi_check_mx_$1_save_CPPFLAGS" - LDFLAGS="$ompi_check_mx_$1_save_LDFLAGS" - LIBS="$ompi_check_mx_$1_save_LIBS" - - AS_IF([test "$ompi_check_mx_happy" = "yes" -a "$enable_progress_threads" = "yes"], - [AC_MSG_WARN([MX driver does not currently support progress threads. Disabling BTL.]) - ompi_check_mx_happy="no"]) - - AS_IF([test "$ompi_check_mx_happy" = "yes"], - [$2], - [AS_IF([test ! -z "$with_mx" -a "$with_mx" != "no"], - [AC_MSG_ERROR([MX support requested but not found. Aborting])]) - $3]) -]) - diff --git a/ompi/debuggers/Makefile.am b/ompi/debuggers/Makefile.am index 93a3046755..3e48af84c8 100644 --- a/ompi/debuggers/Makefile.am +++ b/ompi/debuggers/Makefile.am @@ -10,7 +10,6 @@ # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. # Copyright (c) 2007-2015 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2015 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -44,14 +43,13 @@ headers = \ # Simple checks to ensure that the DSOs are functional dlopen_test_SOURCES = dlopen_test.c -dlopen_test_LDFLAGS = $(OMPI_WRAPPER_EXTRA_LDFLAGS) dlopen_test_LDADD = \ $(top_builddir)/ompi/libmpi.la \ $(top_builddir)/opal/libopen-pal.la dlopen_test_DEPENDENCIES = $(ompi_predefined_LDADD) predefined_gap_test_SOURCES = predefined_gap_test.c -predefined_gap_test_LDFLAGS = $(OMPI_WRAPPER_EXTRA_LDFLAGS) +predefined_gap_test_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) predefined_gap_test_LDADD = $(top_builddir)/ompi/libmpi.la predefined_gap_test_DEPENDENCIES = $(ompi_predefined_LDADD) diff --git a/ompi/mca/common/mx/Makefile.am b/ompi/mca/common/mx/Makefile.am deleted file mode 100644 index e717ab9c7d..0000000000 --- a/ompi/mca/common/mx/Makefile.am +++ /dev/null @@ -1,94 +0,0 @@ -# -# 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) 2009-2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# A word of explanation... -# -# This library is linked against various MCA components because all -# shared-memory based components (e.g., mpool, ptl, etc.) need to -# share some common code and data. There's two cases: -# -# 1. libmca_common_portals.la is a shared library. By linking that shared -# library to all components that need it, the OS linker will -# automatically load it into the process as necessary, and there will -# only be one copy (i.e., all the components will share *one* copy of -# the code and data). -# 2. libmca_common_portals.la is a static library. In this case, it -# will be rolled up into the top-level libmpi.la. It will also be -# rolled into each component, but then the component will also be -# rolled up into the upper-level libmpi.la. Libtool sorts this all -# out and it all works out in the end. -# -# Note that building this common component statically and linking -# against other dynamic components is *not* supported! - - -AM_CPPFLAGS = $(common_mx_CPPFLAGS) - -# Header files - -headers = \ - common_mx.h - -# Source files - -sources = \ - common_mx.c - - -lib_LTLIBRARIES = -noinst_LTLIBRARIES = -comp_inst = libmca_common_mx.la -comp_noinst = libmca_common_mx_noinst.la - -if MCA_BUILD_ompi_common_mx_DSO -lib_LTLIBRARIES += $(comp_inst) -else -noinst_LTLIBRARIES += $(comp_noinst) -endif - -libmca_common_mx_la_SOURCES = $(headers) $(sources) -libmca_common_mx_la_LDFLAGS = -version-info $(libmca_common_mx_so_version) $(common_mx_LDFLAGS) -libmca_common_mx_la_LIBADD = $(common_mx_LIBS) - -libmca_common_mx_noinst_la_SOURCES = $(libmca_common_mx_la_SOURCES) -libmca_common_mx_noinst_la_LDFLAGS = $(common_mx_LDFLAGS) -libmca_common_mx_noinst_la_LIBADD = $(common_mx_LIBS) - - -# Conditionally install the header files - -if WANT_INSTALL_HEADERS -ompidir = $(includedir)/openmpi/$(subdir) -ompi_HEADERS = $(headers) -endif - -# These two rules will sym link the "noinst" libtool library filename -# to the installable libtool library filename in the case where we are -# compiling this component statically (case 2), described above). - -all-local: - if test -z "$(lib_LTLIBRARIES)"; then \ - rm -f "$(comp_inst)"; \ - $(LN_S) "$(comp_noinst)" "$(comp_inst)"; \ - fi - -clean-local: - if test -z "$(lib_LTLIBRARIES)"; then \ - rm -f "$(comp_inst)"; \ - fi diff --git a/ompi/mca/common/mx/common_mx.c b/ompi/mca/common/mx/common_mx.c deleted file mode 100644 index 949a383354..0000000000 --- a/ompi/mca/common/mx/common_mx.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (c) 2004-2006 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-2006 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2008 Myricom. All rights reserved. - * Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. - * Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" -#include "ompi/constants.h" -#include "common_mx.h" - -#include -#include "opal/memoryhooks/memory.h" -#include "opal/util/output.h" -#include "ompi/runtime/params.h" - - -int mx__regcache_clean(void *ptr, size_t size); - -static int ompi_common_mx_initialize_ref_cnt = 0; -static int ompi_common_mx_available = 0; -static int ompi_common_mx_memory_cb_registered = 0; - -static void -memory_release_cb(void *buf, size_t length, void *cbdata, bool from_alloc) -{ - mx__regcache_clean(buf, length); -} - - -int -ompi_common_mx_initialize(void) -{ - mx_return_t mx_return; - int ret = OMPI_SUCCESS; - - ompi_common_mx_initialize_ref_cnt++; - - if(ompi_common_mx_initialize_ref_cnt == 1) { - /* set the MX error handle to always return. This function is the - * only MX function allowed to be called before mx_init in order - * to make sure that if the MX is not up and running the MX - * library does not exit the application. - */ - mx_set_error_handler(MX_ERRORS_RETURN); - - /* If we have a memory manager available, then tell MX to use - the rcache */ - if (0 != (OPAL_MEMORY_FREE_SUPPORT & opal_mem_hooks_support_level())) { - if (OMPI_SUCCESS == - opal_mem_hooks_register_release(memory_release_cb, NULL)) { - ompi_common_mx_memory_cb_registered = 1; - setenv("MX_RCACHE", "2", 1); - } - } - - /* initialize the mx library */ - mx_return = mx_init(); - - if(MX_SUCCESS != mx_return) { - ompi_common_mx_available = -1; - if (0 != ompi_common_mx_memory_cb_registered) { - opal_mem_hooks_unregister_release(memory_release_cb); - ompi_common_mx_memory_cb_registered = 0; - } - opal_output(0, - "Error in mx_init (error %s)\n", - mx_strerror(mx_return)); - /* We did not succeed to initialize the MX device */ - ompi_common_mx_initialize_ref_cnt = 0; - return OMPI_ERR_NOT_AVAILABLE; - } - ompi_common_mx_available = 1; - } else if (ompi_common_mx_available < 0) { - ret = OMPI_ERR_NOT_AVAILABLE; - } - - return ret; -} - -int -ompi_common_mx_finalize(void) -{ - ompi_common_mx_initialize_ref_cnt--; - if( 0 == ompi_common_mx_initialize_ref_cnt ) { - mx_return_t mx_return; - - if (0 != ompi_common_mx_memory_cb_registered) { - opal_mem_hooks_unregister_release(memory_release_cb); - ompi_common_mx_memory_cb_registered = 0; - } - - mx_return = mx_finalize(); - if(mx_return != MX_SUCCESS){ - opal_output(0, "Error in mx_finalize (error %s)\n", mx_strerror(mx_return)); - return OMPI_ERROR; - } - } - return OMPI_SUCCESS; -} diff --git a/ompi/mca/common/mx/common_mx.h b/ompi/mca/common/mx/common_mx.h deleted file mode 100644 index 722f187a13..0000000000 --- a/ompi/mca/common/mx/common_mx.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2004-2006 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-2006 The Regents of the University of California. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef OMPI_MCA_COMMON_MX_H -#define OMPI_MCA_COMMON_MX_H - -#include "ompi_config.h" -#include "myriexpress.h" - - -/** - * Initialize mx library - * * - * @retval OMPI_SUCCESS MX successfully initialized - * @retval OMPI_ERR_NOT_AVAILABLE MX could not be initialized - */ -OMPI_DECLSPEC int ompi_common_mx_initialize(void); - - -/** - * Shut down mx library - * - */ -OMPI_DECLSPEC int ompi_common_mx_finalize(void); - - - -#endif /* OMPI_MCA_COMMON_PORTALS_H */ diff --git a/ompi/mca/common/mx/configure.m4 b/ompi/mca/common/mx/configure.m4 deleted file mode 100644 index 04bbfa0b68..0000000000 --- a/ompi/mca/common/mx/configure.m4 +++ /dev/null @@ -1,42 +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) 2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -# MCA_mtl_mx_CONFIG([action-if-can-compile], -# [action-if-cant-compile]) -# ------------------------------------------------ -AC_DEFUN([MCA_ompi_common_mx_CONFIG],[ - AC_CONFIG_FILES([ompi/mca/common/mx/Makefile]) - - OMPI_CHECK_MX([common_mx], - [common_mx_happy="yes"], - [common_mx_happy="no"]) - - AS_IF([test "$common_mx_happy" = "yes"], - [$1], - [$2]) - - # substitute in the things needed to build mx - AC_SUBST([common_mx_CFLAGS]) - AC_SUBST([common_mx_CPPFLAGS]) - AC_SUBST([common_mx_LDFLAGS]) - AC_SUBST([common_mx_LIBS]) -])dnl - diff --git a/ompi/mca/mtl/mx/Makefile.am b/ompi/mca/mtl/mx/Makefile.am deleted file mode 100644 index 93715f5419..0000000000 --- a/ompi/mca/mtl/mx/Makefile.am +++ /dev/null @@ -1,60 +0,0 @@ -# -# 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-2006 The Regents of the University of California. -# All rights reserved. -# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -EXTRA_DIST = post_configure.sh - -AM_CPPFLAGS = $(mtl_mx_CPPFLAGS) - -mtl_mx_sources = \ - mtl_mx.c \ - mtl_mx.h \ - mtl_mx_cancel.c \ - mtl_mx_component.c \ - mtl_mx_endpoint.c \ - mtl_mx_endpoint.h \ - mtl_mx_probe.c \ - mtl_mx_recv.c \ - mtl_mx_request.h \ - mtl_mx_send.c \ - mtl_mx_types.h - -# Make the output library in this directory, and name it either -# mca__.la (for DSO builds) or libmca__.la -# (for static builds). - -if MCA_BUILD_ompi_mtl_mx_DSO -component_noinst = -component_install = mca_mtl_mx.la -else -component_noinst = libmca_mtl_mx.la -component_install = -endif - -mcacomponentdir = $(pkglibdir) -mcacomponent_LTLIBRARIES = $(component_install) -mca_mtl_mx_la_SOURCES = $(mtl_mx_sources) -mca_mtl_mx_la_LIBADD = \ - $(mtl_mx_LIBS) \ - $(top_ompi_builddir)/ompi/mca/common/mx/libmca_common_mx.la -mca_mtl_mx_la_LDFLAGS = -module -avoid-version $(mtl_mx_LDFLAGS) - -noinst_LTLIBRARIES = $(component_noinst) -libmca_mtl_mx_la_SOURCES = $(mtl_mx_sources) -libmca_mtl_mx_la_LIBADD = $(mtl_mx_LIBS) -libmca_mtl_mx_la_LDFLAGS = -module -avoid-version $(mtl_mx_LDFLAGS) diff --git a/ompi/mca/mtl/mx/configure.m4 b/ompi/mca/mtl/mx/configure.m4 deleted file mode 100644 index c45815c858..0000000000 --- a/ompi/mca/mtl/mx/configure.m4 +++ /dev/null @@ -1,49 +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) 2010 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2013 Sandia National Laboratories. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# MCA_ompi_mtl_mx_POST_CONFIG(will_build) -# ---------------------------------------- -# Only require the tag if we're actually going to be built -AC_DEFUN([MCA_ompi_mtl_mx_POST_CONFIG], [ - AS_IF([test "$1" = "1"], [OMPI_REQUIRE_ENDPOINT_TAG([MTL])]) -])dnl - -# MCA_mtl_mx_CONFIG([action-if-can-compile], -# [action-if-cant-compile]) -# ------------------------------------------------ -AC_DEFUN([MCA_ompi_mtl_mx_CONFIG],[ - AC_CONFIG_FILES([ompi/mca/mtl/mx/Makefile]) - - OMPI_CHECK_MX([mtl_mx], - [mtl_mx_happy="yes"], - [mtl_mx_happy="no"]) - - AS_IF([test "$mtl_mx_happy" = "yes"], - [$1], - [$2]) - - # substitute in the things needed to build mx - AC_SUBST([mtl_mx_CFLAGS]) - AC_SUBST([mtl_mx_CPPFLAGS]) - AC_SUBST([mtl_mx_LDFLAGS]) - AC_SUBST([mtl_mx_LIBS]) -])dnl - diff --git a/ompi/mca/mtl/mx/mtl_mx.c b/ompi/mca/mtl/mx/mtl_mx.c deleted file mode 100644 index 00c4f8f738..0000000000 --- a/ompi/mca/mtl/mx/mtl_mx.c +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2010 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-2006 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - -#include "opal/prefetch.h" - -#include "ompi/mca/mtl/mtl.h" -#include "ompi/runtime/ompi_module_exchange.h" -#include "ompi/mca/mtl/base/mtl_base_datatype.h" -#include "ompi/mca/common/mx/common_mx.h" -#include "mtl_mx.h" -#include "mtl_mx_types.h" -#include "mtl_mx_endpoint.h" -#include "mtl_mx_request.h" - -static int -ompi_mtl_mx_add_procs(struct mca_mtl_base_module_t *mtl, - size_t nprocs, - struct ompi_proc_t** procs); -static int -ompi_mtl_mx_del_procs(struct mca_mtl_base_module_t *mtl, - size_t nprocs, - struct ompi_proc_t** procs); - -static int -ompi_mtl_mx_add_comm(struct mca_mtl_base_module_t *mtl, - struct ompi_communicator_t *comm); - -static int -ompi_mtl_mx_del_comm(struct mca_mtl_base_module_t *mtl, - struct ompi_communicator_t *comm); - -mca_mtl_mx_module_t ompi_mtl_mx = { - { - 8191, /* max cid - 2^13 - 1 */ - (1UL << 30), /* max tag value - must allow negatives */ - 0, /* request reserve space */ - 0, /* flags */ - - - ompi_mtl_mx_add_procs, - ompi_mtl_mx_del_procs, - ompi_mtl_mx_finalize, - - ompi_mtl_mx_send, - ompi_mtl_mx_isend, - - ompi_mtl_mx_irecv, - ompi_mtl_mx_iprobe, - ompi_mtl_mx_imrecv, - ompi_mtl_mx_improbe, - - ompi_mtl_mx_cancel, - ompi_mtl_mx_add_comm, - ompi_mtl_mx_del_comm - } -}; - -int ompi_mtl_mx_progress( void ); - -int ompi_mtl_mx_module_init(){ - mx_param_t mx_param; - mx_return_t mx_return; - int32_t nic, ep; - - /* setup params */ - mx_param.key = MX_PARAM_UNEXP_QUEUE_MAX; - mx_param.val.unexp_queue_max = ompi_mtl_mx.mx_unexp_queue_max; - - /* get a local endpoint */ - nic = ompi_mtl_mx.mx_board_num; - if (nic < 0) { - nic = MX_ANY_NIC; - } - ep = ompi_mtl_mx.mx_endpoint_num; - if (ep < 0) { - ep = MX_ANY_ENDPOINT; - } - mx_return = mx_open_endpoint(nic, - ep, - ompi_mtl_mx.mx_filter, - NULL, - 0, - &ompi_mtl_mx.mx_endpoint); - - if(mx_return != MX_SUCCESS) { - opal_output(ompi_mtl_base_framework.framework_output, "Error in mx_open_endpoint (error %s)\n", mx_strerror(mx_return)); - return OMPI_ERROR; - } - - /* get the endpoint address */ - mx_return = mx_get_endpoint_addr( ompi_mtl_mx.mx_endpoint, - &ompi_mtl_mx.mx_endpoint_addr); - - if(mx_return != MX_SUCCESS) { - opal_output(ompi_mtl_base_framework.framework_output, "Error in mx_get_endpoint_addr (error %s)\n", mx_strerror(mx_return)); - return OMPI_ERROR; - } - - mx_return = mx_decompose_endpoint_addr( ompi_mtl_mx.mx_endpoint_addr, &(ompi_mtl_mx.mx_addr.nic_id), - &(ompi_mtl_mx.mx_addr.endpoint_id) ); - - if(mx_return != MX_SUCCESS) { - opal_output(ompi_mtl_base_framework.framework_output, "Error in mx_decompose_endpoint_addr (error %s)\n", mx_strerror(mx_return)); - return OMPI_ERROR; - } - opal_output_verbose(10, ompi_mtl_base_framework.framework_output, - "mtl:mx: local nic %d, endpoint %d, got nic %d, ep %d\n", nic, ep, - (int)ompi_mtl_mx.mx_addr.nic_id, - ompi_mtl_mx.mx_addr.endpoint_id); - - ompi_modex_send( &mca_mtl_mx_component.super.mtl_version, - &ompi_mtl_mx.mx_addr, - sizeof(mca_mtl_mx_addr_t)); - - /* register the mtl mx progress function */ - opal_progress_register(ompi_mtl_mx_progress); - - return OMPI_SUCCESS; -} - -int -ompi_mtl_mx_finalize(struct mca_mtl_base_module_t* mtl) { - mx_return_t mx_return; - - opal_progress_unregister(ompi_mtl_mx_progress); - - /* free resources */ - mx_return = mx_close_endpoint(ompi_mtl_mx.mx_endpoint); - if(mx_return != MX_SUCCESS){ - opal_output(ompi_mtl_base_framework.framework_output, "Error in mx_close_endpoint (error %s)\n", mx_strerror(mx_return)); - return OMPI_ERROR; - } - - return OMPI_SUCCESS; - -} - -int -ompi_mtl_mx_add_procs(struct mca_mtl_base_module_t *mtl, - size_t nprocs, - struct ompi_proc_t** procs) -{ - int i; - assert(mtl == &ompi_mtl_mx.super); - - for( i = 0; i < (int) nprocs; i++ ){ - mca_mtl_mx_endpoint_t* mtl_mx_endpoint = - mca_mtl_mx_endpoint_create(procs[i]); - if(NULL == mtl_mx_endpoint) { - return OMPI_ERROR; - } - procs[i]->proc_endpoints[OMPI_PROC_ENDPOINT_TAG_MTL] = - mtl_mx_endpoint; - } - - /* because mx_connect isn't an interupting function, need to - progress MX as often as possible during the stage gate 2. This - would have happened after the stage gate anyway, so we're just - speeding things up a bit. */ -#if OMPI_ENABLE_PROGRESS_THREADS == 0 - /* switch from letting us sit in the event library for a bit each - time through opal_progress() to completely non-blocking */ - opal_progress_set_event_flag(OPAL_EVLOOP_NONBLOCK); -#endif - - return OMPI_SUCCESS; -} - - -int -ompi_mtl_mx_del_procs(struct mca_mtl_base_module_t *mtl, - size_t nprocs, - struct ompi_proc_t** procs) -{ - return OMPI_SUCCESS; -} - - -int -ompi_mtl_mx_add_comm(struct mca_mtl_base_module_t *mtl, - struct ompi_communicator_t *comm) -{ - return OMPI_SUCCESS; -} - -int -ompi_mtl_mx_del_comm(struct mca_mtl_base_module_t *mtl, - struct ompi_communicator_t *comm) -{ - return OMPI_SUCCESS; -} - - -int ompi_mtl_mx_progress( void ) { - mx_return_t mx_return; - mx_request_t mx_request; - mx_status_t mx_status; - uint32_t result; - mca_mtl_mx_request_t* mtl_mx_request; - int completed = 0; - - while(1){ - mx_return = mx_ipeek(ompi_mtl_mx.mx_endpoint, - &mx_request, - &result); - - if( OPAL_UNLIKELY(mx_return != MX_SUCCESS) ) { - opal_output(ompi_mtl_base_framework.framework_output, "Error in mx_ipeek (error %s)\n", mx_strerror(mx_return)); - } - if(result) { - completed++; - mx_return = mx_test(ompi_mtl_mx.mx_endpoint, - &mx_request, - &mx_status, - &result); - if( OPAL_UNLIKELY(mx_return != MX_SUCCESS) ) { - opal_output(ompi_mtl_base_framework.framework_output, "Error in mx_test (error %s)\n", mx_strerror(mx_return)); - abort(); - } - if( OPAL_UNLIKELY(0 == result) ) { - opal_output(ompi_mtl_base_framework.framework_output, "Error in ompi_mtl_mx_progress, mx_ipeek returned a request, mx_test on the request resulted failure.\n"); - abort(); - } - mtl_mx_request = (mca_mtl_mx_request_t*) mx_status.context; - if(OMPI_MTL_MX_ISEND == mtl_mx_request->type) { - if(mtl_mx_request->free_after) { - free(mtl_mx_request->mx_segment[0].segment_ptr); - } - } else { - assert( OMPI_MTL_MX_IRECV == mtl_mx_request->type ); - - ompi_mtl_datatype_unpack(mtl_mx_request->convertor, - mtl_mx_request->mx_segment[0].segment_ptr, - mx_status.xfer_length); - /* set the status */ - MX_GET_SRC(mx_status.match_info, - mtl_mx_request->super.ompi_req->req_status.MPI_SOURCE); - MX_GET_TAG(mx_status.match_info, - mtl_mx_request->super.ompi_req->req_status.MPI_TAG); - mtl_mx_request->super.ompi_req->req_status._ucount = - mx_status.xfer_length; - } - /* suppose everything went just fine ... */ - mtl_mx_request->super.ompi_req->req_status.MPI_ERROR = OMPI_SUCCESS; - if( OPAL_UNLIKELY(MX_STATUS_SUCCESS != mx_status.code) ) { - if( MX_STATUS_TRUNCATED == mx_status.code ) { - mtl_mx_request->super.ompi_req->req_status.MPI_ERROR = MPI_ERR_TRUNCATE; - } else { - mtl_mx_request->super.ompi_req->req_status.MPI_ERROR = MPI_ERR_INTERN; - } - return completed; - } - mtl_mx_request->super.completion_callback(&mtl_mx_request->super); - return completed; - } else { - return completed; - } - } -} - diff --git a/ompi/mca/mtl/mx/mtl_mx.h b/ompi/mca/mtl/mx/mtl_mx.h deleted file mode 100644 index 08c8742bdb..0000000000 --- a/ompi/mca/mtl/mx/mtl_mx.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2007 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-2006 The Regents of the University of California. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef MTL_MX_H_HAS_BEEN_INCLUDED -#define MTL_MX_H_HAS_BEEN_INCLUDED - -#include "ompi/mca/mtl/mtl.h" -#include "ompi/mca/mtl/base/base.h" -#include "opal/datatype/opal_convertor.h" - - -BEGIN_C_DECLS - -int -ompi_mtl_mx_send(struct mca_mtl_base_module_t* mtl, - struct ompi_communicator_t* comm, - int dest, - int tag, - struct opal_convertor_t *convertor, - mca_pml_base_send_mode_t mode); - -extern int ompi_mtl_mx_isend(struct mca_mtl_base_module_t* mtl, - struct ompi_communicator_t* comm, - int dest, - int tag, - struct opal_convertor_t *convertor, - mca_pml_base_send_mode_t mode, - bool blocking, - mca_mtl_request_t * mtl_request); - -extern int ompi_mtl_mx_irecv(struct mca_mtl_base_module_t* mtl, - struct ompi_communicator_t *comm, - int src, - int tag, - struct opal_convertor_t *convertor, - struct mca_mtl_request_t *mtl_request); - - -extern int ompi_mtl_mx_iprobe(struct mca_mtl_base_module_t* mtl, - struct ompi_communicator_t *comm, - int src, - int tag, - int *flag, - struct ompi_status_public_t *status); - -extern int ompi_mtl_mx_imrecv(struct mca_mtl_base_module_t* mtl, - struct opal_convertor_t *convertor, - struct ompi_message_t **message, - struct mca_mtl_request_t *mtl_request); - -extern int ompi_mtl_mx_improbe(struct mca_mtl_base_module_t *mtl, - struct ompi_communicator_t *comm, - int src, - int tag, - int *matched, - struct ompi_message_t **message, - struct ompi_status_public_t *status); - -extern int ompi_mtl_mx_cancel(struct mca_mtl_base_module_t* mtl, - struct mca_mtl_request_t *mtl_request, - int flag); - -extern int ompi_mtl_mx_finalize(struct mca_mtl_base_module_t* mtl); - -int ompi_mtl_mx_module_init(void); - - - -END_C_DECLS - -#endif /* MTL_MX_H_HAS_BEEN_INCLUDED */ - diff --git a/ompi/mca/mtl/mx/mtl_mx_cancel.c b/ompi/mca/mtl/mx/mtl_mx_cancel.c deleted file mode 100644 index edfc2ca476..0000000000 --- a/ompi/mca/mtl/mx/mtl_mx_cancel.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2004-2006 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-2006 The Regents of the University of California. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - - -#include "mtl_mx.h" -#include "mtl_mx_types.h" -#include "mtl_mx_request.h" - -int -ompi_mtl_mx_cancel(struct mca_mtl_base_module_t* mtl, - struct mca_mtl_request_t *mtl_request, - int flag) -{ - mca_mtl_mx_request_t *mtl_mx_request = - (mca_mtl_mx_request_t*) mtl_request; - uint32_t result; - - mx_cancel(ompi_mtl_mx.mx_endpoint, - &mtl_mx_request->mx_request, - &result); - - /* If MX canceled the request, mark it as canceled and complete - it. Otherwise, keep on going */ - if (result) { - mtl_request->ompi_req->req_status._cancelled = true; - mtl_mx_request->super.completion_callback(&mtl_mx_request->super); - } - - return OMPI_SUCCESS; -} diff --git a/ompi/mca/mtl/mx/mtl_mx_component.c b/ompi/mca/mtl/mx/mtl_mx_component.c deleted file mode 100644 index e04d0387cc..0000000000 --- a/ompi/mca/mtl/mx/mtl_mx_component.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2005 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2005 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - -#include "opal/mca/event/event.h" -#include "ompi/mca/mtl/base/base.h" -#include "ompi/mca/common/mx/common_mx.h" - -#include "mtl_mx.h" -#include "mtl_mx_types.h" -#include "mtl_mx_request.h" - -#include "myriexpress.h" - -#define MCA_MTL_MX_QUEUE_LENGTH_MAX 2*1024*1024 -static int ompi_mtl_mx_component_register(void); -static int ompi_mtl_mx_component_open(void); -static int ompi_mtl_mx_component_close(void); -static int ompi_mtl_mx_component_initialized = 0; - -static mca_mtl_base_module_t* ompi_mtl_mx_component_init( bool enable_progress_threads, - bool enable_mpi_threads ); - -mca_mtl_mx_component_t mca_mtl_mx_component = { - - { - /* First, the mca_base_component_t struct containing meta - * information about the component itself */ - - { - MCA_MTL_BASE_VERSION_2_0_0, - - "mx", /* MCA component name */ - OMPI_MAJOR_VERSION, /* MCA component major version */ - OMPI_MINOR_VERSION, /* MCA component minor version */ - OMPI_RELEASE_VERSION, /* MCA component release version */ - ompi_mtl_mx_component_open, /* component open */ - ompi_mtl_mx_component_close, /* component close */ - NULL, - ompi_mtl_mx_component_register - }, - { - /* The component is not checkpoint ready */ - MCA_BASE_METADATA_PARAM_NONE - }, - - ompi_mtl_mx_component_init /* component init */ - } -}; - -static int -ompi_mtl_mx_component_register(void) -{ - ompi_mtl_mx.mx_filter = 0xaaaaffff; - (void) mca_base_component_var_register(&mca_mtl_mx_component.super.mtl_version, "filter", - "user assigned value used to filter incomming messages", - MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, - OPAL_INFO_LVL_9, - MCA_BASE_VAR_SCOPE_READONLY, &ompi_mtl_mx.mx_filter); - - ompi_mtl_mx.mx_timeout = MX_INFINITE; - (void) mca_base_component_var_register(&mca_mtl_mx_component.super.mtl_version, "timeout", - "Timeout for connections", MCA_BASE_VAR_TYPE_INT, - NULL, 0, 0, OPAL_INFO_LVL_9, - MCA_BASE_VAR_SCOPE_READONLY, &ompi_mtl_mx.mx_timeout); - - ompi_mtl_mx.mx_retries = 20; - (void) mca_base_component_var_register(&mca_mtl_mx_component.super.mtl_version, "retries", - "Number of retries for each new connection before considering the peer as unreacheable", - MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, - OPAL_INFO_LVL_9, - MCA_BASE_VAR_SCOPE_READONLY, &ompi_mtl_mx.mx_retries); - - ompi_mtl_mx.mx_support_sharedmem = 1; - (void) mca_base_component_var_register(&mca_mtl_mx_component.super.mtl_version, "shared_mem", - "Enable the MX support for shared memory", MCA_BASE_VAR_TYPE_INT, - NULL, 0, 0, OPAL_INFO_LVL_9, - MCA_BASE_VAR_SCOPE_READONLY, &ompi_mtl_mx.mx_support_sharedmem); - - ompi_mtl_mx.mx_unexp_queue_max = MCA_MTL_MX_QUEUE_LENGTH_MAX; - (void) mca_base_component_var_register(&mca_mtl_mx_component.super.mtl_version, "unexpected_queue_length", - "Length of MX unexpected message queue", MCA_BASE_VAR_TYPE_INT, - NULL, 0, 0, OPAL_INFO_LVL_9, - MCA_BASE_VAR_SCOPE_READONLY, &ompi_mtl_mx.mx_unexp_queue_max); - - ompi_mtl_mx.mx_board_num = -1; - (void) mca_base_component_var_register(&mca_mtl_mx_component.super.mtl_version, "board", - "Which MX board number to use (<0 = any)", - MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, - OPAL_INFO_LVL_9, - MCA_BASE_VAR_SCOPE_READONLY, &ompi_mtl_mx.mx_board_num); - - ompi_mtl_mx.mx_endpoint_num = -1; - (void) mca_base_component_var_register(&mca_mtl_mx_component.super.mtl_version, "endpoint", - "Which MX endpoint number to use (<0 = any)", - MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, - OPAL_INFO_LVL_9, - MCA_BASE_VAR_SCOPE_READONLY, &ompi_mtl_mx.mx_endpoint_num); - - return OMPI_SUCCESS; -} - -static int -ompi_mtl_mx_component_open(void) -{ - if(ompi_mtl_mx.mx_unexp_queue_max > MCA_MTL_MX_QUEUE_LENGTH_MAX) { - ompi_mtl_mx.mx_unexp_queue_max = MCA_MTL_MX_QUEUE_LENGTH_MAX; - } - - return OMPI_SUCCESS; -} - - -static int -ompi_mtl_mx_component_close(void) -{ - --ompi_mtl_mx_component_initialized; - if( 0 == ompi_mtl_mx_component_initialized ) { - int ret = ompi_common_mx_finalize(); - if(OMPI_SUCCESS != ret) { - return OMPI_ERROR; - } - } - return OMPI_SUCCESS; -} - - -static mca_mtl_base_module_t* -ompi_mtl_mx_component_init(bool enable_progress_threads, - bool enable_mpi_threads) -{ - int ret; - - ret = ompi_common_mx_initialize(); - if(OMPI_SUCCESS != ret) { - return NULL; - } - ompi_mtl_mx_component_initialized++; - - ret = ompi_mtl_mx_module_init(); - if (OMPI_SUCCESS != ret) { - return NULL; - } - - ompi_mtl_mx.super.mtl_request_size = - sizeof(mca_mtl_mx_request_t) - - sizeof(struct mca_mtl_request_t); - - return &ompi_mtl_mx.super; -} - diff --git a/ompi/mca/mtl/mx/mtl_mx_endpoint.c b/ompi/mca/mtl/mx/mtl_mx_endpoint.c deleted file mode 100644 index ae1c794ef9..0000000000 --- a/ompi/mca/mtl/mx/mtl_mx_endpoint.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - * 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-2006 The Regents of the University of California. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - - -#include "ompi_config.h" -#include "opal/util/output.h" -#include -#include -#include "ompi/types.h" -#include "mtl_mx.h" -#include "mtl_mx_types.h" -#include "mtl_mx_endpoint.h" -#include "ompi/runtime/ompi_module_exchange.h" - -/* - * Initialize state of the endpoint instance. - * - */ - -static void mca_mtl_mx_endpoint_construct(mca_mtl_mx_endpoint_t* endpoint) -{ - endpoint->mtl_mx_module = NULL; - endpoint->mx_peer = NULL; -} - -/* - * Destroy a endpoint - * - */ - -static void mca_mtl_mx_endpoint_destruct(mca_mtl_mx_endpoint_t* endpoint) -{ -} - - -OBJ_CLASS_INSTANCE( - mca_mtl_mx_endpoint_t, - opal_list_item_t, - mca_mtl_mx_endpoint_construct, - mca_mtl_mx_endpoint_destruct); - - - - - -mca_mtl_mx_endpoint_t* mca_mtl_mx_endpoint_create(ompi_proc_t* ompi_proc) { - mca_mtl_mx_endpoint_t* mtl_mx_endpoint = NULL; - int rc; - mca_mtl_mx_addr_t *mx_peer; - size_t size; - mx_return_t mx_return; - int num_retry = 0; - /* get the remote proc's address (only one) */ - rc = ompi_modex_recv(&mca_mtl_mx_component.super.mtl_version, - ompi_proc, (void**)&mx_peer, &size); - if( rc != OMPI_SUCCESS || size != sizeof(mca_mtl_mx_addr_t)) { - return NULL; - } - - mtl_mx_endpoint = (mca_mtl_mx_endpoint_t*) OBJ_NEW(mca_mtl_mx_endpoint_t); - mtl_mx_endpoint->mx_peer = mx_peer; - - retry_connect: - mx_return = mx_connect(ompi_mtl_mx.mx_endpoint, - mx_peer->nic_id, - mx_peer->endpoint_id, - ompi_mtl_mx.mx_filter, - ompi_mtl_mx.mx_timeout, - &mtl_mx_endpoint->mx_peer_addr); - if(MX_SUCCESS != mx_return) { - char peer_name[MX_MAX_HOSTNAME_LEN]; - if(MX_TIMEOUT == mx_return) { - if( num_retry++ < ompi_mtl_mx.mx_retries ) { - goto retry_connect; - } - } - - if(MX_SUCCESS != mx_nic_id_to_hostname( mx_peer->nic_id, peer_name)) { - sprintf( peer_name, "unknown %lx nic_id", (long)mx_peer->nic_id ); - } - opal_output(ompi_mtl_base_framework.framework_output, - "mx_connect fail for %s with key %x (error %s)\n", - peer_name, ompi_mtl_mx.mx_filter, mx_strerror(mx_return) ); - return NULL; - } - - - return mtl_mx_endpoint; - -} diff --git a/ompi/mca/mtl/mx/mtl_mx_endpoint.h b/ompi/mca/mtl/mx/mtl_mx_endpoint.h deleted file mode 100644 index 8d174f8449..0000000000 --- a/ompi/mca/mtl/mx/mtl_mx_endpoint.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * 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-2006 The Regents of the University of California. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef MCA_MTL_MX_ENDPOINT_H -#define MCA_MTL_MX_ENDPOINT_H - -#include "opal/class/opal_list.h" -#include "opal/mca/event/event.h" -#include "ompi/proc/proc.h" -#include "ompi/mca/mtl/mtl.h" -#include "mtl_mx.h" - -#include "myriexpress.h" - -BEGIN_C_DECLS - -OBJ_CLASS_DECLARATION(mca_mtl_mx_endpoint_t); - -/** - * Structure used to publish MX information to peers - */ -struct mca_mtl_mx_addr_t { - uint64_t nic_id; - uint32_t endpoint_id; -}; -typedef struct mca_mtl_mx_addr_t mca_mtl_mx_addr_t; - -/** - * An abstraction that represents a connection to a endpoint process. - * An instance of mca_mtl_mx_endpoint_t is associated w/ each process - * and MTL pair at startup. However, connections to the endpoint - * are established dynamically on an as-needed basis: - */ - -struct mca_mtl_mx_endpoint_t { - opal_list_item_t super; - - struct mca_mtl_mx_module_t* mtl_mx_module; - /**< MTL instance that created this connection */ - - struct mca_mtl_mx_addr_t* mx_peer; - /** the address as reported by the peer */ - - mx_endpoint_addr_t mx_peer_addr; - /** the remote MX endpoint address */ - - -}; -typedef struct mca_mtl_mx_endpoint_t mca_mtl_mx_endpoint_t; -OBJ_CLASS_DECLARATION(mca_mtl_mx_endpoint); - -mca_mtl_mx_endpoint_t* mca_mtl_mx_endpoint_create(ompi_proc_t*); - - -END_C_DECLS -#endif diff --git a/ompi/mca/mtl/mx/mtl_mx_probe.c b/ompi/mca/mtl/mx/mtl_mx_probe.c deleted file mode 100644 index af30f3451b..0000000000 --- a/ompi/mca/mtl/mx/mtl_mx_probe.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2010 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-2006 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2010-2012 Oracle and/or its affiliates. All rights reserved. - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - -#include "ompi/communicator/communicator.h" -#include "ompi/mca/mtl/base/base.h" - -#include "mtl_mx.h" -#include "mtl_mx_types.h" -#include "mtl_mx_request.h" - - -int -ompi_mtl_mx_iprobe(struct mca_mtl_base_module_t* mtl, - struct ompi_communicator_t *comm, - int src, - int tag, - int *flag, - struct ompi_status_public_t *status) -{ - uint32_t result; - mx_return_t ret; - mx_status_t mx_status; - uint64_t match_bits; - uint64_t mask_bits; - - MX_SET_RECV_BITS(match_bits, - mask_bits, - comm->c_contextid, - src, - tag); - - ret = mx_iprobe(ompi_mtl_mx.mx_endpoint, - match_bits, - mask_bits, - &mx_status, - &result); - if (MX_SUCCESS != ret) { - opal_output(ompi_mtl_base_framework.framework_output, "Error in mx_iprobe (error %s)\n", mx_strerror(ret)); - return OMPI_ERROR; - } - - if (result) { - if(MPI_STATUS_IGNORE != status) { - MX_GET_SRC(mx_status.match_info, status->MPI_SOURCE); - MX_GET_TAG(mx_status.match_info, status->MPI_TAG); - status->_ucount = mx_status.msg_length; - } - *flag = 1; - } else { - *flag = 0; - } - - return OMPI_SUCCESS; -} - - -int -ompi_mtl_mx_improbe(struct mca_mtl_base_module_t *mtl, - struct ompi_communicator_t *comm, - int src, - int tag, - int *matched, - struct ompi_message_t **message, - struct ompi_status_public_t *status) -{ - return OMPI_ERR_NOT_IMPLEMENTED; -} diff --git a/ompi/mca/mtl/mx/mtl_mx_recv.c b/ompi/mca/mtl/mx/mtl_mx_recv.c deleted file mode 100644 index 1d8e5682ab..0000000000 --- a/ompi/mca/mtl/mx/mtl_mx_recv.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2004-2006 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-2006 The Regents of the University of California. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - - -#include "ompi_config.h" -#include "ompi/communicator/communicator.h" -#include "opal/datatype/opal_convertor.h" -#include "ompi/mca/mtl/base/mtl_base_datatype.h" - -#include "mtl_mx.h" -#include "mtl_mx_types.h" -#include "mtl_mx_request.h" - -int -ompi_mtl_mx_irecv(struct mca_mtl_base_module_t* mtl, - struct ompi_communicator_t *comm, - int src, - int tag, - struct opal_convertor_t *convertor, - struct mca_mtl_request_t *mtl_request) -{ - int ret; - mx_return_t mx_return; - mca_mtl_mx_request_t * mtl_mx_request = (mca_mtl_mx_request_t*) mtl_request; - uint64_t match_bits; - uint64_t mask_bits; - size_t length; - - ret = ompi_mtl_datatype_recv_buf(convertor, - &mtl_mx_request->mx_segment[0].segment_ptr, - &length, - &mtl_mx_request->free_after); - - mtl_mx_request->mx_segment[0].segment_length = length; - mtl_mx_request->convertor = convertor; - mtl_mx_request->type = OMPI_MTL_MX_IRECV; - - if(OMPI_SUCCESS != ret) return ret; - - - MX_SET_RECV_BITS(match_bits, - mask_bits, - comm->c_contextid, - src, - tag); - - OPAL_OUTPUT_VERBOSE((50, ompi_mtl_base_framework.framework_output, - "recv bits: 0x%016" PRIu64 " 0x%016" PRIu64 "\n", - match_bits, mask_bits)); - - mx_return = mx_irecv( ompi_mtl_mx.mx_endpoint, - mtl_mx_request->mx_segment, - 1, - match_bits, - mask_bits, - mtl_mx_request, - &mtl_mx_request->mx_request); - if(mx_return != MX_SUCCESS) { - opal_output(ompi_mtl_base_framework.framework_output, "Error in mx_irecv (error %s)\n", mx_strerror(mx_return)); - return OMPI_ERROR; - } - - return OMPI_SUCCESS; -} - - -int -ompi_mtl_mx_imrecv(struct mca_mtl_base_module_t* mtl, - struct opal_convertor_t *convertor, - struct ompi_message_t **message, - struct mca_mtl_request_t *mtl_request) -{ - return OMPI_ERR_NOT_IMPLEMENTED; -} diff --git a/ompi/mca/mtl/mx/mtl_mx_request.h b/ompi/mca/mtl/mx/mtl_mx_request.h deleted file mode 100644 index a92bf69bca..0000000000 --- a/ompi/mca/mtl/mx/mtl_mx_request.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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$ - */ - -#ifndef OMPI_MTL_MX_REQUEST_H -#define OMPI_MTL_MX_REQUEST_H - -#include "opal/datatype/opal_convertor.h" - - -typedef enum { - OMPI_MTL_MX_ISEND, - OMPI_MTL_MX_IRECV -} mca_mtl_mx_request_type_t; - -struct mca_mtl_mx_request_t { - struct mca_mtl_request_t super; - mx_request_t mx_request; - mx_segment_t mx_segment[1]; - struct opal_convertor_t *convertor; - bool free_after; - mca_mtl_mx_request_type_t type; -}; -typedef struct mca_mtl_mx_request_t mca_mtl_mx_request_t; - -#endif diff --git a/ompi/mca/mtl/mx/mtl_mx_send.c b/ompi/mca/mtl/mx/mtl_mx_send.c deleted file mode 100644 index 22cc00d50b..0000000000 --- a/ompi/mca/mtl/mx/mtl_mx_send.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright (c) 2004-2006 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-2006 The Regents of the University of California. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - -#include "opal/prefetch.h" - -#include "ompi/communicator/communicator.h" -#include "opal/datatype/opal_convertor.h" - -#include "mtl_mx.h" -#include "mtl_mx_types.h" -#include "mtl_mx_request.h" -#include "ompi/mca/mtl/base/mtl_base_datatype.h" - -int -ompi_mtl_mx_send(struct mca_mtl_base_module_t* mtl, - struct ompi_communicator_t* comm, - int dest, - int tag, - struct opal_convertor_t *convertor, - mca_pml_base_send_mode_t mode) -{ - mx_return_t mx_return; - uint64_t match_bits; - mca_mtl_mx_request_t mtl_mx_request; - size_t length; - mx_status_t mx_status; - uint32_t result; - ompi_proc_t* ompi_proc = ompi_comm_peer_lookup( comm, dest ); - mca_mtl_mx_endpoint_t* mx_endpoint = (mca_mtl_mx_endpoint_t*) ompi_proc->proc_endpoints[OMPI_PROC_ENDPOINT_TAG_MTL]; - char* where; - - assert(mtl == &ompi_mtl_mx.super); - - MX_SET_SEND_BITS(match_bits, comm->c_contextid, comm->c_my_rank, tag); - - ompi_mtl_datatype_pack(convertor, - &mtl_mx_request.mx_segment[0].segment_ptr, - &length, - &mtl_mx_request.free_after); - - mtl_mx_request.mx_segment[0].segment_length = length; - mtl_mx_request.convertor = convertor; - mtl_mx_request.type = OMPI_MTL_MX_ISEND; - - OPAL_OUTPUT_VERBOSE((50, ompi_mtl_base_framework.framework_output, - "issend bits: 0x%016" PRIu64 "\n", - match_bits)); - - if(mode == MCA_PML_BASE_SEND_SYNCHRONOUS) { - mx_return = mx_issend( ompi_mtl_mx.mx_endpoint, - mtl_mx_request.mx_segment, - 1, - mx_endpoint->mx_peer_addr, - match_bits, - &mtl_mx_request, - &mtl_mx_request.mx_request - ); - where = "mx_issend"; - } else { - mx_return = mx_isend( ompi_mtl_mx.mx_endpoint, - mtl_mx_request.mx_segment, - 1, - mx_endpoint->mx_peer_addr, - match_bits, - &mtl_mx_request, - &mtl_mx_request.mx_request - ); - where = "mx_isend"; - } - if( OPAL_UNLIKELY(mx_return != MX_SUCCESS) ) { - char peer_name[MX_MAX_HOSTNAME_LEN]; - if(MX_SUCCESS != mx_nic_id_to_hostname( mx_endpoint->mx_peer->nic_id, peer_name)) { - sprintf( peer_name, "unknown %lx nic_id", (long)mx_endpoint->mx_peer->nic_id ); - } - opal_output(ompi_mtl_base_framework.framework_output, "Error in %s (error %s) sending to %s\n", - where, mx_strerror(mx_return), peer_name); - - /* Free buffer if needed */ - if(mtl_mx_request.free_after) { - free(mtl_mx_request.mx_segment[0].segment_ptr); - } - return OMPI_ERROR; - } - - do { - mx_return = mx_test(ompi_mtl_mx.mx_endpoint, - &mtl_mx_request.mx_request, - &mx_status, - &result); - if( OPAL_UNLIKELY(mx_return != MX_SUCCESS) ) { - opal_output(ompi_mtl_base_framework.framework_output, "Error in mx_wait (error %s)\n", mx_strerror(mx_return)); - abort(); - } - if( OPAL_UNLIKELY(result && mx_status.code != MX_STATUS_SUCCESS) ) { - opal_output(ompi_mtl_base_framework.framework_output, - "Error in ompi_mtl_mx_send, mx_wait returned something other than MX_STATUS_SUCCESS: mx_status.code = %d.\n", - mx_status.code); - abort(); - } - } while(!result); - - /* Free buffer if needed */ - if(mtl_mx_request.free_after) { - free(mtl_mx_request.mx_segment[0].segment_ptr); - } - - return OMPI_SUCCESS; -} - -int -ompi_mtl_mx_isend(struct mca_mtl_base_module_t* mtl, - struct ompi_communicator_t* comm, - int dest, - int tag, - struct opal_convertor_t *convertor, - mca_pml_base_send_mode_t mode, - bool blocking, - mca_mtl_request_t * mtl_request) -{ - mx_return_t mx_return; - uint64_t match_bits; - mca_mtl_mx_request_t * mtl_mx_request = (mca_mtl_mx_request_t*) mtl_request; - size_t length; - ompi_proc_t* ompi_proc = ompi_comm_peer_lookup( comm, dest ); - mca_mtl_mx_endpoint_t* mx_endpoint = (mca_mtl_mx_endpoint_t*) ompi_proc->proc_endpoints[OMPI_PROC_ENDPOINT_TAG_MTL]; - char* where; - - assert(mtl == &ompi_mtl_mx.super); - - MX_SET_SEND_BITS(match_bits, comm->c_contextid, comm->c_my_rank, tag); - - ompi_mtl_datatype_pack(convertor, - &mtl_mx_request->mx_segment[0].segment_ptr, - &length, - &mtl_mx_request->free_after); - mtl_mx_request->mx_segment[0].segment_length = length; - mtl_mx_request->convertor = convertor; - mtl_mx_request->type = OMPI_MTL_MX_ISEND; - - OPAL_OUTPUT_VERBOSE((50, ompi_mtl_base_framework.framework_output, - "issend bits: 0x%016" PRIu64 "\n", match_bits)); - - if(mode == MCA_PML_BASE_SEND_SYNCHRONOUS) { - mx_return = mx_issend( ompi_mtl_mx.mx_endpoint, - mtl_mx_request->mx_segment, - 1, - mx_endpoint->mx_peer_addr, - match_bits, - mtl_mx_request, - &mtl_mx_request->mx_request - ); - where = "mx_issend"; - } else { - mx_return = mx_isend( ompi_mtl_mx.mx_endpoint, - mtl_mx_request->mx_segment, - 1, - mx_endpoint->mx_peer_addr, - match_bits, - mtl_mx_request, - &mtl_mx_request->mx_request - ); - where = "mx_isend"; - } - if( OPAL_UNLIKELY(mx_return != MX_SUCCESS) ) { - char peer_name[MX_MAX_HOSTNAME_LEN]; - if(MX_SUCCESS != mx_nic_id_to_hostname( mx_endpoint->mx_peer->nic_id, peer_name)) { - sprintf( peer_name, "unknown %lx nic_id", (long)mx_endpoint->mx_peer->nic_id ); - } - opal_output(ompi_mtl_base_framework.framework_output, "Error in %s (error %s) sending to %s\n", - where, mx_strerror(mx_return), peer_name); - return OMPI_ERROR; - } - return OMPI_SUCCESS; -} diff --git a/ompi/mca/mtl/mx/mtl_mx_types.h b/ompi/mca/mtl/mx/mtl_mx_types.h deleted file mode 100644 index d5cfc5268a..0000000000 --- a/ompi/mca/mtl/mx/mtl_mx_types.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2007 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-2006 The Regents of the University of California. - * All rights reserved. - * Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef MTL_MX_TYPES_H_HAS_BEEN_INCLUDED -#define MTL_MX_TYPES_H_HAS_BEEN_INCLUDED - -#include "ompi_config.h" -#include "mtl_mx.h" - -#include "ompi/mca/mtl/mtl.h" -#include "ompi/mca/mtl/base/base.h" -#include "mtl_mx_endpoint.h" - -#include "myriexpress.h" - - -BEGIN_C_DECLS - -/** - * MTL Module Interface - */ -struct mca_mtl_mx_module_t { - mca_mtl_base_module_t super; /**< base MTL interface */ - int32_t mx_unexp_queue_max; /**< maximium size of the MX unexpected message queue */ - int32_t mx_filter; /**< user assigned value used to filter incomming messages */ - int32_t mx_timeout; - int32_t mx_retries; - int32_t mx_support_sharedmem; - int mx_board_num; - int mx_endpoint_num; - mx_endpoint_t mx_endpoint; /**< mx data structure for local endpoint */ - mx_endpoint_addr_t mx_endpoint_addr; /**< mx data structure for local endpoint address */ - mca_mtl_mx_addr_t mx_addr; -}; -typedef struct mca_mtl_mx_module_t mca_mtl_mx_module_t; - -extern mca_mtl_mx_module_t ompi_mtl_mx; - -struct mca_mtl_mx_component_t{ - mca_mtl_base_component_2_0_0_t super; /**< base MTL component */ -}; -typedef struct mca_mtl_mx_component_t mca_mtl_mx_component_t; - -OMPI_MODULE_DECLSPEC extern mca_mtl_mx_component_t mca_mtl_mx_component; - - -/* match/ignore bit manipulation - * - * 01234567 01234567 01234567 01234567 01234567 01234567 01234567 01234567 - * | | - * context id | source | message tag - * | | - */ - -#define MX_SOURCE_MASK 0x0000FFFF00000000ULL -#define MX_TAG_MASK 0x00000000FFFFFFFFULL - -#define MX_SOURCE_IGNR ~MX_SOURCE_MASK - /* we need to keep top bit (sign bit) of the tag - collectives use this to distinguish the message */ -#define MX_TAG_IGNR 0xFFFFFFFF80000000ULL - -/* get the tag from the bits */ -#define MX_GET_TAG(match_bits, tag) \ -{ \ - tag = (int) (match_bits & MX_TAG_MASK); \ -} - - -/* get the tag from the bits */ -#define MX_GET_SRC(match_bits, src) \ -{ \ - src = (int) ((match_bits & MX_SOURCE_MASK) >> 32); \ -} - -/* send posting */ -#define MX_SET_SEND_BITS(match_bits, contextid, source, tag) \ -{ \ - match_bits = contextid; \ - match_bits = (match_bits << 16); \ - match_bits |= source; \ - match_bits = (match_bits << 32); \ - match_bits |= (MX_TAG_MASK & tag); \ -} - -/* receive posting */ -#define MX_SET_RECV_BITS(match_bits, mask_bits, contextid, source, tag) \ -{ \ - match_bits = contextid; \ - match_bits = (match_bits << 16); \ - \ - if (MPI_ANY_SOURCE == source) { \ - mask_bits = MX_SOURCE_IGNR; \ - } else { \ - mask_bits = ~0; \ - match_bits |= source; \ - } \ - match_bits = (match_bits << 32); \ - \ - if (MPI_ANY_TAG == tag) { \ - mask_bits &= MX_TAG_IGNR; \ - } else { \ - match_bits |= (MX_TAG_MASK & tag); \ - } \ -} - - - -END_C_DECLS - -#endif /* MTL_MX_TYPES_H_HAS_BEEN_INCLUDED */ - diff --git a/ompi/mca/mtl/mx/post_configure.sh b/ompi/mca/mtl/mx/post_configure.sh deleted file mode 100644 index 187ae63f35..0000000000 --- a/ompi/mca/mtl/mx/post_configure.sh +++ /dev/null @@ -1 +0,0 @@ -DIRECT_CALL_HEADER="ompi/mca/mtl/mx/mtl_mx.h" diff --git a/test/datatype/Makefile.am b/test/datatype/Makefile.am index 7683c34c46..5d814906e9 100644 --- a/test/datatype/Makefile.am +++ b/test/datatype/Makefile.am @@ -4,7 +4,6 @@ # reserved. # Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2009 Oak Ridge National Labs. All rights reserved. -# Copyright (c) 2015 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -21,46 +20,46 @@ TESTS = opal_datatype_test $(MPI_TESTS) check_PROGRAMS = $(TESTS) $(MPI_CHECKS) ddt_test_SOURCES = ddt_test.c ddt_lib.c ddt_lib.h -ddt_test_LDFLAGS = $(OMPI_WRAPPER_EXTRA_LDFLAGS) +ddt_test_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) ddt_test_LDADD = \ $(top_builddir)/ompi/libmpi.la \ $(top_builddir)/opal/libopen-pal.la ddt_raw_SOURCES = ddt_raw.c ddt_lib.c ddt_lib.h -ddt_raw_LDFLAGS = $(OMPI_WRAPPER_EXTRA_LDFLAGS) +ddt_raw_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) ddt_raw_LDADD = \ $(top_builddir)/ompi/libmpi.la \ $(top_builddir)/opal/libopen-pal.la ddt_pack_SOURCES = ddt_pack.c -ddt_pack_LDFLAGS = $(OMPI_WRAPPER_EXTRA_LDFLAGS) +ddt_pack_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) ddt_pack_LDADD = \ $(top_builddir)/ompi/libmpi.la \ $(top_builddir)/opal/libopen-pal.la checksum_SOURCES = checksum.c -checksum_LDFLAGS = $(OMPI_WRAPPER_EXTRA_LDFLAGS) +checksum_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) checksum_LDADD = \ $(top_builddir)/ompi/libmpi.la \ $(top_builddir)/opal/libopen-pal.la position_SOURCES = position.c -position_LDFLAGS = $(OMPI_WRAPPER_EXTRA_LDFLAGS) +position_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) position_LDADD = \ $(top_builddir)/ompi/libmpi.la \ $(top_builddir)/opal/libopen-pal.la position_noncontig_SOURCES = position_noncontig.c -position_noncontig_LDFLAGS = $(OMPI_WRAPPER_EXTRA_LDFLAGS) +position_noncontig_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) position_noncontig_LDADD = \ $(top_builddir)/ompi/libmpi.la \ $(top_builddir)/opal/libopen-pal.la to_self_SOURCES = to_self.c -to_self_LDFLAGS = $(OMPI_WRAPPER_EXTRA_LDFLAGS) +to_self_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) to_self_LDADD = $(top_builddir)/ompi/libmpi.la opal_datatype_test_SOURCES = opal_datatype_test.c opal_ddt_lib.c opal_ddt_lib.h -opal_datatype_test_LDFLAGS = $(OMPI_WRAPPER_EXTRA_LDFLAGS) +opal_datatype_test_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) opal_datatype_test_LDADD = $(top_builddir)/opal/libopen-pal.la diff --git a/test/event/Makefile.am b/test/event/Makefile.am index 168d6bf79c..da0381ceb8 100644 --- a/test/event/Makefile.am +++ b/test/event/Makefile.am @@ -9,7 +9,6 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2015 Intel, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -27,19 +26,19 @@ check_PROGRAMS = \ TESTS = $(check_PROGRAMS) signal_test_SOURCES = signal-test.c -signal_test_LDFLAGS = $(OPAL_WRAPPER_EXTRA_LDFLAGS) +signal_test_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) signal_test_LDADD = \ $(top_builddir)/opal/libopen-pal.la signal_test_DEPENDENCIES = $(signal_test_LDADD) time_test_SOURCES = time-test.c -time_test_LDFLAGS = $(OPAL_WRAPPER_EXTRA_LDFLAGS) +time_test_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) time_test_LDADD = \ $(top_builddir)/opal/libopen-pal.la time_test_DEPENDENCIES = $(time_test_LDADD) event_test_SOURCES = event-test.c -event_test_LDFLAGS = $(OPAL_WRAPPER_EXTRA_LDFLAGS) +event_test_LDFLAGS = $(WRAPPER_EXTRA_LDFLAGS) event_test_LDADD = \ $(top_builddir)/opal/libopen-pal.la event_test_DEPENDENCIES = $(event_test_LDADD)