diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 0a14c3899d..0000000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,182 +0,0 @@ -# -# Copyright (c) 2007-2011 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - - -# Check the CMake version -IF(WIN32) - CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6 FATAL_ERROR) -ELSE(WIN32) - MESSAGE( FATAL_ERROR "Only support Windows. Aborting.") -ENDIF(WIN32) - - -# create top-level target(solution file) -PROJECT("OpenMPI" C CXX) - -IF(MSVC) - SET(WINDOWS_VS TRUE CACHE INTERNAL "Windows Visual Studio env") - IF(CMAKE_CL_64) - SET(COMPILER_TYPE "x64") - ELSE(CMAKE_CL_64) - SET(COMPILER_TYPE "win32") - ENDIF(CMAKE_CL_64) -ELSEIF("${CMAKE_GENERATOR}" STREQUAL "MSYS Makefiles") - SET(WINDOWS_MINGW TRUE CACHE INTERNAL "Windows MSYS env") -ENDIF(MSVC) - -SET (OpenMPI_VERSION $(OpenMPI_MAJOR_VERSION).$(OpenMPI_MINOR_VERSION).$(OpenMPI_PATCH_VERSION)) -SET (CMAKE_MODULE_PATH "${OpenMPI_SOURCE_DIR}/contrib/platform/win32/CMakeModules;${CMAKE_MODULE_PATH}") - -# default to debug-builds -IF (NOT CMAKE_BUILD_TYPE) - SET (CMAKE_BUILD_TYPE Debug CACHE STRING - "Choose the type of build, options are: None, Debug, Release, RelWithDebInfo and MinSizeRel." FORCE) -ENDIF (NOT CMAKE_BUILD_TYPE) - -STRING(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE) -IF(${CMAKE_BUILD_TYPE} STREQUAL "debug") - SET(OMPI_DEBUG_BUILD 1) - # add debug-suffix to distinguish between debug and release version libraries. - SET(CMAKE_DEBUG_POSTFIX "d") - - OPTION(WANT_EXE_DEBUG_POSTFIX "Whether we want postfix for executables" OFF) - IF(WANT_EXE_DEBUG_POSTFIX) - SET(OMPI_EXE_DEBUG_POSTFIX "d") - ENDIF(WANT_EXE_DEBUG_POSTFIX) -ENDIF(${CMAKE_BUILD_TYPE} STREQUAL "debug") - - -# preset install dir -IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - SET(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/installed" CACHE PATH "CMAKE_INSTALL_PREFIX" FORCE) -ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - -# Make the include path visible to all targets -INCLUDE_DIRECTORIES ( - ${OpenMPI_SOURCE_DIR}/contrib/platform/win32/include - ${OpenMPI_SOURCE_DIR}/ - ${OpenMPI_SOURCE_DIR}/opal - ${OpenMPI_SOURCE_DIR}/opal/mca/hwloc - ${OpenMPI_SOURCE_DIR}/opal/include - ${OpenMPI_SOURCE_DIR}/ompi - ${OpenMPI_SOURCE_DIR}/ompi/include - ${OpenMPI_SOURCE_DIR}/orte - ${OpenMPI_SOURCE_DIR}/orte/include - ${OpenMPI_BINARY_DIR}/ - ${OpenMPI_BINARY_DIR}/opal - ${OpenMPI_BINARY_DIR}/opal/include - ${OpenMPI_BINARY_DIR}/ompi - ${OpenMPI_BINARY_DIR}/ompi/include - ${OpenMPI_BINARY_DIR}/orte - ${OpenMPI_BINARY_DIR}/orte/include -) - - -# Output directroies for binaries and libraries. -SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OpenMPI_BINARY_DIR}) -SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OpenMPI_BINARY_DIR}) -SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OpenMPI_BINARY_DIR}) - -# get rid of VS-project file reloading after "cleanup" or "rebuild" -SET (CMAKE_SUPPRESS_REGENERATION true) - -# Dynamic/shared build, the default is set to static(OFF) -OPTION(BUILD_SHARED_LIBS "Whether we want to build shared libraries." ON) - -#store current environment variables -SET(PATH_OLD "$ENV{PATH}") -SET(LIB_OLD "$ENV{LIB}") -SET(INCLUDE_OLD "$ENV{INCLUDE}") - -INCLUDE(ompi_configure) -BEGIN_CONFIGURE() - -# find flex command -INCLUDE (find_flex) -FIND_FLEX() - -ADD_SUBDIRECTORY(opal) -# set up the libevent and hwloc include dirs -INCLUDE_DIRECTORIES (${LIBEVENT_INCLUDE_DIRS} ${HWLOC_PATH}/hwloc/include) -ADD_SUBDIRECTORY(ompi) -ADD_SUBDIRECTORY(orte) -ADD_SUBDIRECTORY(contrib/platform/win32/examples) - -END_CONFIGURE() - -#restore environment variables -SET(ENV{PATH} "${PATH_OLD}") -SET(ENV{LIB} "${LIB_OLD}") -SET(ENV{INCLUDE} "${INCLUDE_OLD}") - -# By default, do not warn when built on machines using only VS Express -IF(NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS) - SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON) -ENDIF(NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS) - -INCLUDE(InstallRequiredSystemLibraries) - -# CPACK settings -#SET(CPACK_PACKAGE_NAME "Open MPI") -SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Open MPI") -SET(CPACK_PACKAGE_VENDOR "Open MPI") -SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") -SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") - -SET(CPACK_PACKAGE_VERSION_MAJOR "${MAJOR_VERSION}") -SET(CPACK_PACKAGE_VERSION_MINOR "${MINOR_VERSION}") -SET(CPACK_PACKAGE_VERSION_PATCH "${RELEASE_VERSION}") - -IF(${RELEASE_VERSION} EQUAL 0) - SET(OpenMPI_version "${MAJOR_VERSION}.${MINOR_VERSION}") -ELSE(${RELEASE_VERSION} EQUAL 0) - SET(OpenMPI_version "${MAJOR_VERSION}.${MINOR_VERSION}.${RELEASE_VERSION}") -ENDIF(${RELEASE_VERSION} EQUAL 0) - -SET(CPACK_PACKAGE_INSTALL_DIRECTORY "OpenMPI_v${OpenMPI_version}-${COMPILER_TYPE}") -SET(CPACK_PACKAGE_FILE_NAME "OpenMPI_v${OpenMPI_version}-${COMPILER_TYPE}-${CMAKE_BUILD_TYPE}") -SET(CPACK_INSTALLED_DIRECTORIES "${CMAKE_INSTALL_PREFIX}" ".") -SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "Open MPI") - -SET(CPACK_SOURCE_PACKAGE_FILE_NAME "OpenMPI-${OpenMPI_version}") -#SET(CPACK_SOURCE_INSTALLED_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}") -#There is a bug in NSI that does not handle full unix paths properly. Make -# sure there is at least one set of four (4) backlasshes. -# SET(CPACK_PACKAGE_ICON "${CMake_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp") -# SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\MyExecutable.exe") -SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} OpenMPI") -SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\www.open-mpi.org") -SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.open-mpi.org") -# SET(CPACK_NSIS_CONTACT "me@my-personal-home-page.com") -# SET(CPACK_PACKAGE_EXECUTABLES "MyExecutable" "My Executable") - - -SET(CPACK_NSIS_MODIFY_PATH ON) -SET(CPACK_SOURCE_ZIP ON) -SET(CPACK_BINARY_ZIP ON) - -# setup the register entries when install -SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS ${CPACK_NSIS_EXTRA_INSTALL_COMMANDS} " - WriteRegStr HKLM \\\"SOFTWARE\\\\${CPACK_PACKAGE_VENDOR}\\\" \\\"OPENMPI_HOME\\\" \\\"$INSTDIR\\\" -") - - -# delete the register entries when uninstall -SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS ${CPACK_NSIS_EXTRA_INSTALL_COMMANDS} " - DeleteRegKey HKLM \\\"SOFTWARE\\\\${CPACK_PACKAGE_VENDOR}\\\" -") - - -# (un)install icons -#SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/contrib/platform/win32/open-mpi-logo.ico") -#SET(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/contrib/platform/win32/uninstall.ico") - -INCLUDE(CPack) diff --git a/Makefile.am b/Makefile.am index 0423f3067a..715d4aa3d1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -10,7 +10,7 @@ # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. # Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. +# Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -20,7 +20,7 @@ SUBDIRS = config contrib $(MCA_PROJECT_SUBDIRS) test EXTRA_DIST = README INSTALL VERSION Doxyfile LICENSE autogen.pl autogen.sh \ - CMakeLists.txt README.WINDOWS.txt README.JAVA.txt + README.JAVA.txt include examples/Makefile.include diff --git a/NEWS b/NEWS index 7ffeec4f5c..094880a11f 100644 --- a/NEWS +++ b/NEWS @@ -12,7 +12,7 @@ Copyright (c) 2006-2013 Cisco Systems, Inc. All rights reserved. Copyright (c) 2006 Voltaire, Inc. All rights reserved. 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 +Copyright (c) 2006-2013 Los Alamos National Security, LLC. All rights reserved. Copyright (c) 2010-2012 IBM Corporation. All rights reserved. Copyright (c) 2012 Oak Ridge National Labs. All rights reserved. @@ -70,6 +70,9 @@ Trunk (not on release branches yet) - Extended filem framework to support scalable pre-positioning of files for use by applications, adding new "raw" component that transmits files across the daemon network +- Native Windows support has been removed. A cygwin package is + available from that group for Windows-based use. +- Added MPI Java bindings 1.7 @@ -106,7 +109,6 @@ Trunk (not on release branches yet) in assigning process locations and bindings - Added the -novm option to preserve the prior launch behavior - Added new MCA parameter to provide protection against IO forwarding backlog -- Added MPI Java bindings 1.6.4 diff --git a/contrib/Makefile.am b/contrib/Makefile.am index 8d5f441de2..ec43eb9ce2 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -12,6 +12,7 @@ # Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2010 IBM Corporation. All rights reserved. # Copyright (c) 2010-2011 Oak Ridge National Labs. All rights reserved. +# Copyright (c) 2013 Los Alamos National Security, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow @@ -95,45 +96,6 @@ EXTRA_DIST = \ platform/lanl/tlcc2/optimized-panasas.conf \ platform/snl/portals4-m5 \ platform/snl/portals4-orte \ - platform/win32/CMakeModules/check_bool.cmake \ - platform/win32/CMakeModules/check_c_inline.cmake \ - platform/win32/CMakeModules/check_c_type_exists.cmake \ - platform/win32/CMakeModules/check_mca_subdirs.cmake \ - platform/win32/CMakeModules/ompi_base_checks.cmake \ - platform/win32/CMakeModules/ompi_define.cmake \ - platform/win32/CMakeModules/ompi_ext_config.cmake \ - platform/win32/CMakeModules/find_ccp.cmake \ - platform/win32/CMakeModules/find_flex.cmake \ - platform/win32/CMakeModules/find_libltdl.cmake \ - platform/win32/CMakeModules/find_ofed_sdk.cmake \ - platform/win32/CMakeModules/find_winverbs.cmake \ - platform/win32/CMakeModules/generate_version_file.cmake \ - platform/win32/CMakeModules/get_c_alignment.cmake \ - platform/win32/CMakeModules/list_subdirs.cmake \ - platform/win32/CMakeModules/ompi_check_Microsoft.cmake \ - platform/win32/CMakeModules/ompi_check_MinGW.cmake \ - platform/win32/CMakeModules/ompi_configure.cmake \ - platform/win32/CMakeModules/ompi_find_type.cmake \ - platform/win32/CMakeModules/opal_event_config.cmake \ - platform/win32/CMakeModules/opal_get_version.cmake \ - platform/win32/CMakeModules/opal_functions.cmake \ - platform/win32/ConfigFiles/revision.in \ - platform/win32/CMakeModules/fortran_get_value_true.cmake \ - platform/win32/CMakeModules/fortran_check.cmake \ - platform/win32/CMakeModules/fortran_get_alignment.cmake \ - platform/win32/CMakeModules/fortran_check_type.cmake \ - platform/win32/CMakeModules/fortran_find_ext_symbol_convention.cmake \ - platform/win32/CMakeModules/fortran_get_fortran_handle_max.cmake \ - platform/win32/CMakeModules/fortran_get_sizeof.cmake \ - platform/win32/CMakeModules/setup_fortran.cmake \ - platform/win32/CMakeModules/fortran_check_real16_c_equiv.cmake \ - platform/win32/CMakeModules/opal_hwloc_config.cmake \ - platform/win32/include/hwloc/autogen/config.h \ - platform/win32/include/private/autogen/config.h \ - platform/win32/examples/CMakeLists.txt \ - platform/win32/examples/chello/CMakeLists.txt \ - platform/win32/examples/chello/chello.vcxproj \ - platform/win32/examples/chello/chello.c \ platform/cisco/macosx-dynamic \ platform/cisco/macosx-dynamic.conf \ platform/cisco/linux \ diff --git a/contrib/platform/win32/CMakeModules/check_bool.cmake b/contrib/platform/win32/CMakeModules/check_bool.cmake deleted file mode 100644 index a027ecc7df..0000000000 --- a/contrib/platform/win32/CMakeModules/check_bool.cmake +++ /dev/null @@ -1,56 +0,0 @@ -# -# Copyright (c) 2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -# check compiler support of bool and -# possibly get its size and alignment -MACRO(OMPI_CHECK_BOOL) - - FOREACH(LANG c cxx) - - STRING(TOUPPER ${LANG} LANG_U) - - IF(NOT DEFINED SIZEOF_${LANG_U}_BOOL) - - MESSAGE( STATUS "Checking size of ${LANG} bool...") - - FILE (WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_sizeof_bool.${LANG}" - "#include - int main() {return sizeof(bool);} - ") - - TRY_RUN(SIZEOF_${LANG_U}_BOOL COMPILE_RESULT "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/" - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_sizeof_bool.${LANG}") - - IF(SIZEOF_${LANG_U}_BOOL GREATER 0) - MESSAGE(STATUS "Checking size of ${LANG} bool...${SIZEOF_${LANG_U}_BOOL}") - C_GET_ALIGNMENT(bool ${LANG} BOOL) - SET(OPAL_ALIGNMENT_${LANG_U}_BOOL ${OPAL_ALIGNMENT_BOOL} CACHE INTERNAL "Sizeof ${LANG} bool.") - ELSE(SIZEOF_${LANG_U}_BOOL GREATER 0) - MESSAGE(STATUS "Checking size of ${LANG} bool...failed") - SET(SIZEOF_${LANG_U}_BOOL 1 CACHE INTERNAL "Sizeof ${LANG} bool.") - SET(OPAL_ALIGNMENT_${LANG_U}_BOOL 1 CACHE INTERNAL "Sizeof ${LANG} bool.") - SET(OPAL_NEED_${LANG_U}_BOOL 1 CACHE INTERNAL "true if compiler doesn't support bool.") - ENDIF(SIZEOF_${LANG_U}_BOOL GREATER 0) - - ENDIF(NOT DEFINED SIZEOF_${LANG_U}_BOOL) - - OMPI_DEF_VAR(OPAL_NEED_${LANG_U}_BOOL - "Define to 1 if the C compiler doesn't support bool\n without any other help (such as )." 0 0) - OMPI_DEF_VAR(SIZEOF_${LANG_U}_BOOL "The size of ${LANG} `bool'." 0 1) - OMPI_DEF_VAR(OPAL_ALIGNMENT_${LANG_U}_BOOL "Alignment of ${LANG} `bool'." 0 1) - - ENDFOREACH(LANG c cxx) - - # Opal defines these without language type.... - OMPI_DEF(SIZEOF_BOOL 1 "The size of `bool'." 0 1) - OMPI_DEF(OPAL_ALIGNMENT_BOOL 1 "Sizeof bool." 0 1) - -ENDMACRO(OMPI_CHECK_BOOL) \ No newline at end of file diff --git a/contrib/platform/win32/CMakeModules/check_c_inline.cmake b/contrib/platform/win32/CMakeModules/check_c_inline.cmake deleted file mode 100644 index 591ac07cb6..0000000000 --- a/contrib/platform/win32/CMakeModules/check_c_inline.cmake +++ /dev/null @@ -1,54 +0,0 @@ -# -# Copyright (c) 2007-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -MACRO(CHECK_C_INLINE) - # - # Return the inline definition string. - # - - IF(NOT HAVE_INLINE) - - # path of foo test programs - SET (FOO_SOURCE_DIR ${OpenMPI_SOURCE_DIR}/CMakeTests) - - MESSAGE( STATUS "Check inline definition...") - - FOREACH(KEYWORD "inline" "__inline__" "__inline") - - SET(HAVE_INLINE FALSE) - FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test_inline.c" - "typedef int foo_t; - static inline foo_t static_foo(){return 0;} - foo_t foo(){return 0;} - int main(int argc, char *argv[]){return 0;} - ") - - TRY_COMPILE(C_HAS_${KEYWORD} "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CMakeTmp/" - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test_inline.c" - COMPILE_DEFINITIONS "-Dinline=${KEYWORD}") - - IF(C_HAS_${KEYWORD}) - SET(HAVE_INLINE TRUE CACHE INTERNAL "have 'inline' definition") - SET(INLINE_STRING ${KEYWORD} CACHE INTERNAL "'inline' definition") - MESSAGE( STATUS "Checking inline definition...${INLINE_STRING}") - BREAK() - ENDIF(C_HAS_${KEYWORD}) - ENDFOREACH(KEYWORD) - - IF(NOT HAVE_INLINE) - MESSAGE(FATAL_ERROR "Check inline definition...failed. Cannot continue.") - ENDIF(NOT HAVE_INLINE) - - ENDIF(NOT HAVE_INLINE) - - OMPI_DEF(inline ${INLINE_STRING} "Define to `__inline__' or `__inline'." 0 1) - -ENDMACRO(CHECK_C_INLINE) \ No newline at end of file diff --git a/contrib/platform/win32/CMakeModules/check_c_type_exists.cmake b/contrib/platform/win32/CMakeModules/check_c_type_exists.cmake deleted file mode 100644 index 6099d888cf..0000000000 --- a/contrib/platform/win32/CMakeModules/check_c_type_exists.cmake +++ /dev/null @@ -1,57 +0,0 @@ -# -# Copyright (c) 2007-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# -# Some data types are defined in SDK headers, but the SDK include path -# is only reachable from Visual Studio ENV. So try to compile and run a test -# program to check if the data types is defined in SDK headers. -# If the type is defined, also return the size of the type. -# -# TYPE: the type to check -# TYPE_NAME: the uppercase of the type, with underlines if necessary. -# INCLUDE_HEADERS: the header files defines the type. -# -# HAVE_${TYPE_NAME}: if type is found, this value is define as 1. -# SIZEOF_${TYPE_NAME}: size of the type. - -MACRO(CHECK_C_TYPE_EXISTS TYPE TYPE_NAME INCLUDE_HEADERS) - - IF(NOT ${TYPE_NAME}_CHECK_DONE) - MESSAGE( STATUS "Checking for ${TYPE}...") - - SET(INCLUDE "") - FOREACH(HEADER ${INCLUDE_HEADERS}) - SET(INCLUDE ${INCLUDE} "#include <${HEADER}>\n") - ENDFOREACH(HEADER ${INCLUDE_HEADERS}) - - STRING(REPLACE ";" "" INCLUDE ${INCLUDE}) - - FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_${TYPE_NAME}.c" - "${INCLUDE} - int main(){ ${TYPE} test; return sizeof(${TYPE});}") - - TRY_RUN(SIZEOF_${TYPE_NAME} COMPILE_RESULT "${CMAKE_BINARY_DIR}" - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_${TYPE_NAME}.c") - - IF(SIZEOF_${TYPE_NAME} GREATER 0) - SET(HAVE_${TYPE_NAME} 1 CACHE INTERNAL "HAVE_${TYPE_NAME}") - MESSAGE( STATUS "Checking for ${TYPE}...done") - ELSE(SIZEOF_${TYPE_NAME} GREATER 0) - SET(HAVE_${TYPE_NAME} 0 CACHE INTERNAL "HAVE_${TYPE_NAME}") - MESSAGE( STATUS "Checking for ${TYPE}...failed") - ENDIF(SIZEOF_${TYPE_NAME} GREATER 0) - - SET(${TYPE_NAME}_CHECK_DONE 1 CACHE INTERNAL "${TYPE_NAME} check finished.") - - ENDIF(NOT ${TYPE_NAME}_CHECK_DONE) - - OMPI_DEF(HAVE_${TYPE_NAME} ${HAVE_${TYPE_NAME}} "Define to 1 if you have the `${TYPE_NAME}' type in ${INCLUDE_HEADERS}" 0 0) - -ENDMACRO(CHECK_C_TYPE_EXISTS TYPE TYPE_NAME INCLUDE_HEADERS) diff --git a/contrib/platform/win32/CMakeModules/check_mca_subdirs.cmake b/contrib/platform/win32/CMakeModules/check_mca_subdirs.cmake deleted file mode 100644 index e34a9ac668..0000000000 --- a/contrib/platform/win32/CMakeModules/check_mca_subdirs.cmake +++ /dev/null @@ -1,343 +0,0 @@ -# Copyright (c) 2007-2012 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -INCLUDE(list_subdirs) - -# there are several steps and issues for checking mca components: -# -# 1. go through each framwork dir, add the top-level headers -# to the source list. -# -# 2. go through each component dir, the framwork base dir is checked -# also in this setp, and is added to the source list. -# -# 2a. if a .windows file exists in a framwork base dir, that means there -# might be properties that have to be checked for this dir, e.g. files -# need to be excluded. -# -# 2b. if a .windows file exists in a component dir, this component -# should be included in the solution. There could be properties that -# need to check for this component. If it's a static build or not a -# DSO shared build, just add necessary sources; if it is a DSO build, -# generate a proper CMakeLists.txt file for each component, so that -# this component will be compiled separately. -# -# 3. Generate static-components.h file with available mca components. -# -# -# Available properties in .windows files: -# -# exclude_list: files that need to be excluded from the solution. -# -# required_check: a CMake module has to be run to check the libraries/headers -# that needed by this component. The check might return two -# variables: RESULT_INCLUDE_PATH, RESULT_LINK_LIBRARIES and RESULT_SOURCE_FILES. -# RESULT_INCLUDE_PATH is handled in this macro, and RESULT_LINK_LIBRARIES -# is handled in upper layer. -# -# not_single_shared_lib: this component should not be built separately, it's not -# a single mca shared library. -# -# mca_link_libraries: this component has to be linked with other targets or libraries, -# e.g. Ws2_32.lib -# mca_priority: priority of the mca component. - - -SET(MCA_FRAMEWORK_LIST "") -CHECK_SUBDIRS("${PROJECT_SOURCE_DIR}/mca" MCA_FRAMEWORK_LIST) -#MESSAGE("MCA_FRAMEWORK_LIST:${MCA_FRAMEWORK_LIST}") - -LIST(REMOVE_ITEM MCA_FRAMEWORK_LIST "bcol") - -FILE(GLOB ${PROJECT_NAME}_MCA_HEADER_FILES "mca/*.C" "mca/*.h") -SET(${PROJECT_NAME}_MCA_FILES ${${PROJECT_NAME}_MCA_FILES} ${${PROJECT_NAME}_MCA_HEADER_FILES}) -SOURCE_GROUP(mca FILES ${${PROJECT_NAME}_MCA_HEADER_FILES}) - -# clear the variables first -SET(MCA_FRAMEWORK "") -SET(MCA_FRAMEWORK_FILES "") -SET(MCA_FILES "") - -# parse each mca subdir -FOREACH (MCA_FRAMEWORK ${MCA_FRAMEWORK_LIST}) - - IF(NOT ${MCA_FRAMEWORK} STREQUAL "CMakeFiles" AND NOT ${MCA_FRAMEWORK} STREQUAL "svn") - #SET(CURRENT_PATH "mca/${${PROJECT_NAME}_MCA_SUBDIR}") - FILE(GLOB MCA_FRAMEWORK_FILES "mca/${MCA_FRAMEWORK}/*.c" "mca/${MCA_FRAMEWORK}/*.h" - "mca/${MCA_FRAMEWORK}/*.cc" "mca/${MCA_FRAMEWORK}/*.cpp") - SET(MCA_FILES ${MCA_FILES} ${MCA_FRAMEWORK_FILES}) - SOURCE_GROUP(mca\\${MCA_FRAMEWORK} FILES ${MCA_FRAMEWORK_FILES}) - - SET(COMPONENT_LIST "") - CHECK_SUBDIRS("${PROJECT_SOURCE_DIR}/mca/${MCA_FRAMEWORK}" COMPONENT_LIST) - - SET(CURRENT_COMPONENT_PRIORITY "") - SET(MCA_PRIORITY_LIST "") - - # parse each component subdir of current mca framework - FOREACH (MCA_COMPONENT ${COMPONENT_LIST}) - - IF(${MCA_COMPONENT} STREQUAL "base") - - SET(CURRENT_PATH "${PROJECT_SOURCE_DIR}/mca/${MCA_FRAMEWORK}/base") - FILE(GLOB MCA_FRAMEWORK_BASE_FILES "${CURRENT_PATH}/*.c" "${CURRENT_PATH}/*.h" - "${CURRENT_PATH}/*.cc" "${CURRENT_PATH}/*.cpp") - - IF(EXISTS "${CURRENT_PATH}/.windows") - - #MESSAGE("MCA_FRAMEWORK_BASE_FILES:${MCA_FRAMEWORK_BASE_FILES}") - SET(EXCLUDE_LIST "") - FILE(STRINGS ${CURRENT_PATH}/.windows EXCLUDE_LIST REGEX "^exclude_list=") - - IF(NOT EXCLUDE_LIST STREQUAL "") - STRING(REPLACE "exclude_list=" "" EXCLUDE_LIST ${EXCLUDE_LIST}) - ENDIF(NOT EXCLUDE_LIST STREQUAL "") - - # remove the files in the exclude list - FOREACH(FILE ${EXCLUDE_LIST}) - LIST(REMOVE_ITEM MCA_FRAMEWORK_BASE_FILES "${CURRENT_PATH}/${FILE}") - ENDFOREACH(FILE) - - ENDIF(EXISTS "${CURRENT_PATH}/.windows") - - SET_SOURCE_FILES_PROPERTIES(${PROJECT_BINARY_DIR}/mca/${MCA_FRAMEWORK}/base/static-components.h - PROPERTIES GENERATED true) - SET(MCA_FRAMEWORK_BASE_FILES ${MCA_FRAMEWORK_BASE_FILES} - ${PROJECT_BINARY_DIR}/mca/${MCA_FRAMEWORK}/base/static-components.h) - SET(MCA_FILES ${MCA_FILES} ${MCA_FRAMEWORK_BASE_FILES}) - - SOURCE_GROUP(mca\\${MCA_FRAMEWORK}\\base FILES ${MCA_FRAMEWORK_BASE_FILES}) - - # Install help files if they are here. - INSTALL(DIRECTORY ${CURRENT_PATH}/ DESTINATION share/openmpi/ - FILES_MATCHING PATTERN "*.txt" - PATTERN ".svn" EXCLUDE - PATTERN ".hg" EXCLUDE) - - ELSEIF(EXISTS "${PROJECT_SOURCE_DIR}/mca/${MCA_FRAMEWORK}/${MCA_COMPONENT}/.windows") - - UNSET(COMPONENT_FILES) - UNSET(APPEND_FILES) - - SET(CURRENT_PATH ${PROJECT_SOURCE_DIR}/mca/${MCA_FRAMEWORK}/${MCA_COMPONENT}) - - # by default, build this component. - SET(BUILD_COMPONENT TRUE) - - # do we have to run a check module first? - SET(REQUIRED_CHECK "") - FILE(STRINGS ${CURRENT_PATH}/.windows REQUIRED_CHECK REGEX "^required_check=") - - SET(EXTRA_INCLUDE_PATH "") - IF(NOT REQUIRED_CHECK STREQUAL "") - STRING(REPLACE "required_check=" "" REQUIRED_CHECK ${REQUIRED_CHECK}) - UNSET(RESULT_APPEND_FILES) - UNSET(RESULT_COMPONENT_FILES) - UNSET(RESULT_INCLUDE_PATH) - UNSET(RESULT_LINK_LIBRARIES) - INCLUDE(${REQUIRED_CHECK}) - IF(RESULT) - SET(COMPONENT_FILES ${COMPONENT_FILES} ${RESULT_COMPONENT_FILES}) - SET(APPEND_FILES ${RESULT_APPEND_FILES}) - SET(EXTRA_INCLUDE_PATH ${RESULT_INCLUDE_PATH}) - # these extra libraries will be set up in up layer, e.g. ompi - SET(EXTRA_LINK_LIBRARIES ${EXTRA_LINK_LIBRARIES} ${RESULT_LINK_LIBRARIES}) - ELSE(RESULT) - # Required check failed, don't build this component. - SET(BUILD_COMPONENT FALSE) - ENDIF(RESULT) - ENDIF(NOT REQUIRED_CHECK STREQUAL "") - - IF(BUILD_COMPONENT) - - #check exclude list - SET(EXCLUDE_LIST "") - FILE(STRINGS ${CURRENT_PATH}/.windows EXCLUDE_LIST REGEX "^exclude_list=") - - IF(NOT EXCLUDE_LIST STREQUAL "") - STRING(REPLACE "exclude_list=" "" EXCLUDE_LIST ${EXCLUDE_LIST}) - FILE(GLOB_RECURSE RESULT_FILES "${CURRENT_PATH}/*.C" "${CURRENT_PATH}/*.h" - "${CURRENT_PATH}/*.cc" "${CURRENT_PATH}/*.cpp") - - # remove the files in the exclude list - FOREACH(FILE ${EXCLUDE_LIST}) - LIST(REMOVE_ITEM RESULT_FILES "${CURRENT_PATH}/${FILE}") - ENDFOREACH(FILE) - - # append the rest of the files to the main list - SET(COMPONENT_FILES ${COMPONENT_FILES} ${RESULT_FILES}) - ENDIF(NOT EXCLUDE_LIST STREQUAL "") - - IF(NOT COMPONENT_FILES) - FILE(GLOB_RECURSE COMPONENT_FILES "${CURRENT_PATH}/*.C" "${CURRENT_PATH}/*.h") - ENDIF(NOT COMPONENT_FILES) - - IF(APPEND_FILES) - SET(COMPONENT_FILES ${COMPONENT_FILES} ${APPEND_FILES}) - ENDIF(APPEND_FILES) - - # check the library build type - FILE(STRINGS ${CURRENT_PATH}/.windows - VALUE REGEX "^not_single_shared_lib=") - IF(NOT VALUE STREQUAL "") - STRING(REPLACE "not_single_shared_lib=" "" NOT_SINGLE_SHARED_LIB ${VALUE}) - ENDIF(NOT VALUE STREQUAL "") - - IF(NOT OPAL_WANT_LIBLTDL OR NOT_SINGLE_SHARED_LIB STREQUAL "1") - SET(NOT_SINGLE_SHARED_LIB "") - # add sources for static build or for the shared build when this is not a stand along library. - SET(MCA_FILES ${MCA_FILES} ${COMPONENT_FILES}) - SOURCE_GROUP(mca\\${MCA_FRAMEWORK}\\${MCA_COMPONENT} FILES ${COMPONENT_FILES}) - - INCLUDE_DIRECTORIES(${EXTRA_INCLUDE_PATH}) - - IF(EXISTS "${CURRENT_PATH}/configure.params") - FILE(STRINGS ${CURRENT_PATH}/configure.params - CURRENT_COMPONENT_PRIORITY REGEX "PRIORITY") - ELSE(EXISTS "${CURRENT_PATH}/configure.params") - FILE(STRINGS ${CURRENT_PATH}/.windows - CURRENT_COMPONENT_PRIORITY REGEX "^mca_priority=") - ENDIF(EXISTS "${CURRENT_PATH}/configure.params") - - IF(NOT CURRENT_COMPONENT_PRIORITY STREQUAL "") - STRING(REGEX REPLACE "[A-Z_a-z]+=" "" CURRENT_COMPONENT_PRIORITY ${CURRENT_COMPONENT_PRIORITY}) - ENDIF(NOT CURRENT_COMPONENT_PRIORITY STREQUAL "") - - SET(MCA_PRIORITY_LIST ${MCA_PRIORITY_LIST} "${CURRENT_COMPONENT_PRIORITY}:${MCA_COMPONENT}") - - ELSE(NOT OPAL_WANT_LIBLTDL OR NOT_SINGLE_SHARED_LIB STREQUAL "1") - - # get the libraries required for this component. - SET(MCA_LINK_LIBRARIES "") - FILE(STRINGS ${CURRENT_PATH}/.windows VALUE REGEX "^mca_link_libraries=") - IF(NOT VALUE STREQUAL "") - STRING(REPLACE "mca_link_libraries=" "" MCA_LINK_LIBRARIES ${VALUE}) - ENDIF(NOT VALUE STREQUAL "") - - # the mca_common_* libraries should be installed into bin, - # this will avoid the runtime open module failure. - IF("${MCA_FRAMEWORK}" STREQUAL "common") - SET(LIB_NAME_PREFIX "lib") - SET(INSTALL_DEST "RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib") - SET(PDB_DEST "bin") - ELSE("${MCA_FRAMEWORK}" STREQUAL "common") - SET(LIB_NAME_PREFIX "") - IF(OMPI_DEBUG_BUILD) - SET(INSTALL_DEST "RUNTIME DESTINATION lib/openmpi/debug - LIBRARY DESTINATION lib/openmpi/debug - ARCHIVE DESTINATION lib/openmpi/debug") - SET(PDB_DEST "lib/openmpi/debug") - ELSE(OMPI_DEBUG_BUILD) - SET(INSTALL_DEST "RUNTIME DESTINATION lib/openmpi - LIBRARY DESTINATION lib/openmpi - ARCHIVE DESTINATION lib/openmpi") - ENDIF(OMPI_DEBUG_BUILD) - ENDIF("${MCA_FRAMEWORK}" STREQUAL "common") - - - # generate CMakeLists.txt for each component for DSO build. - FILE (WRITE "${PROJECT_BINARY_DIR}/mca/${MCA_FRAMEWORK}/${MCA_COMPONENT}/CMakeLists.txt" - " -# -# Copyright (c) 2007-2008 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# make new project for shared build - -INCLUDE_DIRECTORIES(\${EXTRA_INCLUDE_PATH}) - -ADD_LIBRARY(${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} SHARED - \${COMPONENT_FILES}) - -SET_TARGET_PROPERTIES(${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} - PROPERTIES COMPILE_FLAGS \"-D_USRDLL -DOPAL_IMPORTS -DOMPI_IMPORTS -DORTE_IMPORTS /TP\") - -TARGET_LINK_LIBRARIES (${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} - libopen-pal ${MCA_LINK_LIBRARIES} ${EXTRA_LINK_LIBRARIES}) - -INSTALL(TARGETS ${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} ${INSTALL_DEST}) -IF (OMPI_DEBUG_BUILD) - INSTALL(FILES ${OpenMPI_BINARY_DIR}/Debug/${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT}${CMAKE_DEBUG_POSTFIX}.pdb - DESTINATION ${PDB_DEST}) -ENDIF (OMPI_DEBUG_BUILD) - ") - - ADD_SUBDIRECTORY (${PROJECT_BINARY_DIR}/mca/${MCA_FRAMEWORK}/${MCA_COMPONENT} mca/${MCA_FRAMEWORK}/${MCA_COMPONENT}) - - # for single dll, reset these two variables for the next component. - UNSET(EXTRA_INCLUDE_PATH) - UNSET(EXTRA_LINK_LIBRARIES) - - ENDIF(NOT OPAL_WANT_LIBLTDL OR NOT_SINGLE_SHARED_LIB STREQUAL "1") - - # Install help files if they are here. - INSTALL(DIRECTORY ${CURRENT_PATH}/ DESTINATION share/openmpi/ - FILES_MATCHING PATTERN "*.txt" - PATTERN "hwloc" EXCLUDE - PATTERN "libevent" EXCLUDE - PATTERN ".svn" EXCLUDE - PATTERN ".hg" EXCLUDE) - - ENDIF(BUILD_COMPONENT) - ENDIF(${MCA_COMPONENT} STREQUAL "base") - - ENDFOREACH(MCA_COMPONENT) - - - # generate the correct order of the components. - LIST(SORT MCA_PRIORITY_LIST) - FOREACH(MCA_COMPONENT ${MCA_PRIORITY_LIST}) - STRING(REGEX REPLACE "[0-9]*:" "" COMPONENT_NAME ${MCA_COMPONENT}) - SET (OUTFILE_EXTERN - "extern const mca_base_component_t mca_${MCA_FRAMEWORK}_${COMPONENT_NAME}_component" - "\n${OUTFILE_EXTERN}") - SET(FRAMEWORK_STRUCT_DEF - "&mca_${MCA_FRAMEWORK}_${COMPONENT_NAME}_component,\n" - ${FRAMEWORK_STRUCT_DEF}) - SET(BEST_COMPONENT_PRIORITY ${CURRENT_COMPONENT_PRIORITY}) - ENDFOREACH(MCA_COMPONENT ${MCA_PRIORITY_LIST}) - - STRING(LENGTH "${FRAMEWORK_STRUCT_DEF}" STRUCT_STRING_LENTH) - IF(STRUCT_STRING_LENTH GREATER 0) - STRING (REPLACE ";" "" OUTFILE_STRUCT ${FRAMEWORK_STRUCT_DEF}) - ENDIF(STRUCT_STRING_LENTH GREATER 0) - # write out static-component.h for this mca. - FILE(WRITE "${PROJECT_BINARY_DIR}/mca/${MCA_FRAMEWORK}/base/static-components.h" - "/* - * $HEADER$ - */ -#if defined(c_plusplus) || defined(__cplusplus) - extern \"C\" { -#endif - -${OUTFILE_EXTERN} - -const mca_base_component_t *mca_${MCA_FRAMEWORK}_base_static_components[] = { - ${OUTFILE_STRUCT} - NULL -}; - -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif - ") - - SET(OUTFILE_EXTERN "") - SET(OUTFILE_STRUCT "") - SET(FRAMEWORK_STRUCT_DEF "") - ENDIF(NOT ${MCA_FRAMEWORK} STREQUAL "CMakeFiles" AND NOT ${MCA_FRAMEWORK} STREQUAL "svn") -ENDFOREACH (MCA_FRAMEWORK) diff --git a/contrib/platform/win32/CMakeModules/find_ccp.cmake b/contrib/platform/win32/CMakeModules/find_ccp.cmake deleted file mode 100644 index 0d376370ff..0000000000 --- a/contrib/platform/win32/CMakeModules/find_ccp.cmake +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright (c) 2009 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# The CCP components need to import the type library ccpapi.tlb, -# if it's not installed, the CCP components won't be built. - -# This module is included in a .windows file, it must return two variables: -# RESULT : find result -# RESULT_INCLUDE_PATH : the path need to include if RESULT is true - -IF(NOT ORTE_WANT_CCP) - SET(RESULT FALSE) -ELSEIF(NOT CCP_FOUND) - MESSAGE(STATUS "looking for ccp...") - - IF(CMAKE_CL_64) - FIND_PATH(CCP_LIB_PATH ccpapi.tlb PATHS $ENV{CCP_LIB64} ) - ELSE(CMAKE_CL_64) - FIND_PATH(CCP_LIB_PATH ccpapi.tlb PATHS $ENV{CCP_LIB32} ) - ENDIF(CMAKE_CL_64) - - IF(CCP_LIB_PATH) - SET(CCP_FOUND TRUE CACHE INTERNAL "find result of CCP.") - SET(RESULT TRUE) - SET(RESULT_INCLUDE_PATH ${CCP_LIB_PATH}) - MESSAGE(STATUS "looking for ccp...found.") - ELSE(CCP_LIB_PATH) - SET(CCP_FOUND FALSE CACHE INTERNAL "find result of CCP.") - SET(RESULT FALSE) - MESSAGE(STATUS "looking for ccp...not found.") - ENDIF(CCP_LIB_PATH) - -ELSE(NOT CCP_FOUND) - SET(RESULT_INCLUDE_PATH ${CCP_LIB_PATH}) - SET(RESULT TRUE) -ENDIF(NOT ORTE_WANT_CCP) diff --git a/contrib/platform/win32/CMakeModules/find_flex.cmake b/contrib/platform/win32/CMakeModules/find_flex.cmake deleted file mode 100644 index 4dab6d44df..0000000000 --- a/contrib/platform/win32/CMakeModules/find_flex.cmake +++ /dev/null @@ -1,106 +0,0 @@ -# -# Copyright (c) 2007-2009 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -# -# FLEX_FOUND - system has Flex -# FLEX_EXECUTABLE - path of the flex executable -# FLEX_VERSION - the version string, like "2.5.31" -# - -MACRO(FIND_FLEX) - - IF(NOT FLEX_FOUND) - MESSAGE(STATUS "Check for working flex...") - - # first find out if it's already installed somewhere - FIND_PROGRAM(FLEX_EXECUTABLE_SYS NAMES flex) - - IF (WIN32) - IF(FLEX_EXECUTABLE_SYS) - SET(FLEX_EXECUTABLE ${FLEX_EXECUTABLE_SYS} CACHE FILEPATH "Flex") - ELSE(FLEX_EXECUTABLE_SYS) - IF(EXISTS ${CMAKE_SOURCE_DIR}/contrib/platform/win32/bin/flex.exe) - # in case that no flex is installed, use our own version - SET(FLEX_EXECUTABLE "${CMAKE_SOURCE_DIR}/contrib/platform/win32/bin/flex.exe" CACHE FILEPATH "Flex") - ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/contrib/platform/win32/bin/flex.exe) - ENDIF(FLEX_EXECUTABLE_SYS) - ELSE(WIN32) - # nothing to do here at moment. - ENDIF(WIN32) - - IF(FLEX_EXECUTABLE) - SET(FLEX_FOUND TRUE CACHE INTERNAL "found flex") - - EXECUTE_PROCESS(COMMAND ${FLEX_EXECUTABLE} --version - OUTPUT_VARIABLE _FLEX_VERSION - ) - STRING (REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" FLEX_VERSION "${_FLEX_VERSION}") - ENDIF(FLEX_EXECUTABLE) - - IF(FLEX_FOUND) - IF(NOT Flex_FIND_QUIETLY) - MESSAGE(STATUS "Check for working flex...done") - ENDIF(NOT Flex_FIND_QUIETLY) - ELSE(FLEX_FOUND) - IF(Flex_FIND_REQUIRED) - MESSAGE(STATUS "Check for working flex...failed") - ENDIF(Flex_FIND_REQUIRED) - ENDIF(FLEX_FOUND) - ENDIF(NOT FLEX_FOUND) -ENDMACRO(FIND_FLEX) - -# -# Generate the corresponding C file from the lex file, -# and add it in to the source list for the target. -# - -MACRO(ADD_FLEX_FILE _sourcelist _source _prefix _output_dir) - - GET_FILENAME_COMPONENT(_in ${_source} ABSOLUTE) - GET_FILENAME_COMPONENT(_basename ${_source} NAME_WE) - - - STRING(LENGTH "${_prefix}" _prefix_length) - IF(NOT _prefix_length EQUAL 0) - SET(_out ${_output_dir}/${_basename}.c) - SET(_args -P${_prefix}) - ELSE(NOT _prefix_length EQUAL 0) - SET(_out ${_output_dir}/${_basename}.c) - ENDIF(NOT _prefix_length EQUAL 0) - - #MESSAGE("${FLEX_EXECUTABLE} -o${_out} ${_args} ${_in}") - - IF(NOT DEFINED ${_basename}_DONE) - - MESSAGE(STATUS "parse ${_basename} with flex...") - - FILE(MAKE_DIRECTORY ${_output_dir}) - EXECUTE_PROCESS( - COMMAND ${FLEX_EXECUTABLE} -o${_out} ${_args} ${_in} - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR - ) - - IF (NOT ${RESULT} STREQUAL "1") - MESSAGE(STATUS "${ERROR}parse ${_basename} with flex...done") - ELSE (NOT ${RESULT} STREQUAL "1") - MESSAGE(FATAL_ERROR "${ERROR}parse ${_basename} with flex...failed") - ENDIF (NOT ${RESULT} STREQUAL "1") - - SET(${_basename}_DONE TRUE CACHE INTERNAL "${_basename} flex parse done") - - ENDIF(NOT DEFINED ${_basename}_DONE) - - SET(${_sourcelist} ${${_sourcelist}} ${_out} ) - SET_SOURCE_FILES_PROPERTIES(${_out} PROPERTIES COMPILE_DEFINITIONS YY_NO_UNISTD_H) - -ENDMACRO(ADD_FLEX_FILE) diff --git a/contrib/platform/win32/CMakeModules/find_libltdl.cmake b/contrib/platform/win32/CMakeModules/find_libltdl.cmake deleted file mode 100644 index 3a7e35e916..0000000000 --- a/contrib/platform/win32/CMakeModules/find_libltdl.cmake +++ /dev/null @@ -1,53 +0,0 @@ -# -# Copyright (c) 2009-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -# -# LIBLTDL_PATH - path to libltdl dir -# LIBLTDL_LIB_PATH - path to ltdl.lib -# LIBLTDL_INCLUDE_PATH - path to ltdl.h -# LIBLTDL_FOUND - system has Libltdl -# - -SET(LIBLTDL_PATH "" CACHE PATH "Path to libltdl root directory.") - -IF(NOT OPAL_WANT_LIBLTDL) - SET(LIBLTDL_FOUND FALSE CACHE INTERNAL "find result of libltdl.") -ELSE(NOT OPAL_WANT_LIBLTDL) - - IF(NOT LIBLTDL_FOUND OR NOT "${LIBLTDL_PATH}" STREQUAL "${LIBLTDL_OLD_PATH}") - MESSAGE(STATUS "looking for libltdl...") - - # set the default search path - IF("${LIBLTDL_PATH}" STREQUAL "") - SET(CHECK_PATH "$ENV{ProgramFiles}/GnuWin32") - ELSE("${LIBLTDL_PATH}" STREQUAL "") - SET(CHECK_PATH ${LIBLTDL_PATH}) - ENDIF("${LIBLTDL_PATH}" STREQUAL "") - - # clear the old find results and start a new search - UNSET(LIBLTDL_INCLUDE_PATH CACHE) - UNSET(LIBLTDL_LIB_PATH CACHE) - - FIND_FILE(LIBLTDL_LIB ltdl.lib PATHS ${CHECK_PATH}/lib) - FIND_PATH(LIBLTDL_INCLUDE_PATH ltdl.h PATHS ${CHECK_PATH}/include) - - IF(LIBLTDL_LIB AND LIBLTDL_INCLUDE_PATH) - SET(LIBLTDL_FOUND TRUE CACHE INTERNAL "find result of libltdl.") - SET(LIBLTDL_OLD_PATH ${LIBLTDL_PATH} CACHE INTERNAL "Store the old libltdl path.") - MESSAGE(STATUS "looking for libltdl...found.") - ELSE(LIBLTDL_LIB AND LIBLTDL_INCLUDE_PATH) - SET(LIBLTDL_FOUND FALSE CACHE INTERNAL "find result of libltdl.") - MESSAGE(STATUS "looking for libltdl...failed.") - ENDIF(LIBLTDL_LIB AND LIBLTDL_INCLUDE_PATH) - - ENDIF(NOT LIBLTDL_FOUND OR NOT "${LIBLTDL_PATH}" STREQUAL "${LIBLTDL_OLD_PATH}") - -ENDIF(NOT OPAL_WANT_LIBLTDL) diff --git a/contrib/platform/win32/CMakeModules/find_ofed_sdk.cmake b/contrib/platform/win32/CMakeModules/find_ofed_sdk.cmake deleted file mode 100644 index fffbbdf9f9..0000000000 --- a/contrib/platform/win32/CMakeModules/find_ofed_sdk.cmake +++ /dev/null @@ -1,97 +0,0 @@ -# Copyright (c) 2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Find OFED SDK headers and libraries. - -# -# OFED_SDK_PATH - path to OFED SDK dir -# OFED_SDK_INCLUDE_PATH - path to verbs.h -# OFED_SDK_FOUND - system has OFED SDK -# - -# This module is included in a .windows file, it must return two variables: -# RESULT : find result -# RESULT_INCLUDE_PATH : the path need to include if RESULT is true -# RESULT_LINK_LIBRARIES : libraries need to be linked - -IF(NOT OMPI_WANT_OFED) - SET(RESULT FALSE) -ELSE(NOT OMPI_WANT_OFED) - - SET(OFED_SDK_PATH "" CACHE PATH - "Path to OFED SDK root directory, if not in system path, has to be set manually by user.") - - #generate the lex file, if it's not there - IF(NOT EXISTS ${PROJECT_SOURCE_DIR}/mca/btl/openib/btl_openib_lex.c) - ADD_FLEX_FILE(OPAL_SOURCE_FILES ./mca/btl/openib/btl_openib_lex.l - btl_openib_ini_yy "${PROJECT_BINARY_DIR}/mca/btl/openib/") - SET(RESULT_APPEND_FILES ${PROJECT_BINARY_DIR}/mca/btl/openib/btl_openib_lex.c) - ENDIF(NOT EXISTS ${PROJECT_SOURCE_DIR}/mca/btl/openib/btl_openib_lex.c) - - IF(NOT OFED_SDK_FOUND) - - MESSAGE(STATUS "looking for OFED SDK...") - - # set the default search path - IF("${OFED_SDK_PATH}" STREQUAL "") - SET(OFED_SDK_PATH "$ENV{SystemDrive}/OFED_SDK") - ENDIF("${OFED_SDK_PATH}" STREQUAL "") - - # clear the old find results and start a new search - UNSET(OFED_SDK_INCLUDE_PATH) - UNSET(OFED_SDK_LIBIBVERBS) - - FIND_PATH(OFED_SDK_INCLUDE_PATH NAMES verbs.h PATHS ${OFED_SDK_PATH}/Inc/infiniband - DOC "Path to OFED SDK include directory, will be detected automatically.") - - FIND_LIBRARY(OFED_SDK_LIBIBVERBS libibverbs PATHS ${OFED_SDK_PATH}/Lib - DOC "Path to OFED SDK libraries directory, will be detected automatically.") - - FIND_LIBRARY(OFED_SDK_LIBRDMACM librdmacm PATHS ${OFED_SDK_PATH}/Lib - DOC "Path to OFED SDK libraries directory, will be detected automatically.") - - IF(OFED_SDK_INCLUDE_PATH AND OFED_SDK_LIBIBVERBS) - SET(OFED_SDK_FOUND TRUE CACHE INTERNAL "find result of OFED SDK.") - SET(RESULT_INCLUDE_PATH ${OFED_SDK_INCLUDE_PATH}/..;${PROJECT_SOURCE_DIR}/mca/btl/openib) - SET(RESULT_LINK_LIBRARIES ${OFED_SDK_LIBIBVERBS} ${OFED_SDK_LIBRDMACM}) - SET(RESULT TRUE) - MESSAGE(STATUS "looking for OFED SDK...found.") - - UNSET(CMAKE_REQUIRED_INCLUDES) - UNSET(CMAKE_REQUIRED_LIBRARIES) - - SET(CMAKE_REQUIRED_INCLUDES ${OFED_SDK_PATH}/Inc/infiniband/verbs.h ${OFED_SDK_PATH}/Inc/infiniband/sa.h) - SET(CMAKE_REQUIRED_LIBRARIES ${OFED_SDK_PATH}/Lib/libibverbs.lib ${OFED_SDK_PATH}/Lib/librdmacm.lib) - - OMPI_CHECK_FUNCTION_EXISTS(ibv_fork_init HAVE_IBV_FORK_INIT) - OMPI_CHECK_FUNCTION_EXISTS(ibv_get_device_list HAVE_IBV_GET_DEVICE_LIST) - OMPI_CHECK_FUNCTION_EXISTS(ibv_resize_cq HAVE_IBV_RESIZE_CQ) - OMPI_CHECK_SYMBOL_EXISTS(IBV_EVENT_CLIENT_REREGISTER "" HAVE_DECL_IBV_EVENT_CLIENT_REREGISTER) - - INSTALL(FILES ${PROJECT_SOURCE_DIR}/mca/btl/openib/mca-btl-openib-device-params.ini - ${PROJECT_SOURCE_DIR}/mca/btl/openib/help-mpi-btl-openib.txt - DESTINATION share/openmpi) - - ELSE(OFED_SDK_INCLUDE_PATH AND OFED_SDK_LIBIBVERBS) - SET(OFED_SDK_FOUND FALSE CACHE INTERNAL "find result of OFED SDK.") - SET(RESULT FALSE) - MESSAGE(STATUS "looking for OFED SDK...not found.") - ENDIF(OFED_SDK_INCLUDE_PATH AND OFED_SDK_LIBIBVERBS) - - ELSE(NOT OFED_SDK_FOUND) - SET(RESULT_INCLUDE_PATH ${OFED_SDK_INCLUDE_PATH}/..;${OpenMPI_SOURCE_DIR}/ompi/mca/btl/openib) - SET(RESULT_LINK_LIBRARIES ${OFED_SDK_LIBIBVERBS} ${OFED_SDK_LIBRDMACM}) - SET(RESULT TRUE) - - INSTALL(FILES ${PROJECT_SOURCE_DIR}/mca/btl/openib/mca-btl-openib-device-params.ini - ${PROJECT_SOURCE_DIR}/mca/btl/openib/help-mpi-btl-openib.txt - DESTINATION share/openmpi) - ENDIF(NOT OFED_SDK_FOUND) - -ENDIF(NOT OMPI_WANT_OFED) diff --git a/contrib/platform/win32/CMakeModules/find_winverbs.cmake b/contrib/platform/win32/CMakeModules/find_winverbs.cmake deleted file mode 100644 index 81076045d0..0000000000 --- a/contrib/platform/win32/CMakeModules/find_winverbs.cmake +++ /dev/null @@ -1,83 +0,0 @@ -# Copyright (c) 2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Find OFED SDK Winverbs headers and libraries. - -# -# WINVERBS_PATH - path to OFED SDK dir -# WINVERBS_INCLUDE_PATH - path to verbs.h -# WINVERBS_FOUND - system has OFED SDK -# - -# This module is included in a .windows file, it must return two variables: -# RESULT : find result -# RESULT_INCLUDE_PATH : the path need to include if RESULT is true -# RESULT_LINK_LIBRARIES : libraries need to be linked - -IF(NOT OMPI_WANT_WINVERBS) - SET(RESULT FALSE) -ELSE(NOT OMPI_WANT_WINVERBS) - - SET(WINVERBS_PATH "" CACHE PATH - "Path to OFED SDK WINVERBS root directory, if not in system path, has to be set manually by user.") - - #generate the lex file, if it's not there - IF(NOT EXISTS ${PROJECT_SOURCE_DIR}/mca/btl/wv/btl_wv_lex.c) - ADD_FLEX_FILE(OPAL_SOURCE_FILES ./mca/btl/wv/btl_wv_lex.l - btl_wv_ini_yy "${PROJECT_BINARY_DIR}/mca/btl/wv/") - SET(RESULT_APPEND_FILES ${PROJECT_BINARY_DIR}/mca/btl/wv/btl_wv_lex.c) - ENDIF(NOT EXISTS ${PROJECT_SOURCE_DIR}/mca/btl/wv/btl_wv_lex.c) - - IF(NOT WINVERBS_FOUND) - - MESSAGE(STATUS "looking for Winverbs...") - - # set the default search path - IF("${WINVERBS_PATH}" STREQUAL "") - SET(WINVERBS_PATH "$ENV{SystemDrive}/OFED_SDK") - ENDIF("${WINVERBS_PATH}" STREQUAL "") - - # clear the old find results and start a new search - UNSET(WINVERBS_INCLUDE_PATH) - UNSET(WINVERBS_LIB) - - FIND_PATH(WINVERBS_INCLUDE_PATH NAMES winverbs.h PATHS ${WINVERBS_PATH}/Inc/rdma - DOC "Path to Winverbs include directory, will be detected automatically.") - - FIND_LIBRARY(WINVERBS_LIB winverbs PATHS ${WINVERBS_PATH}/Lib - DOC "Path to OFED SDK libraries directory, will be detected automatically.") - - IF(WINVERBS_INCLUDE_PATH AND WINVERBS_LIB) - SET(WINVERBS_FOUND TRUE CACHE INTERNAL "find result of Winverbs.") - SET(RESULT_INCLUDE_PATH ${WINVERBS_INCLUDE_PATH}/..;${PROJECT_SOURCE_DIR}/mca/btl/wv) - SET(RESULT_LINK_LIBRARIES ${WINVERBS_LIB}) - SET(RESULT TRUE) - MESSAGE(STATUS "looking for Winverbs...found.") - - INSTALL(FILES ${PROJECT_SOURCE_DIR}/mca/btl/wv/mca-btl-wv-device-params.ini - ${PROJECT_SOURCE_DIR}/mca/btl/wv/help-mpi-btl-wv.txt - DESTINATION share/openmpi) - - ELSE(WINVERBS_INCLUDE_PATH AND WINVERBS_LIBIBVERBS) - SET(WINVERBS_FOUND FALSE CACHE INTERNAL "find result of Winverbs.") - SET(RESULT FALSE) - MESSAGE(STATUS "looking for Winverbs...not found.") - ENDIF(WINVERBS_INCLUDE_PATH AND WINVERBS_LIB) - - ELSE(NOT WINVERBS_FOUND) - SET(RESULT_INCLUDE_PATH ${WINVERBS_INCLUDE_PATH}/..;${OpenMPI_SOURCE_DIR}/ompi/mca/btl/wv) - SET(RESULT_LINK_LIBRARIES ${WINVERBS_LIB}) - SET(RESULT TRUE) - - INSTALL(FILES ${PROJECT_SOURCE_DIR}/mca/btl/wv/mca-btl-wv-device-params.ini - ${PROJECT_SOURCE_DIR}/mca/btl/wv/help-mpi-btl-wv.txt - DESTINATION share/openmpi) - ENDIF(NOT WINVERBS_FOUND) - -ENDIF(NOT OMPI_WANT_WINVERBS) diff --git a/contrib/platform/win32/CMakeModules/fortran_check.cmake b/contrib/platform/win32/CMakeModules/fortran_check.cmake deleted file mode 100644 index 196a99807c..0000000000 --- a/contrib/platform/win32/CMakeModules/fortran_check.cmake +++ /dev/null @@ -1,114 +0,0 @@ -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -# OMPI_FORTRAN_CHECK(Fortran type, c type required, -# types to search, expected size) -#---------------------------------------------------------- -# Check Fortran type, including: -# - whether compiler supports or not -# - size of type -# - equal to expected size -# - alignment -# - associated C type -# -# types to search is a list of values - -MACRO(OMPI_FORTRAN_CHECK FORTRAN_TYPE C_TYPE TYPE_LIST EXPECTED_SIZE) - - STRING(REPLACE "*" "" TYPE_NAME ${FORTRAN_TYPE}) - STRING(REPLACE " " "_" TYPE_NAME ${TYPE_NAME}) - STRING(TOLOWER ${TYPE_NAME} TYPE_NAME_L) - - INCLUDE(FORTRAN_check_type) - INCLUDE(FORTRAN_get_alignment) - INCLUDE(FORTRAN_get_sizeof) - INCLUDE(ompi_find_type) - - SET(ofc_expected_size ${EXPECTED_SIZE}) - SET(ofc_have_type 0) - SET(ofc_type_size ${SIZEOF_INT}) - SET(ofc_type_alignment ${SIZEOF_INT}) - SET(ofc_c_type ${ompi_fortran_bogus_type_t}) - - IF(OMPI_WANT_FORTRAN_BINDINGS) - IF(NOT DEFINED FORTRAN_SETUP_${TYPE_NAME}_DONE) - - OMPI_FORTRAN_CHECK_TYPE(${FORTRAN_TYPE} ofc_have_type) - - IF(ofc_have_type) - # What is the size of this type? - - # NOTE: Some Fortran compilers actually will return that a - # type exists even if it doesn't support it -- the compiler - # will automatically convert the unsupported type to a type - # that it *does* support. For example, if you try to use - # INTEGER*16 and the compiler doesn't support it, it may well - # automatically convert it to INTEGER*8 for you (!). So we - # have to check the actual size of the type once we determine - # that the compiler doesn't error if we try to use it - # (i.e,. the compiler *might* support that type). If the size - # doesn't match the expected size, then the compiler doesn't - # really support it. - OMPI_FORTRAN_GET_SIZEOF(${FORTRAN_TYPE} ofc_type_size) - - IF(NOT ${ofc_expected_size} STREQUAL "-1" AND NOT ${ofc_type_size} EQUAL "${ofc_expected_size}") - MESSAGE(STATUS "*** Fortran 77 ${FORTRAN_TYPE} does not have expected size!") - MESSAGE(STATUS "*** Expected ${ofc_expected_size}, got ${ofc_type_size}") - MESSAGE(STATUS "*** Disabling MPI support for Fortran 77 ${FORTRAN_TYPE}") - SET(ofc_have_type 0) - ELSE(NOT ${ofc_expected_size} STREQUAL "-1" AND NOT ${ofc_type_size} EQUAL "${ofc_expected_size}") - # Look for a corresponding C type (will abort by itself if the - # type isn't found and we need it) - IF(NOT "${TYPE_LIST}" STREQUAL "") - OMPI_FIND_TYPE(${FORTRAN_TYPE} "${TYPE_LIST}" ${C_TYPE} ${ofc_type_size} ofc_c_type) - ENDIF(NOT "${TYPE_LIST}" STREQUAL "") - - OMPI_FORTRAN_GET_ALIGNMENT(${FORTRAN_TYPE} ofc_type_alignment) - - ENDIF(NOT ${ofc_expected_size} STREQUAL "-1" AND NOT ${ofc_type_size} EQUAL "${ofc_expected_size}") - SET(FORTRAN_SETUP_${TYPE_NAME}_DONE TRUE CACHE INTERNAL "FORTRAN ${TYPE_NAME} check done or not.") - ENDIF(ofc_have_type) - - SET(OMPI_HAVE_FORTRAN_${TYPE_NAME}_C ${ofc_have_type} CACHE INTERNAL "OMPI_HAVE_FORTRAN_${TYPE_NAME}") - SET(OMPI_SIZEOF_FORTRAN_${TYPE_NAME}_C ${ofc_type_size} CACHE INTERNAL "OMPI_SIZEOF_FORTRAN_${TYPE_NAME}") - SET(OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME}_C ${ofc_type_alignment} CACHE INTERNAL "OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME}") - - ENDIF(NOT DEFINED FORTRAN_SETUP_${TYPE_NAME}_DONE) - - SET(OMPI_HAVE_FORTRAN_${TYPE_NAME} ${OMPI_HAVE_FORTRAN_${TYPE_NAME}_C} - CACHE INTERNAL "OMPI_HAVE_FORTRAN_${TYPE_NAME}") - SET(OMPI_SIZEOF_FORTRAN_${TYPE_NAME} ${OMPI_SIZEOF_FORTRAN_${TYPE_NAME}_C} - CACHE INTERNAL "OMPI_SIZEOF_FORTRAN_${TYPE_NAME}") - SET(OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME} ${OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME}_C} - CACHE INTERNAL "OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME}") - - ELSEIF(NOT OMPI_WANT_FORTRAN_BINDINGS) - UNSET(FORTRAN_SETUP_${TYPE_NAME}_DONE) - SET(OMPI_HAVE_FORTRAN_${TYPE_NAME} ${ofc_have_type} CACHE INTERNAL "OMPI_HAVE_FORTRAN_${TYPE_NAME}") - SET(OMPI_SIZEOF_FORTRAN_${TYPE_NAME} ${ofc_type_size} CACHE INTERNAL "OMPI_SIZEOF_FORTRAN_${TYPE_NAME}") - SET(OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME} ${ofc_type_alignment} CACHE INTERNAL "OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME}") - ENDIF(OMPI_WANT_FORTRAN_BINDINGS) - - IF(NOT "${TYPE_LIST}" STREQUAL "") - SET(ompi_fortran_${TYPE_NAME_L}_t ${ofc_c_type} CACHE INTERNAL "ompi_fortran_${TYPE_NAME_L}_t") - ENDIF(NOT "${TYPE_LIST}" STREQUAL "") - - #MESSAGE("OMPI_HAVE_FORTRAN_${TYPE_NAME}:${OMPI_HAVE_FORTRAN_${TYPE_NAME}}") - #MESSAGE("OMPI_SIZEOF_FORTRAN_${TYPE_NAME}:${OMPI_SIZEOF_FORTRAN_${TYPE_NAME}}") - #MESSAGE("OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME}:${OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME}}") - #MESSAGE("ompi_fortran_${TYPE_NAME_L}_t:${ompi_fortran_${TYPE_NAME_L}_t}") - - OMPI_DEF_VAR(OMPI_HAVE_FORTRAN_${TYPE_NAME} "Whether we have Fortran 77 `${FORTRAN_TYPE}' or not." 0 1) - OMPI_DEF_VAR(OMPI_SIZEOF_FORTRAN_${TYPE_NAME} "Size of Fortran 77 `${FORTRAN_TYPE}'." 0 1) - OMPI_DEF_VAR(OMPI_ALIGNMENT_FORTRAN_${TYPE_NAME} "Alignment of Fortran 77 `${FORTRAN_TYPE}'." 0 1) - OMPI_DEF_VAR(ompi_fortran_${TYPE_NAME_L}_t "C type corresponding to Fortran 77 `${FORTRAN_TYPE}'." 0 0) - -ENDMACRO(OMPI_FORTRAN_CHECK FORTRAN_TYPE C_TYPE TYPE_LIST EXPECTED_SIZE) diff --git a/contrib/platform/win32/CMakeModules/fortran_check_real16_c_equiv.cmake b/contrib/platform/win32/CMakeModules/fortran_check_real16_c_equiv.cmake deleted file mode 100644 index 90e5c4c5b6..0000000000 --- a/contrib/platform/win32/CMakeModules/fortran_check_real16_c_equiv.cmake +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -# OMPI_FORTRAN_CHECK_REAL16_C_EQUIV -# ---------------------------------------------------- -MACRO(OMPI_FORTRAN_CHECK_REAL16_C_EQUIV) - SET(OMPI_REAL16_MATCHES_C 0) - - IF(OMPI_WANT_FORTRAN_BINDINGS AND OMPI_HAVE_FORTRAN_REAL16 AND NOT DEFINED REAL16_MATCHES_CHECK_DONE) - IF(NOT ${ompi_fortran_real16_t} STREQUAL "") - STRING(TOUPPER ${ompi_fortran_real16_t} REAL16_C_TYPE) - - IF(${OMPI_SIZEOF_FORTRAN_REAL16} EQUAL SIZEOF_${REAL16_C_TYPE}) - OMPI_FORTRAN_MAKE_C_FUNCTION(ompi_ac_c_fn c) - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_c.c - "#include \n" - "#include \n" - "\n" - "#ifdef __cplusplus\n" - "extern \"C\" {\n" - "#endif\n" - "void ${ompi_ac_c_fn}(${ompi_fortran_real16_t} *a) {\n" - " ${ompi_fortran_real16_t} foo = 11; " - " FILE *fp = fopen(\"conftestval\", \"w\");\n" - " if (NULL == fp) exit(1);\n" - " foo = 1 / foo;" - " fprintf(fp, \"%s\n\", (foo == *a) ? \"yes\" : \"no\");\n" - " fclose(fp);\n" - "}\n" - "#ifdef __cplusplus\n" - "}\n" - "#endif\n") - - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_f.f - "\tprogram bogus\n" - "\tREAL*16 :: foo = 11\n" - "\tfoo = 1 / foo\n" - "\tcall c(foo)\n" - "\tend program bogus\n") - - EXECUTE_PROCESS(COMMAND ${CC} ${OMPI_C_OPTION_COMPILE} conftest_c.c ${OMPI_C_INCLUDE_DIR}${C_COMPILER_INCLUDE} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - EXECUTE_PROCESS(COMMAND ${FORTRAN} conftest_f.f conftest_c.obj ${FORTRAN_OUTPUT_OBJ}conftest - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - EXECUTE_PROCESS(COMMAND conftest.exe - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - IF(RESULT) - UNSET(REAL16_MATCHES_CHECK_DONE CACHE) - MESSAGE(FATAL_ERROR "Can not determine if REAL*16 bit-matches C.") - ELSE(RESULT) - IF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval) - # read out type size value from the file, and write back to the output variable - FILE(READ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval ${OUTPUT_VARIABLE}) - MESSAGE(STATUS "Check if REAL*16 bit-matches C...${OUTPUT_VARIABLE}") - SET(OMPI_REAL16_MATCHES_C 1) - SET(REAL16_MATCHES_CHECK_DONE TRUE CACHE INTERNAL "Real16 matches c type check done.") - ELSE(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval) - UNSET(REAL16_MATCHES_CHECK_DONE CACHE) - MESSAGE(STATUS "Check if REAL*16 bit-matches C...failed") - ENDIF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval) - ENDIF(RESULT) - - ELSE(${OMPI_SIZEOF_FORTRAN_REAL16} EQUAL SIZEOF_${REAL16_C_TYPE}) - SET(REAL16_MATCHES_CHECK_DONE TRUE CACHE INTERNAL "Real16 matches c type check done.") - MESSAGE(STATUS "Check if REAL*16 bit-matches C...skipped. (no corresponding C type)") - ENDIF(${OMPI_SIZEOF_FORTRAN_REAL16} EQUAL SIZEOF_${REAL16_C_TYPE}) - - ELSE(NOT ${ompi_fortran_real16_t} STREQUAL "") - SET(REAL16_MATCHES_CHECK_DONE TRUE CACHE INTERNAL "Real16 matches c type check done.") - MESSAGE(STATUS "Check if REAL*16 bit-matches C...skipped. (no REAL*16)") - ENDIF(NOT ${ompi_fortran_real16_t} STREQUAL "") - - ELSEIF(NOT OMPI_WANT_FORTRAN_BINDINGS) - UNSET(REAL16_MATCHES_CHECK_DONE CACHE) - ENDIF(OMPI_WANT_FORTRAN_BINDINGS AND OMPI_HAVE_FORTRAN_REAL16 AND NOT DEFINED REAL16_MATCHES_CHECK_DONE) - - OMPI_DEF_VAR(OMPI_REAL16_MATCHES_C "if REAL*16 bit-matches C." 0 1) - -ENDMACRO(OMPI_FORTRAN_CHECK_REAL16_C_EQUIV) diff --git a/contrib/platform/win32/CMakeModules/fortran_check_type.cmake b/contrib/platform/win32/CMakeModules/fortran_check_type.cmake deleted file mode 100644 index f5fa4b5921..0000000000 --- a/contrib/platform/win32/CMakeModules/fortran_check_type.cmake +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# OMPI_FORTRAN_CHECK_TYPE -# in: TYPE - fortran type to check. -# out: HAVE_TYPE - 0/1 whether we have that type. -# ----------------------------------------------------------------- - -MACRO(OMPI_FORTRAN_CHECK_TYPE TYPE HAVE_TYPE) - - IF(NOT DEFINED ${TYPE_NAME}_CHECK_DONE) - - MESSAGE(STATUS "Check if Fortran 77 compiler supports ${TYPE}...") - - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_fortran_type.f - "\t program main \n" - "\t ${TYPE} bogus_variable \n" - "\t END \n") - - EXECUTE_PROCESS(COMMAND ${FORTRAN} check_fortran_type.f - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - IF(RESULT) - SET(${HAVE_TYPE} 0 CACHE INTERNAL "have Fortran ${TYPE}") - MESSAGE(STATUS "Check if Fortran 77 compiler supports ${TYPE}...no") - ELSE(RESULT) - SET(${HAVE_TYPE} 1 CACHE INTERNAL "have Fortran ${TYPE}") - MESSAGE(STATUS "Check if Fortran 77 compiler supports ${TYPE}...yes") - ENDIF(RESULT) - - SET(${TYPE_NAME}_CHECK_DONE TRUE CACHE INTERNAL "${TYPE_NAME} check done") - - ENDIF(NOT DEFINED ${TYPE_NAME}_CHECK_DONE) - -ENDMACRO(OMPI_FORTRAN_CHECK_TYPE TYPE HAVE_TYPE) \ No newline at end of file diff --git a/contrib/platform/win32/CMakeModules/fortran_find_ext_symbol_convention.cmake b/contrib/platform/win32/CMakeModules/fortran_find_ext_symbol_convention.cmake deleted file mode 100644 index 648b7f9400..0000000000 --- a/contrib/platform/win32/CMakeModules/fortran_find_ext_symbol_convention.cmake +++ /dev/null @@ -1,157 +0,0 @@ -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -MACRO(OMPI_FORTRAN_FIND_EXT_SYMBOL_CONVENTION) - IF(NOT SYMBOL_CONVENTION_CHECK_DONE) - SET(OMPI_FORTRAN_DOUBLE_UNDERSCORE 0 - CACHE INTERNAL "external symbol convention - double underscore") - SET(OMPI_FORTRAN_SINGLE_UNDERSCORE 0 - CACHE INTERNAL "external symbol convention - single underscore") - SET(OMPI_FORTRAN_CAPS 0 - CACHE INTERNAL "external symbol convention - captital") - SET(OMPI_FORTRAN_PLAIN 0 - CACHE INTERNAL "external symbol convention - plain") - - # make sure we know our linking convention... - MESSAGE(STATUS "Check ${FORTRAN} external symbol convention...") - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.f - "\t subroutine FOO_bar(a) \n" - "\t integer a \n" - "\t a = 1 \n" - "\t return \n" - "\t end \n") - - EXECUTE_PROCESS(COMMAND ${FORTRAN} ${FORTRAN_OPTION_COMPILE} conftest.f ${FORTRAN_OUTPUT_OBJ}conftest.lib - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - SET(OUTPUT_OBJ_FILE "conftest.lib") - - # now run dumpbin to generate an output file - EXECUTE_PROCESS(COMMAND ${DUMP_UTIL} ${OUTPUT_OBJ_FILE} ${DUMP_UTIL_OPT} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE DUMP_OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - STRING(REGEX MATCH foo_bar__\n DOUBLE_UNDERSCORE ${DUMP_OUTPUT}) - STRING(REGEX MATCH foo_bar_\n SINGLE_UNDERSCORE ${DUMP_OUTPUT}) - STRING(REGEX MATCH FOO_bar\n MIXED_CASE ${DUMP_OUTPUT}) - STRING(REGEX MATCH foo_bar\n NO_UNDERSCORE ${DUMP_OUTPUT}) - STRING(REGEX MATCH FOO_BAR\n UPPER_CASE ${DUMP_OUTPUT}) - - # set up the corresponding values - IF(NOT DOUBLE_UNDERSCORE STREQUAL "") - SET(OMPI_FORTRAN_DOUBLE_UNDERSCORE 1 - CACHE INTERNAL "external symbol convention - double underscore") - SET(FUNC_NAME "foo_bar__") - SET(ompi_cv_fortran_external_symbol "double underscore" - CACHE INTERNAL "FORTRAN external symbol convention") - ELSEIF(NOT SINGLE_UNDERSCORE STREQUAL "") - SET(OMPI_FORTRAN_SINGLE_UNDERSCORE 1 - CACHE INTERNAL "external symbol convention - single underscore") - SET(FUNC_NAME "foo_bar_") - SET(ompi_cv_fortran_external_symbol "single underscore" - CACHE INTERNAL "FORTRAN external symbol convention") - ELSEIF(NOT MIXED_CASE STREQUAL "") - SET(OMPI_FORTRAN_CAPS 1 - CACHE INTERNAL "external symbol convention - captital") - SET(FUNC_NAME "FOO_bar") - SET(ompi_cv_fortran_external_symbol "mixed case" - CACHE INTERNAL "FORTRAN external symbol convention") - ELSEIF(NOT NO_UNDERSCORE STREQUAL "") - SET(OMPI_FORTRAN_PLAIN 1 - CACHE INTERNAL "external symbol convention - plain") - SET(FUNC_NAME "foo_bar") - SET(ompi_cv_fortran_external_symbol "no underscore" - CACHE INTERNAL "FORTRAN external symbol convention") - ELSEIF(NOT UPPER_CASE STREQUAL "") - SET(OMPI_FORTRAN_CAPS 1 - CACHE INTERNAL "external symbol convention - captital") - SET(FUNC_NAME "FOO_BAR") - SET(ompi_cv_fortran_external_symbol "upper case" - CACHE INTERNAL "FORTRAN external symbol convention") - ELSE(NOT UPPER_CASE STREQUAL "") - MESSAGE(FATAL_ERROR "unknow Fortran naming convertion.") - SET(ompi_cv_fortran_external_symbol "unknow") - ENDIF(NOT DOUBLE_UNDERSCORE STREQUAL "") - - MESSAGE(STATUS "Check ${FORTRAN} external symbol convention...${ompi_cv_fortran_external_symbol}") - - # now test if we can link the library with c program - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_c.c - "int main(){${FUNC_NAME}();return(0);}") - - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CMakeLists.txt - "CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6 FATAL_ERROR)\n" - "PROJECT(conftest_c C)\n" - "IF(NOT \"${FORTRAN_LIB_PATH}\" STREQUAL \"\")\n" - " LINK_DIRECTORIES(\"${FORTRAN_LIB_PATH}\")\n" - "ENDIF(NOT \"${FORTRAN_LIB_PATH}\" STREQUAL \"\")\n" - "LINK_DIRECTORIES(${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/)\n" - "ADD_EXECUTABLE(conftest_c conftest_c.c)\n" - "TARGET_LINK_LIBRARIES(conftest_c ${OUTPUT_OBJ_FILE})\n") - - TRY_COMPILE( - TEST_OK - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - conftest_c - OUTPUT_VARIABLE MY_OUTPUT) - - #MESSAGE("MY_OUTPUT:${MY_OUTPUT}") - - IF(TEST_OK) - SET(SYMBOL_CONVENTION_CHECK_DONE TRUE CACHE INTERNAL "Symbol convention check done.") - ELSE(TEST_OK) - UNSET(SYMBOL_CONVENTION_CHECK_DONE CACHE) - MESSAGE(STATUS "${MY_OUTPUT}") - MESSAGE(STATUS "*** Probably you have to setup the library path of the Fortran compiler.") - MESSAGE(FATAL_ERROR "C and Fortran 77 compilers are not link compatible. Cannot continue.") - ENDIF(TEST_OK) - - ENDIF(NOT SYMBOL_CONVENTION_CHECK_DONE) - -ENDMACRO(OMPI_FORTRAN_FIND_EXT_SYMBOL_CONVENTION) - - -# return the corresponding C function name -# OMPI_FORTRAN_MAKE_C_FUNCTION -# in: FUNCTION_NAME -Fortran function name -# out: OUTPUT_VARIABLE -C function name -MACRO(OMPI_FORTRAN_MAKE_C_FUNCTION OUTPUT_VARIABLE FUNCTION_NAME) - IF("${ompi_cv_fortran_external_symbol}" STREQUAL "double underscore") - # so the general rule is that if there is an _ in the function - # name, then there are two trailing underscores. Otherwise, - # there is only one trailing underscore. - STRING(TOLOWER ${FUNCTION_NAME} ${OUTPUT_VARIABLE}) - STRING(REGEX MATCH "_" RESULT ${FUNCTION_NAME}) - IF("${RESULT}" STREQUAL "") - SET(${OUTPUT_VARIABLE} "${${OUTPUT_VARIABLE}}_") - ELSE("${RESULT}" STREQUAL "") - SET(${OUTPUT_VARIABLE} "${${OUTPUT_VARIABLE}}__") - ENDIF("${RESULT}" STREQUAL "") - ELSEIF("${ompi_cv_fortran_external_symbol}" STREQUAL "single underscore") - STRING(TOLOWER ${FUNCTION_NAME} ${OUTPUT_VARIABLE}) - SET(${OUTPUT_VARIABLE} "${${OUTPUT_VARIABLE}}_") - ELSEIF("${ompi_cv_fortran_external_symbol}" STREQUAL "mixed case") - SET(${OUTPUT_VARIABLE} ${FUNCTION_NAME}) - ELSEIF("${ompi_cv_fortran_external_symbol}" STREQUAL "no underscore") - STRING(TOLOWER ${FUNCTION_NAME} ${OUTPUT_VARIABLE}) - ELSEIF("${ompi_cv_fortran_external_symbol}" STREQUAL "upper case") - STRING(TOUPPER ${FUNCTION_NAME} ${OUTPUT_VARIABLE}) - ELSE("${ompi_cv_fortran_external_symbol}" STREQUAL "double underscore") - MESSAGE(FATAL_ERROR "unknown naming convention: ${ompi_cv_fortran_external_symbol}") - ENDIF("${ompi_cv_fortran_external_symbol}" STREQUAL "double underscore") - -ENDMACRO(OMPI_FORTRAN_MAKE_C_FUNCTION OUTPUT_VARIABLE FUNCTION_NAME) \ No newline at end of file diff --git a/contrib/platform/win32/CMakeModules/fortran_get_alignment.cmake b/contrib/platform/win32/CMakeModules/fortran_get_alignment.cmake deleted file mode 100644 index cd5c16060f..0000000000 --- a/contrib/platform/win32/CMakeModules/fortran_get_alignment.cmake +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright (c) 2008 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# OMPI_FORTRAN_GET_ALIGNMENT -# in: TYPE - fortran type to check -# out: ALIGNMENT - alignment to return -# ---------------------------------------------------- - -INCLUDE(FORTRAN_find_ext_symbol_convention) - -MACRO(OMPI_FORTRAN_GET_ALIGNMENT TYPE OUTPUT_VARIABLE) - MESSAGE(STATUS "Check alignment of Fortran ${TYPE}...") - - OMPI_FORTRAN_MAKE_C_FUNCTION(ompi_ac_align_fn align) - - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.f - "\t program falign\n" - "\t external align\n" - "\t $1 w,x,y,z\n" - "\t CHARACTER a,b,c\n" - "\t common /foo/a,w,b,x,y,c,z\n" - "\t call align(w,x,y,z)\n" - "\t end \n") - - IF(EXISTS "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.h") - SET(ompi_conftest_h "#include \"conftest.h\"") - ELSE(EXISTS "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.h") - SET(ompi_conftest_h "") - ENDIF(EXISTS "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.h") - - FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.c" - "\t #include \n" - "\t #include \n" - "\t $conftest \n" - "\t \n" - "\t #ifdef __cplusplus \n" - "\t extern \"C\" { \n" - "\t #endif \n" - "\t void ${ompi_ac_align_fn}(char *w, char *x, char *y, char *z) \n" - "\t { unsigned long aw, ax, ay, az; \n" - "\t FILE *f=fopen(\"conftestval\", \"w\"); \n" - "\t if (!f) exit(1); \n" - "\t aw = (unsigned long) w; \n" - "\t ax = (unsigned long) x; \n" - "\t ay = (unsigned long) y; \n" - "\t az = (unsigned long) z; \n" - "\t if (! ((aw%16)||(ax%16)||(ay%16)||(az%16))) fprintf(f, \"%d\n\", 16); \n" - "\t else if (! ((aw%12)||(ax%12)||(ay%12)||(az%12))) fprintf(f, \"%d\n\", 12); \n" - "\t else if (! ((aw%8)||(ax%8)||(ay%8)||(az%8))) fprintf(f, \"%d\n\", 8); \n" - "\t else if (! ((aw%4)||(ax%4)||(ay%4)||(az%4))) fprintf(f, \"%d\n\", 4); \n" - "\t else if (! ((aw%2)||(ax%2)||(ay%2)||(az%2))) fprintf(f, \"%d\n\", 2); \n" - "\t else fprintf(f, \"%d\n\", 1); \n" - "\t fclose(f); \n" - "\t } \n" - "\t #ifdef __cplusplus \n" - "\t } \n" - "\t #endif \n" - ) - - EXECUTE_PROCESS(COMMAND ${CL_EXE} /c conftest.c /I${VC_INCLUDE_PATH} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - EXECUTE_PROCESS(COMMAND ${FORTRAN} conftest.f conftest.obj -o conftest - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - EXECUTE_PROCESS(COMMAND conftest.exe - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - #MESSAGE("RESULT:${RESULT}") - - IF(RESULT) - MESSAGE(FATAL_ERROR "Could not determine alignment of ${TYPE}.") - ELSE(RESULT) - IF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval) - # read out type size value from the file, and write back to the output variable - FILE(READ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval ${OUTPUT_VARIABLE}) - MESSAGE(STATUS "Check alignment of Fortran ${TYPE}...${${OUTPUT_VARIABLE}}") - ELSE(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval) - MESSAGE(FATAL_ERROR "Could not determine alignment of ${TYPE}.") - ENDIF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval) - ENDIF(RESULT) - -ENDMACRO(OMPI_FORTRAN_GET_ALIGNMENT TYPE OUTPUT_VARIABLE) diff --git a/contrib/platform/win32/CMakeModules/fortran_get_fortran_handle_max.cmake b/contrib/platform/win32/CMakeModules/fortran_get_fortran_handle_max.cmake deleted file mode 100644 index bd09097986..0000000000 --- a/contrib/platform/win32/CMakeModules/fortran_get_fortran_handle_max.cmake +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright (c) 2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -# OMPI_FORTRAN_GET_FORTRAN_HANDLE_MAX() -# ------------------------------------------------------- -# Find the maximum value of fortran integers, then calculate -# min(INT_MAX, max fortran INTEGER). This represents the maximum -# number of fortran MPI handle index. -MACRO(OMPI_FORTRAN_GET_FORTRAN_HANDLE_MAX) - - #store previous value for later use. - IF(DEFINED OMPI_FINT_MAX) - SET(OMPI_FINT_MAX_OLD ${OMPI_FINT_MAX}) - ENDIF(DEFINED OMPI_FINT_MAX) - - IF(NOT OMPI_WANT_FORTRAN_BINDINGS) - SET(OMPI_FINT_MAX 0 CACHE INTERNAL "fortran int max") - ELSE(NOT OMPI_WANT_FORTRAN_BINDINGS) - # Calculate the number of f's that we need to append to the hex - # value. Do one less than we really need becaue we assume the - # top nybble is 0x7 to avoid sign issues. - MATH(EXPR OMPI_NUMF ${OMPI_SIZEOF_FORTRAN_INTEGER}*2-1) - SET(OMPI_FINT_MAX 0x7) - - WHILE(${OMPI_NUMF} GREATER 0) - SET(OMPI_FINT_MAX ${OMPI_FINT_MAX}f CACHE INTERNAL "fortran int max") - MATH(EXPR OMPI_NUMF ${OMPI_NUMF}-1) - ENDWHILE(${OMPI_NUMF} GREATER 0) - ENDIF(NOT OMPI_WANT_FORTRAN_BINDINGS) - - #OMPI_CINT_MAX doesn't change, check only once and cache the result. - IF(NOT DEFINED CINT_MAX_CHECK_DONE) - - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/fortran_handle_max.c - "#include \n" - "#include \n" - "\n" - "#ifdef __cplusplus\n" - "extern \"C\" {\n" - "#endif\n" - "\n" - "void main()\n" - "{\n" - " FILE *fp = fopen(\"fortran_handle_max\", \"w\");\n" - " long cint = INT_MAX;\n" - " fprintf(fp, \"%ld\", cint);\n" - " fclose(fp);\n" - "}\n" - ) - - EXECUTE_PROCESS(COMMAND ${CC} fortran_handle_max.c ${OMPI_C_INCLUDE_DIR}${C_COMPILER_INCLUDE} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - EXECUTE_PROCESS(COMMAND fortran_handle_max.exe - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - IF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/fortran_handle_max) - FILE(READ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/fortran_handle_max OUTPUT_VALUE) - SET(OMPI_CINT_MAX ${OUTPUT_VALUE} CACHE INTERNAL "c int max") - ELSE(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/fortran_handle_max) - SET(OMPI_CINT_MAX 0) - ENDIF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/fortran_handle_max) - - ENDIF(NOT DEFINED CINT_MAX_CHECK_DONE) - - #whenever OMPI_FINT_MAX changes, recalculate OMPI_FORTRAN_HANDLE_MAX - IF(NOT DEFINED OMPI_FINT_MAX OR NOT "${OMPI_FINT_MAX}" STREQUAL "${OMPI_FINT_MAX_OLD}") - - MESSAGE(STATUS "Check Max handle value for Fortran MPI handles...") - - IF(${OMPI_CINT_MAX} EQUAL 0) - # wow - something went really wrong. Be conservative - SET(OMPI_FORTRAN_HANDLE_MAX 32767 CACHE INTERNAL "Fortran handle max") - ELSEIF(${OMPI_FINT_MAX} EQUAL 0) - # we aren't compiling Fortran - just set it to C INT_MAX - SET(OMPI_FORTRAN_HANDLE_MAX ${OMPI_CINT_MAX} CACHE INTERNAL "Fortran handle max") - ELSE(${OMPI_FINT_MAX} EQUAL 0) - # take the lesser of C INT_MAX and Fortran INTEGER - # max. The resulting value will then be storable in - # either type. There's no easy way to do this in - # the shell, so make the preprocessor do it. - SET(OMPI_FORTRAN_HANDLE_MAX "( ${OMPI_FINT_MAX} < ${OMPI_CINT_MAX} ? ${OMPI_FINT_MAX} : ${OMPI_CINT_MAX} )" CACHE INTERNAL "Fortran handle max") - ENDIF(${OMPI_CINT_MAX} EQUAL 0) - - MESSAGE(STATUS "Check Max handle value for Fortran MPI handles...${OMPI_FORTRAN_HANDLE_MAX}") - SET(FORTRAN_MAX_HANDLE_CHECK_DONE TRUE CACHE INTERNAL "Fortran handle max check done") - - ENDIF(NOT DEFINED OMPI_FINT_MAX OR NOT "${OMPI_FINT_MAX}" STREQUAL "${OMPI_FINT_MAX_OLD}") - - OMPI_DEF_VAR(OMPI_FORTRAN_HANDLE_MAX "Max handle value for fortran MPI handles, effectively min(INT_MAX, max fortran INTEGER value)." 0 1) - -ENDMACRO(OMPI_FORTRAN_GET_FORTRAN_HANDLE_MAX) diff --git a/contrib/platform/win32/CMakeModules/fortran_get_sizeof.cmake b/contrib/platform/win32/CMakeModules/fortran_get_sizeof.cmake deleted file mode 100644 index 240b419cf9..0000000000 --- a/contrib/platform/win32/CMakeModules/fortran_get_sizeof.cmake +++ /dev/null @@ -1,98 +0,0 @@ -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -# OMPI_FORTRAN_GET_SIZEOF(type, variable to set) -# ------------------------------------------ - -INCLUDE(fortran_find_ext_symbol_convention) - -MACRO(OMPI_FORTRAN_GET_SIZEOF TYPE OUTPUT_VARIABLE) - MESSAGE(STATUS "Check size of Fortran 77 ${TYPE}...") - - OMPI_FORTRAN_MAKE_C_FUNCTION(ompi_ac_size_fn size) - - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.f - "\t program fsize \n" - "\t external size \n " - "\t ${TYPE} x(2) \n" - "\t call size(x(1),x(2)) \n" - "\t end \n") - - IF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.h) - SET(ompi_conftest_h "#include \"conftest.h\"") - ELSE(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.h) - SET(ompi_conftest_h "") - ENDIF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.h) - - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest.c - "#include \n" - "#include \n" - "${ompi_conftest_h} \n" - "#ifdef __cplusplus \n" - "extern \"C\" { \n" - "#endif \n" - "" - "void ${ompi_ac_size_fn}(char *a, char *b) \n" - "{ \n" - " int diff = (int) (b - a); \n" - " FILE *f=fopen(\"conftestval\", \"w\"); \n" - " if (!f) exit(1); \n" - " fprintf(f, \"%d\\n\", diff); \n" - " fclose(f); \n" - "} \n" - "#ifdef __cplusplus \n" - "} \n" - "#endif \n") - - # generate the C object file - EXECUTE_PROCESS(COMMAND ${CC} ${OMPI_C_OPTION_COMPILE} conftest.c ${OMPI_C_OUTPUT_OBJ}conftest_c.obj - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - # generate the Fortran object file - # some Fortran compilers don't allow to compile and link in one step. :-( - EXECUTE_PROCESS(COMMAND ${FORTRAN} ${FORTRAN_OPTION_COMPILE} conftest.f ${FORTRAN_OUTPUT_OBJ}conftest.obj - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - # link the C and Fortran object files. - EXECUTE_PROCESS(COMMAND ${FORTRAN} conftest.obj conftest_c.obj ${FORTRAN_OUTPUT_EXE}conftest.exe - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - EXECUTE_PROCESS(COMMAND conftest.exe - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - -# MESSAGE("RESULT:${RESULT}") - - IF(RESULT) - MESSAGE(FATAL_ERROR "Could not determine size of ${TYPE}.") - ELSE(RESULT) - IF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval) - # read out type size value from the file, and write back to the output variable - FILE(READ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval ${OUTPUT_VARIABLE}) - STRING(REPLACE "\n" "" ${OUTPUT_VARIABLE} ${${OUTPUT_VARIABLE}}) - MESSAGE(STATUS "Check size of Fortran 77 ${TYPE}...${${OUTPUT_VARIABLE}}") - ELSE(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval) - MESSAGE(FATAL_ERROR "Could not determine size of ${TYPE}.") - ENDIF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftestval) - ENDIF(RESULT) - -ENDMACRO(OMPI_FORTRAN_GET_SIZEOF TYPE OUTPUT_VARIABLE) \ No newline at end of file diff --git a/contrib/platform/win32/CMakeModules/fortran_get_value_true.cmake b/contrib/platform/win32/CMakeModules/fortran_get_value_true.cmake deleted file mode 100644 index 33e9d6fde0..0000000000 --- a/contrib/platform/win32/CMakeModules/fortran_get_value_true.cmake +++ /dev/null @@ -1,128 +0,0 @@ -# Copyright (c) 2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -# OMPI_FORTRAN_GET_VALUE_TRUE() -# ------------------------------------------------------- -# Determine the value of .TRUE. of this Fortran compiler. -MACRO(OMPI_FORTRAN_GET_VALUE_TRUE) - - IF(OMPI_WANT_FORTRAN_BINDINGS AND NOT DEFINED FORTRAN_VALUE_CHECK_DONE) - - MESSAGE(STATUS "Check Fortran value for .TRUE. logical type...") - - OMPI_FORTRAN_MAKE_C_FUNCTION(ompi_print_logical_fn print) - - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_c.c - "#include \n" - "#include \n" - "\n" - "#ifdef __cplusplus\n" - "extern \"C\" {\n" - "#endif\n" - "\n" - "void ${ompi_print_logical_fn}(${ompi_fortran_logical_t} * logical);\n" - "\n" - "void ${ompi_print_logical_fn}(${ompi_fortran_logical_t} * logical)\n" - "{\n" - " FILE *f=fopen(\"fortran_true_value\", \"w\");\n" - " if (!f) exit(1);\n" - "\n" - " if( ${SIZEOF_INT} >= sizeof(${ompi_fortran_logical_t}) ) {\n" - " fprintf(f, \"%d\\n\", (int)*logical);\n" - " } else if (${SIZEOF_LONG} >= sizeof(${ompi_fortran_logical_t}) ) {\n" - " fprintf(f, \"%ld\\n\", (long) *logical);\n" - "#ifdef HAVE_LONG_LONG\n" - " } else if (${SIZEOF_LONG_LONG} >= sizeof(${ompi_fortran_logical_t}) ) {\n" - " fprintf(f, \"%lld\\n\", (long long) *logical);\n" - "#endif\n" - " } else {\n" - " exit(1);\n" - " }\n" - "}\n" - "\n" - "#ifdef __cplusplus\n" - "}\n" - "#endif\n") - - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/conftest_f.f - "\tprogram main\n" - "\tlogical value\n" - "\tvalue=.TRUE.\n" - "\tCALL print(value)\n" - "\tend\n") - - IF(NOT "${C_COMPILER_INCLUDE}" STREQUAL "") - SET(EXECUTE_OPT "${OMPI_C_INCLUDE_DIR}${C_COMPILER_INCLUDE}") - ENDIF(NOT "${C_COMPILER_INCLUDE}" STREQUAL "") - - EXECUTE_PROCESS(COMMAND ${CC} ${OMPI_C_OPTION_COMPILE} conftest_c.c ${EXECUTE_OPT} ${OMPI_C_OUTPUT_OBJ}conftest_c.obj - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - IF(RESULT) - MESSAGE(STATUS "${OUTPUT}\n${ERROR}") - MESSAGE(FATAL_ERROR "Could not determine value of Fortran .TRUE.. Aborting.") - ENDIF(RESULT) - - EXECUTE_PROCESS(COMMAND ${FORTRAN} ${FORTRAN_OPTION_COMPILE} conftest_f.f ${FORTRAN_OUTPUT_OBJ}conftest_f.obj - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - IF(RESULT) - MESSAGE(STATUS "${OUTPUT}\n${ERROR}") - MESSAGE(FATAL_ERROR "Could not determine value of Fortran .TRUE.. Aborting.") - ENDIF(RESULT) - - EXECUTE_PROCESS(COMMAND ${FORTRAN} conftest_f.obj conftest_c.obj ${FORTRAN_OUTPUT_EXE}conftest.exe - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - IF(RESULT) - MESSAGE(STATUS "${OUTPUT}\n${ERROR}") - MESSAGE(FATAL_ERROR "Could not determine value of Fortran .TRUE.. Aborting.") - ENDIF(RESULT) - - EXECUTE_PROCESS(COMMAND conftest.exe - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - IF(RESULT) - UNSET(FORTRAN_VALUE_CHECK_DONE CACHE) - MESSAGE(STATUS "${OUTPUT}\n${ERROR}") - MESSAGE(FATAL_ERROR "Could not determine value of Fortran .TRUE.. Aborting.") - ELSE(RESULT) - IF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/fortran_true_value) - FILE(READ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/fortran_true_value OUTPUT_VALUE) - MESSAGE(STATUS "Check Fortran value for .TRUE. logical type...${OUTPUT_VALUE}") - SET(OMPI_FORTRAN_VALUE_TRUE ${OUTPUT_VALUE} CACHE INTERNAL "Fortran value true") - SET(FORTRAN_VALUE_CHECK_DONE TRUE CACHE INTERNAL "Fortran value true check done") - ELSE(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/fortran_true_value) - UNSET(FORTRAN_VALUE_CHECK_DONE CACHE) - MESSAGE(FATAL_ERROR "Could not determine value of Fortran .TRUE.. Aborting.") - ENDIF(EXISTS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/fortran_true_value) - ENDIF(RESULT) - - ELSEIF(NOT OMPI_WANT_FORTRAN_BINDINGS) - SET(OMPI_FORTRAN_VALUE_TRUE 0) - UNSET(FORTRAN_VALUE_CHECK_DONE CACHE) - ENDIF(OMPI_WANT_FORTRAN_BINDINGS AND NOT DEFINED FORTRAN_VALUE_CHECK_DONE) - - OMPI_DEF_VAR(OMPI_FORTRAN_VALUE_TRUE "Fortran value for .TRUE. logical type" 0 1) - -ENDMACRO(OMPI_FORTRAN_GET_VALUE_TRUE) diff --git a/contrib/platform/win32/CMakeModules/generate_version_file.cmake b/contrib/platform/win32/CMakeModules/generate_version_file.cmake deleted file mode 100644 index 5b756d969a..0000000000 --- a/contrib/platform/win32/CMakeModules/generate_version_file.cmake +++ /dev/null @@ -1,50 +0,0 @@ - -IF(${WANT_SVN}) - SET(${PROJECT_NAME}_WANT_SVN 1) -ELSE(${WANT_SVN}) - SET(${PROJECT_NAME}_WANT_SVN 0) -ENDIF(${WANT_SVN}) - -STRING(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWERCASE) - -FILE (WRITE "${PROJECT_BINARY_DIR}/include/${PROJECT_NAME_LOWERCASE}/version.h" - " -/* - * 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$ - * - * This file should be included by any file that needs full - * version information for the ${PROJECT_NAME} project - */ - -#ifndef ${PROJECT_NAME}_VERSIONS_H -#define ${PROJECT_NAME}_VERSIONS_H - -#define ${PROJECT_NAME}_MAJOR_VERSION ${${PROJECT_NAME}_MAJOR_VERSION_STRING} -#define ${PROJECT_NAME}_MINOR_VERSION ${${PROJECT_NAME}_MINOR_VERSION_STRING} -#define ${PROJECT_NAME}_RELEASE_VERSION ${${PROJECT_NAME}_RELEASE_VERSION_STRING} -#define ${PROJECT_NAME}_GREEK_VERSION \"${${PROJECT_NAME}_GREEK_VERSION_STRING}\" -#define ${PROJECT_NAME}_WANT_SVN ${${PROJECT_NAME}_WANT_SVN} -#define ${PROJECT_NAME}_SVN_R \"${SVN_VERSION}\" -#ifdef ${PROJECT_NAME}_VERSION -/* If we included version.h, we want the real version, not the - stripped (no-r number) verstion */ -#undef ${PROJECT_NAME}_VERSION -#endif -#define ${PROJECT_NAME}_VERSION \"${${PROJECT_NAME}_VERSION_STRING}\" - -#endif -") \ No newline at end of file diff --git a/contrib/platform/win32/CMakeModules/get_c_alignment.cmake b/contrib/platform/win32/CMakeModules/get_c_alignment.cmake deleted file mode 100644 index 62ccb78754..0000000000 --- a/contrib/platform/win32/CMakeModules/get_c_alignment.cmake +++ /dev/null @@ -1,48 +0,0 @@ -# -# Copyright (c) 2007-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -MACRO(C_GET_ALIGNMENT TYPE LANG NAME) - - IF(NOT OPAL_ALIGNMENT_${NAME}) - - # - # Try to compile and run a foo grogram. - # The alignment result will be stored in ${CHECK_TYPE}_ALIGNMENT - # - - MESSAGE( STATUS "Check alignment of ${TYPE} in ${LANG}...") - - SET(INCLUDE_HEADERS "#include - #include - #include ") - - IF(HAVE_STDINT_H) - SET(INCLUDE_HEADERS "${INCLUDE_HEADERS}\n#include \n") - ENDIF(HAVE_STDINT_H) - - FILE (WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/c_get_${NAME}_alignment.${LANG}" - "${INCLUDE_HEADERS} - int main(){ - char diff; - struct foo {char a; ${TYPE} b;}; - struct foo *p = (struct foo *) malloc(sizeof(struct foo)); - diff = ((char *)&p->b) - ((char *)&p->a); - return diff;} - ") - - TRY_RUN(OPAL_ALIGNMENT_${NAME} COMPILE_RESULT "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/" - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/c_get_${NAME}_alignment.${LANG}") - - MESSAGE( STATUS "Check alignment of ${TYPE} in ${LANG}...${OPAL_ALIGNMENT_${NAME}}") - - ENDIF(NOT OPAL_ALIGNMENT_${NAME}) - -ENDMACRO(C_GET_ALIGNMENT TYPE TYPE_ALIGNMENT LANG ) \ No newline at end of file diff --git a/contrib/platform/win32/CMakeModules/list_subdirs.cmake b/contrib/platform/win32/CMakeModules/list_subdirs.cmake deleted file mode 100644 index 52e46abbea..0000000000 --- a/contrib/platform/win32/CMakeModules/list_subdirs.cmake +++ /dev/null @@ -1,30 +0,0 @@ -# -# Copyright (c) 2009-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# list the sub directories of current directories -# save the list of subdirs in OUTPUT_VARIABLE - -MACRO(CHECK_SUBDIRS CURRENT_DIR OUTPUT_VARIABLE) - - # change the path into standard Windows format, - # so that we can support UNC paths too. - STRING(REPLACE "/" "\\" DIR_FORMATTED ${CURRENT_DIR}) - - EXECUTE_PROCESS (COMMAND cmd /C dir /AD /B ${DIR_FORMATTED} - WORKING_DIRECTORY ${PROJECT_BINARY_DIR} - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - IF(NOT "${OUTPUT}" STREQUAL "") - STRING (REGEX MATCHALL "[a-zA-Z0-9_]+" ${OUTPUT_VARIABLE} ${OUTPUT}) - ENDIF(NOT "${OUTPUT}" STREQUAL "") - -ENDMACRO(CHECK_SUBDIRS CURRENT_DIR OUTPUT_VARIABLE) diff --git a/contrib/platform/win32/CMakeModules/ompi_base_checks.cmake b/contrib/platform/win32/CMakeModules/ompi_base_checks.cmake deleted file mode 100644 index 992d74c335..0000000000 --- a/contrib/platform/win32/CMakeModules/ompi_base_checks.cmake +++ /dev/null @@ -1,98 +0,0 @@ -# -# Copyright (c) 2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# this file contains -# 1. several wrappers for CMake macros, so that they will -# do the job and write the configure temeplate file too. -# 2. a macro that checks the data types - -# check include file -MACRO(OMPI_CHECK_INCLUDE_FILE FILE_NAME VAR_NAME) - - CHECK_INCLUDE_FILE(${FILE_NAME} ${VAR_NAME}) - OMPI_DEF_VAR(${VAR_NAME} "Define to 1 if you have <${FILE_NAME}> header file." 0 0) - -ENDMACRO(OMPI_CHECK_INCLUDE_FILE FILE_NAME VAR_NAME) - - -# check if function exists -MACRO(OMPI_CHECK_FUNCTION_EXISTS FUNCTION_NAME VAR_NAME) - - CHECK_FUNCTION_EXISTS(${FUNCTION_NAME} ${VAR_NAME}) - OMPI_DEF_VAR(${VAR_NAME} "Define to 1 if you have the `${FUNCTION_NAME}' function." 0 0) - -ENDMACRO(OMPI_CHECK_FUNCTION_EXISTS FUNCTION_NAME VAR_NAME) - - -# check if symbol exists -MACRO(OMPI_CHECK_SYMBOL_EXISTS SYMBOL_NAME FILE_NAMES VAR_NAME) - - CHECK_SYMBOL_EXISTS(${SYMBOL_NAME} "${FILE_NAMES}" ${VAR_NAME}) - OMPI_DEF_VAR(${VAR_NAME} "Define to 1 if you have the `${SYMBOL_NAME}' function." 0 0) - -ENDMACRO(OMPI_CHECK_SYMBOL_EXISTS SYMBOL_NAME FILE_NAMES VAR_NAME) - - -# check if structure has member -MACRO(OMPI_CHECK_STRUCT_HAS_MEMBER STRUC_NAME MEMBER_NAME FILE_NAMES VAR_NAME) - - CHECK_SYMBOL_EXISTS(${STRUC_NAME} ${MEMBER_NAME} "${FILE_NAMES}" ${VAR_NAME}) - OMPI_DEF_VAR(${VAR_NAME} "Define to 1 if `${MEMBER_NAME}' is member of ${STRUC_NAME}." 0 0) - -ENDMACRO(OMPI_CHECK_STRUCT_HAS_MEMBER STRUC_NAME MEMBER_NAME FILE_NAMES VAR_NAME) - - -# check type size and alignment -MACRO(OMPI_CHECK_TYPES TYPE_NAME VAR_NAME DEFAULT_TYPE LAN) - - CHECK_TYPE_SIZE(${TYPE_NAME} ${VAR_NAME}) - - IF(NOT ${VAR_NAME}_CHECK_DONE) - - IF (HAVE_${VAR_NAME}) - SET(SIZEOF_${VAR_NAME} ${${VAR_NAME}} CACHE INTERNAL "Size of `${TYPE_NAME}'") - C_GET_ALIGNMENT(${TYPE_NAME} ${LAN} ${VAR_NAME}) - ELSE(HAVE_${VAR_NAME}) - IF(NOT ${DEFAULT_TYPE} STREQUAL "" AND NOT ${DEFAULT_TYPE} STREQUAL "none") - - #Get the variable name of the default type size. - STRING(TOUPPER "${DEFAULT_TYPE}" DEFAULT_TYPE_VAR) - STRING(REPLACE " " "_" DEFAULT_TYPE_VAR ${DEFAULT_TYPE_VAR}) - - IF(${SIZEOF_${DEFAULT_TYPE_VAR}} GREATER 0) - MESSAGE(STATUS "Define it as '${DEFAULT_TYPE}'.") - - SET(${TYPE_NAME} ${DEFAULT_TYPE} CACHE INTERNAL "System support type for `${TYPE_NAME}'") - SET(SIZEOF_${VAR_NAME} ${SIZEOF_${DEFAULT_TYPE_VAR}} CACHE INTERNAL "Size of `${TYPE_NAME}'") - SET(OPAL_ALIGNMENT_${VAR_NAME} ${OPAL_ALIGNMENT_${DEFAULT_TYPE_VAR}}) - ENDIF(${SIZEOF_${DEFAULT_TYPE_VAR}} GREATER 0) - - ENDIF(NOT ${DEFAULT_TYPE} STREQUAL "" AND NOT ${DEFAULT_TYPE} STREQUAL "none") - ENDIF (HAVE_${VAR_NAME}) - - SET(${VAR_NAME}_CHECK_DONE 1 CACHE INTERNAL "check for `${VAR_NAME}' is done.") - - ENDIF(NOT ${VAR_NAME}_CHECK_DONE) - - IF(NOT ${DEFAULT_TYPE} STREQUAL "" AND NOT ${DEFAULT_TYPE} STREQUAL "none") - OMPI_DEF_VAR(${TYPE_NAME} "Define to `${DEFAULT_TYPE}' if system types does not define." 0 0) - ENDIF(NOT ${DEFAULT_TYPE} STREQUAL "" AND NOT ${DEFAULT_TYPE} STREQUAL "none") - - #CMake automatically sets the HAVE_type to TURE or FALSE, - #but we need a number. - IF(HAVE_${VAR_NAME}) - SET(HAVE_${VAR_NAME} 1) - ENDIF(HAVE_${VAR_NAME}) - - OMPI_DEF_VAR(SIZEOF_${VAR_NAME} "The size of `${TYPE_NAME}'" 0 0) - OMPI_DEF_VAR(HAVE_${VAR_NAME} "Define to 1 if the system has the type `${TYPE_NAME}'" 0 0) - OMPI_DEF_VAR(OPAL_ALIGNMENT_${VAR_NAME} "Alignment of type `${TYPE_NAME}'." 0 0) - -ENDMACRO(OMPI_CHECK_TYPES TYPE VAR_NAME DEFAULT_TYPE LAN) diff --git a/contrib/platform/win32/CMakeModules/ompi_check_Microsoft.cmake b/contrib/platform/win32/CMakeModules/ompi_check_Microsoft.cmake deleted file mode 100644 index 279e0d2a7b..0000000000 --- a/contrib/platform/win32/CMakeModules/ompi_check_Microsoft.cmake +++ /dev/null @@ -1,259 +0,0 @@ -# -*- cmake-script -*- -# -# Copyright (c) 2007-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -###################################################################### -# -# OMPI_MICROSOFT_COMPILER -# -# Keep all the Windows checks in one place. -# -###################################################################### - -# Get current time and date. -EXECUTE_PROCESS(COMMAND cmd /C time /t - OUTPUT_VARIABLE CURRENT_TIME) -EXECUTE_PROCESS(COMMAND cmd /C date /t - OUTPUT_VARIABLE CURRENT_DATE) - -STRING (REPLACE "\n" "" CURRENT_TIME ${CURRENT_TIME}) -STRING (REPLACE "\n" "" CURRENT_DATE ${CURRENT_DATE}) -STRING (REGEX MATCH [.-/\0-9]+ CURRENT_DATE ${CURRENT_DATE}) -SET (OPAL_CONFIGURE_DATE "${CURRENT_TIME} ${CURRENT_DATE}" CACHE INTERNAL "OPAL_CONFIGURE_DATE") -SET (OMPI_BUILD_DATE "${CURRENT_TIME} ${CURRENT_DATE}" CACHE INTERNAL "OMPI_BUILD_DATE") - -OMPI_DEF(OPAL_CONFIGURE_DATE "${CURRENT_TIME} ${CURRENT_DATE}" "Configuration date." 1 1) -OMPI_DEF(OMPI_BUILD_DATE "${CURRENT_TIME} ${CURRENT_DATE}" "Build date." 1 1) - -# Set up compiler information. -OMPI_DEF(COMPILER_FAMILYNAME MICROSOFT "Compiler family name" 1 1) -OMPI_DEF(COMPILER_VERSION ${MSVC_VERSION} "Compiler version" 0 1) -OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_FAMILYID 14 "Compiler family ID" 0 1) -OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME ${COMPILER_FAMILYNAME} "Compiler family name" 0 1) -OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_VERSION_STR ${MSVC_VERSION} "Compiler version" 0 1) - -IF(NOT MICROSOFT_CHECK_DONE) - - MESSAGE( STATUS "Start Microsoft specific detection....") - - # search for Microsoft VC tools - IF(CMAKE_CL_64) - SET(CHECK_PATHS ${CHECK_PATHS} - "C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/amd64" - "C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/amd64" - "C:/Program Files/Microsoft Visual Studio 8/VC/bin/amd64" - "C:/Program Files (x86)/Microsoft Visual Studio 8/VC/bin/amd64" - "C:/Program Files/Microsoft Visual Studio .NET 2003/VC7/bin/amd64" - "C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/VC7/bin/amd64" - "C:/Program Files/Microsoft Visual Studio 10.0/VC/bin/amd64" - "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/amd64" - "$ENV{VS80COMNTOOLS}../../VC/bin/ia64" - "$ENV{VS80COMNTOOLS}../../VC/bin/amd64" - "$ENV{VS90COMNTOOLS}../../VC/bin/ia64" - "$ENV{VS90COMNTOOLS}../../VC/bin/amd64" - "$ENV{VS100COMNTOOLS}../../VC/bin/ia64" - "$ENV{VS100COMNTOOLS}../../VC/bin/amd64") - ELSE(CMAKE_CL_64) - SET(CHECK_PATHS ${CHECK_PATHS} - "C:/Program Files/Microsoft Visual Studio 9.0/VC/bin" - "C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin" - "C:/Program Files/Microsoft Visual Studio 8/VC/bin" - "C:/Program Files (x86)/Microsoft Visual Studio 8/VC/bin" - "C:/Program Files/Microsoft Visual Studio .NET 2003/VC7/bin" - "C:/Program Files (x86)/Microsoft Visual Studio .NET 2003/VC7/bin" - "C:/Program Files/Microsoft Visual Studio 10.0/VC/bin" - "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin" - "$ENV{VS90COMNTOOLS}../../VC/bin" - "$ENV{VS80COMNTOOLS}../../VC/bin" - "$ENV{VS100COMNTOOLS}../../VC/bin/") - ENDIF(CMAKE_CL_64) - - FIND_PROGRAM(CL_EXE cl PATHS ${CHECK_PATHS}) - - # Set up VS environments. - GET_FILENAME_COMPONENT(VC_BIN_PATH ${CL_EXE} PATH) - GET_FILENAME_COMPONENT(COMPILER_NAME ${CL_EXE} NAME) - SET(CC ${COMPILER_NAME} CACHE INTERNAL "C compiler executable") - SET(CXX ${COMPILER_NAME} CACHE INTERNAL "CXX compiler executable") - GET_FILENAME_COMPONENT(SDK_ROOT_PATH - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]" ABSOLUTE) - IF(CMAKE_CL_64) - SET(VS_ROOT_DIR ${VC_BIN_PATH}/../../..) - SET(VC_LIB_DIR ${VS_ROOT_DIR}/VC/lib/amd64) - SET(SDK_LIB_DIR ${SDK_ROOT_PATH}/lib/x64) - ELSE(CMAKE_CL_64) - SET(VS_ROOT_DIR ${VC_BIN_PATH}/../..) - SET(VC_LIB_DIR ${VS_ROOT_DIR}/VC/lib) - SET(SDK_LIB_DIR ${SDK_ROOT_PATH}/lib) - ENDIF(CMAKE_CL_64) - SET(VS_COMMON_TOOLS_DIR ${VS_ROOT_DIR}/Common7/Tools) - SET(VS_IDE_DIR ${VS_ROOT_DIR}/Common7/IDE) - SET(VC_INCLUDE_DIR ${VS_ROOT_DIR}/VC/include) - - - # Cache the compilers paths that could be used later. - SET(C_COMPILER_PATH ${VC_BIN_PATH} ${SDK_ROOT_PATH}/bin ${VS_IDE_DIR} CACHE INTERNAL "Compiler binary paths.") - SET(C_COMPILER_INCLUDE ${VC_INCLUDE_DIR} CACHE INTERNAL "Compiler include paths.") - SET(C_COMPILER_LIB ${VC_LIB_DIR} ${SDK_LIB_DIR} CACHE INTERNAL "Compiler libraries.") - SET(C_COMPILER_LIBPATH ${VC_LIB_DIR} ${SDK_LIB_DIR} CACHE INTERNAL "Compiler libraries path.") - - SET(ENV{PATH} "${C_COMPILER_PATH};$ENV{PATH}") - SET(ENV{INCLUDE} "${C_COMPILER_INCLUDE};$ENV{INCLUDE}") - SET(ENV{LIB} "${C_COMPILER_LIB};$ENV{LIB}") - SET(ENV{LIBPATH} "${C_COMPILER_LIBPATH};$ENV{LIBPATH}") - - # Default compiler settings. - SET(OMPI_C_OPTION_COMPILE "/c" CACHE INTERNAL - "C compiler option for compiling without linking.") - SET(OMPI_C_OUTPUT_OBJ "/Fo" CACHE INTERNAL - "C compiler option for setting object file name.") - SET(OMPI_C_OUTPUT_EXE "/Fe" CACHE INTERNAL - "C compiler option for setting executable file name.") - SET(OMPI_C_LAN_FLAG "/TC" CACHE INTERNAL - "C compiler option for compiling source as C.") - SET(OMPI_CXX_LAN_FLAG "/TP" CACHE INTERNAL - "C compiler option for compiling source as C++.") - SET(OMPI_C_DEF_PRE "/D" CACHE INTERNAL - "C compiler option for preprocessor definition.") - SET(OMPI_C_MD_DEBUG "/MDd" CACHE INTERNAL - "C compiler option for Multi-thread Debug DLL.") - SET(OMPI_C_MD "/MD" CACHE INTERNAL - "C compiler option for Multi-thread DLL.") - SET(OMPI_CXX_EXCEPTION "/EHsc" CACHE INTERNAL - "C compiler option for C++ exceptions.") - SET(OMPI_C_INCLUDE_DIR "/I" CACHE INTERNAL - "C compiler option for including directory.") - SET(OMPI_LIB_CMD "lib" CACHE INTERNAL - "command line for making static libraries.") - SET(OMPI_LIB_CMD_OUTPUT "-OUT:" CACHE INTERNAL - "Output option for making static libraries.") - - SET(DUMP_UTIL "${VC_BIN_PATH}/dumpbin.exe" CACHE INTERNAL "the dumpbin application.") - SET(DUMP_UTIL_OPT "/symbols" CACHE INTERNAL "the dumpbin application options.") - - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/cl_test.c - "int main() {return 0;}") - - TRY_COMPILE(CL_EXE_OK ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/ - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/cl_test.c) - - IF(CL_EXE_OK) - - # The atomic functions are defined in a very unuasual manner. - # Some of them are intrinsic defined in windows.h others are - # exported by kernel32.dll. If we force the usage of TRY_RUN - # here we will check for both in same time: compilation and run. - - SET(FUNCTION_LIST Exchange ExchangeAcquire ExchangeRelease Exchange64) - - FOREACH(FUNCTION ${FUNCTION_LIST}) - MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...") - - IF(FUNCTION STREQUAL "Exchange64") - SET(64BITS_TYPE "LONGLONG" CACHE INTERNAL "64bits type longlong") - ELSE(FUNCTION STREQUAL "Exchange64") - SET(64BITS_TYPE "LONG" CACHE INTERNAL "64bits type long") - ENDIF(FUNCTION STREQUAL "Exchange64") - - STRING(TOUPPER ${FUNCTION} FUNCTION_NAME) - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/InterlockedCompare${FUNCTION}_test.c - "#include \n" - "int main() {\n" - " ${64BITS_TYPE} dest = 0, exchange = 1, comperand = 0;\n" - " SetErrorMode(SEM_FAILCRITICALERRORS);\n" - " InterlockedCompare${FUNCTION}( &dest, exchange, comperand );\n" - " return (int)dest;\n" - " }\n") - - TRY_RUN (HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} COMPILE_RESULT - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/" - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/InterlockedCompare${FUNCTION}_test.c") - - IF(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE) - SET (HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} 0 CACHE INTERNAL "HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME}") - MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...failed") - ELSE(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE) - MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...done") - ENDIF(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE) - - ENDFOREACH(FUNCTION) - - ELSE(CL_EXE_OK) - MESSAGE(FATAL_ERROR "No working Microsoft compiler found. Please check if Visual Studio VC is correctly installed.") - ENDIF(CL_EXE_OK) - - SET(MICROSOFT_CHECK_DONE TRUE CACHE INTERNAL "Microsoft check finished.") - -ENDIF(NOT MICROSOFT_CHECK_DONE) - -OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGE "Whether we support 32 bits atomic operations on Windows" 0 0) -IF(${OMPI_COMPILER_BIT} STREQUAL "64") - OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGE64 "Whether we support 64 bits atomic operations on Windows" 0 0) -ENDIF(${OMPI_COMPILER_BIT} STREQUAL "64") -OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGEACQUIRE "Whether we support 32 bits atomic operations on Windows" 0 0) -OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGERELEASE "Whether we support 32 bits atomic operations on Windows" 0 0) - -# a few definitions for shared memory support -OMPI_DEF(MCA_COMMON_SM_WINDOWS 1 "Whether we have shared memory support for Windows or not." 0 1) -OMPI_DEF(MCA_COMMON_SM_SYSV 0 "Whether we have shared memory support for SYSV or not." 0 1) -OMPI_DEF(MCA_COMMON_SM_POSIX 0 "Whether we have shared memory support for POSIX or not." 0 1) -OMPI_DEF(OPAL_HAVE_POSIX_THREADS 0 "Do we have POSIX threads." 0 1) - -OMPI_CHECK_INCLUDE_FILE (windows.h HAVE_WINDOWS_H) - -OMPI_CHECK_INCLUDE_FILE (winsock2.h HAVE_WINSOCK2_H) - -OMPI_CHECK_INCLUDE_FILE (wdm.h HAVE_WDM_H) - -OMPI_CHECK_INCLUDE_FILE (malloc.h HAVE_MALLOC_H) - -OMPI_CHECK_INCLUDE_FILE (memory.h HAVE_MEMORY_H) - -OMPI_CHECK_INCLUDE_FILE (signal.h HAVE_SIGNAL_H) - -OMPI_CHECK_INCLUDE_FILE (stdarg.h HAVE_STDARG_H) - -OMPI_CHECK_INCLUDE_FILE (stdint.h HAVE_STDINT_H) - -OMPI_CHECK_INCLUDE_FILE (stdlib.h HAVE_STDLIB_H) - -OMPI_CHECK_INCLUDE_FILE (string.h HAVE_STRING_H) - -OMPI_CHECK_INCLUDE_FILE (sys/stat.h HAVE_SYS_STAT_H) - -OMPI_CHECK_INCLUDE_FILE (sys/types.h HAVE_SYS_TYPES_H) - -OMPI_CHECK_INCLUDE_FILE (time.h HAVE_TIME_H) - -OMPI_CHECK_INCLUDE_FILE(stddef.h OPAL_STDC_HEADERS) - -OMPI_CHECK_FUNCTION_EXISTS (ceil HAVE_CEIL) - -OMPI_CHECK_FUNCTION_EXISTS (execve HAVE_EXECVE) - -OMPI_CHECK_FUNCTION_EXISTS (isatty HAVE_ISATTY) - -OMPI_CHECK_FUNCTION_EXISTS (vsnprintf HAVE_VSNPRINTF) - -CHECK_C_TYPE_EXISTS(socklen_t SOCKLEN_T "winsock2.h;ws2tcpip.h") - -CHECK_C_TYPE_EXISTS("struct sockaddr_in" STRUCT_SOCKADDR_IN "winsock2.h") - -CHECK_C_TYPE_EXISTS("struct sockaddr_in6" STRUCT_SOCKADDR_IN6 "ws2tcpip.h") - -CHECK_C_TYPE_EXISTS("struct sockaddr_storage" STRUCT_SOCKADDR_STORAGE "winsock2.h;ws2tcpip.h") - -OMPI_CHECK_SYMBOL_EXISTS (AF_UNSPEC winsock2.h HAVE_DECL_AF_UNSPEC) - -OMPI_CHECK_SYMBOL_EXISTS (PF_UNSPEC winsock2.h HAVE_DECL_PF_UNSPEC) - -OMPI_CHECK_SYMBOL_EXISTS (AF_INET6 winsock2.h HAVE_DECL_AF_INET6) - -OMPI_CHECK_SYMBOL_EXISTS (PF_INET6 winsock2.h HAVE_DECL_PF_INET6) diff --git a/contrib/platform/win32/CMakeModules/ompi_check_MinGW.cmake b/contrib/platform/win32/CMakeModules/ompi_check_MinGW.cmake deleted file mode 100644 index 7d2d2955f5..0000000000 --- a/contrib/platform/win32/CMakeModules/ompi_check_MinGW.cmake +++ /dev/null @@ -1,206 +0,0 @@ -# -*- cmake-script -*- -# -# Copyright (c) 2007-2011 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -###################################################################### -# -# OMPI_MinGW -# -# Keep all the MinGW checks in one place. -# -###################################################################### - -# Get current time and date. -EXECUTE_PROCESS(COMMAND cmd /C time /t - OUTPUT_VARIABLE CURRENT_TIME) -EXECUTE_PROCESS(COMMAND cmd /C date /t - OUTPUT_VARIABLE CURRENT_DATE) - -STRING (REPLACE "\n" "" CURRENT_TIME ${CURRENT_TIME}) -STRING (REPLACE "\n" "" CURRENT_DATE ${CURRENT_DATE}) -STRING (REGEX MATCH [.-/\0-9]+ CURRENT_DATE ${CURRENT_DATE}) -SET (OPAL_CONFIGURE_DATE "${CURRENT_TIME} ${CURRENT_DATE}" CACHE INTERNAL "OPAL_CONFIGURE_DATE") -SET (OMPI_BUILD_DATE "${CURRENT_TIME} ${CURRENT_DATE}" CACHE INTERNAL "OMPI_BUILD_DATE") - -OMPI_DEF(OPAL_CONFIGURE_DATE "${CURRENT_TIME} ${CURRENT_DATE}" "Configuration date." 1 1) -OMPI_DEF(OMPI_BUILD_DATE "${CURRENT_TIME} ${CURRENT_DATE}" "Build date." 1 1) - -# Set up compiler information. -EXECUTE_PROCESS(COMMAND gcc --version OUTPUT_VARIABLE GCC_VERSION) -STRING (REGEX MATCH [.0-9]*\n GCC_VERSION ${GCC_VERSION}) -STRING (REPLACE "\n" "" GCC_VERSION ${GCC_VERSION}) - -OMPI_DEF(COMPILER_FAMILYNAME GNU "Compiler family name" 1 1) -OMPI_DEF(COMPILER_VERSION ${GCC_VERSION} "Compiler version" 0 1) -OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_FAMILYID 1 "Compiler family ID" 0 1) -OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_FAMILYNAME ${COMPILER_FAMILYNAME} "Compiler family name" 0 1) -OMPI_DEF(OPAL_BUILD_PLATFORM_COMPILER_VERSION_STR ${GCC_VERSION} "Compiler version" 0 1) - -IF(NOT MINGW_CHECK_DONE) - - MESSAGE( STATUS "Start MinGW specific detection....") - - GET_FILENAME_COMPONENT(CC ${CC} NAME) - GET_FILENAME_COMPONENT(CXX ${CXX} NAME) - - # Default compiler settings. - SET(OMPI_C_OPTION_COMPILE "-c" CACHE INTERNAL - "C compiler option for compiling without linking.") - SET(OMPI_C_OUTPUT_OBJ "-o" CACHE INTERNAL - "C compiler option for setting object file name.") - SET(OMPI_C_OUTPUT_EXE "-o" CACHE INTERNAL - "C compiler option for setting executable file name.") - SET(OMPI_C_LAN_FLAG "-Wno-write-strings -x c" CACHE INTERNAL - "C compiler option for compiling source as C.") - SET(OMPI_CXX_LAN_FLAG "-Wno-write-strings -x c++" CACHE INTERNAL - "C compiler option for compiling source as C++.") - SET(OMPI_C_DEF_PRE "-D" CACHE INTERNAL - "C compiler option for preprocessor definition.") - SET(OMPI_C_MD_DEBUG " " CACHE INTERNAL - "C compiler option for Multi-thread Debug DLL.") - SET(OMPI_C_MD " " CACHE INTERNAL - "C compiler option for Multi-thread DLL.") - SET(OMPI_CXX_EXCEPTION " " CACHE INTERNAL - "C compiler option for C++ exceptions.") - SET(OMPI_C_INCLUDE_DIR "-I" CACHE INTERNAL - "C compiler option for including directory.") - SET(OMPI_C_LIB_DIR "-L" CACHE INTERNAL - "C compiler option for including directory.") - SET(OMPI_LIB_CMD "ar -rcs" CACHE INTERNAL - "command line for making static libraries.") - #NOTE: the space in the end of the option is important - SET(OMPI_LIB_CMD_OUTPUT "" CACHE INTERNAL - "Output option for making static libraries.") - - SET(DUMP_UTIL "nm" CACHE INTERNAL "the dumpbin application.") - #SET(DUMP_UTIL_OPT "> " CACHE INTERNAL "the dumpbin application options.") - - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/gcc_test.c - "int main() {return 0;}") - - TRY_COMPILE(GCC_OK ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/ - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/gcc_test.c) - - IF(GCC_OK) - - # The atomic functions are defined in a very unuasual manner. - # Some of them are intrinsic defined in windows.h others are - # exported by kernel32.dll. If we force the usage of TRY_RUN - # here we will check for both in same time: compilation and run. - - SET(FUNCTION_LIST Exchange ExchangeAcquire ExchangeRelease Exchange64) - - FOREACH(FUNCTION ${FUNCTION_LIST}) - MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...") - - IF(FUNCTION STREQUAL "Exchange64") - SET(64BITS_TYPE "LONGLONG" CACHE INTERNAL "64bits type longlong") - ELSE(FUNCTION STREQUAL "Exchange64") - SET(64BITS_TYPE "LONG" CACHE INTERNAL "64bits type long") - ENDIF(FUNCTION STREQUAL "Exchange64") - - STRING(TOUPPER ${FUNCTION} FUNCTION_NAME) - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/InterlockedCompare${FUNCTION}_test.c - "int main() {\n" - " ${64BITS_TYPE} dest = 0, exchange = 1, comperand = 0;\n" - " SetErrorMode(SEM_FAILCRITICALERRORS);\n" - " InterlockedCompare${FUNCTION}( &dest, exchange, comperand );\n" - " return (int)dest;\n" - " }\n") - - TRY_RUN (HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} COMPILE_RESULT - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/" - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/InterlockedCompare${FUNCTION}_test.c") - - IF(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE) - SET (HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} 0 CACHE INTERNAL "HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME}") - MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...failed") - ELSE(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE) - MESSAGE( STATUS "Checking for InterlockedCompare${FUNCTION}...done") - ENDIF(HAVE_INTERLOCKEDCOMPARE${FUNCTION_NAME} STREQUAL "FAILED_TO_RUN" OR COMPILE_RESULT EQUAL FALSE) - - ENDFOREACH(FUNCTION) - - ELSE(GCC_OK) - MESSAGE(FATAL_ERROR "No working GCC compiler found. Please check if Visual Studio VC is correctly installed.") - ENDIF(GCC_OK) - - SET(MINGW_CHECK_DONE TRUE CACHE INTERNAL "MinGW check finished.") - -ENDIF(NOT MINGW_CHECK_DONE) - -OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGE "Whether we support 32 bits atomic operations on Windows" 0 0) -IF(${OMPI_COMPILER_BIT} STREQUAL "64") - OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGE64 "Whether we support 64 bits atomic operations on Windows" 0 0) -ENDIF(${OMPI_COMPILER_BIT} STREQUAL "64") -OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGEACQUIRE "Whether we support 32 bits atomic operations on Windows" 0 0) -OMPI_DEF_VAR(HAVE_INTERLOCKEDCOMPAREEXCHANGERELEASE "Whether we support 32 bits atomic operations on Windows" 0 0) - -# a few definitions for shared memory support -OMPI_DEF(MCA_COMMON_SM_WINDOWS 1 "Whether we have shared memory support for Windows or not." 0 1) -OMPI_DEF(MCA_COMMON_SM_SYSV 0 "Whether we have shared memory support for SYSV or not." 0 1) -OMPI_DEF(MCA_COMMON_SM_POSIX 0 "Whether we have shared memory support for POSIX or not." 0 1) -OMPI_DEF(OPAL_HAVE_POSIX_THREADS 1 "Do we have POSIX threads." 0 1) - -OMPI_CHECK_INCLUDE_FILE (sys/uio.h HAVE_SYS_UIO_H) - -OMPI_CHECK_INCLUDE_FILE (sys/time.h HAVE_SYS_TIME_H) - -OMPI_CHECK_INCLUDE_FILE (windows.h HAVE_WINDOWS_H) - -OMPI_CHECK_INCLUDE_FILE (winsock2.h HAVE_WINSOCK2_H) - -OMPI_CHECK_INCLUDE_FILE (wdm.h HAVE_WDM_H) - -OMPI_CHECK_INCLUDE_FILE (malloc.h HAVE_MALLOC_H) - -OMPI_CHECK_INCLUDE_FILE (memory.h HAVE_MEMORY_H) - -OMPI_CHECK_INCLUDE_FILE (signal.h HAVE_SIGNAL_H) - -OMPI_CHECK_INCLUDE_FILE (stdarg.h HAVE_STDARG_H) - -OMPI_CHECK_INCLUDE_FILE (stdint.h HAVE_STDINT_H) - -OMPI_CHECK_INCLUDE_FILE (stdlib.h HAVE_STDLIB_H) - -OMPI_CHECK_INCLUDE_FILE (string.h HAVE_STRING_H) - -OMPI_CHECK_INCLUDE_FILE (sys/stat.h HAVE_SYS_STAT_H) - -OMPI_CHECK_INCLUDE_FILE (sys/types.h HAVE_SYS_TYPES_H) - -OMPI_CHECK_INCLUDE_FILE (time.h HAVE_TIME_H) - -OMPI_CHECK_INCLUDE_FILE(stddef.h OPAL_STDC_HEADERS) - -OMPI_CHECK_FUNCTION_EXISTS (ceil HAVE_CEIL) - -OMPI_CHECK_FUNCTION_EXISTS (execve HAVE_EXECVE) - -OMPI_CHECK_FUNCTION_EXISTS (isatty HAVE_ISATTY) - -OMPI_CHECK_FUNCTION_EXISTS (vsnprintf HAVE_VSNPRINTF) - -CHECK_C_TYPE_EXISTS(socklen_t SOCKLEN_T "winsock2.h;ws2tcpip.h") - -CHECK_C_TYPE_EXISTS("struct sockaddr_in" STRUCT_SOCKADDR_IN "winsock2.h") - -CHECK_C_TYPE_EXISTS("struct sockaddr_in6" STRUCT_SOCKADDR_IN6 "ws2tcpip.h") - -CHECK_C_TYPE_EXISTS("struct sockaddr_storage" STRUCT_SOCKADDR_STORAGE "winsock2.h;ws2tcpip.h") - -OMPI_CHECK_SYMBOL_EXISTS (AF_UNSPEC winsock2.h HAVE_DECL_AF_UNSPEC) - -OMPI_CHECK_SYMBOL_EXISTS (PF_UNSPEC winsock2.h HAVE_DECL_PF_UNSPEC) - -OMPI_CHECK_SYMBOL_EXISTS (AF_INET6 winsock2.h HAVE_DECL_AF_INET6) - -OMPI_CHECK_SYMBOL_EXISTS (PF_INET6 winsock2.h HAVE_DECL_PF_INET6) diff --git a/contrib/platform/win32/CMakeModules/ompi_configure.cmake b/contrib/platform/win32/CMakeModules/ompi_configure.cmake deleted file mode 100644 index 22c6d709af..0000000000 --- a/contrib/platform/win32/CMakeModules/ompi_configure.cmake +++ /dev/null @@ -1,1028 +0,0 @@ -# -# Copyright (c) 2007-2012 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# 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 -# -# $HEADER$ -# - - - -MACRO(BEGIN_CONFIGURE) - -INCLUDE (CheckIncludeFileCXX) -INCLUDE (CheckIncludeFile) -INCLUDE (CheckFunctionExists) -INCLUDE (CheckSymbolExists) -INCLUDE (CheckLibraryExists) -INCLUDE (CheckTypeSize) -INCLUDE (CheckStructHasMember) -INCLUDE (CheckCXXSourceCompiles) -INCLUDE (CheckCSourceCompiles) -INCLUDE (ompi_define) -INCLUDE (ompi_base_checks) -INCLUDE (opal_functions) -INCLUDE (get_c_alignment) -INCLUDE (check_c_type_exists) -INCLUDE (check_c_inline) -INCLUDE (check_bool) - -FILE(REMOVE ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake) -FILE(APPEND ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake - "/* opal/include/opal_config.h.cmake. Generated by CMake. */ - -/* -*- 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$ - * - * Function: - OS, CPU and compiler dependent configuration - */ - -#ifndef OPAL_CONFIG_H -#define OPAL_CONFIG_H -\n\n -") - -OMPI_DEF(PACKAGE_NAME "Open MPI" "Define to the full name of this package." 1 1) - -OMPI_DEF(PACKAGE_TARNAME "openmpi" "Define to the one symbol short name of this package." 1 1) - -OMPI_DEF(OPAL_PACKAGE_STRING "Open MPI $ENV{USERNAME}@$ENV{COMPUTERNAME} Distribution" "Package/branding string for Open MPI" 1 1) - -OMPI_DEF(PACKAGE_BUGREPORT "http://www.open-mpi.org/community/help/" "Define to the address where bug reports for this package should be sent." 1 1) - -OMPI_DEF(OPAL_CONFIGURE_HOST $ENV{COMPUTERNAME} "Host on which configuration has been done." 1 1) - -OMPI_DEF(OPAL_CONFIGURE_USER $ENV{USERNAME} "User who has done the configuration." 1 1) - -OMPI_DEF(OMPI_BUILD_USER $ENV{USERNAME} "User who has built the package." 1 1) - -OMPI_DEF(OMPI_BUILD_HOST $ENV{COMPUTERNAME} "Host on which the package has been built." 1 1) - -#detect the compiler bit -OMPI_CHECK_TYPES("void *" VOID_P none c) -IF(${SIZEOF_VOID_P} EQUAL 4) - SET(OMPI_COMPILER_BIT "32") - SET(IS_32_BIT TRUE CACHE INTERNAL "32 bit compiler") -ELSE(${SIZEOF_VOID_P} EQUAL 4) - SET(OMPI_COMPILER_BIT "64") - SET(IS_64_BIT TRUE CACHE INTERNAL "64 bit compiler") -ENDIF(${SIZEOF_VOID_P} EQUAL 4) -OMPI_DEF(OPAL_ARCH "${CMAKE_SYSTEM} ${OMPI_COMPILER_BIT} bit" "OMPI architecture string" 1 1) - -IF(WINDOWS_VS) - INCLUDE(ompi_check_Microsoft) -ELSEIF(WINDOWS_MINGW) - INCLUDE(ompi_check_MinGW) -ENDIF(WINDOWS_VS) - -INCLUDE(opal_get_version) - -OMPI_DEF(OMPI_RELEASE_DATE ${RELEASE_DATE} "Release date of the package" 1 1) - -OMPI_DEF(OPAL_RELEASE_DATE ${RELEASE_DATE} "Release date of the package" 1 1) - -OMPI_DEF(ORTE_RELEASE_DATE ${RELEASE_DATE} "Release date of the package" 1 1) - -OMPI_DEF(PACKAGE_VERSION ${OPAL_VERSION} "Define to the version of this package." 1 1) - -OMPI_DEF(PACKAGE_STRING "Open MPI ${PACKAGE_VERSION}" "Define to the full name and version of this package." 1 1) - -#OMPI_DEF(OMPI_BUILD_CFLAGS "/Od /Gm /EHsc /RTC1 /MDd" "C flags" 1 1) -OMPI_DEF(OMPI_BUILD_CFLAGS "${CMAKE_C_FLAGS} " "C flags" 1 1) - -SET(OMPI_BUILD_CPPFLAGS "\"-I${OpenMPI_SOURCE_DIR}/ - -I${OpenMPI_SOURCE_DIR}/opal - -I${OpenMPI_SOURCE_DIR}/opal/include - -I${OpenMPI_SOURCE_DIR}/ompi - -I${OpenMPI_SOURCE_DIR}/ompi/include - -I${OpenMPI_SOURCE_DIR}/orte - -I${OpenMPI_SOURCE_DIR}/orte/include - -I${OpenMPI_BINARY_DIR}/ - -I${OpenMPI_BINARY_DIR}/opal - -I${OpenMPI_BINARY_DIR}/opal/include - -I${OpenMPI_BINARY_DIR}/ompi - -I${OpenMPI_BINARY_DIR}/ompi/include - -I${OpenMPI_BINARY_DIR}/orte - -I${OpenMPI_BINARY_DIR}/orte/include - -I${OpenMPI_SOURCE_DIR}/contrib/platform/win32\"") - - -#OMPI_DEF(OMPI_BUILD_CXXFLAGS "/Od /Gm /EHsc /RTC1 /MDd" "C++ flags" 1 1) -OMPI_DEF(OMPI_BUILD_CXXFLAGS "${CMAKE_CXX_FLAGS} " "C++ flags" 1 1) - -SET(OMPI_BUILD_CXXCPPFLAGS ${OMPI_BUILD_CPPFLAGS}) - -OMPI_DEF(OMPI_BUILD_FFLAGS " " "FORTRAN flags." 1 1) - -OMPI_DEF(OMPI_BUILD_FCFLAGS " " "F90 flags." 1 1) - -OMPI_DEF(OMPI_BUILD_LDFLAGS " " "LD flags." 1 1) - -OMPI_DEF(OMPI_BUILD_LIBS " " "Link libraries." 1 1) - -OMPI_DEF(OMPI_F90_BUILD_SIZE "small" "F90 build size." 1 1) - -OMPI_DEF(OMPI_BTL_SM_HAVE_KNEM 0 "If btl sm has knem." 0 1) - - - - -################################################################### -# Options # -################################################################### - -OPAL_WITH_OPTION_MIN_MAX_VALUE(processor_name 256 16 1024) - -OPAL_WITH_OPTION_MIN_MAX_VALUE(error_string 256 64 1024) - -OPAL_WITH_OPTION_MIN_MAX_VALUE(object_name 64 64 256) - -OPAL_WITH_OPTION_MIN_MAX_VALUE(info_key 36 34 255) - -OPAL_WITH_OPTION_MIN_MAX_VALUE(info_val 256 32 1024) - -OPAL_WITH_OPTION_MIN_MAX_VALUE(port_name 1024 255 2048) - -OPAL_WITH_OPTION_MIN_MAX_VALUE(datarep_string 128 64 256) - -OMPI_DEF_CACHE_VAR(OMPI_MPIEXT_COMPONENTS none STRING "Specify user defined MPI Extended Interface Components." 1 1) - -OMPI_DEF(MCA_ompi_mtl_DIRECT_CALL 0 "Whether mtl should use direct calls instead of components." 0 1) - -OMPI_DEF(MCA_ompi_pml_DIRECT_CALL 0 "Whether pml should use direct calls instead of components." 0 1) - -OMPI_DEF_OPT(enable-mpi-param-check MPI_PARAM_CHECK "Whether we want to check MPI parameters always, never, or decide at run-time." OFF) - -OMPI_DEF_OPT(enable-debug OPAL_ENABLE_DEBUG "Whether we want developer-level debugging code or not." OFF) - -OMPI_DEF_OPT(enable-heterogeneous-support OPAL_ENABLE_HETEROGENEOUS_SUPPORT "Enable features required for heterogeneous support." OFF) - -OMPI_DEF_OPT(enable-mem-debug OPAL_ENABLE_MEM_DEBUG "Whether we want the memory debug or not." OFF) - -OMPI_DEF_OPT(enable-mem-profile OPAL_ENABLE_MEM_PROFILE "Whether we want the memory profiling or not." OFF) - -OMPI_DEF_OPT(enable-mpi-profiling OMPI_ENABLE_MPI_PROFILING "Whether we want MPI profiling or not." ON) - -OMPI_DEF_OPT(enable-thread-multiple OMPI_ENABLE_THREAD_MULTIPLE "Enable MPI_THREAD_MULTIPLE." OFF) - -OMPI_DEF(OMPI_ENABLE_PROGRESS_THREADS 0 "Hardwire OMPI progress threads to be off." 0 1) - -OMPI_DEF(ORTE_ENABLE_PROGRESS_THREADS 0 "Hardwire ORTE progress threads to be off." 0 1) - -OMPI_DEF_OPT(enable-multi-threads OPAL_ENABLE_MULTI_THREADS "Whether we should enable OPAL thread support." OFF) - -OMPI_DEF_OPT(enable-pty-support OPAL_ENABLE_PTY_SUPPORT "Whether we should enable PTY support for STDIO forwarding." OFF) - -OMPI_DEF_OPT(enable-sparse-group OMPI_GROUP_SPARSE "Wether we want sparse process groups." OFF) - -OMPI_DEF(OMPI_PROVIDE_MPI_FILE_INTERFACE 1 "Whether OMPI should provide MPI File interface" 0 1) - -OMPI_DEF_OPT(enable-mpi-cxx OMPI_BUILD_CXX_BINDINGS "Whether we want MPI cxx support or not." ON) - -OMPI_DEF_OPT(enable-mpi-fortran OMPI_BUILD_FORTRAN_USEMPI_BINDINGS "Whether we want MPI FORTRAN support or not." OFF) - -OMPI_DEF_OPT(enable-mpi-f08-subarray-prototype OMPI_BUILD_FORTRAN_F08_SUBARRAYS 0 - "Use the PROTOTYPE and SEVERLY FUNCTIONALITY-LIMITED Fortran 08 'use mpi_f08' -implementation that supports subarrrays (via Fortran descriptors). -This option will disable the normal 'use mpi_f08' implementation and *only* build the prototype implementation." 0 1) - -OMPI_DEF(OMPI_FORTRAN_HAVE_F08_ASSUMED_RANK 0 "fortran compiler has assumed rank" 0 1) - -OMPI_DEF(OMPI_FORTRAN_HAVE_PRIVATE 0 "fortran compiler has private" 0 1) - -OMPI_DEF(OMPI_FORTRAN_HAVE_ABSTRACT 0 "fortran compiler has abstract" 0 1) - -OMPI_DEF(OMPI_FORTRAN_HAVE_ASYNCHRONOUS 0 "fortran compiler has asynchronous" 0 1) - -OMPI_DEF(OMPI_FORTRAN_HAVE_PROCEDURE 0 "fortran compiler has procedure" 0 1) - -OMPI_DEF(OMPI_FORTRAN_NEED_WRAPPER_ROUTINES 0 "fortran compiler needs wrapper routines" 0 1) - -OMPI_DEF(OMPI_FORTRAN_HAVE_IGNORE_TKR 0 "fortran compiler has ignore tkr" 0 1) - -OMPI_DEF(OMPI_FORTRAN_HAVE_F08_ASSUMED_SHAPE 0 "fortran compiler has f08 assumed shape" 0 1) - -OMPI_DEF(OMPI_FORTRAN_HAVE_OPTIONAL_ARGS 0 "fortran compiler has f08 assumed shape" 0 1) - -OMPI_DEF(OMPI_FORTRAN_HAVE_BIND_C 0 "fortran compiler has f08 assumed shape" 0 1) - -OMPI_DEF(OMPI_FORTRAN_IGNORE_TKR_PREDECL 0 "fortran compiler has f08 assumed shape" 0 1) - -OMPI_DEF(OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS 0 "fortran compiler has f08 assumed shape" 0 1) - -OMPI_DEF(OMPI_BUILD_FORTRAN_MPIFH_BINDINGS 0 "fortran compiler has f08 assumed shape" 0 1) - -OMPI_DEF_OPT(enable-mpi-cxx-seek OMPI_WANT_MPI_CXX_SEEK "Do we want to try to work around C++ bindings SEEK_* issue?" OFF) - -OMPI_DEF_OPT(enable-peruse OMPI_WANT_PERUSE "Whether the peruse interface should be enabled." OFF) - -OMPI_DEF_OPT(enable-pretty-print-stacktrace OPAL_WANT_PRETTY_PRINT_STACKTRACE "Whether we want pretty-print stack trace feature." ON) - -OMPI_DEF_OPT(enable-smp-locksb OPAL_WANT_SMP_LOCKS "enable smp locks in atomic ops. Do not disable if code will ever run in SMP or multi-threaded environment. (default: enabled)." ON) - -OMPI_DEF_OPT(enable-ft OPAL_ENABLE_FT "Enable fault tolerance general components and logic." ON) - -OMPI_DEF_OPT(enable-ft-cr OPAL_ENABLE_FT_CR "Enable fault tolerance checkpoint/restart components and logic." OFF) - -OMPI_DEF_OPT(enable-ft-thread OPAL_ENABLE_FT_THREAD "Enable fault tolerance thread in Open PAL." OFF) - -OMPI_DEF_OPT(enable-ipv6 OPAL_ENABLE_IPV6 "Enable IPv6 support, but only if the underlying system supports it. (default: disabled)" OFF) - -OMPI_DEF_OPT(enable-trace OPAL_ENABLE_TRACE "Enable internal tracing of OMPI/ORTE/OPAL calls -- used only for developer debugging, not tracing of MPI applications (default: disabled)." OFF) - -OMPI_DEF_OPT(without-rte-support ORTE_DISABLE_FULL_SUPPORT "Build without RTE support for systems that do not require it (default: full RTE support built)." OFF) - -OMPI_DEF_OPT(enable-orterun-prefix-by-default ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT " Make \"orterun ...\" behave exactly the same as \"orterun --prefix \$prefix\" (where \$prefix is the value given to --prefix in configure). (default enabled)" ON) - -OMPI_DEF_OPT(enable-mpi-interface-warning OMPI_WANT_MPI_INTERFACE_WARNING "enable compile-time warnings when deprecated MPI functions are used (default: enabled)." ON) - -OMPI_DEF_OPT(enable-ccp ORTE_WANT_CCP "Whether we want to have the CCP remote process launch support." ON) - -OMPI_DEF_OPT(enable-libltdl-build OPAL_WANT_LIBLTDL "Whether we want to enable DSO build for Windows." OFF) - -OMPI_DEF_OPT(enable-network-direct OMPI_WANT_NETWORK_DIRECT "Whether we want to enable Network Direct support." ON) - -#OMPI_DEF_OPT(ORTE_WANT_NOTIFIER_LOG_EVENT "if the notifier_log_event should be enabled" OFF) - -OMPI_DEF_OPT(enable-ofed OMPI_WANT_OFED "Whether we want to enable OFED support." OFF) - -OMPI_DEF_OPT(enable-winverbs OMPI_WANT_WINVERBS "Whether we want to enable Winverbs support." ON) - -OMPI_DEF_OPT(enable-crdebug OPAL_ENABLE_CRDEBUG "enable checkpoint/restart debugging functionality (default: disabled)." OFF) - -OMPI_DEF_OPT(enable-event-thread-support OPAL_EVENT_HAVE_THREAD_SUPPORT "Whether we want to enable event library internal thread support." OFF) - -OMPI_DEF_OPT(enable-release-build OMPI_RELEASE_BUILD "Whether it is a build for binary release (this will skip the path settings in mca_installdirs_config). (default: disabled)" OFF) - -OMPI_DEF_OPT(enable-java-bindings OMPI_WANT_JAVA_BINDINGS "Whether we want to enable MPI Java support. (default: disabled)" OFF) - -OMPI_DEF_OPT(enable-hwloc OPAL_HAVE_HWLOC "Whether we have hwloc support or not. (default: enabled)" ON) - -OMPI_DEF(OPAL_HAVE_HWLOC_XML 1 "Enable xml support or not" 0 1) - -OMPI_DEF(OMPI_ENABLE_CONTRIB_vt 0 "Whether we want to enable VampirTrace support." 0 1) - -IF (NOT MSVC) - -################################################################### -# Check headers # -################################################################### - -OMPI_CHECK_INCLUDE_FILE (alloca.h HAVE_ALLOCA_H) - -OMPI_CHECK_INCLUDE_FILE (arpa/inet.h HAVE_ARPA_INET_H) - -OMPI_CHECK_INCLUDE_FILE (crt_externs.h HAVE_CRT_EXTERNS_H) - -OMPI_CHECK_INCLUDE_FILE (dirent.h HAVE_DIRENT_H) - -OMPI_CHECK_INCLUDE_FILE (dlfcn.h HAVE_DLFCN_H) - -OMPI_CHECK_INCLUDE_FILE (err.h HAVE_ERR_H) - -OMPI_CHECK_INCLUDE_FILE (execinfo.h HAVE_EXECINFO_H) - -OMPI_CHECK_INCLUDE_FILE (fcntl.h HAVE_FCNTL_H) - -OMPI_CHECK_INCLUDE_FILE (grp.h HAVE_GRP_H) - -OMPI_CHECK_INCLUDE_FILE (ifaddrs.h HAVE_IFADDRS_H) - -OMPI_CHECK_INCLUDE_FILE (inttypes.h HAVE_INTTYPES_H) - -OMPI_CHECK_INCLUDE_FILE (libcr.h HAVE_LIBCR_H) - -OMPI_CHECK_INCLUDE_FILE (libgen.h HAVE_LIBGEN_H) - -OMPI_CHECK_INCLUDE_FILE (libutil.h HAVE_LIBUTIL_H) - -OMPI_CHECK_INCLUDE_FILE (libxcpu.h HAVE_LIBXCPU_H) - -OMPI_CHECK_INCLUDE_FILE (mach/mach_time.h HAVE_MACH_MACH_TIME_H) - -OMPI_CHECK_INCLUDE_FILE (mach/mach_vm.h HAVE_MACH_MACH_VM_H) - -OMPI_CHECK_INCLUDE_FILE (netdb.h HAVE_NETDB_H) - -OMPI_CHECK_INCLUDE_FILE (netinet/in.h HAVE_NETINET_IN_H) - -OMPI_CHECK_INCLUDE_FILE (netinet/tcp.h HAVE_NETINET_TCP_H) - -OMPI_CHECK_INCLUDE_FILE (net/if.h HAVE_NET_IF_H) - -OMPI_CHECK_INCLUDE_FILE (pmapi.h HAVE_PMAPI_H) - -OMPI_CHECK_INCLUDE_FILE (poll.h HAVE_POLL_H) - -OMPI_CHECK_INCLUDE_FILE (pthread.h HAVE_PTHREAD_H) - -OMPI_CHECK_INCLUDE_FILE (pty.h HAVE_PTY_H) - -OMPI_CHECK_INCLUDE_FILE (pwd.h HAVE_PWD_H) - -OMPI_CHECK_INCLUDE_FILE (regex.h HAVE_REGEX_H) - -OMPI_CHECK_INCLUDE_FILE (sched.h HAVE_SCHED_H) - -OMPI_CHECK_INCLUDE_FILE (stdbool.h HAVE_STDBOOL_H) - -OMPI_CHECK_INCLUDE_FILE (stdint.h HAVE_STDINT_H) - -OMPI_CHECK_INCLUDE_FILE (strings.h HAVE_STRINGS_H) - -OMPI_CHECK_INCLUDE_FILE (stropts.h HAVE_STROPTS_H) - -OMPI_CHECK_INCLUDE_FILE (syslog.h HAVE_SYSLOG_H) - -OMPI_CHECK_INCLUDE_FILE (sys/bproc_common.h HAVE_SYS_BPROC_COMMON_H) - -OMPI_CHECK_INCLUDE_FILE (sys/bproc.h HAVE_SYS_BPROC_H) - -OMPI_CHECK_INCLUDE_FILE (sys/devpoll.h HAVE_SYS_DEVPOLL_H) - -OMPI_CHECK_INCLUDE_FILE (sys/epoll.h HAVE_SYS_EPOLL_H) - -OMPI_CHECK_INCLUDE_FILE (sys/event.h HAVE_SYS_EVENT_H) - -OMPI_CHECK_INCLUDE_FILE (sys/fcntl.h HAVE_SYS_FCNTL_H) - -OMPI_CHECK_INCLUDE_FILE (sys/ioctl.h HAVE_SYS_IOCTL_H) - -OMPI_CHECK_INCLUDE_FILE (sys/ipc.h HAVE_SYS_IPC_H) - -OMPI_CHECK_INCLUDE_FILE (sys/mman.h HAVE_SYS_MMAN_H) - -OMPI_CHECK_INCLUDE_FILE (sys/param.h HAVE_SYS_PARAM_H) - -OMPI_CHECK_INCLUDE_FILE (sys/queue.h HAVE_SYS_QUEUE_H) - -OMPI_CHECK_INCLUDE_FILE (sys/resource.h HAVE_SYS_RESOURCE_H) - -OMPI_CHECK_INCLUDE_FILE (sys/select.h HAVE_SYS_SELECT_H) - -OMPI_CHECK_INCLUDE_FILE (sys/socket.h HAVE_SYS_SOCKET_H) - -OMPI_CHECK_INCLUDE_FILE (sys/sockio.h HAVE_SYS_SOCKIO_H) - -OMPI_CHECK_INCLUDE_FILE (sys/statvfs.h HAVE_SYS_STATVFS_H) - -OMPI_CHECK_INCLUDE_FILE (sys/sysctl.h HAVE_SYS_SYSCTL_H) - -OMPI_CHECK_INCLUDE_FILE (sys/time.h HAVE_SYS_TIME_H) - -OMPI_CHECK_INCLUDE_FILE (sys/tree.h HAVE_SYS_TREE_H) - -OMPI_CHECK_INCLUDE_FILE (sys/uio.h HAVE_SYS_UIO_H) - -OMPI_CHECK_INCLUDE_FILE (sys/utsname.h HAVE_SYS_UTSNAME_H) - -OMPI_CHECK_INCLUDE_FILE (sys/wait.h HAVE_SYS_WAIT_H) - -OMPI_CHECK_INCLUDE_FILE (termios.h HAVE_TERMIOS_H) - -OMPI_CHECK_INCLUDE_FILE (sys/time.h HAVE_TIMERADD) - -OMPI_CHECK_INCLUDE_FILE (ucontext.h HAVE_UCONTEXT_H) - -OMPI_CHECK_INCLUDE_FILE (ulimit.h HAVE_ULIMIT_H) - -OMPI_CHECK_INCLUDE_FILE (unistd.h HAVE_UNISTD_H) - -OMPI_CHECK_INCLUDE_FILE (util.h HAVE_UTIL_H) - -OMPI_CHECK_INCLUDE_FILE (utmp.h HAVE_UTMP_H) - -OMPI_CHECK_INCLUDE_FILE (mx_extension.h MX_HAVE_EXTENSIONS_H) - -OMPI_CHECK_INCLUDE_FILE (malloc.h HAVE_MALLOC_H) - -OMPI_CHECK_INCLUDE_FILE (memory.h HAVE_MEMORY_H) - -OMPI_CHECK_INCLUDE_FILE (signal.h HAVE_SIGNAL_H) - -OMPI_CHECK_INCLUDE_FILE (stdarg.h HAVE_STDARG_H) - -OMPI_CHECK_INCLUDE_FILE (stdint.h HAVE_STDINT_H) - -OMPI_CHECK_INCLUDE_FILE (stdlib.h HAVE_STDLIB_H) - -OMPI_CHECK_INCLUDE_FILE (string.h HAVE_STRING_H) - -OMPI_CHECK_INCLUDE_FILE (sys/stat.h HAVE_SYS_STAT_H) - -OMPI_CHECK_INCLUDE_FILE (sys/types.h HAVE_SYS_TYPES_H) - -OMPI_CHECK_INCLUDE_FILE (time.h HAVE_TIME_H) - -OMPI_CHECK_INCLUDE_FILE(stddef.h OPAL_STDC_HEADERS) - -OMPI_CHECK_FUNCTION_EXISTS (ceil HAVE_CEIL) - -OMPI_CHECK_FUNCTION_EXISTS (execve HAVE_EXECVE) - -OMPI_CHECK_FUNCTION_EXISTS (isatty HAVE_ISATTY) - -OMPI_CHECK_FUNCTION_EXISTS (vsnprintf HAVE_VSNPRINTF) - -################################################################### -# Check functions # -################################################################### - -OMPI_CHECK_FUNCTION_EXISTS (asprintf HAVE_ASPRINTF) - -OMPI_CHECK_FUNCTION_EXISTS (backtrace HAVE_BACKTRACE) - -OMPI_CHECK_FUNCTION_EXISTS (cnos_pm_barrier HAVE_CNOS_PM_BARRIER) - -OMPI_CHECK_FUNCTION_EXISTS (dirname HAVE_DIRNAME) - -OMPI_CHECK_FUNCTION_EXISTS (dlsym HAVE_DLSYM) - -OMPI_CHECK_FUNCTION_EXISTS (epoll HAVE_EPOLL) - -OMPI_CHECK_FUNCTION_EXISTS (epoll_ctl HAVE_EPOLL_CTL) - -OMPI_CHECK_FUNCTION_EXISTS (fcntl HAVE_FCNTL) - -OMPI_CHECK_FUNCTION_EXISTS (fork HAVE_FORK) - -OMPI_CHECK_FUNCTION_EXISTS (getpwuid HAVE_GETPWUID) - -OMPI_CHECK_FUNCTION_EXISTS (gettimeofday HAVE_GETTIMEOFDAY) - -OMPI_CHECK_FUNCTION_EXISTS (htonl HAVE_HTONL) - -OMPI_CHECK_FUNCTION_EXISTS (htons HAVE_HTONS) - -OMPI_CHECK_FUNCTION_EXISTS (ibv_fork_init HAVE_IBV_FORK_INIT) - -OMPI_CHECK_FUNCTION_EXISTS (ibv_get_device_list HAVE_IBV_GET_DEVICE_LIST) - -OMPI_CHECK_FUNCTION_EXISTS (ibv_resize_cq HAVE_IBV_RESIZE_CQ) - -OMPI_CHECK_FUNCTION_EXISTS (killrank HAVE_KILLRANK) - -OMPI_CHECK_FUNCTION_EXISTS (kqueue KQUEUE) - -OMPI_CHECK_FUNCTION_EXISTS (mach_vm_read HAVE_MACH_MACH_VM_READ) - -OMPI_CHECK_FUNCTION_EXISTS (mach_vm_region HAVE_MACH_VM_REGION) - -OMPI_CHECK_FUNCTION_EXISTS (mallopt HAVE_MALLOPT) - -OMPI_CHECK_FUNCTION_EXISTS (mmap HAVE_MMAP) - -OMPI_CHECK_FUNCTION_EXISTS (ntohl HAVE_NTOHL) - -OMPI_CHECK_FUNCTION_EXISTS (ntohs HAVE_NTOHS) - -OMPI_CHECK_FUNCTION_EXISTS (openpty HAVE_OPENPTY) - -OMPI_CHECK_FUNCTION_EXISTS (pipe HAVE_PIPE) - -OMPI_CHECK_FUNCTION_EXISTS (pm_cycles HAVE_PM_CYCLES) - -OMPI_CHECK_FUNCTION_EXISTS (poll HAVE_POLL) - -OMPI_CHECK_FUNCTION_EXISTS (posix_memalign HAVE_POSIX_MEMALIGN) - -OMPI_CHECK_FUNCTION_EXISTS (printstack HAVE_PRINTSTACK) - -OMPI_CHECK_FUNCTION_EXISTS (ptsname HAVE_PTSNAME) - -OMPI_CHECK_FUNCTION_EXISTS (regcmp HAVE_REGCMP) - -OMPI_CHECK_FUNCTION_EXISTS (regexec HAVE_REGEXEC) - -OMPI_CHECK_FUNCTION_EXISTS (regfree HAVE_REGFREE) - -OMPI_CHECK_FUNCTION_EXISTS (sched_yield HAVE_SCHED_YIELD) - -OMPI_CHECK_FUNCTION_EXISTS (select HAVE_SELECT) - -OMPI_CHECK_FUNCTION_EXISTS (setsid HAVE_SETSID) - -OMPI_CHECK_FUNCTION_EXISTS (sigtimedwait HAVE_SIGTIMEDWAIT) - -OMPI_CHECK_FUNCTION_EXISTS (snprintf HAVE_SNPRINTF) - -OMPI_CHECK_FUNCTION_EXISTS (strsignal HAVE_STRSIGNAL) - -OMPI_CHECK_FUNCTION_EXISTS (syscall HAVE_SYSCALL) - -OMPI_CHECK_FUNCTION_EXISTS (sysconf HAVE_SYSCONF) - -OMPI_CHECK_FUNCTION_EXISTS (syslog HAVE_SYSLOG) - -OMPI_CHECK_FUNCTION_EXISTS (tcgetpgrp HAVE_TCGETPGRP) - -OMPI_CHECK_FUNCTION_EXISTS (vasprintf HAVE_VASPRINTF) - -OMPI_CHECK_FUNCTION_EXISTS (vm_read_overwrite HAVE_VM_READ_OVERWRITE) - -OMPI_CHECK_FUNCTION_EXISTS (waitpid HAVE_WAITPIN) - -OMPI_CHECK_FUNCTION_EXISTS (_NSGetEnviron HAVE__NSGETENVIRON) - -OMPI_CHECK_FUNCTION_EXISTS (__mmap HAVE___MMAP) - -OMPI_CHECK_FUNCTION_EXISTS (__munmap HAVE___MUNMAP) - -OMPI_CHECK_SYMBOL_EXISTS (F_SETFD fcntl.h HAVE_SETFD) - -OMPI_CHECK_SYMBOL_EXISTS (TAILQ_FOREACH "sys/queue.h" HAVE_TAILQFOREACH) - -OMPI_CHECK_SYMBOL_EXISTS (IBV_EVENT_CLIENT_REREGISTER "" HAVE_DECL_IBV_EVENT_CLIENT_REREGISTER) - -OMPI_CHECK_SYMBOL_EXISTS (RLIMIT_NPROC "" HAVE_DECL_RLIMIT_NPROC) - -OMPI_CHECK_SYMBOL_EXISTS (sbrk "" HAVE_DECL_SBRK) - -OMPI_CHECK_SYMBOL_EXISTS (__func__ "" HAVE_DECL___FUNC__) - -OMPI_CHECK_STRUCT_HAS_MEMBER(ppc_thread_state_t srr0 mach/ppc/thread_status.h HAVE_PPC_THREAD_STATE_T_SRR0) - -OMPI_CHECK_STRUCT_HAS_MEMBER(siginfo_t si_band sys/siginfo.h HAVE_SIGINFO_T_SI_BAND) - -OMPI_CHECK_STRUCT_HAS_MEMBER(siginfo_t si_fd sys/siginfo.h HAVE_SIGINFO_T_SI_FD) - -OMPI_CHECK_STRUCT_HAS_MEMBER("struct dirent" d_type dirent.h HAVE_STRUCT_DIRENT_D_TYPE) - -ENDIF (NOT MSVC) - -################################################################### -# Check data type # -################################################################### - - -OMPI_CHECK_TYPES(char CHAR none c) - -OMPI_CHECK_TYPES(wchar WCHAR none c) - -OMPI_CHECK_TYPES(double DOUBLE none c) - -OMPI_CHECK_TYPES(float FLOAT none c) - -OMPI_CHECK_TYPES(int INT none c) - -OMPI_CHECK_BOOL() - -OMPI_CHECK_TYPES(short SHORT none c) - -OMPI_CHECK_TYPES(long LONG none c) - -OMPI_CHECK_TYPES("long double" LONG_DOUBLE none c) - -OMPI_CHECK_TYPES("long long" LONG_LONG none c) - -OMPI_CHECK_TYPES ("unsigned int" UNSIGNED_INT none c) - -OMPI_CHECK_TYPES ("unsigned short" UNSIGNED_SHORT none c) - -OMPI_CHECK_TYPES ("unsigned long long" UNSIGNED_LONG_LONG none c) - -OMPI_CHECK_TYPES("unsigned long double" UNSIGNED_LONG_DOUBLE none c) - -OMPI_CHECK_TYPES ("unsigned char" UNSIGNED_CHAR none c) - -OMPI_CHECK_TYPES("float _Complex" FLOAT_COMPLEX none c) - -OMPI_CHECK_TYPES("double _Complex" DOUBLE_COMPLEX none c) - -OMPI_CHECK_TYPES("long double _Complex" LONG_DOUBLE_COMPLEX none c) - -OMPI_CHECK_TYPES(size_t SIZE_T none c) - -OMPI_CHECK_TYPES(ssize_t SSIZE_T none c) - -OMPI_CHECK_TYPES("void *" VOID_P none c) - -OMPI_CHECK_TYPES(pid_t PID_T "int" c) - -OMPI_CHECK_TYPES(ptrdiff_t PTRDIFF_T "int" c) - -OMPI_CHECK_TYPES (mode_t MODE_T none c) - -OMPI_CHECK_TYPES (int8_t INT8_T none c) - -OMPI_CHECK_TYPES (int16_t INT16_T none c) - -OMPI_CHECK_TYPES (int32_t INT32_T none c) - -OMPI_CHECK_TYPES (int64_t INT64_T none c) - -OMPI_CHECK_TYPES (int128_t INT128_T none c) - -OMPI_CHECK_TYPES (intptr_t INTPTR_T none c) - -OMPI_CHECK_TYPES (uint8_t UINT8_T none c) - -OMPI_CHECK_TYPES (uint16_t UINT16_T none c) - -OMPI_CHECK_TYPES (uint32_t UINT32_T none c) - -OMPI_CHECK_TYPES (uint64_t UINT64_T none c) - -OMPI_CHECK_TYPES (uint128_t UINT128_T none c) - -OMPI_CHECK_TYPES (uintptr_t UINTPTR_T none c) - - -################################################################### -# Check Fortran 77 types # -################################################################### - -IF(OMPI_BUILD_FORTRAN_USEMPI_BINDINGS) - SET(OMPI_WANT_FORTRAN_BINDINGS 1 CACHE INTERNAL "Whether we want MPI FORTRAN support or not.") - SET(OMPI_WANT_FORTRAN_MPIFH_BINDINGS 1 CACHE INTERNAL "OMPI_WANT_FORTRAN_MPIFH_BINDINGS") - SET(OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS 1 CACHE INTERNAL "OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS") -ELSE(OMPI_BUILD_FORTRAN_USEMPI_BINDINGS) - SET(OMPI_WANT_FORTRAN_BINDINGS 0 CACHE INTERNAL "Whether we want MPI FORTRAN support or not.") - SET(OMPI_WANT_FORTRAN_MPIFH_BINDINGS 0 CACHE INTERNAL "OMPI_WANT_FORTRAN_MPIFH_BINDINGS") - SET(OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS 0 CACHE INTERNAL "OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS") -ENDIF(OMPI_BUILD_FORTRAN_USEMPI_BINDINGS) - -INCLUDE(setup_fortran) -INCLUDE(fortran_check) -INCLUDE(fortran_check_real16_c_equiv) -INCLUDE(fortran_get_value_true) -INCLUDE(fortran_get_fortran_handle_max) - -IF(WIN32) - OMPI_DEF(ompi_fortran_bogus_type_t "int" "A bogus type that allows us to have sentinel type values that are still valid." 0 1) -ENDIF(WIN32) - -# We want to set the #define's for all of these, so invoke the macros -# regardless of whether we have FORTRAN support or not. -OMPI_FORTRAN_CHECK("CHARACTER" "yes" "char;int32_t;int;int64_t;long long;long" "-1") -OMPI_FORTRAN_CHECK("LOGICAL" "yes" "char;int;long long;long" "-1") -OMPI_FORTRAN_CHECK("LOGICAL*1" "yes" "char;short;int;long long;long" "1") -OMPI_FORTRAN_CHECK("LOGICAL*2" "yes" "short;int;long long;long" "2") -OMPI_FORTRAN_CHECK("LOGICAL*4" "yes" "int;long long;long" "4") -OMPI_FORTRAN_CHECK("LOGICAL*8" "yes" "int;long long;long" "8") -OMPI_FORTRAN_CHECK("INTEGER" "yes" "int;long long;long" "-1") -OMPI_FORTRAN_CHECK("INTEGER*1" "no" "char;short;int;long long;long" "1") -OMPI_FORTRAN_CHECK("INTEGER*2" "no" "short;int;long long;long" "2") -OMPI_FORTRAN_CHECK("INTEGER*4" "no" "int;long long;long" "4") -OMPI_FORTRAN_CHECK("INTEGER*8" "no" "int;long long;long" "8") -OMPI_FORTRAN_CHECK("INTEGER*16" "no" "int;long long;long" "16") - -OMPI_FORTRAN_CHECK("REAL" "yes" "float;double;long double" "-1") -OMPI_FORTRAN_CHECK("REAL*2" "no" "float;double;long double" "2") -OMPI_FORTRAN_CHECK("REAL*4" "no" "float;double;long double" "4") -OMPI_FORTRAN_CHECK("REAL*8" "no" "float;double;long double" "8") -OMPI_FORTRAN_CHECK("REAL*16" "no" "float;double;long double" "16") -OMPI_FORTRAN_CHECK("DOUBLE PRECISION" "yes" "float;double;long double" "-1") - -OMPI_FORTRAN_CHECK("COMPLEX" "yes" "" "-1") -OMPI_FORTRAN_CHECK("DOUBLE COMPLEX" "yes" "" "-1") - -# The complex*N tests are a bit different (note: the complex tests are -# the same as all the rest, because complex is a composite of two -# reals, which we *have* to have. It's only the complex*N tests that -# are different). The fortran complex types are composites of the -# real*(N/2) types. So for us to support complex*N, two conditions -# must be true: -# -# a) we must support real*(N/2) (i.e., compiler supports it and we -# have a back-end C type for it) -# b) compiler supports complex*N - -OMPI_FORTRAN_CHECK("COMPLEX*8" "no" "" "8") -OMPI_FORTRAN_CHECK("COMPLEX*16" "no" "" "16") -OMPI_FORTRAN_CHECK("COMPLEX*32" "no" "" "32") - -OMPI_FORTRAN_CHECK_REAL16_C_EQUIV() - -# Regardless of whether we have fortran bindings, or even a fortran -# compiler, get the max value for a fortran MPI handle (this macro -# handles the case where we don't have a fortran compiler). - -OMPI_FORTRAN_GET_FORTRAN_HANDLE_MAX() - -# -# Check for Fortran compilers value of TRUE and for the correct assumption -# on LOGICAL for conversion into what C considers to be a true value -# -OMPI_FORTRAN_GET_VALUE_TRUE() -#OMPI_FORTRAN_CHECK_LOGICAL_ARRAY - -# -# There are 2 layers to the MPI fortran layer. The only extra thing that -# determine fortran bindings is that fortran can be disabled by user. In -# such cases, we need to not build the target at all. One layer -# generates MPI_fortran* bindings. The other layer generates PMPI_fortran* -# bindings. The following conditions determine whether each (or both) -# these layers are built. -# -# Superceeding clause: -# - fortran77 bindings should be enabled, else everything is -# disabled -# 1. MPI_fortran* bindings are needed if: -# - Profiling is not required -# - Profiling is required but weak symbols are not -# supported -# 2. PMPI_* bindings are needed if profiling is required. Hence we -# define 2 conditionals which tell us whether each of these layers -# need to be built or NOT -# - -IF(NOT WANT_MPI_PROFILING OR OMPI_PROFILING_COMPILE_SEPARATELY AND OMPI_WANT_FORTRAN_BINDINGS) - SET(WANT_MPI_FORTRAN_BINDINGS_LAYER 1) -ELSE(NOT WANT_MPI_PROFILING OR OMPI_PROFILING_COMPILE_SEPARATELY AND OMPI_WANT_FORTRAN_BINDINGS) - SET(WANT_MPI_FORTRAN_BINDINGS_LAYER 0) -ENDIF(NOT WANT_MPI_PROFILING OR OMPI_PROFILING_COMPILE_SEPARATELY AND OMPI_WANT_FORTRAN_BINDINGS) - -IF(WANT_MPI_PROFILING AND OMPI_WANT_FORTRAN_BINDINGS) - SET(WANT_MPI_FORTRAN_BINDINGS_LAYER 1) -ELSE(WANT_MPI_PROFILING AND OMPI_WANT_FORTRAN_BINDINGS) - SET(WANT_MPI_FORTRAN_BINDINGS_LAYER 0) -ENDIF(WANT_MPI_PROFILING AND OMPI_WANT_FORTRAN_BINDINGS) - - -IF(WIN32) - - OMPI_DEF(OMPI_HAVE_CXX_EXCEPTION_SUPPORT 0 "Whether or not we have compiled with C++ exceptions support" 0 1) - - OMPI_DEF(OPAL_C_HAVE_VISIBILITY 1 "Whether C compiler supports -fvisibility." 0 1) - - OMPI_DEF(restrict " " "Define to equivalent of C99 restrict keyword, or to nothing if this is not supported.\n Do not define if restrict is supported directly." 0 1) - - OMPI_DEF(MCA_timer_IMPLEMENTATION_HEADER "opal/mca/timer/windows/timer_windows.h" "Header to include for timer implementation." 1 1) - - OMPI_DEF(MCA_hwloc_IMPLEMENTATION_HEADER "opal/mca/hwloc/hwloc142/hwloc142.h" "Header to include for hwloc implementation." 1 1) - - OMPI_DEF(MCA_memory_IMPLEMENTATION_HEADER "opal/mca/memory/base/empty.h" "Header to include for memory implementation." 1 1) - - OMPI_DEF(OPAL_ASSEMBLY_ARCH "OMPI_WINDOWS" "Architecture type of assembly to use for atomic operations." 0 1) - - OMPI_DEF(OPAL_HAVE_WEAK_SYMBOLS 0 "Whether we have weak symbols or not" 0 1) - - OMPI_DEF(OPAL_HAVE_SOLARIS_THREADS 0 "Do we have native Solaris threads." 0 1) - - OMPI_DEF(MCA_memcpy_IMPLEMENTATION_HEADER "opal/mca/memcpy/base/memcpy_base_default.h" "Header to include for memcpy implementation." 1 1) - - OMPI_DEF(HAVE_DECL___FUNC__ 0 "Define to 1 if you have the declaration of `__func__', and to 0 if you don't." 0 1) - - OMPI_DEF_CACHE(MCA_mtl_DIRECT_CALL_COMPONENT " " STRING "Name of component to use for direct calls, if MCA_mtl_DIRECT_CALL is 1." 1 1) - - OMPI_DEF_CACHE(MCA_mtl_DIRECT_CALL_HEADER " " STRING "Header mtl includes to be direct called." 1 1) - - OMPI_DEF_CACHE(MCA_pml_DIRECT_CALL_COMPONENT " " STRING "Name of component to use for direct calls, if MCA_pml_DIRECT_CALL is 1." 1 1) - - OMPI_DEF_CACHE(MCA_pml_DIRECT_CALL_HEADER " " STRING "Header pml includes to be direct called." 1 1) - - OMPI_DEF_CACHE(OMPI_MPI_CONTRIBS none STRING "List of contributed package names that will be built." 1 1) - - CHECK_C_INLINE() - -ENDIF(WIN32) - - -GET_FILENAME_COMPONENT(C_COMPILER_NAME ${CC} NAME_WE) - -OMPI_DEF(OPAL_CC ${C_COMPILER_NAME} "OMPI underlying C compiler name." 1 1) - -OMPI_DEF(OPAL_CC_ABSOLUTE ${CC} "OMPI underlying C compiler absolute path." 1 1) - -OMPI_DEF(WRAPPER_EXTRA_CFLAGS " " "Additional CFLAGS to pass through the wrapper compilers." 1 1) - -OMPI_DEF(WRAPPER_EXTRA_CXXFLAGS " " "Additional CXXFLAGS to pass through the wrapper compilers." 1 1) - -OMPI_DEF(WRAPPER_EXTRA_FCFLAGS " " "Additional FCFLAGS to pass through the wrapper compilers." 1 1) - -OMPI_DEF(WRAPPER_EXTRA_FFLAGS " " "Additional FFLAGS to pass through the wrapper compilers." 1 1) - -OMPI_DEF(WRAPPER_EXTRA_LDFLAGS " " "Additional LDFLAGS to pass through the wrapper compilers." 1 1) - -OMPI_DEF(WRAPPER_EXTRA_LIBS " " "Additional LIBS to pass through the wrapper compilers." 1 1) - - -GET_FILENAME_COMPONENT(CXX_COMPILER_NAME ${CXX} NAME_WE) -OMPI_DEF(OMPI_CXX ${CXX_COMPILER_NAME} "OMPI underlying C++ compiler name." 1 1) - -OMPI_DEF(OMPI_CXX_ABSOLUTE ${CXX} "OMPI underlying C++ compiler absolute path." 1 1) - -IF(OMPI_WANT_FORTRAN_BINDINGS) - GET_FILENAME_COMPONENT(FORTRAN_COMPILER_NAME ${CMAKE_Fortran_COMPILER} NAME_WE) - OMPI_DEF(OMPI_FORTRAN ${FORTRAN_COMPILER_NAME} "OMPI underlying Fortran 77 compiler name." 1 1) - OMPI_DEF(OMPI_FORTRAN_ABSOLUTE ${CMAKE_Fortran_COMPILER} "OMPI underlying Fortran 77 compiler absolute path" 1 1) -ELSE(OMPI_WANT_FORTRAN_BINDINGS) - OMPI_DEF(OMPI_FORTRAN "none" "OMPI underlying Fortran 77 compiler name." 1 1) - OMPI_DEF(OMPI_FORTRAN_ABSOLUTE "none" "OMPI underlying Fortran 77 compiler absolute path" 1 1) -ENDIF(OMPI_WANT_FORTRAN_BINDINGS) - -IF(OMPI_WANT_F90_BINDINGS) - GET_FILENAME_COMPONENT(F90_COMPILER_NAME ${CMAKE_Fortran_COMPILER} NAME_WE) - OMPI_DEF(OMPI_F90 ${F90_COMPILER_NAME} "OMPI underlying Fortran 90 compiler name." 1 1) - OMPI_DEF(OMPI_F90_ABSOLUTE ${CMAKE_Fortran_COMPILER} "OMPI underlying Fortran 90 compiler absolute path" 1 1) -ELSE(OMPI_WANT_F90_BINDINGS) - OMPI_DEF(OMPI_F90 "none" "OMPI underlying Fortran 90 compiler name." 1 1) - OMPI_DEF(OMPI_F90_ABSOLUTE "none" "OMPI underlying Fortran 90 compiler absolute path" 1 1) -ENDIF(OMPI_WANT_F90_BINDINGS) - -IF(HAVE_LONG_LONG) - OMPI_DEF(OPAL_HAVE_LONG_LONG 1 "Do not use outside of mpi.h.\n Define to 1 if the system has the type 'long long'." 0 1) -ENDIF(HAVE_LONG_LONG) - -IF(HAVE_PTRDIFF_T) - SET(PTRDIFF_T "ptrdiff_t") -ELSEIF(SIZEOF_VOID_P EQUAL SIZEOF_LONG) - SET(PTRDIFF_T "long") -ELSEIF(HAVE_LONG_LONG AND SIZEOF_VOID_P EQUAL SIZEOF_LONG_LONG) - SET(PTRDIFF_T "long long") -ENDIF(HAVE_PTRDIFF_T) - -OMPI_DEF(OPAL_PTRDIFF_TYPE ${PTRDIFF_T} "Type to use for ptrdiff_t." 0 0) - -#The same logic as in opal_stdint.h -#8-bit -IF(SIZEOF_CHAR EQUAL 1) - IF(NOT HAVE_INT8_T) - OMPI_DEF(OPAL_ALIGNMENT_INT8 ${OPAL_ALIGNMENT_CHAR} "Alignment of `int8_t'." 0 1) - ELSE(NOT HAVE_INT8_T) - OMPI_DEF(OPAL_ALIGNMENT_INT8 ${OPAL_ALIGNMENT_INT8_T} "Alignment of `int8_t'." 0 1) - ENDIF(NOT HAVE_INT8_T) - - IF(NOT HAVE_UINT8_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT8 ${OPAL_ALIGNMENT_CHAR} "Alignment of `uint8_t'." 0 1) - ELSE(NOT HAVE_UINT8_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT8 ${OPAL_ALIGNMENT_UINT8_T} "Alignment of `uint8_t'." 0 1) - ENDIF(NOT HAVE_UINT8_T) -ELSE(SIZEOF_CHAR EQUAL 1) - MESSAGE(FATAL_ERROR "Failed to define 8-bit types.") -ENDIF(SIZEOF_CHAR EQUAL 1) - -#16-bit -IF(SIZEOF_SHORT EQUAL 2) - IF(NOT HAVE_INT16_T) - OMPI_DEF(OPAL_ALIGNMENT_INT16 ${OPAL_ALIGNMENT_SHORT} "Alignment of `int16_t'." 0 1) - ELSE(NOT HAVE_INT16_T) - OMPI_DEF(OPAL_ALIGNMENT_INT16 ${OPAL_ALIGNMENT_INT16_T} "Alignment of `int16_t'." 0 1) - ENDIF(NOT HAVE_INT16_T) - - IF(NOT HAVE_UINT16_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT16 ${OPAL_ALIGNMENT_SHORT} "Alignment of `uint16_t'." 0 1) - ELSE(NOT HAVE_UINT16_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT16 ${OPAL_ALIGNMENT_UINT16_T} "Alignment of `uint16_t'." 0 1) - ENDIF(NOT HAVE_UINT16_T) -ELSE(SIZEOF_SHORT EQUAL 2) - MESSAGE(FATAL_ERROR "Failed to define 16-bit types.") -ENDIF(SIZEOF_SHORT EQUAL 2) - -#32-bit -IF(SIZEOF_INT EQUAL 4) - IF(NOT HAVE_INT32_T) - OMPI_DEF(OPAL_ALIGNMENT_INT32 ${OPAL_ALIGNMENT_INT} "Alignment of `int32_t'." 0 1) - ELSE(NOT HAVE_INT32_T) - OMPI_DEF(OPAL_ALIGNMENT_INT32 ${OPAL_ALIGNMENT_INT32_T} "Alignment of `int32_t'." 0 1) - ENDIF(NOT HAVE_INT32_T) - - IF(NOT HAVE_UINT32_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT32 ${OPAL_ALIGNMENT_INT} "Alignment of `uint32_t'." 0 1) - ELSE(NOT HAVE_UINT32_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT32 ${OPAL_ALIGNMENT_UINT32_T} "Alignment of `uint32_t'." 0 1) - ENDIF(NOT HAVE_UINT32_T) -ELSEIF(SIZEOF_LONG EQUAL 4) - IF(NOT HAVE_INT32_T) - OMPI_DEF(OPAL_ALIGNMENT_INT32 ${OPAL_ALIGNMENT_LONG} "Alignment of `int32_t'." 0 1) - ELSE(NOT HAVE_INT32_T) - OMPI_DEF(OPAL_ALIGNMENT_INT32 ${OPAL_ALIGNMENT_INT32_T} "Alignment of `int32_t'." 0 1) - ENDIF(NOT HAVE_INT32_T) - - IF(NOT HAVE_UINT32_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT32 ${OPAL_ALIGNMENT_LONG} "Alignment of `uint32_t'." 0 1) - ELSE(NOT HAVE_UINT32_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT32 ${OPAL_ALIGNMENT_UINT32_T} "Alignment of `uint32_t'." 0 1) - ENDIF(NOT HAVE_UINT32_T) -ELSE(SIZEOF_INT EQUAL 4) - MESSAGE(FATAL_ERROR "Failed to define 8-bit types.") -ENDIF(SIZEOF_INT EQUAL 4) - -#64-bit -IF(SIZEOF_INT EQUAL 8) - IF(NOT HAVE_INT64_T) - OMPI_DEF(OPAL_ALIGNMENT_INT64 ${OPAL_ALIGNMENT_INT} "Alignment of `int64_t'." 0 1) - ELSE(NOT HAVE_INT64_T) - OMPI_DEF(OPAL_ALIGNMENT_INT64 ${OPAL_ALIGNMENT_INT64_T} "Alignment of `int64_t'." 0 1) - ENDIF(NOT HAVE_INT64_T) - - IF(NOT HAVE_UINT64_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT64 ${OPAL_ALIGNMENT_INT} "Alignment of `uint64_t'." 0 1) - ELSE(NOT HAVE_UINT64_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT64 ${OPAL_ALIGNMENT_UINT64_T} "Alignment of `uint64_t'." 0 1) - ENDIF(NOT HAVE_UINT64_T) -ELSEIF(SIZEOF_LONG EQUAL 8) - IF(NOT HAVE_INT64_T) - OMPI_DEF(OPAL_ALIGNMENT_INT64 ${OPAL_ALIGNMENT_LONG} "Alignment of `int64_t'." 0 1) - ELSE(NOT HAVE_INT64_T) - OMPI_DEF(OPAL_ALIGNMENT_INT64 ${OPAL_ALIGNMENT_INT64_T} "Alignment of `int64_t'." 0 1) - ENDIF(NOT HAVE_INT64_T) - - IF(NOT HAVE_UINT64_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT64 ${OPAL_ALIGNMENT_LONG} "Alignment of `uint64_t'." 0 1) - ELSE(NOT HAVE_UINT64_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT64 ${OPAL_ALIGNMENT_UINT64_T} "Alignment of `uint64_t'." 0 1) - ENDIF(NOT HAVE_UINT64_T) -ELSEIF(HAVE_LONG_LONG AND SIZEOF_LONG_LONG EQUAL 8) - IF(NOT HAVE_INT64_T) - OMPI_DEF(OPAL_ALIGNMENT_INT64 ${OPAL_ALIGNMENT_LONG_LONG} "Alignment of `int64_t'." 0 1) - ELSE(NOT HAVE_INT64_T) - OMPI_DEF(OPAL_ALIGNMENT_INT64 ${OPAL_ALIGNMENT_INT64_T} "Alignment of `int64_t'." 0 1) - ENDIF(NOT HAVE_INT64_T) - - IF(NOT HAVE_UINT64_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT64 ${OPAL_ALIGNMENT_LONG_LONG} "Alignment of `uint64_t'." 0 1) - ELSE(NOT HAVE_UINT64_T) - OMPI_DEF(OPAL_ALIGNMENT_UINT64 ${OPAL_ALIGNMENT_UINT64_T} "Alignment of `uint64_t'." 0 1) - ENDIF(NOT HAVE_UINT64_T) -ELSE(SIZEOF_INT EQUAL 8) - MESSAGE(FATAL_ERROR "Failed to define 8-bit types.") -ENDIF(SIZEOF_INT EQUAL 8) - - -# -# Test to determine type of MPI_Offset. This is searched in the following order -# int64_t, long long, long, int. If none of these are 8 bytes, then we should -# search for int32_t, long long, long, int. -# -SET(MPI_OFFSET_TYPE "not found") -SET(MPI_OFFSET_DATATYPE "not found") - -MESSAGE(STATUS "checking for type of MPI_Offset...") -IF(HAVE_LONG_LONG AND SIZEOF_LONG_LONG EQUAL 8) - SET(MPI_OFFSET_TYPE "long long") - SET(MPI_OFFSET_DATATYPE MPI_LONG_LONG) - SET(MPI_OFFSET_SIZE 8) -ELSEIF(HAVE_LONG AND SIZEOF_LONG EQUAL 8) - SET(MPI_OFFSET_TYPE "long") - SET(MPI_OFFSET_DATATYPE MPI_LONG) - SET(MPI_OFFSET_SIZE 8) -ELSEIF(SIZEOF_INT EQUAL 8) - SET(MPI_OFFSET_TYPE "int") - SET(MPI_OFFSET_DATATYPE MPI_INT) - SET(MPI_OFFSET_SIZE 8) -ELSEIF(HAVE_LONG_LONG AND SIZEOF_LONG_LONG EQUAL 4) - SET(MPI_OFFSET_TYPE "long long") - SET(MPI_OFFSET_DATATYPE MPI_LONG_LONG) - SET(MPI_OFFSET_SIZE 4) -ELSEIF(HAVE_TYPE_LONG AND SIZEOF_LONG EQUAL 4) - SET(MPI_OFFSET_TYPE "long") - SET(MPI_OFFSET_DATATYPE MPI_LONG) - SET(MPI_OFFSET_SIZE 4) -ELSEIF(SIZEOF_INT EQUAL 4) - SET(MPI_OFFSET_TYPE "int") - SET(MPI_OFFSET_DATATYPE MPI_INT) - SET(MPI_OFFSET_SIZE 4) -ENDIF(HAVE_LONG_LONG AND SIZEOF_LONG_LONG EQUAL 8) - -IF(${MPI_OFFSET_TYPE} STREQUAL "not found") - MESSAGE(FATAL_ERROR "*** Unable to find the right definition for MPI_Offset. Cannot continue.") -ENDIF(${MPI_OFFSET_TYPE} STREQUAL "not found") - -MESSAGE(STATUS "checking for type of MPI_Offset...${MPI_OFFSET_TYPE}") - - -MESSAGE(STATUS "checking for an MPI datatype for MPI_Offset...") -IF(${MPI_OFFSET_DATATYPE} STREQUAL "not found") - MESSAGE(FATAL_ERROR "*** Unable to find an MPI datatype corresponding to MPI_Offset. Cannot continue.") -ENDIF(${MPI_OFFSET_DATATYPE} STREQUAL "not found") -MESSAGE(STATUS "checking for an MPI datatype for MPI_Offset...${MPI_OFFSET_DATATYPE}") - -OMPI_DEF(OMPI_MPI_OFFSET_TYPE ${MPI_OFFSET_TYPE} "Type of MPI_Offset" 0 1) -OMPI_DEF(OMPI_MPI_OFFSET_SIZE ${MPI_OFFSET_SIZE} "Size of MPI_Offset" 0 1) -OMPI_DEF(OMPI_OFFSET_DATATYPE ${MPI_OFFSET_DATATYPE} "MPI datatype corresponding to MPI_Offset" 0 1) - - -ENDMACRO(BEGIN_CONFIGURE) - - - - -MACRO(END_CONFIGURE) - -FILE(APPEND ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake - "#include \"opal_config_bottom.h\"\n#endif /* OPAL_CONFIG_H */\n") - -CONFIGURE_FILE(${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h) - -ENDMACRO(END_CONFIGURE) diff --git a/contrib/platform/win32/CMakeModules/ompi_define.cmake b/contrib/platform/win32/CMakeModules/ompi_define.cmake deleted file mode 100644 index acf1d7e47a..0000000000 --- a/contrib/platform/win32/CMakeModules/ompi_define.cmake +++ /dev/null @@ -1,120 +0,0 @@ -# -# Copyright (c) 2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -#Generate content for opal_config.h.cmake -# -# NAME: name of the variable to be defined in configure file -# VALUE: value to be defined for the variable -# DESC: description of the definition -# IS_STR: whether this variable should be defined with quotation marks -# FORCE_DEF: whether use "#cmakedefiine" or just "#define" in the line -# VAR_FORMAT: whether we should use the variable name instead of the value -# in the template file. - -MACRO(APPEND_CONFIG_FILE NAME VAR_NAME VALUE DESC IS_STR FORCE_DEF VAR_FORMAT) - - UNSET(APPEND_STRING) - - IF(${VAR_FORMAT}) - IF(${IS_STR}) - IF(${FORCE_DEF}) - SET(APPEND_STRING "/* ${DESC} */\n#define ${NAME} \"\${${VAR_NAME}}\"\n\n") - ELSE(${FORCE_DEF}) - SET(APPEND_STRING "/* ${DESC} */\n#cmakedefine ${NAME} \"\${${VAR_NAME}}\"\n\n") - ENDIF(${FORCE_DEF}) - ELSE(${IS_STR}) - IF(${FORCE_DEF}) - SET(APPEND_STRING "/* ${DESC} */\n#define ${NAME} \${${VAR_NAME}}\n\n") - ELSE(${FORCE_DEF}) - SET(APPEND_STRING "/* ${DESC} */\n#cmakedefine ${NAME} \${${VAR_NAME}}\n\n") - ENDIF(${FORCE_DEF}) - ENDIF(${IS_STR}) - ELSE(${VAR_FORMAT}) - IF(${IS_STR}) - IF(${FORCE_DEF}) - SET(APPEND_STRING "/* ${DESC} */\n#define ${NAME} \"${VALUE}\"\n\n") - ELSE(${FORCE_DEF}) - SET(APPEND_STRING "/* ${DESC} */\n#cmakedefine ${NAME} \"${VALUE}\"\n\n") - ENDIF(${FORCE_DEF}) - ELSE(${IS_STR}) - IF(${FORCE_DEF}) - SET(APPEND_STRING "/* ${DESC} */\n#define ${NAME} ${VALUE}\n\n") - ELSE(${FORCE_DEF}) - SET(APPEND_STRING "/* ${DESC} */\n#cmakedefine ${NAME} ${VALUE}\n\n") - ENDIF(${FORCE_DEF}) - ENDIF(${IS_STR}) - ENDIF(${VAR_FORMAT}) - - FILE(APPEND ${OpenMPI_BINARY_DIR}/opal/include/opal_config.h.cmake - ${APPEND_STRING}) - -ENDMACRO(APPEND_CONFIG_FILE NAME VAR_NAME VALUE DESC IS_STR FORCE_DEF VAR_FORMAT) - - -#define a name with value and -#write the line in template file. -MACRO(OMPI_DEF NAME VALUE DESC IS_STR FORCE_DEF) - - SET(${NAME} ${VALUE}) - - APPEND_CONFIG_FILE(${NAME} ${NAME} "${VALUE}" ${DESC} ${IS_STR} ${FORCE_DEF} 0) - -ENDMACRO(OMPI_DEF NAME VALUE DESC IS_STR FORCE_DEF) - - -#define a name with variable and -#write the line in template file. -MACRO(OMPI_DEF_VAR NAME DESC IS_STR FORCE_DEF) - - APPEND_CONFIG_FILE(${NAME} ${NAME} "" ${DESC} ${IS_STR} ${FORCE_DEF} 1) - -ENDMACRO(OMPI_DEF_VAR NAME DESC IS_STR FORCE_DEF) - - -#define/cache a name with value and -#write the line in template file. -MACRO(OMPI_DEF_CACHE NAME VALUE CACHE_TYPE DESC IS_STR FORCE_DEF) - - SET(${NAME} ${VALUE} CACHE ${CACHE_TYPE} "${DESC}") - - APPEND_CONFIG_FILE(${NAME} ${NAME} ${VALUE} ${DESC} ${IS_STR} ${FORCE_DEF} 0) - -ENDMACRO(OMPI_DEF_CACHE NAME VALUE OPT DESC IS_STR FORCE_DEF) - - -#define/cache a name with variable and -#write the line in template file. -MACRO(OMPI_DEF_CACHE_VAR NAME VALUE CACHE_TYPE DESC IS_STR FORCE_DEF) - - SET(${NAME} ${VALUE} CACHE ${CACHE_TYPE} "${DESC}") - - APPEND_CONFIG_FILE(${NAME} ${NAME} "" ${DESC} ${IS_STR} ${FORCE_DEF} 1) - -ENDMACRO(OMPI_DEF_CACHE_VAR NAME VALUE OPT DESC IS_STR FORCE_DEF) - - -#add an configure option and -#write the line in template file. -MACRO(OMPI_DEF_OPT OPT_NAME DEF_NAME DESC DEFAULT_VAL) - - UNSET(APPEND_STRING) - - OPTION(${OPT_NAME} "${DESC}" ${DEFAULT_VAL}) - - IF(${${OPT_NAME}} STREQUAL "OFF") - SET(${DEF_NAME}_VAL 0) - ELSE(${${OPT_NAME}} STREQUAL "OFF") - SET(${DEF_NAME}_VAL 1) - ENDIF(${${OPT_NAME}} STREQUAL "OFF") - - SET(${DEF_NAME} ${${DEF_NAME}_VAL} CACHE INTERNAL "${DEF_NAME}") - APPEND_CONFIG_FILE(${DEF_NAME} ${DEF_NAME}_VAL "" ${DESC} 0 1 1) - -ENDMACRO(OMPI_DEF_OPT OPT_NAME DEF_NAME DESC DEFAULT_VAL) diff --git a/contrib/platform/win32/CMakeModules/ompi_ext_config.cmake b/contrib/platform/win32/CMakeModules/ompi_ext_config.cmake deleted file mode 100644 index 54e6e03da9..0000000000 --- a/contrib/platform/win32/CMakeModules/ompi_ext_config.cmake +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright (c) 2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -FILE(GLOB OMPI_EXT_BASE_FILES ${PROJECT_SOURCE_DIR}/mpiext/*.h ${PROJECT_SOURCE_DIR}/mpiext/*.c) -SOURCE_GROUP(mpiext FILES ${OMPI_EXT_BASE_FILES}) - -SET(OMPI_EXT_FILES ${OMPI_EXT_FILES} ${OMPI_EXT_BASE_FILES}) - -CHECK_SUBDIRS("${PROJECT_SOURCE_DIR}/mpiext" OMPI_EXT_SUBDIRS) - -FOREACH(OMPI_MPIEXT_COMPONENT ${OMPI_MPIEXT_COMPONENTS}) - LIST(FIND OMPI_EXT_SUBDIRS ${OMPI_MPIEXT_COMPONENT} VALID_COMPONENT) - - IF(NOT VALID_COMPONENT EQUAL -1) - FILE(GLOB ${OMPI_MPIEXT_COMPONENT}_FILES - ${PROJECT_SOURCE_DIR}/mpiext/${OMPI_MPIEXT_COMPONENT}/*.h ${PROJECT_SOURCE_DIR}/mpiext/${OMPI_MPIEXT_COMPONENT}/*.c) - SOURCE_GROUP(mpiext\\${OMPI_MPIEXT_COMPONENT} FILES ${${OMPI_MPIEXT_COMPONENT}_FILES}) - - FILE(GLOB ${OMPI_MPIEXT_COMPONENT}_C_FILES - ${PROJECT_SOURCE_DIR}/mpiext/${OMPI_MPIEXT_COMPONENT}/c/*.h ${PROJECT_SOURCE_DIR}/mpiext/${OMPI_MPIEXT_COMPONENT}/c/*.c) - SOURCE_GROUP(mpiext\\${OMPI_MPIEXT_COMPONENT}\\c FILES ${${OMPI_MPIEXT_COMPONENT}_C_FILES}) - - SET(OMPI_EXT_FILES ${OMPI_EXT_FILES} ${${OMPI_MPIEXT_COMPONENT}_FILES} ${${OMPI_MPIEXT_COMPONENT}_C_FILES}) - ENDIF(NOT VALID_COMPONENT EQUAL -1) -ENDFOREACH(OMPI_MPIEXT_COMPONENT ${OMPI_MPIEXT_COMPONENTS}) - - -# write out static-component.h for this mca. -FILE(WRITE "${PROJECT_BINARY_DIR}/mpiext/static-components.h" - "/* - * $HEADER$ - */ -#if defined(c_plusplus) || defined(__cplusplus) -extern \"C\" { -#endif - - - -const ompi_mpiext_component_t *ompi_mpiext_components[] = { - - NULL -}; - -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif - ") diff --git a/contrib/platform/win32/CMakeModules/ompi_find_type.cmake b/contrib/platform/win32/CMakeModules/ompi_find_type.cmake deleted file mode 100644 index 7226f0857a..0000000000 --- a/contrib/platform/win32/CMakeModules/ompi_find_type.cmake +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -# OMPI_FIND_TYPE(type, [list of c types], abort if not found, -# target size, variable to set) -# ----------------------------------------------------------- - -MACRO(OMPI_FIND_TYPE TYPE TYPE_LIST ABORT TARGET_SIZE OUTPUT_VARIABLE) - SET(oft_abort_on_fail "${ABORT}") - SET(oft_target_size ${TARGET_SIZE}) - - - MESSAGE(STATUS "Check corresponding C type of ${TYPE}...") - SET(oft_real_type "") - - IF(NOT "${oft_target_size}" STREQUAL "") - - FOREACH(oft_type ${TYPE_LIST}) - STRING(REGEX REPLACE " " "_" oft_type_name ${oft_type}) - STRING(TOUPPER ${oft_type_name} oft_type_name) - IF(SIZEOF_${oft_type_name} EQUAL oft_target_size) - SET(oft_real_type ${oft_type}) - BREAK() - ENDIF(SIZEOF_${oft_type_name} EQUAL oft_target_size) - ENDFOREACH(oft_type ${TYPE_LIST}) - - ENDIF(NOT "${oft_target_size}" STREQUAL "") - - IF("${oft_real_type}" STREQUAL "") - SET(OUTPUT_VARIABLE "") - MESSAGE(STATUS "*** Did not find corresponding C type of ${TYPE}") - IF("${oft_abort_on_fail}" STREQUAL "yes") - MESSAGE(FATAL_ERROR "Cannot continue.") - ENDIF("${oft_abort_on_fail}" STREQUAL "yes") - ELSE("${oft_real_type}" STREQUAL "") - SET(${OUTPUT_VARIABLE} "${oft_real_type}") - MESSAGE(STATUS "Check corresponding C type of ${TYPE}... ${oft_real_type}") - ENDIF("${oft_real_type}" STREQUAL "") - -ENDMACRO(OMPI_FIND_TYPE TYPE TYPE_LIST ABORT TARGET_SIZE OUTPUT_VARIABLE) diff --git a/contrib/platform/win32/CMakeModules/opal_event_config.cmake b/contrib/platform/win32/CMakeModules/opal_event_config.cmake deleted file mode 100644 index 3aac90a71b..0000000000 --- a/contrib/platform/win32/CMakeModules/opal_event_config.cmake +++ /dev/null @@ -1,131 +0,0 @@ -# Copyright (c) 2010-2012 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Only one libevent component should be used, selection is done by editing .windows in_use property. - -FILE(STRINGS ${CURRENT_PATH}/.windows IN_USE REGEX "^in_use=") -STRING(REPLACE "in_use=" "" IN_USE ${IN_USE}) - -STRING(REGEX MATCH "libevent[0-9]+" libevent_dir "${CURRENT_PATH}") - -IF(${IN_USE} STREQUAL "0") - - SET(RESULT FALSE) - -ELSE(${IN_USE} STREQUAL "0") - - SET(LIBEVENT_FOUND TRUE CACHE INTERNAL "allow only one event mca.") - - MESSAGE(STATUS "configure libevent.") - - # set up event include directories. - INCLUDE_DIRECTORIES ("${CURRENT_PATH}/libevent/compat" - "${CURRENT_PATH}/libevent/WIN32-Code/" - "${CURRENT_PATH}/libevent/include/" - "${CURRENT_PATH}/libevent" - "${PROJECT_BINARY_DIR}/mca/event/${libevent_dir}") - - SET(LIBEVENT_INCLUDE_DIRS ${CURRENT_PATH}/libevent/compat;${CURRENT_PATH}/libevent/WIN32-Code/;${CURRENT_PATH}/libevent/include/;${CURRENT_PATH}/libevent;${PROJECT_BINARY_DIR}/mca/event/${libevent_dir}/ - CACHE INTERNAL "the libevent dirs that have to be included on the top level.") - - IF(WIN32) - - # generating config.h - # windows doesn't need this file, just make an empty one - FILE(WRITE ${PROJECT_BINARY_DIR}/mca/event/${libevent_dir}/libevent/config.h - " /* config.h. Generated automatically by CMake. */ ") - - SET(RESULT_COMPONENT_FILES - ${RESULT_COMPONENT_FILES} - ${CURRENT_PATH}/${libevent_dir}_component.c - ${CURRENT_PATH}/${libevent_dir}_module.c - #system sources - ${CURRENT_PATH}/libevent/win32select.c - ${CURRENT_PATH}/libevent/evthread_win32.c - ${CURRENT_PATH}/libevent/buffer_iocp.c - ${CURRENT_PATH}/libevent/event_iocp.c - ${CURRENT_PATH}/libevent/bufferevent_async.c - #core sources - ${CURRENT_PATH}/libevent/event.c - ${CURRENT_PATH}/libevent/evthread.c - ${CURRENT_PATH}/libevent/buffer.c - ${CURRENT_PATH}/libevent/bufferevent.c - ${CURRENT_PATH}/libevent/bufferevent_sock.c - ${CURRENT_PATH}/libevent/bufferevent_pair.c - ${CURRENT_PATH}/libevent/listener.c - ${CURRENT_PATH}/libevent/bufferevent_ratelim.c - ${CURRENT_PATH}/libevent/evmap.c - ${CURRENT_PATH}/libevent/log.c - ${CURRENT_PATH}/libevent/evutil.c - ${CURRENT_PATH}/libevent/evutil_rand.c - ${CURRENT_PATH}/libevent/strlcpy.c - ${CURRENT_PATH}/libevent/signal.c - ) - IF(WINDOWS_MINGW) - SET_SOURCE_FILES_PROPERTIES(${CURRENT_PATH}/libevent/win32select.c - ${CURRENT_PATH}/libevent/evthread_win32.c - ${CURRENT_PATH}/libevent/buffer_iocp.c - ${CURRENT_PATH}/libevent/bufferevent_async.c - ${CURRENT_PATH}/libevent/event.c - ${CURRENT_PATH}/libevent/evthread.c - ${CURRENT_PATH}/libevent/bufferevent.c - ${CURRENT_PATH}/libevent/bufferevent_sock.c - ${CURRENT_PATH}/libevent/bufferevent_pair.c - ${CURRENT_PATH}/libevent/bufferevent_ratelim.c - ${CURRENT_PATH}/libevent/evmap.c - ${CURRENT_PATH}/libevent/log.c - ${CURRENT_PATH}/libevent/evutil_rand.c - ${CURRENT_PATH}/libevent/strlcpy.c - ${CURRENT_PATH}/libevent/signal.c - PROPERTIES COMPILE_FLAGS "-D intptr_t=int -D _INTPTR_T_DEFINED") - SET(OBJ_PATH "${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/libopen-pal.dir/mca/event/${libevent_dir}/libevent") - SET(EVENT_OBJ_FILES "${OBJ_PATH}/*.obj" CACHE INTERNAL "event obj files") - ELSEIF(WINDOWS_VS) - SET(OBJ_PATH "${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}") - # for generating the static library, as opal will not export event API any more. - SET(EVENT_OBJ_FILES - ${OBJ_PATH}/win32select.obj - ${OBJ_PATH}/evthread_win32.obj - ${OBJ_PATH}/buffer_iocp.obj - ${OBJ_PATH}/event_iocp.obj - ${OBJ_PATH}/bufferevent_async.obj - ${OBJ_PATH}/event.obj - ${OBJ_PATH}/evthread.obj - ${OBJ_PATH}/buffer.obj - ${OBJ_PATH}/bufferevent.obj - ${OBJ_PATH}/bufferevent_sock.obj - ${OBJ_PATH}/bufferevent_pair.obj - ${OBJ_PATH}/listener.obj - ${OBJ_PATH}/bufferevent_ratelim.obj - ${OBJ_PATH}/evmap.obj - ${OBJ_PATH}/log.obj - ${OBJ_PATH}/evutil.obj - ${OBJ_PATH}/evutil_rand.obj - ${OBJ_PATH}/strlcpy.obj - ${OBJ_PATH}/signal.obj - CACHE INTERNAL "event obj files") - ENDIF(WINDOWS_MINGW) - - OMPI_DEF(OPAL_HAVE_WORKING_EVENTOPS 1 - "Whether our event component has working event operations or not if not, then assumedly it only has working timers and signals)." 0 1) - - OMPI_DEF(MCA_event_IMPLEMENTATION_HEADER "${CURRENT_PATH}/${libevent_dir}.h" - "Header to include for event implementation" 1 1) - - SET(LIBEVENT_CONFIG_DONE TRUE CACHE INTERNAL "Libevent config done.") - - ELSE(WIN32) - SET(RESULT_COMPONENT_FILES - ${RESULT_COMPONENT_FILES} - ) - ENDIF(WIN32) - - SET(RESULT TRUE) - -ENDIF(${IN_USE} STREQUAL "0") diff --git a/contrib/platform/win32/CMakeModules/opal_functions.cmake b/contrib/platform/win32/CMakeModules/opal_functions.cmake deleted file mode 100644 index 85f218ad1a..0000000000 --- a/contrib/platform/win32/CMakeModules/opal_functions.cmake +++ /dev/null @@ -1,55 +0,0 @@ -# -# Copyright (c) 2009-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# -# Functions that are re-written from config/opal_functions.m4, and to be continued... -# - - -# OPAL_WITH_OPTION_MIN_MAX_VALUE(NAME,DEFAULT_VALUE,LOWER_BOUND,UPPER_BOUND) -# Defines a variable OPAL_MAX_xxx, with "xxx" being specified as the first parameter. -# If not set at configure-time, the default-value is assumed. -# If set, value is checked against lower and upper bound -# -MACRO(OPAL_WITH_OPTION_MIN_MAX_VALUE NAME DEFAULT_VALUE LOWER_BOUND UPPER_BOUND) - - STRING(REPLACE "_" " " NAME_HELPER ${NAME}) - STRING(TOUPPER "OPAL_MAX_${NAME}" OPTION_VALUE_VAR) - - IF(NOT ${OPTION_VALUE_VAR}) - MESSAGE(STATUS "Checking maximum length of ${NAME_HELPER}...") - MESSAGE(STATUS "Use default value ${DEFAULT_VALUE}.") - - SET(${NAME}_OLD_VALUE ${DEFAULT_VALUE} CACHE INTERNAL "the value from the last configure.") - ENDIF(NOT ${OPTION_VALUE_VAR}) - - # check if the value is changed. - IF(NOT ${${OPTION_VALUE_VAR}} EQUAL ${NAME}_OLD_VALUE) - MESSAGE(STATUS "Checking maximum length of ${NAME_HELPER}...") - - # check if the value is in the range. - IF(NOT ${${OPTION_VALUE_VAR}} EQUAL 0 AND NOT ${${OPTION_VALUE_VAR}} EQUAL no AND NOT ${${OPTION_VALUE_VAR}} EQUAL NO) - - IF(${${OPTION_VALUE_VAR}} LESS ${LOWER_BOUND} OR ${${OPTION_VALUE_VAR}} GREATER ${UPPER_BOUND}) - MESSAGE(FATAL_ERROR "${OPTION_VALUE_VAR} is out of range(${LOWER_BOUND}-${UPPER_BOUND}). Cannot continue.") - ENDIF(${${OPTION_VALUE_VAR}} LESS ${LOWER_BOUND} OR ${${OPTION_VALUE_VAR}} GREATER ${UPPER_BOUND}) - - ELSE(NOT ${${OPTION_VALUE_VAR}} EQUAL 0 AND NOT ${${OPTION_VALUE_VAR}} EQUAL no AND NOT ${${OPTION_VALUE_VAR}} EQUAL NO) - MESSAGE(FATAL_ERROR "Bad value for ${OPTION_VALUE_VAR}. Cannot continue.") - ENDIF(NOT ${${OPTION_VALUE_VAR}} EQUAL 0 AND NOT ${${OPTION_VALUE_VAR}} EQUAL no AND NOT ${${OPTION_VALUE_VAR}} EQUAL NO) - - SET(${NAME}_OLD_VALUE ${${OPTION_VALUE_VAR}} CACHE INTERNAL "the value from the last configure.") - - ENDIF(NOT ${${OPTION_VALUE_VAR}} EQUAL ${NAME}_OLD_VALUE) - - OMPI_DEF_CACHE_VAR(${OPTION_VALUE_VAR} ${DEFAULT_VALUE} STRING - "maximum length of ${NAME} (${LOWER_BOUND}-${UPPER_BOUND}). (Default: ${DEFAULT_VALUE}.)." 0 1) - -ENDMACRO(OPAL_WITH_OPTION_MIN_MAX_VALUE NAME DEFAULT_VALUE LOWER_BOUND UPPER_BOUND) diff --git a/contrib/platform/win32/CMakeModules/opal_get_version.cmake b/contrib/platform/win32/CMakeModules/opal_get_version.cmake deleted file mode 100644 index 88eb974635..0000000000 --- a/contrib/platform/win32/CMakeModules/opal_get_version.cmake +++ /dev/null @@ -1,117 +0,0 @@ -# -# Copyright (c) 2007-2012 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -FILE(STRINGS ${OpenMPI_SOURCE_DIR}/VERSION VALUE REGEX "^major=") -STRING(REPLACE "major=" "" MAJOR_VERSION ${VALUE}) - -FILE(STRINGS ${OpenMPI_SOURCE_DIR}/VERSION VALUE REGEX "^minor=") -STRING(REPLACE "minor=" "" MINOR_VERSION ${VALUE}) - -FILE(STRINGS ${OpenMPI_SOURCE_DIR}/VERSION VALUE REGEX "^release=") -STRING(REPLACE "release=" "" RELEASE_VERSION ${VALUE}) - -FILE(STRINGS ${OpenMPI_SOURCE_DIR}/VERSION VALUE REGEX "^greek=") -STRING(REPLACE "greek=" "" GREEK_VERSION ${VALUE}) - -FILE(STRINGS ${OpenMPI_SOURCE_DIR}/VERSION VALUE REGEX "^want_repo_rev=") -STRING(REPLACE "want_repo_rev=" "" WANT_REPO_REV ${VALUE}) - -FILE(STRINGS ${OpenMPI_SOURCE_DIR}/VERSION VALUE REGEX "^repo_rev=") -STRING(REPLACE "repo_rev=" "" REPO_REV ${VALUE}) - -FILE(STRINGS ${OpenMPI_SOURCE_DIR}/VERSION VALUE REGEX "^date=") -STRING(REPLACE "date=" "" RELEASE_DATE ${VALUE}) -STRING(REPLACE "\"" "" RELEASE_DATE ${RELEASE_DATE}) - -IF(${RELEASE_VERSION} EQUAL 0) - SET(VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION}${GREEK_VERSION}) -ELSE(${RELEASE_VERSION} EQUAL 0) - SET(VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION}.${RELEASE_VERSION}${GREEK_VERSION}) -ENDIF(${RELEASE_VERSION} EQUAL 0) - -# Get the svn version -IF("${WANT_REPO_REV}" STREQUAL "1") - - IF("${REPO_REV}" STREQUAL "-1") - # for VS.NET2003 users working with web projects, we should also check "_svn" - IF(EXISTS ${OpenMPI_SOURCE_DIR}/.svn OR EXISTS ${OpenMPI_SOURCE_DIR}/_svn) - EXECUTE_PROCESS (COMMAND svnversion -n - WORKING_DIRECTORY ${OpenMPI_SOURCE_DIR} - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - IF(NOT RESULT STREQUAL "0") - # subversion might be not installed, let's try TortoiseSVN. - EXECUTE_PROCESS (COMMAND SubWCRev - . contrib/platform/win32/ConfigFiles/revision.in - ${OpenMPI_BINARY_DIR}/revision - WORKING_DIRECTORY ${OpenMPI_SOURCE_DIR} - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - IF(RESULT STREQUAL "0") - FILE(STRINGS ${OpenMPI_BINARY_DIR}/revision OUTPUT REGEX "[0-9]*") - ENDIF(RESULT STREQUAL "0") - ENDIF(NOT RESULT STREQUAL "0") - ELSEIF(EXISTS ${OpenMPI_SOURCE_DIR}/.hg) - EXECUTE_PROCESS (COMMAND hg -v -R . tip - WORKING_DIRECTORY ${OpenMPI_SOURCE_DIR} - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - STRING(REGEX REPLACE "changeset:[^:]*:" "" OUTPUT ${OUTPUT}) - STRING(REGEX REPLACE "tag.*" "" OUTPUT ${OUTPUT}) - STRING(REPLACE "\n" "" OUTPUT ${OUTPUT}) - ENDIF(EXISTS ${OpenMPI_SOURCE_DIR}/.svn OR EXISTS ${OpenMPI_SOURCE_DIR}/_svn) - - IF(NOT RESULT STREQUAL "0") - MESSAGE(STATUS "SVN ERROR:${RESULT} ${ERROR}") - ELSE(NOT RESULT STREQUAL "0") - IF(${RESULT} EQUAL 0 AND NOT "${OUTPUT}" STREQUAL "exported" ) - SET(SVN_VERSION "r${OUTPUT}") - ENDIF(${RESULT} EQUAL 0 AND NOT "${OUTPUT}" STREQUAL "exported") - ENDIF(NOT RESULT STREQUAL "0") - - ENDIF("${REPO_REV}" STREQUAL "-1") - - SET(VERSION_STRING ${VERSION_STRING}${SVN_VERSION}) - -ELSE("${WANT_REPO_REV}" STREQUAL "1") - SET(SVN_VERSION ${REPO_REV}) -ENDIF("${WANT_REPO_REV}" STREQUAL "1") - -# Set OPAL versions -OMPI_DEF(OPAL_WANT_REPO_REV ${WANT_REPO_REV} "SVN verstion of OPAL" 1 1) -OMPI_DEF(OPAL_REPO_REV "${SVN_VERSION}" "SVN verstion of OPAL" 1 1) -OMPI_DEF(OPAL_GREEK_VERSION "${GREEK_VERSION}" "Greek - alpha, beta, etc - release number of Open Portable Access Layer." 1 1) -OMPI_DEF(OPAL_MAJOR_VERSION ${MAJOR_VERSION} "Major release number of Open Portable Access Layer." 0 1) -OMPI_DEF(OPAL_MINOR_VERSION ${MINOR_VERSION} "Minor release number of Open Portable Access Layer." 0 1) -OMPI_DEF(OPAL_RELEASE_VERSION ${RELEASE_VERSION} "Release number of Open Portable Access Layer." 0 1) -OMPI_DEF(OPAL_VERSION ${VERSION_STRING} "Complete release number of Open Portable Access Layer." 1 1) -OMPI_DEF(OPAL_IDENT_STRING ${VERSION_STRING} "ident string for Open MPI." 1 1) - -# Set OMPI versions -OMPI_DEF(OMPI_WANT_REPO_REV ${WANT_REPO_REV} "SVN verstion of OMPI" 1 1) -OMPI_DEF(OMPI_REPO_REV "${SVN_VERSION}" "SVN verstion of OMPI" 1 1) -OMPI_DEF(OMPI_GREEK_VERSION "${GREEK_VERSION}" "Greek - alpha, beta, etc - release number of Open Portable Access Layer." 1 1) -OMPI_DEF(OMPI_MAJOR_VERSION ${MAJOR_VERSION} "Major release number of Open MPI." 0 1) -OMPI_DEF(OMPI_MINOR_VERSION ${MINOR_VERSION} "Minor release number of Open MPI." 0 1) -OMPI_DEF(OMPI_RELEASE_VERSION ${RELEASE_VERSION} "Release number of Open MPI." 0 1) -OMPI_DEF(OMPI_VERSION ${VERSION_STRING} "Complete release number of Open MPI." 1 1) - -# Set ORTE versions -OMPI_DEF(ORTE_WANT_REPO_REV ${WANT_REPO_REV} "SVN verstion of ORTE" 1 1) -OMPI_DEF(ORTE_REPO_REV "${SVN_VERSION}" "SVN verstion of ORTE" 1 1) -OMPI_DEF(ORTE_GREEK_VERSION "${GREEK_VERSION}" "Greek - alpha, beta, etc - release number of Open Run-Time Environment." 1 1) -OMPI_DEF(ORTE_MAJOR_VERSION ${MAJOR_VERSION} "Major release number of Open Run-Time Environment." 0 1) -OMPI_DEF(ORTE_MINOR_VERSION ${MINOR_VERSION} "Minor release number of Open Run-Time Environment." 0 1) -OMPI_DEF(ORTE_RELEASE_VERSION ${RELEASE_VERSION} "Release number of Open Run-Time Environment." 0 1) -OMPI_DEF(ORTE_VERSION ${VERSION_STRING} "Complete release number of Open Run-Time Environment." 1 1) diff --git a/contrib/platform/win32/CMakeModules/opal_hwloc_config.cmake b/contrib/platform/win32/CMakeModules/opal_hwloc_config.cmake deleted file mode 100644 index 7f047dfac5..0000000000 --- a/contrib/platform/win32/CMakeModules/opal_hwloc_config.cmake +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright (c) 2012 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -MESSAGE(STATUS "configure hwloc.") - -STRING(REGEX MATCH "hwloc[0-9]+" hwloc_dir "${CURRENT_PATH}") - -INCLUDE_DIRECTORIES ("${CURRENT_PATH}/" - "${CURRENT_PATH}/../" - "${CURRENT_PATH}/hwloc/include/") - -SET(HWLOC_PATH ${CURRENT_PATH} CACHE INERNAL "path to hwloc dir") - -IF(WIN32) - - SET(RESULT_COMPONENT_FILES - ${RESULT_COMPONENT_FILES} - ${CURRENT_PATH}/${hwloc_dir}_component.c - ${CURRENT_PATH}/hwloc/src/bind.c - ${CURRENT_PATH}/hwloc/src/cpuset.c - ${CURRENT_PATH}/hwloc/src/distances.c - ${CURRENT_PATH}/hwloc/src/dolib.c - ${CURRENT_PATH}/hwloc/src/misc.c - ${CURRENT_PATH}/hwloc/src/topology-libpci.c - ${CURRENT_PATH}/hwloc/src/topology-synthetic.c - ${CURRENT_PATH}/hwloc/src/topology-windows.c - ${CURRENT_PATH}/hwloc/src/topology-x86.c - ${CURRENT_PATH}/hwloc/src/topology-xml.c - ${CURRENT_PATH}/hwloc/src/topology.c - ${CURRENT_PATH}/hwloc/src/traversal.c - ) - - IF(WINDOWS_VS) - SET(OBJ_PATH "${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}") - # for generating the static library, as opal will not export event API any more. - SET(HWLOC_OBJ_FILES - ${OBJ_PATH}/${hwloc_dir}_component.obj - ${OBJ_PATH}/bind.obj - ${OBJ_PATH}/cpuset.obj - ${OBJ_PATH}/distances.obj - ${OBJ_PATH}/dolib.obj - ${OBJ_PATH}/misc.obj - ${OBJ_PATH}/topology-libpci.obj - ${OBJ_PATH}/topology-synthetic.obj - ${OBJ_PATH}/topology-windows.obj - ${OBJ_PATH}/topology-x86.obj - ${OBJ_PATH}/topology-xml.obj - ${OBJ_PATH}/topology.obj - ${OBJ_PATH}/traversal.obj - CACHE INTERNAL "hwloc obj files") - ELSEIF(WINDOWS_MINGW) - SET(OBJ_PATH "${PROJECT_BINARY_DIR}/libopen-pal.dir/${CMAKE_CFG_INTDIR}") - # for generating the static library, as opal will not export event API any more. - SET(HWLOC_OBJ_FILES - ${OBJ_PATH}/${hwloc_dir}_component.obj - ${OBJ_PATH}/bind.obj - ${OBJ_PATH}/cpuset.obj - ${OBJ_PATH}/distances.obj - ${OBJ_PATH}/dolib.obj - ${OBJ_PATH}/misc.obj - ${OBJ_PATH}/topology-libpci.obj - ${OBJ_PATH}/topology-synthetic.obj - ${OBJ_PATH}/topology-windows.obj - ${OBJ_PATH}/topology-x86.obj - ${OBJ_PATH}/topology-xml.obj - ${OBJ_PATH}/topology.obj - ${OBJ_PATH}/traversal.obj - CACHE INTERNAL "hwloc obj files") - ENDIF(WINDOWS_VS) - -ELSE(WIN32) - SET(RESULT_COMPONENT_FILES - ${RESULT_COMPONENT_FILES} - ) -ENDIF(WIN32) - -SET(RESULT TRUE) \ No newline at end of file diff --git a/contrib/platform/win32/CMakeModules/setup_fortran.cmake b/contrib/platform/win32/CMakeModules/setup_fortran.cmake deleted file mode 100644 index b2993ba7bf..0000000000 --- a/contrib/platform/win32/CMakeModules/setup_fortran.cmake +++ /dev/null @@ -1,173 +0,0 @@ -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# first try to find a fortran compiler, will be checked when fortran support is enabled. - -# There might be a bug in CMake, the CMAKE_GENERATOR_FC is set to "ifort" by default, -# which causes CMake can't find the correct Fortran compiler. -# We have to set CMAKE_GENERATOR_FC empty. -SET(CMAKE_GENERATOR_FC "") -include(CMakeDetermineFortranCompiler) -include(CMakeFortranInformation) - -GET_FILENAME_COMPONENT(FORTRAN_NAME ${CMAKE_Fortran_COMPILER} NAME) -GET_FILENAME_COMPONENT(FORTRAN_PATH ${CMAKE_Fortran_COMPILER} PATH) - -SET(FORTRAN ${FORTRAN_NAME} CACHE INTERNAL "Name of the fortran compiler.") - -IF(OMPI_WANT_FORTRAN_BINDINGS AND NOT FORTRAN_SETUP_DONE) - - # Get the size of a C size_t; that's the size of the Fortran - # MPI_OFFSET_KIND - MESSAGE( STATUS "Checking size of C size_t...") - FILE (WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_sizeof_sizet.c" - "#include - int main() {return sizeof(size_t);} - ") - TRY_RUN(SIZEOF_C_SIZE_T COMPILE_RESULT "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/" - "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/check_sizeof_sizet.c") - SET(OMPI_MPI_OFFSET_KIND ${SIZEOF_C_SIZE_T} CACHE INTERNAL "MPI_OFFSET_KIND") - - # MPI_INTEGER_KIND is always 4 - SET(OMPI_MPI_INTEGER_KIND 4 CACHE INTERNAL "MPI_INTEGER_KIND") - - # MPI_ADDRESS_KIND is the size of a C (void*), which is built-in to - # Cmake. - SET(OMPI_MPI_ADDRESS_KIND ${CMAKE_SIZEOF_VOID_P} CACHE INTERNAL "MPI_ADDRESS_KIND") - - # Finally, set the number of integers in MPI_STATUS_SIZE (it's 4 - # integers plus 1 size_t). - MATH( EXPR __ompi_f_status "(4+(${SIZEOF_C_SIZE_T}/4))") - SET(OMPI_FORTRAN_STATUS_SIZE ${__ompi_f_status} CACHE INTERNAL "MPI_STATUS_SIZE") - - # Default compiler settings. - IF(${FORTRAN} STREQUAL "ifort.exe") - #settings for Intel Fortran - SET(FORTRAN_OPTION_COMPILE "/c" CACHE INTERNAL - "Fortran compiler option for compiling without linking.") - SET(FORTRAN_OUTPUT_OBJ "/Fo" CACHE INTERNAL - "Fortran compiler option for setting object file name.") - SET(FORTRAN_OUTPUT_EXE "/Fe" CACHE INTERNAL - "Fortran compiler option for setting executable file name.") - SET(FORTRAN_DYNAMIC_FLAG_DEBUG "/MDd" CACHE INTERNAL - "Compile flag for using dynamically-loaded, multithread C runtime (Debug).") - SET(FORTRAN_DYNAMIC_FLAG "/MD" CACHE INTERNAL - "Compile flag for using dynamically-loaded, multithread C runtime.") - - IF(NOT "$ENV{IFORT_COMPILER11}" STREQUAL "") - SET(IFORT_LIB_PATH "$ENV{IFORT_COMPILER11}/lib/") - ELSEIF(NOT "$ENV{IFORT_COMPILER12}" STREQUAL "") - SET(IFORT_LIB_PATH "$ENV{IFORT_COMPILER12}/compiler/lib/") - ENDIF(NOT "$ENV{IFORT_COMPILER11}" STREQUAL "") - - IF(CMAKE_CL_64) - SET(FORTRAN_LIB_PATH "${IFORT_LIB_PATH}/intel64") - ELSE(CMAKE_CL_64) - SET(FORTRAN_LIB_PATH "${IFORT_LIB_PATH}/ia32") - ENDIF(CMAKE_CL_64) - - IF(NOT FORTRAN_LIB_PATH) - IF(CMAKE_CL_64) - FIND_LIBRARY(FORTRAN_IFCONSOL_LIB ifconsol.lib PATHS ${FORTRAN_PATH}/../../intel64) - ELSE(CMAKE_CL_64) - FIND_LIBRARY(FORTRAN_IFCONSOL_LIB ifconsol.lib PATHS ${FORTRAN_PATH}/../../ia32) - ENDIF(CMAKE_CL_64) - GET_FILENAME_COMPONENT(FORTRAN_LIB_PATH ${FORTRAN_IFCONSOL_LIB} PATH) - UNSET(FORTRAN_IFCONSOL_LIB CACHE) - ELSE(NOT FORTRAN_LIB_PATH) - STRING(REPLACE "\\" "/" FORTRAN_LIB_PATH ${FORTRAN_LIB_PATH}) - ENDIF(NOT FORTRAN_LIB_PATH) - ELSEIF(${FORTRAN} STREQUAL "g95.exe") - #settings for G95 - SET(FORTRAN_OPTION_COMPILE "-c" CACHE INTERNAL - "Fortran compiler option for compiling without linking.") - SET(FORTRAN_OUTPUT_OBJ "-o" CACHE INTERNAL - "Fortran compiler option for setting object file name.") - SET(FORTRAN_OUTPUT_EXE "-o" CACHE INTERNAL - "Fortran compiler option for setting executable file name.") - ELSE(${FORTRAN} STREQUAL "ifort.exe") - # in other case, let user specify their fortran configrations. - SET(FORTRAN_OPTION_COMPILE "-c" CACHE STRING - "Fortran compiler option for compiling without linking.") - SET(FORTRAN_OUTPUT_OBJ "-o" CACHE STRING - "Fortran compiler option for setting object file name.") - SET(FORTRAN_OUTPUT_EXE "-o" CACHE STRING - "Fortran compiler option for setting executable file name.") - SET(FORTRAN_LIB_PATH "" CACHE PATH - "Library path for the fortran compiler") - SET(FORTRAN_INCLUDE_PATH "" CACHE PATH - "Include path for the fortran compiler") - ENDIF(${FORTRAN} STREQUAL "ifort.exe") - - # Export env variables for fortran compiler. - SET(ENV{PATH} "${C_COMPILER_PATH};${FORTRAN_PATH};$ENV{PATH}") - SET(ENV{LIB} "${C_COMPILER_LIB};${FORTRAN_LIB_PATH};$ENV{LIB}") - SET(ENV{INCLUDE} "${C_COMPILER_INCLUDE};${FORTRAN_INCLUDE_PATH};$ENV{INCLUDE}") - SET(ENV{LIBPATH} "${C_COMPILER_LIBPATH};$ENV{LIBPATH}") - - # make sure the compiler actually works, if not cross-compiling - MESSAGE(STATUS "Checking for working Fortran compiler...") - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f - "\t PROGRAM TESTFortran \n" - "\t PRINT *, 'Hello' \n" - "\t END \n") - - # lets use execute_process to run the compile test - EXECUTE_PROCESS(COMMAND ${FORTRAN} testFortranCompiler.f - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp - OUTPUT_VARIABLE OUTPUT - RESULT_VARIABLE RESULT - ERROR_VARIABLE ERROR) - - - IF(RESULT) - SET(FORTRAN_SETUP_DONE FALSE CACHE INTERNAL "fortran setup done.") - MESSAGE(STATUS "${OUTPUT}\n${ERROR}") - MESSAGE(STATUS "Fortran compiler ${FORTRAN} can't compile a simple fortran program.") - MESSAGE(FATAL_ERROR "Cannot continue. Please check Fortran compiler installation, or disable Fortran 77 support.") - ELSE(RESULT) - MESSAGE(STATUS "Checking for working Fortran compiler...${FORTRAN}") - SET(FORTRAN_SETUP_DONE TRUE CACHE INTERNAL "fortran setup done.") - ENDIF(RESULT) - - INCLUDE(FORTRAN_find_ext_symbol_convention) - # make sure we know the linking convention - # this macro will also test linking with C code - OMPI_FORTRAN_FIND_EXT_SYMBOL_CONVENTION() - -ELSEIF(NOT OMPI_WANT_FORTRAN_BINDINGS) - SET(OMPI_FORTRAN_DOUBLE_UNDERSCORE 0 - CACHE INTERNAL "external symbol convention - double underscore") - SET(OMPI_FORTRAN_SINGLE_UNDERSCORE 0 - CACHE INTERNAL "external symbol convention - single underscore") - SET(OMPI_FORTRAN_CAPS 0 - CACHE INTERNAL "external symbol convention - captital") - SET(OMPI_FORTRAN_PLAIN 0 - CACHE INTERNAL "external symbol convention - plain") - - UNSET(SYMBOL_CONVENTION_CHECK_DONE CACHE) - UNSET(FORTRAN_OPTION_COMPILE CACHE) - UNSET(FORTRAN_OUTPUT_OBJ CACHE) - UNSET(FORTRAN_OUTPUT_EXE CACHE) - UNSET(FORTRAN_LIB_PATH CACHE) - UNSET(FORTRAN_INCLUDE_PATH CACHE) - UNSET(FORTRAN_IFCONSOL_LIB CACHE) - UNSET(FORTRAN_SETUP_DONE CACHE) -ENDIF(OMPI_WANT_FORTRAN_BINDINGS AND NOT FORTRAN_SETUP_DONE) - -OMPI_DEF(OMPI_FC ${FORTRAN} "The fortran compiler name." 1 1) -OMPI_DEF(OMPI_FC_ABSOLUTE ${CMAKE_Fortran_COMPILER} "The absolute path of the fortran compiler." 1 1) - -# a few definitions needed by OMPI_FORTRAN_FIND_EXT_SYMBOL_CONVENTION check. -OMPI_DEF_VAR(OMPI_FORTRAN_DOUBLE_UNDERSCORE "Whether fortran symbols have a trailing double underscore or not." 0 1) -OMPI_DEF_VAR(OMPI_FORTRAN_SINGLE_UNDERSCORE "Whether fortran symbols have a trailing single underscore or not." 0 1) -OMPI_DEF_VAR(OMPI_FORTRAN_CAPS "Whether fortran symbols are all caps or not." 0 1) -OMPI_DEF_VAR(OMPI_FORTRAN_PLAIN "Whether fortran symbols have no trailing underscore or not." 0 1) - diff --git a/contrib/platform/win32/ConfigFiles/revision.in b/contrib/platform/win32/ConfigFiles/revision.in deleted file mode 100644 index fc89e42b32..0000000000 --- a/contrib/platform/win32/ConfigFiles/revision.in +++ /dev/null @@ -1 +0,0 @@ -$WCREV$ diff --git a/contrib/platform/win32/bin/COPYING.flex b/contrib/platform/win32/bin/COPYING.flex deleted file mode 100644 index 684b011026..0000000000 --- a/contrib/platform/win32/bin/COPYING.flex +++ /dev/null @@ -1,42 +0,0 @@ -Flex carries the copyright used for BSD software, slightly modified -because it originated at the Lawrence Berkeley (not Livermore!) Laboratory, -which operates under a contract with the Department of Energy: - -Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007 The Flex Project. - -Copyright (c) 1990, 1997 The Regents of the University of California. -All rights reserved. - -This code is derived from software contributed to Berkeley by -Vern Paxson. - -The United States Government has rights in this work pursuant -to contract no. DE-AC03-76SF00098 between the United States -Department of Energy and the University of California. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -Neither the name of the University nor the names of its contributors -may be used to endorse or promote products derived from this software -without specific prior written permission. - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. - -This basically says "do whatever you please with this software except -remove this notice or take advantage of the University's (or the flex -authors') name". - -Note that the "flex.skl" scanner skeleton carries no copyright notice. -You are free to do whatever you please with scanners generated using flex; -for them, you are not even bound by the above copyright. diff --git a/contrib/platform/win32/bin/flex.exe b/contrib/platform/win32/bin/flex.exe deleted file mode 100755 index 73c690df31..0000000000 Binary files a/contrib/platform/win32/bin/flex.exe and /dev/null differ diff --git a/contrib/platform/win32/deploy.vdproj b/contrib/platform/win32/deploy.vdproj deleted file mode 100644 index 6d38599ce4..0000000000 --- a/contrib/platform/win32/deploy.vdproj +++ /dev/null @@ -1,5403 +0,0 @@ -"DeployProject" -{ -"VSVersion" = "3:800" -"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" -"IsWebType" = "8:FALSE" -"ProjectName" = "8:ompi-full-setup" -"LanguageId" = "3:1033" -"CodePage" = "3:1252" -"UILanguageId" = "3:1033" -"SccProjectName" = "8:" -"SccLocalPath" = "8:" -"SccAuxPath" = "8:" -"SccProvider" = "8:" - "Hierarchy" - { - "Entry" - { - "MsmKey" = "8:_011FB559F727484F9B27B34E86288B07" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_019BF7C96A0940E480B9976F8C577AC1" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0212C8184ABD4392A7F4DC0D1D9802FF" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_027C3A7942974416AA2648C69E0F7D44" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_03C14C9AEEFA4FFA81DFAC866385E10F" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_049B7E77761A4EDFBA68F9A6E81672D7" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_063382227D544E6B8C1A340A53DB989F" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_08BEB188958A452C87FE3E8135CDA742" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_08F24456A2F8497BA41845B675D46ABE" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0AE594DC9100466C8EE1D2C1E96B19C2" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0C096F3E53354F919F3EE65525EA100E" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0C240ACD5D6F46FCB997D455444E3F8A" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_13F15B2F8E3F4E879B6D2F2E93BCCD97" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_194DA3139C35471A998F0C18D67B8B9F" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_208F3AE64BE84671BB8E702F80EDAC37" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2209E493952A46F0A8A6EAAE4C2BFE4A" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_24968E03685A4F3BBE2116E40FFBC135" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2606C3111B364DE0ACBC9EC6779E7064" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_26FFE764E1414F5D89029426927BF4E6" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_294DF6A58AA745E6827BCCC37CC351B0" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_297E8D4B048B4B2885777C8A28355C74" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2E66893996ED4C2F94150C1F77256552" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_347ADB9DBD2B49E48089226AFA4EC88A" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_40799F5142A7481EB960C2250602B0DA" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_432EBBEBA9984E849D3EFAAF10678967" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4456490EE51747B180CC90236593F688" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4B6EDBA818524C969E630EC85C3DE47E" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_51FA61BDDEDB425E81539B2DABE5425D" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_53D97F0308F14878A12C8B46663EFD45" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_55052FF04FFB437C8067CA3B6A962D29" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5853F91EA0654719852E517468E3A718" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_585E868643994699952BB4E7A4D33C45" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5CE61870F7794832B1D4069BE7377743" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5E61CC3243364F139BE130C85B9B0FC7" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_61F44175B5D34E73AB808FD62A288B02" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_6241B49FA8B240F68AEE37C544F0123C" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_64CC28E1259C45CA96F006FAE4401639" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_65480C194AA44E37B1762EA0CD896DF8" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_6713179159E245399D65AE46CABA6EAA" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_6A758923D98C42E2A04F6A1FFCDE37E1" - "OwnerKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_6E1D8F1E2C6C4CE4A7A9FB1C664A348E" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_6E7D92ED259B40A2AB253F9F7B7662AB" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7185558B4FF948B0B14228F8AADDED00" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7732B2F364354CA99E69C86C10ED336A" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_77CC33173F764AC2AB1CEC4F989FA924" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_792B4A869F124AACBAEF844C85A6D60A" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7B26E346BF3D4645B492285DCE328E34" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7DA1D2D12A5A49F98804BC3D6EE8684C" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7DA754C497454E77915C89F2C036C173" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_8EA24E0E81844BA8BED7F7ECCD5F6057" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_908FD7B9F63E4670A84B2BE819AD9F6C" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_95704672E55C40C7BEA08672D369EEDB" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_95B05EA91AF94265B4B010450D13945B" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_995FD32D85D746ED900857BFCB1FA077" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_9DF459096F0C40549727C9A61EE620CD" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_9F8BED82A4764B96A3CEA0E226A38E8D" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_A0789AA5DF0444F8A88ED8B598E36C86" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_AB1F74404A624747A726A08469B20B35" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_AEB3B0298CC347CCB6DFE59011A108CE" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_B7EA2EBBB6EC4262AF46F8E512389945" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_B822A667A9D44C609B3C643BD9CE2E7A" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_BA2C286FB9CE4C41AE9354034BD417A6" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_BA518CB1C5A24896BC9AA1DA0F77C22A" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_BD70942D457E45D1927CCFB2309A473D" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C1D39B269CB94873B4E57B4CCABA113F" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C1D8BD4DACF34836BFDE035C5B1B348C" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C1DB8776ED1D4D7D8DB4DC8CDC383855" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C5D96543D5C7499CAE46B3FAF4AF5477" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_027C3A7942974416AA2648C69E0F7D44" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_F8BB04F1C9724BE9B127022560C2B549" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_F6D58AB8A7864147B1BB1E3E14368EE9" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_EBB01E3AD4D84FDBA21A2CA28D24D886" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_E638256F1F4A4A279BF50A95D233C120" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_E55926DC2D2E429C9481C83AA7DD23B6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_E416BDFCFC1740D1B4C01AB8790309D5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_E07A60A1C0A54AA48972C1E64D7EDE48" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_DCE76F3376724FE882EED787BAC75406" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_DBE7EF35CBEC4D548B8AE36A12E3200D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_D76540B33C6342CAA4927B4721A8197A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_D35512689C38484F891E5E7D833C8B8B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_CC30BE541620401FAF55B46DC6DD991F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_C1D8BD4DACF34836BFDE035C5B1B348C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_AEB3B0298CC347CCB6DFE59011A108CE" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_AB1F74404A624747A726A08469B20B35" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_995FD32D85D746ED900857BFCB1FA077" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_95704672E55C40C7BEA08672D369EEDB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_8EA24E0E81844BA8BED7F7ECCD5F6057" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_7B26E346BF3D4645B492285DCE328E34" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_6E7D92ED259B40A2AB253F9F7B7662AB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_6E1D8F1E2C6C4CE4A7A9FB1C664A348E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_6713179159E245399D65AE46CABA6EAA" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_6241B49FA8B240F68AEE37C544F0123C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_5E61CC3243364F139BE130C85B9B0FC7" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_585E868643994699952BB4E7A4D33C45" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_5853F91EA0654719852E517468E3A718" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_55052FF04FFB437C8067CA3B6A962D29" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_4B6EDBA818524C969E630EC85C3DE47E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_4456490EE51747B180CC90236593F688" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_347ADB9DBD2B49E48089226AFA4EC88A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_2606C3111B364DE0ACBC9EC6779E7064" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_24968E03685A4F3BBE2116E40FFBC135" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_0C096F3E53354F919F3EE65525EA100E" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_08F24456A2F8497BA41845B675D46ABE" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_08BEB188958A452C87FE3E8135CDA742" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_063382227D544E6B8C1A340A53DB989F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C6BC316598AB45D8AEC894A6F7324AD6" - "OwnerKey" = "8:_03C14C9AEEFA4FFA81DFAC866385E10F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C80C386A99C8443FBC81DBA266C6486D" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_CC30BE541620401FAF55B46DC6DD991F" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_CD4D4FEB5D504619B09E9684C8148BB6" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D0CD2E3024D0465AB0814E0699CDA62B" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D32CE2E2AC704E42BD60D010C7C55F43" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D35512689C38484F891E5E7D833C8B8B" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D45339706D0248C1AC5CD53BF1F39989" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D515AFB37F1F48A2B4BAACB22E523A9A" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D68E59C3BB5A488EBB7276A5B58E82BE" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_D76540B33C6342CAA4927B4721A8197A" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_DBE7EF35CBEC4D548B8AE36A12E3200D" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_DCE76F3376724FE882EED787BAC75406" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_DEB80D044C884EB694680382151E4DB4" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E07A60A1C0A54AA48972C1E64D7EDE48" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E416BDFCFC1740D1B4C01AB8790309D5" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E55926DC2D2E429C9481C83AA7DD23B6" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E638256F1F4A4A279BF50A95D233C120" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E89C9234BB8D4922A072A884FB5FB909" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_EBB01E3AD4D84FDBA21A2CA28D24D886" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F4A0AE9A30124005B0D0EE3017554034" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F6D58AB8A7864147B1BB1E3E14368EE9" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F7C9E16F1F2749898835E3DCB33F3F70" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F8BB04F1C9724BE9B127022560C2B549" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_FAA81DD9CD7F4F959B873FE2B9EEC22F" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_FBDBE0D06E6B41F3B7D31FF2354762C3" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_FCDDA5B48CCF4397BFB566CCB196C0EA" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - } - "Configurations" - { - "Debug" - { - "DisplayName" = "8:Debug" - "IsDebugOnly" = "11:TRUE" - "IsReleaseOnly" = "11:FALSE" - "OutputFilename" = "8:Debug\\ompi-full.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" - { - "Enabled" = "11:TRUE" - "PromptEnabled" = "11:TRUE" - "PrerequisitesLocation" = "2:1" - "Url" = "8:" - "ComponentsUrl" = "8:" - "Items" - { - } - } - } - "Release" - { - "DisplayName" = "8:Release" - "IsDebugOnly" = "11:FALSE" - "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\deploy.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" - { - "Enabled" = "11:TRUE" - "PromptEnabled" = "11:TRUE" - "PrerequisitesLocation" = "2:1" - "Url" = "8:" - "ComponentsUrl" = "8:" - "Items" - { - } - } - } - } - "Deployable" - { - "CustomAction" - { - } - "DefaultFeature" - { - "Name" = "8:DefaultFeature" - "Title" = "8:" - "Description" = "8:" - } - "ExternalPersistence" - { - "LaunchCondition" - { - } - } - "File" - { - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_011FB559F727484F9B27B34E86288B07" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\tools\\orte-ps\\help-orte-ps.txt" - "TargetName" = "8:help-orte-ps.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_019BF7C96A0940E480B9976F8C577AC1" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\tools\\orterun\\orterun.1" - "TargetName" = "8:orterun.1" - "Tag" = "8:" - "Folder" = "8:_93409A57346242568FCCB5047639999E" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0212C8184ABD4392A7F4DC0D1D9802FF" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\tools\\wrappers\\mpif77-wrapper-data.txt" - "TargetName" = "8:mpif77-wrapper-data.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_049B7E77761A4EDFBA68F9A6E81672D7" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\mca\\ras\\slurm\\help-ras-slurm.txt" - "TargetName" = "8:help-ras-slurm.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0AE594DC9100466C8EE1D2C1E96B19C2" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\tools\\wrappers\\mpic++-wrapper-data.txt" - "TargetName" = "8:mpic++-wrapper-data.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0C240ACD5D6F46FCB997D455444E3F8A" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\mca\\btl\\base\\help-mpi-btl-base.txt" - "TargetName" = "8:help-mpi-btl-base.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_13F15B2F8E3F4E879B6D2F2E93BCCD97" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\runtime\\help-mpi-runtime.txt" - "TargetName" = "8:help-mpi-runtime.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_194DA3139C35471A998F0C18D67B8B9F" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\include\\mpif-config.h" - "TargetName" = "8:mpif-config.h" - "Tag" = "8:" - "Folder" = "8:_AAD2BBF403B44E7588CAAEE8731F2DA7" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_208F3AE64BE84671BB8E702F80EDAC37" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\tools\\console\\help-orteconsole.txt" - "TargetName" = "8:help-orteconsole.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2209E493952A46F0A8A6EAAE4C2BFE4A" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\mpi\\help-mpi-api.txt" - "TargetName" = "8:help-mpi-api.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_26FFE764E1414F5D89029426927BF4E6" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\mca\\btl\\openib\\help-mpi-btl-openib.txt" - "TargetName" = "8:help-mpi-btl-openib.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_294DF6A58AA745E6827BCCC37CC351B0" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\mca\\rds\\hostfile\\help-rds-hostfile.txt" - "TargetName" = "8:help-rds-hostfile.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_297E8D4B048B4B2885777C8A28355C74" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\mca\\pls\\base\\help-pls-base.txt" - "TargetName" = "8:help-pls-base.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2E66893996ED4C2F94150C1F77256552" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\include\\ompi_config.h" - "TargetName" = "8:ompi_config.h" - "Tag" = "8:" - "Folder" = "8:_AAD2BBF403B44E7588CAAEE8731F2DA7" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_40799F5142A7481EB960C2250602B0DA" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\mca\\btl\\mvapi\\help-mpi-btl-mvapi.txt" - "TargetName" = "8:help-mpi-btl-mvapi.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_432EBBEBA9984E849D3EFAAF10678967" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\mca\\odls\\process\\help-odls-process.txt" - "TargetName" = "8:help-odls-process.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_51FA61BDDEDB425E81539B2DABE5425D" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\tools\\wrappers\\mpicc-wrapper-data.txt" - "TargetName" = "8:mpicc-wrapper-data.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_53D97F0308F14878A12C8B46663EFD45" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\libopal.lib" - "TargetName" = "8:libopal.lib" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_5CE61870F7794832B1D4069BE7377743" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\mca\\rmaps\\round_robin\\help-orte-rmaps-rr.txt" - "TargetName" = "8:help-orte-rmaps-rr.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_61F44175B5D34E73AB808FD62A288B02" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\mca\\pls\\bproc\\help-pls-bproc.txt" - "TargetName" = "8:help-pls-bproc.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_64CC28E1259C45CA96F006FAE4401639" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\mca\\pls\\slurm\\help-pls-slurm.txt" - "TargetName" = "8:help-pls-slurm.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_65480C194AA44E37B1762EA0CD896DF8" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\mca\\coll\\base\\help-mca-coll-base.txt" - "TargetName" = "8:help-mca-coll-base.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7185558B4FF948B0B14228F8AADDED00" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\mca\\odls\\default\\help-odls-default.txt" - "TargetName" = "8:help-odls-default.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7732B2F364354CA99E69C86C10ED336A" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\tools\\wrappers\\ortec++-wrapper-data.txt" - "TargetName" = "8:ortec++-wrapper-data.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_77CC33173F764AC2AB1CEC4F989FA924" - { - "SourcePath" = "8:..\\..\\..\\..\\opal\\tools\\wrappers\\opalc++-wrapper-data.txt" - "TargetName" = "8:opalc++-wrapper-data.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_792B4A869F124AACBAEF844C85A6D60A" - { - "SourcePath" = "8:..\\..\\..\\..\\opal\\tools\\wrappers\\opalcc-wrapper-data.txt" - "TargetName" = "8:opalcc-wrapper-data.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7DA1D2D12A5A49F98804BC3D6EE8684C" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\tools\\orterun\\help-orterun.txt" - "TargetName" = "8:help-orterun.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7DA754C497454E77915C89F2C036C173" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\runtime\\help-orte-runtime.txt" - "TargetName" = "8:help-orte-runtime.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_908FD7B9F63E4670A84B2BE819AD9F6C" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\tools\\wrappers\\mpic++-wrapper-data.txt" - "TargetName" = "8:mpicxx-wrapper-data.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_95B05EA91AF94265B4B010450D13945B" - { - "SourcePath" = "8:..\\..\\..\\..\\opal\\include\\opal_config.h" - "TargetName" = "8:opal_config.h" - "Tag" = "8:" - "Folder" = "8:_AAD2BBF403B44E7588CAAEE8731F2DA7" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9DF459096F0C40549727C9A61EE620CD" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\tools\\orteprobe\\help-orteprobe.txt" - "TargetName" = "8:help-orteprobe.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9F8BED82A4764B96A3CEA0E226A38E8D" - { - "SourcePath" = "8:..\\..\\..\\..\\opal\\mca\\base\\help-mca-base.txt" - "TargetName" = "8:help-mca-base.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A0789AA5DF0444F8A88ED8B598E36C86" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\include\\mpif-common.h" - "TargetName" = "8:mpif-common.h" - "Tag" = "8:" - "Folder" = "8:_AAD2BBF403B44E7588CAAEE8731F2DA7" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B7EA2EBBB6EC4262AF46F8E512389945" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\mca\\pls\\tm\\help-pls-tm.txt" - "TargetName" = "8:help-pls-tm.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B822A667A9D44C609B3C643BD9CE2E7A" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\tools\\orte-ps\\orte-ps.1" - "TargetName" = "8:orte-ps.1" - "Tag" = "8:" - "Folder" = "8:_93409A57346242568FCCB5047639999E" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_BA2C286FB9CE4C41AE9354034BD417A6" - { - "SourcePath" = "8:..\\..\\..\\..\\opal\\include\\opal_config_bottom.h" - "TargetName" = "8:opal_config_bottom.h" - "Tag" = "8:" - "Folder" = "8:_AAD2BBF403B44E7588CAAEE8731F2DA7" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_BA518CB1C5A24896BC9AA1DA0F77C22A" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\tools\\wrappers\\mpif90-wrapper-data.txt" - "TargetName" = "8:mpif90-wrapper-data.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_BD70942D457E45D1927CCFB2309A473D" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\mca\\coll\\sm\\help-coll-sm.txt" - "TargetName" = "8:help-coll-sm.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C1D39B269CB94873B4E57B4CCABA113F" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\tools\\orte-clean\\help-orte-clean.txt" - "TargetName" = "8:help-orte-clean.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C1DB8776ED1D4D7D8DB4DC8CDC383855" - { - "SourcePath" = "8:..\\..\\..\\..\\opal\\runtime\\help-opal-runtime.txt" - "TargetName" = "8:help-opal-runtime.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C5D96543D5C7499CAE46B3FAF4AF5477" - { - "SourcePath" = "8:..\\..\\..\\..\\opal\\etc\\openmpi-mca-params.conf" - "TargetName" = "8:openmpi-mca-params.conf" - "Tag" = "8:" - "Folder" = "8:_896028701E414B5D9FF70557DA0D2F1F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C80C386A99C8443FBC81DBA266C6486D" - { - "SourcePath" = "8:..\\..\\..\\..\\opal\\mca\\base\\help-mca-param.txt" - "TargetName" = "8:help-mca-param.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CD4D4FEB5D504619B09E9684C8148BB6" - { - "SourcePath" = "8:..\\..\\..\\..\\opal\\tools\\wrappers\\help-opal-wrapper.txt" - "TargetName" = "8:help-opal-wrapper.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D0CD2E3024D0465AB0814E0699CDA62B" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\mca\\pls\\rsh\\help-pls-rsh.txt" - "TargetName" = "8:help-pls-rsh.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D32CE2E2AC704E42BD60D010C7C55F43" - { - "SourcePath" = "8:..\\..\\..\\..\\AUTHORS" - "TargetName" = "8:AUTHORS" - "Tag" = "8:" - "Folder" = "8:_9C02BA29889E4FDFAC44052CC691B30C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D45339706D0248C1AC5CD53BF1F39989" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\tools\\wrappers\\ortecc-wrapper-data.txt" - "TargetName" = "8:ortecc-wrapper-data.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D515AFB37F1F48A2B4BAACB22E523A9A" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\liborte.lib" - "TargetName" = "8:liborte.lib" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D68E59C3BB5A488EBB7276A5B58E82BE" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\libompi.lib" - "TargetName" = "8:libompi.lib" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DEB80D044C884EB694680382151E4DB4" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\tools\\orted\\help-orted.txt" - "TargetName" = "8:help-orted.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E89C9234BB8D4922A072A884FB5FB909" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\mca\\rmaps\\base\\help-orte-rmaps-base.txt" - "TargetName" = "8:help-orte-rmaps-base.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F4A0AE9A30124005B0D0EE3017554034" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\tools\\orte-clean\\orte-clean.1" - "TargetName" = "8:orte-clean.1" - "Tag" = "8:" - "Folder" = "8:_93409A57346242568FCCB5047639999E" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F7C9E16F1F2749898835E3DCB33F3F70" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\include\\mpi.h" - "TargetName" = "8:mpi.h" - "Tag" = "8:" - "Folder" = "8:_AAD2BBF403B44E7588CAAEE8731F2DA7" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FAA81DD9CD7F4F959B873FE2B9EEC22F" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\tools\\ompi_info\\help-ompi_info.txt" - "TargetName" = "8:help-ompi_info.txt" - "Tag" = "8:" - "Folder" = "8:_85268FA9A2004E61BEB36AAA2275BBDD" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FBDBE0D06E6B41F3B7D31FF2354762C3" - { - "SourcePath" = "8:..\\..\\..\\..\\LICENSE.rtf" - "TargetName" = "8:LICENSE.rtf" - "Tag" = "8:" - "Folder" = "8:_9C02BA29889E4FDFAC44052CC691B30C" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FCDDA5B48CCF4397BFB566CCB196C0EA" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\include\\mpif.h" - "TargetName" = "8:mpif.h" - "Tag" = "8:" - "Folder" = "8:_AAD2BBF403B44E7588CAAEE8731F2DA7" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - } - "FileType" - { - } - "Folder" - { - "{1525181F-901A-416C-8A58-119130FE478E}:_501F7CC92C284AD1B7B7A82AB2826AF8" - { - "Name" = "8:#1919" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:ProgramMenuFolder" - "Folders" - { - } - } - "{1525181F-901A-416C-8A58-119130FE478E}:_71BB7CA6EFFF4007AED4F1EE745FFF7F" - { - "Name" = "8:#1916" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:DesktopFolder" - "Folders" - { - } - } - "{3C67513D-01DD-4637-8A68-80971EB9504F}:_9C02BA29889E4FDFAC44052CC691B30C" - { - "DefaultLocation" = "8:[ProgramFilesFolder][ProductName]" - "Name" = "8:#1925" - "AlwaysCreate" = "11:TRUE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:TARGETDIR" - "Folders" - { - "{9EF0B969-E518-4E46-987F-47570745A589}:_634C26453AF2474E875022B3790C5D2F" - { - "Name" = "8:bin" - "AlwaysCreate" = "11:TRUE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_5DDBBFCA8B864CDC83A0AF2BCCEFDE2F" - "Folders" - { - } - } - "{9EF0B969-E518-4E46-987F-47570745A589}:_6D6869FF00A34553854BAA922F9196B3" - { - "Name" = "8:share" - "AlwaysCreate" = "11:TRUE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_3FB32DA03E4545ED8F40EF20CC423A99" - "Folders" - { - "{9EF0B969-E518-4E46-987F-47570745A589}:_85268FA9A2004E61BEB36AAA2275BBDD" - { - "Name" = "8:openmpi" - "AlwaysCreate" = "11:TRUE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_522FE75128234C1D9A99F350ADE87B1A" - "Folders" - { - } - } - } - } - "{9EF0B969-E518-4E46-987F-47570745A589}:_896028701E414B5D9FF70557DA0D2F1F" - { - "Name" = "8:etc" - "AlwaysCreate" = "11:TRUE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_9D2BA4F37A0A4B96A78118BA9C7155C1" - "Folders" - { - } - } - "{9EF0B969-E518-4E46-987F-47570745A589}:_A6C01107304240EEA15C196675242E4D" - { - "Name" = "8:lib" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_355CC14BAB954BE68C24A4E461D203F0" - "Folders" - { - "{9EF0B969-E518-4E46-987F-47570745A589}:_5FFAAF656AF247C0B9AE078AA5F1E161" - { - "Name" = "8:openmpi" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_ECAF5B8462664C408BE3B6A90EFDB59D" - "Folders" - { - } - } - } - } - "{9EF0B969-E518-4E46-987F-47570745A589}:_AAD2BBF403B44E7588CAAEE8731F2DA7" - { - "Name" = "8:include" - "AlwaysCreate" = "11:TRUE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_C36F4254605B4747B9C3F5DE012DCFDE" - "Folders" - { - } - } - "{9EF0B969-E518-4E46-987F-47570745A589}:_BDEC63195B9F4F3A9BEC867F904A008F" - { - "Name" = "8:man" - "AlwaysCreate" = "11:TRUE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_0D5670817D4043E28E72ABD6497575BE" - "Folders" - { - "{9EF0B969-E518-4E46-987F-47570745A589}:_93409A57346242568FCCB5047639999E" - { - "Name" = "8:man1" - "AlwaysCreate" = "11:TRUE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_80A5FDB0396543138DFDB944A9E30E94" - "Folders" - { - } - } - } - } - } - } - } - "LaunchCondition" - { - } - "Locator" - { - } - "MsiBootstrapper" - { - "LangId" = "3:1033" - } - "Product" - { - "Name" = "8:Microsoft Visual Studio" - "ProductName" = "8:Open MPI" - "ProductCode" = "8:{04C3FA57-E9D2-4831-B064-8F496D2D8785}" - "PackageCode" = "8:{DE89486A-1527-418B-9E78-04F081FF0241}" - "UpgradeCode" = "8:{8ED86140-0E2C-426B-8C5A-2ABFBD4ACACB}" - "RestartWWWService" = "11:FALSE" - "RemovePreviousVersions" = "11:TRUE" - "DetectNewerInstalledVersion" = "11:TRUE" - "InstallAllUsers" = "11:TRUE" - "ProductVersion" = "8:1.1.1" - "Manufacturer" = "8:Open MPI" - "ARPHELPTELEPHONE" = "8:" - "ARPHELPLINK" = "8:http://www.open-mpi.org" - "Title" = "8:Open MPI" - "Subject" = "8:A open source Win32 MPI implementation" - "ARPCONTACT" = "8:ICL / University of Tennessee" - "Keywords" = "8:MPI" - "ARPCOMMENTS" = "8:Open MPI" - "ARPURLINFOABOUT" = "8:http://www.open-mpi.org" - "ARPPRODUCTICON" = "8:" - "ARPIconIndex" = "3:0" - "SearchPath" = "8:" - "UseSystemSearchPath" = "11:TRUE" - "TargetPlatform" = "3:0" - "PreBuildEvent" = "8:" - "PostBuildEvent" = "8:" - "RunPostBuildEvent" = "3:0" - } - "Registry" - { - "HKLM" - { - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_69AA68650A064587A7BEDAD065645E1A" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_D6F2854EE46B481A8A705BF17C46BF7B" - { - "Name" = "8:Open MPI" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_007A8F772B514C36B085F92BCFA3DE32" - { - "Name" = "8:PATH" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "ValueTypes" = "3:2" - "Value" = "8:$InstallPath" - } - } - } - } - "Values" - { - } - } - } - } - "HKCU" - { - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_7C548435FD0346FE92C4554214869912" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_965B179041C54BFEB7AC3F9D2060230B" - { - "Name" = "8:Open MPI" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - } - } - } - "Values" - { - } - } - } - } - "HKCR" - { - "Keys" - { - } - } - "HKU" - { - "Keys" - { - } - } - "HKPU" - { - "Keys" - { - } - } - } - "Sequences" - { - } - "Shortcut" - { - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_26EA0005FBF8477889829FB7830B54C7" - { - "Name" = "8:opalc++" - "Arguments" = "8:" - "Description" = "8:" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_027C3A7942974416AA2648C69E0F7D44" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "WorkingFolder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Icon" = "8:" - "Feature" = "8:" - } - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_38278D95E6254E5EAA5EF1C341781746" - { - "Name" = "8:ortec++" - "Arguments" = "8:" - "Description" = "8:" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_027C3A7942974416AA2648C69E0F7D44" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "WorkingFolder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Icon" = "8:" - "Feature" = "8:" - } - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_42219C8AD97C482C8CF686C54ECB204E" - { - "Name" = "8:ortecc" - "Arguments" = "8:" - "Description" = "8:" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_027C3A7942974416AA2648C69E0F7D44" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "WorkingFolder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Icon" = "8:" - "Feature" = "8:" - } - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_5C0D8366777644F8B975C2E4E68551BF" - { - "Name" = "8:mpicxx" - "Arguments" = "8:" - "Description" = "8:Open MPI C++ compiler" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_027C3A7942974416AA2648C69E0F7D44" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "WorkingFolder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Icon" = "8:" - "Feature" = "8:" - } - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_5D8BB4A9F99241D0B71E5E98AC37E19E" - { - "Name" = "8:mpif90" - "Arguments" = "8:" - "Description" = "8:Open MPI F90 compiler" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_027C3A7942974416AA2648C69E0F7D44" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "WorkingFolder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Icon" = "8:" - "Feature" = "8:" - } - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_6008570376C7404B97E07578CF44B751" - { - "Name" = "8:mpicc" - "Arguments" = "8:" - "Description" = "8:Open MPI C compiler" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_027C3A7942974416AA2648C69E0F7D44" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "WorkingFolder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Icon" = "8:" - "Feature" = "8:" - } - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_81D50963E5974BB08D259153A8F8F4C4" - { - "Name" = "8:opalcc" - "Arguments" = "8:" - "Description" = "8:" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_027C3A7942974416AA2648C69E0F7D44" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "WorkingFolder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Icon" = "8:" - "Feature" = "8:" - } - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_8C9EC9EFB7B94F6D91FD12CC0C9AEC39" - { - "Name" = "8:mpif77" - "Arguments" = "8:" - "Description" = "8:Open MPI F77 compiler" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_027C3A7942974416AA2648C69E0F7D44" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "WorkingFolder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Icon" = "8:" - "Feature" = "8:" - } - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_B51999A209074ACCAC52300F949C7419" - { - "Name" = "8:mpic++" - "Arguments" = "8:" - "Description" = "8:Open MPI C++ compiler" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_027C3A7942974416AA2648C69E0F7D44" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "WorkingFolder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Icon" = "8:" - "Feature" = "8:" - } - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_DA59344BAEE74227BD4B9C2A08B65BD5" - { - "Name" = "8:mpirun" - "Arguments" = "8:" - "Description" = "8:Open MPI parallel execution launcher" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_5853F91EA0654719852E517468E3A718" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "WorkingFolder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Icon" = "8:" - "Feature" = "8:" - } - "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_FAF433A107CC4C56A5CC6E72E703860E" - { - "Name" = "8:mpiexec" - "Arguments" = "8:" - "Description" = "8:Open MPI parallel execution launcher" - "ShowCmd" = "3:1" - "IconIndex" = "3:0" - "Transitive" = "11:FALSE" - "Target" = "8:_5853F91EA0654719852E517468E3A718" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "WorkingFolder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Icon" = "8:" - "Feature" = "8:" - } - } - "UserInterface" - { - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_1DD8A56CE0D84EDBB872AD576441F90E" - { - "Name" = "8:#1900" - "Sequence" = "3:2" - "Attributes" = "3:1" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0C3B229F644145AB9621F624EEB33CE3" - { - "Sequence" = "3:100" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_EAACEB06523B49E98E41F75F69EEF3E7" - { - "Sequence" = "3:200" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_EB09F7EDD82F48A5956A50EBE66EC2A4" - { - "Sequence" = "3:300" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_3883CEBBF64E4CBC90D809D6815B83B2" - { - "Name" = "8:#1902" - "Sequence" = "3:1" - "Attributes" = "3:3" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B99F678A6C5B4AB983EFED438B1503C0" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "UpdateText" - { - "Name" = "8:UpdateText" - "DisplayName" = "8:#1058" - "Description" = "8:#1158" - "Type" = "3:15" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1258" - "DefaultValue" = "8:#1258" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_3AF9EBD625B74DD98C2E1F77A8904361" - { - "Name" = "8:#1902" - "Sequence" = "3:2" - "Attributes" = "3:3" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8E36880D1FFD4DC39A421DB3AA28C03A" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_4D80660BD81444A195DEFF97A399294E" - { - "Name" = "8:#1900" - "Sequence" = "3:1" - "Attributes" = "3:1" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_19D724E179F64706A37A590CE8EBCDC8" - { - "Sequence" = "3:400" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "InstallAllUsersVisible" - { - "Name" = "8:InstallAllUsersVisible" - "DisplayName" = "8:#1059" - "Description" = "8:#1159" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_220DF31755154D1A81AF7A6766308110" - { - "Sequence" = "3:300" - "DisplayName" = "8:License Agreement" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdLicenseDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "EulaText" - { - "Name" = "8:EulaText" - "DisplayName" = "8:#1008" - "Description" = "8:#1108" - "Type" = "3:6" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:2" - "Value" = "8:_FBDBE0D06E6B41F3B7D31FF2354762C3" - "UsePlugInResources" = "11:TRUE" - } - "Sunken" - { - "Name" = "8:Sunken" - "DisplayName" = "8:#1007" - "Description" = "8:#1107" - "Type" = "3:5" - "ContextData" = "8:4;True=4;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:4" - "DefaultValue" = "3:4" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_593797E759264F1089611C7CB8FD9942" - { - "Sequence" = "3:520" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_6B6810B301B242D1A85B00C422187F61" - { - "Sequence" = "3:200" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:0" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B8EFF17D3B5C42F78E8FA83B818B5E88" - { - "Sequence" = "3:100" - "DisplayName" = "8:Splash" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdSplashDlg.wid" - "Properties" - { - "SplashBitmap" - { - "Name" = "8:SplashBitmap" - "DisplayName" = "8:#1013" - "Description" = "8:#1113" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:0" - "Setting" = "3:0" - "UsePlugInResources" = "11:TRUE" - } - "Sunken" - { - "Name" = "8:Sunken" - "DisplayName" = "8:#1007" - "Description" = "8:#1107" - "Type" = "3:5" - "ContextData" = "8:4;True=4;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:4" - "DefaultValue" = "3:4" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E387F2C308744FA5984273F65790F8DA" - { - "Sequence" = "3:510" - "DisplayName" = "8:Checkboxes (A)" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdCustomCheck1Dlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "BannerText" - { - "Name" = "8:BannerText" - "DisplayName" = "8:#1014" - "Description" = "8:#1114" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:2" - "Value" = "8:Open MPI Installation Options" - "DefaultValue" = "8:#1214" - "UsePlugInResources" = "11:TRUE" - } - "BodyText" - { - "Name" = "8:BodyText" - "DisplayName" = "8:#1015" - "Description" = "8:#1115" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:2" - "Value" = "8:Select the type of installation you want" - "DefaultValue" = "8:#1215" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox1Label" - { - "Name" = "8:Checkbox1Label" - "DisplayName" = "8:#1034" - "Description" = "8:#1134" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:2" - "Value" = "8:Install Debug Symbols" - "DefaultValue" = "8:#1234" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox1Property" - { - "Name" = "8:Checkbox1Property" - "DisplayName" = "8:#1030" - "Description" = "8:#1130" - "Type" = "3:14" - "ContextData" = "8:Public" - "Attributes" = "3:2" - "Setting" = "3:2" - "Value" = "8:SHOULDINSTALLDEBUGSYMBOLS" - "DefaultValue" = "8:CHECKBOXA1" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox1Value" - { - "Name" = "8:Checkbox1Value" - "DisplayName" = "8:#1038" - "Description" = "8:#1138" - "Type" = "3:2" - "ContextData" = "8:Unchecked=;Checked=1" - "Attributes" = "3:0" - "Setting" = "3:2" - "Value" = "8:1" - "DefaultValue" = "8:" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox1Visible" - { - "Name" = "8:Checkbox1Visible" - "DisplayName" = "8:#1026" - "Description" = "8:#1126" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox2Label" - { - "Name" = "8:Checkbox2Label" - "DisplayName" = "8:#1035" - "Description" = "8:#1135" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1235" - "DefaultValue" = "8:#1235" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox2Property" - { - "Name" = "8:Checkbox2Property" - "DisplayName" = "8:#1031" - "Description" = "8:#1131" - "Type" = "3:14" - "ContextData" = "8:Public" - "Attributes" = "3:2" - "Setting" = "3:2" - "Value" = "8:CHECKBOXA2" - "DefaultValue" = "8:CHECKBOXA2" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox2Value" - { - "Name" = "8:Checkbox2Value" - "DisplayName" = "8:#1039" - "Description" = "8:#1139" - "Type" = "3:2" - "ContextData" = "8:Unchecked=;Checked=1" - "Attributes" = "3:0" - "Setting" = "3:2" - "Value" = "8:" - "DefaultValue" = "8:" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox2Visible" - { - "Name" = "8:Checkbox2Visible" - "DisplayName" = "8:#1027" - "Description" = "8:#1127" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox3Label" - { - "Name" = "8:Checkbox3Label" - "DisplayName" = "8:#1036" - "Description" = "8:#1136" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1236" - "DefaultValue" = "8:#1236" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox3Property" - { - "Name" = "8:Checkbox3Property" - "DisplayName" = "8:#1032" - "Description" = "8:#1132" - "Type" = "3:14" - "ContextData" = "8:Public" - "Attributes" = "3:2" - "Setting" = "3:2" - "Value" = "8:CHECKBOXA3" - "DefaultValue" = "8:CHECKBOXA3" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox3Value" - { - "Name" = "8:Checkbox3Value" - "DisplayName" = "8:#1040" - "Description" = "8:#1140" - "Type" = "3:2" - "ContextData" = "8:Unchecked=;Checked=1" - "Attributes" = "3:0" - "Setting" = "3:2" - "Value" = "8:" - "DefaultValue" = "8:" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox3Visible" - { - "Name" = "8:Checkbox3Visible" - "DisplayName" = "8:#1028" - "Description" = "8:#1128" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox4Label" - { - "Name" = "8:Checkbox4Label" - "DisplayName" = "8:#1037" - "Description" = "8:#1137" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1237" - "DefaultValue" = "8:#1237" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox4Property" - { - "Name" = "8:Checkbox4Property" - "DisplayName" = "8:#1033" - "Description" = "8:#1133" - "Type" = "3:14" - "ContextData" = "8:Public" - "Attributes" = "3:2" - "Setting" = "3:2" - "Value" = "8:CHECKBOXA4" - "DefaultValue" = "8:CHECKBOXA4" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox4Value" - { - "Name" = "8:Checkbox4Value" - "DisplayName" = "8:#1041" - "Description" = "8:#1141" - "Type" = "3:2" - "ContextData" = "8:Unchecked=;Checked=1" - "Attributes" = "3:0" - "Setting" = "3:2" - "Value" = "8:" - "DefaultValue" = "8:" - "UsePlugInResources" = "11:TRUE" - } - "Checkbox4Visible" - { - "Name" = "8:Checkbox4Visible" - "DisplayName" = "8:#1029" - "Description" = "8:#1129" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_7A3AE8361A6E49AABC8DEA0DF8A65103" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdBasicDialogs.wim" - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_8FFBB81FBAF947069B95416CB75D310E" - { - "Name" = "8:#1901" - "Sequence" = "3:2" - "Attributes" = "3:2" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D7084D54C2934A25A03A704621667F07" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_9C47397712B64552814A9A381CD5DE3B" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdUserInterface.wim" - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F650A5FCB02B4D02B86925E9080E453A" - { - "Name" = "8:#1901" - "Sequence" = "3:1" - "Attributes" = "3:2" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_5D90911E4A7E4D21A4177BFC9C857010" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - } - "MergeModule" - { - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_6A758923D98C42E2A04F6A1FFCDE37E1" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:policy_8_0_microsoft_vc80_debugcrt_x86_x64.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_C6BC316598AB45D8AEC894A6F7324AD6" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:Microsoft_VC80_DebugCRT_x86_x64.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - } - "ProjectOutput" - { - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_027C3A7942974416AA2648C69E0F7D44" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\opal_wrapper.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{9329769F-C455-4FAB-9BAF-6FAA16A5C748}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_02C6CE6E6E5A4C02BE60D7C16C03994B" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{A048413B-F23E-4085-9C52-45AC97C86E81}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_03C14C9AEEFA4FFA81DFAC866385E10F" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\console.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{A2D7A540-9A9A-4922-B685-2CBDE6EF8CA0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_03F4400477EA4BE688844688216F8D6A" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{EA8FD708-0EBD-409C-892F-61D35F93C2B0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_063382227D544E6B8C1A340A53DB989F" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_iof_proxy.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{3BEE89E2-5D77-46F5-B977-DB73E9E900E5}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_06759A36DB4D4B159402579E745487DA" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:ShouldInstallDebugSymbols" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{3B5FBFCF-A778-446D-9682-C8D1EF178101}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_08BEB188958A452C87FE3E8135CDA742" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\libompi.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{689BA431-A964-430C-B68C-75FD1F9D0C94}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_08F24456A2F8497BA41845B675D46ABE" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_oob_tcp.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{100F795D-A425-4A56-B0C7-F1E5A2C2A221}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0C096F3E53354F919F3EE65525EA100E" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_ns_replica.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{A048413B-F23E-4085-9C52-45AC97C86E81}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0D416054C91A4B668F2D261949217E9A" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{689BA431-A964-430C-B68C-75FD1F9D0C94}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_125E5CE419A444D8B6CB005F89EB3CBD" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{7FBD833E-8B0C-4165-90F5-90C9DEE9F078}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_1591B6B7A35B48D8997A2EF7BD68EBA6" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{190282AA-8A13-4F2F-B49C-D759EB8CB62E}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_179404F10F514CDA8C35E04809FA2369" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{20942679-774F-44FB-BD20-4C7C2FCCB595}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_24968E03685A4F3BBE2116E40FFBC135" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\libopal.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{190282AA-8A13-4F2F-B49C-D759EB8CB62E}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2606C3111B364DE0ACBC9EC6779E7064" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_gpr_null.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{E5C70D31-997C-4484-BE5C-D91DCA247840}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_347ADB9DBD2B49E48089226AFA4EC88A" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\orte-clean.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{8D11133A-EA1C-419A-B38E-2BE90C517374}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3CB912FBF88B4DF889B3F485629C386A" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:LocalizedResourceDlls" - "OutputProjectGuid" = "8:{EBE41123-A031-4864-B332-72349C2BF787}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3CC844E47B7D43A3BFDF9B3108AE6084" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:ShouldInstallDebugSymbols" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{FCAA3256-6255-43F5-99AC-057C7ED1A296}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3FEDBC106FED45E6AC4EBA2AA3617CB0" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{EBE41123-A031-4864-B332-72349C2BF787}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_42FE6432193C4E80AF65C96617785F61" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{0F030F96-FAED-463B-B820-C00FF290E674}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_431A6BD643E04288B58C78000CC07AD2" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{689BA431-A964-430C-B68C-75FD1F9D0C94}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4456490EE51747B180CC90236593F688" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\orted.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{FCAA3256-6255-43F5-99AC-057C7ED1A296}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4B6EDBA818524C969E630EC85C3DE47E" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_sds_env.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{D3C515F9-81A8-47C0-9FF7-976E3E174DD0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4D9615E5F832440D8928F62B94984708" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{6E45B579-0D65-4C1F-AE83-962B9BF3F519}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_5196366C1673459B9DE7B639BDDB93EA" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{C1839F06-4C70-43AB-8F36-17B7900D0C4D}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_51AE65FEB6E94005B03332512F5EF82D" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{E5C70D31-997C-4484-BE5C-D91DCA247840}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_55052FF04FFB437C8067CA3B6A962D29" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_ns_proxy.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{83001768-BBE5-4927-9CF2-FC74AAF2E106}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_5853F91EA0654719852E517468E3A718" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\orterun.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{61B96D3D-6FA7-47D5-B8C6-0955081EBB85}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_585E868643994699952BB4E7A4D33C45" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_sds_seed.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{1508DEAC-5DE6-4EE9-B23C-B0A2263C1750}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_5E61CC3243364F139BE130C85B9B0FC7" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_rmaps_round_robin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{B147EF18-7D29-4BF1-9096-FD2981262A1A}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_6241B49FA8B240F68AEE37C544F0123C" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_rml_oob.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{E0818023-1824-4C35-BB6F-DDFE0516BEFA}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_66C6D01BCDF24B50BACAAFB6FF76E9C9" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{B147EF18-7D29-4BF1-9096-FD2981262A1A}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_6713179159E245399D65AE46CABA6EAA" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_gpr_replica.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{6E45B579-0D65-4C1F-AE83-962B9BF3F519}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_6E1D8F1E2C6C4CE4A7A9FB1C664A348E" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\libopal.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{190282AA-8A13-4F2F-B49C-D759EB8CB62E}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_6E7D92ED259B40A2AB253F9F7B7662AB" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_iof_svc.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{C346DD14-9B35-48DB-981E-945E918264CD}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_771C4EB5DBAC4F9C8B5898E5A6C4207C" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{58028003-2302-4E78-B4ED-213333043087}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_7B26E346BF3D4645B492285DCE328E34" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\orte-ps.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{3B5FBFCF-A778-446D-9682-C8D1EF178101}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_7FAE7A1ED736478081D73A77E5F32585" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{3BEE89E2-5D77-46F5-B977-DB73E9E900E5}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_808901D5155545CD9166249A5E375DE9" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:LocalizedResourceDlls" - "OutputProjectGuid" = "8:{689BA431-A964-430C-B68C-75FD1F9D0C94}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_851F181DB5A744CE8B947439A2F995F0" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{190282AA-8A13-4F2F-B49C-D759EB8CB62E}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_8C7D01AD1DA544C8994336E87AB5C250" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:ShouldInstallDebugSymbols" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{A2D7A540-9A9A-4922-B685-2CBDE6EF8CA0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_8EA24E0E81844BA8BED7F7ECCD5F6057" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_ras_localhost.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{EA8FD708-0EBD-409C-892F-61D35F93C2B0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_924ED69F054D47908172000617066C79" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{C346DD14-9B35-48DB-981E-945E918264CD}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_95704672E55C40C7BEA08672D369EEDB" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_sds_singleton.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{CF6A8FBE-7E51-4AB5-904E-F1D8F8B2B090}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_995FD32D85D746ED900857BFCB1FA077" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_odls_process.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{58028003-2302-4E78-B4ED-213333043087}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A18D001BC07B4E78A6D1C6C47B69B0AD" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:ShouldInstallDebugSymbols" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{8D11133A-EA1C-419A-B38E-2BE90C517374}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A7B9E53DAA994CF9B0DA366901BE6A23" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:LocalizedResourceDlls" - "OutputProjectGuid" = "8:{190282AA-8A13-4F2F-B49C-D759EB8CB62E}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_AB1F74404A624747A726A08469B20B35" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\ompi_info.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{7086D847-BC17-4730-8082-89145563D95F}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_AE8E1577E29145C7BB326219385D3491" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{CF6A8FBE-7E51-4AB5-904E-F1D8F8B2B090}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_AEB3B0298CC347CCB6DFE59011A108CE" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_gpr_proxy.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{E65A8856-E966-4439-88C8-B96158753BE3}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C1D8BD4DACF34836BFDE035C5B1B348C" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_iof_null.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{0F030F96-FAED-463B-B820-C00FF290E674}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C6155158688D406680928BC68D859F76" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:ShouldInstallDebugSymbols" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{9329769F-C455-4FAB-9BAF-6FAA16A5C748}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C9C9775870D149F08DA898B9BFF6BB76" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{A2081600-CDBB-4D64-861D-50AB224C7283}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_CBFB817392C844C2B8257EE7FFFD5BC0" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{1D70B48B-7A30-411F-9DE0-752237A338BC}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_CC30BE541620401FAF55B46DC6DD991F" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_ras_dash_host.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{20942679-774F-44FB-BD20-4C7C2FCCB595}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_CF25BBDDFF1A41A6849575C75207DC5B" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{020F9836-63E1-4950-AC47-29E287C35BF1}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D35512689C38484F891E5E7D833C8B8B" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_rds_resfile.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{1D70B48B-7A30-411F-9DE0-752237A338BC}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D6B318209709487987A26D2BD827CAAE" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{83001768-BBE5-4927-9CF2-FC74AAF2E106}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D76540B33C6342CAA4927B4721A8197A" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_rmgr_proxy.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{844A3F0D-D8F5-4A3E-BB75-A5D459FDC8DC}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D772351BD31542BE95A6C948CF88F1F0" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{844A3F0D-D8F5-4A3E-BB75-A5D459FDC8DC}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D83F02B4B79A4DF380FAC0070ADD5A23" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{D3C515F9-81A8-47C0-9FF7-976E3E174DD0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_DBE7EF35CBEC4D548B8AE36A12E3200D" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\liborte.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{EBE41123-A031-4864-B332-72349C2BF787}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_DCE76F3376724FE882EED787BAC75406" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\orteprobe.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{DDB662AB-BAF6-4E22-BB7C-4CA9990717D4}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_DE6A3BF7FEC74D7080E7A3924318F4BA" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:ShouldInstallDebugSymbols" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{61B96D3D-6FA7-47D5-B8C6-0955081EBB85}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_E07A60A1C0A54AA48972C1E64D7EDE48" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_rmgr_urm.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{A2081600-CDBB-4D64-861D-50AB224C7283}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_E416BDFCFC1740D1B4C01AB8790309D5" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\liborte.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{EBE41123-A031-4864-B332-72349C2BF787}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_E55926DC2D2E429C9481C83AA7DD23B6" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_rds_hostfile.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{C1839F06-4C70-43AB-8F36-17B7900D0C4D}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_E638256F1F4A4A279BF50A95D233C120" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_sds_pipe.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{7FBD833E-8B0C-4165-90F5-90C9DEE9F078}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_E6F00A4686FA4EE9B79EF5A2BA58A2E1" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{E65A8856-E966-4439-88C8-B96158753BE3}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_EA8C097D45984E76AD13575F0C12BAA0" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:ShouldInstallDebugSymbols" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{7086D847-BC17-4730-8082-89145563D95F}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_EBB01E3AD4D84FDBA21A2CA28D24D886" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_maffinity_first_use.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{DA5A7A6B-AEAF-4535-8678-5AB585CA0437}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_EE3687A42CAF4A3287CFC79B1AA4CE75" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{100F795D-A425-4A56-B0C7-F1E5A2C2A221}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F025483184EF4894A448AA2E4098796E" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{DA5A7A6B-AEAF-4535-8678-5AB585CA0437}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F0FA951F0831499696D7E02E88E8A251" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{1508DEAC-5DE6-4EE9-B23C-B0A2263C1750}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F12E420D26584D7EB06FD345911D6455" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{EBE41123-A031-4864-B332-72349C2BF787}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F5A14910E8F946529045EA2DACA07C25" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_634C26453AF2474E875022B3790C5D2F" - "Condition" = "8:ShouldInstallDebugSymbols" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{DDB662AB-BAF6-4E22-BB7C-4CA9990717D4}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F6D58AB8A7864147B1BB1E3E14368EE9" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\libompi.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_A6C01107304240EEA15C196675242E4D" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{689BA431-A964-430C-B68C-75FD1F9D0C94}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F8BB04F1C9724BE9B127022560C2B549" - { - "SourcePath" = "8:..\\..\\..\\..\\x64\\debug\\mca_paffinity_windows.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{020F9836-63E1-4950-AC47-29E287C35BF1}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FE185610C7BE4D7E8AB1506A00F283BC" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_5FFAAF656AF247C0B9AE078AA5F1E161" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{E0818023-1824-4C35-BB6F-DDFE0516BEFA}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - } - "VJSharpPlugin" - { - } - } -} diff --git a/contrib/platform/win32/examples/CMakeLists.txt b/contrib/platform/win32/examples/CMakeLists.txt deleted file mode 100644 index d48690f2cf..0000000000 --- a/contrib/platform/win32/examples/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) 2007-2012 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - - -ADD_SUBDIRECTORY(chello) - - -FILE(READ ${OpenMPI_SOURCE_DIR}/contrib/platform/win32/examples/chello/chello.vcxproj EXAMPLE_SOLUTION) - -IF(CMAKE_CL_64) - STRING(REPLACE "Win32" "X64" EXAMPLE_SOLUTION "${EXAMPLE_SOLUTION}") - STRING(REPLACE "X86" "X64" EXAMPLE_SOLUTION "${EXAMPLE_SOLUTION}") -ENDIF(CMAKE_CL_64) - -FILE(WRITE ${OpenMPI_BINARY_DIR}/contrib/platform/win32/examples/chello/chello.vcxproj "${EXAMPLE_SOLUTION}") - -INSTALL(FILES ${OpenMPI_SOURCE_DIR}/contrib/platform/win32/examples/chello/chello.c - ${OpenMPI_BINARY_DIR}/contrib/platform/win32/examples/chello/chello.vcxproj - DESTINATION share/examples) diff --git a/contrib/platform/win32/examples/chello/CMakeLists.txt b/contrib/platform/win32/examples/chello/CMakeLists.txt deleted file mode 100644 index 57584bec4f..0000000000 --- a/contrib/platform/win32/examples/chello/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (c) 2007-2012 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -#PROJECT(CHELLO C CXX) - -SET(CHELLO_FILES - chello.c -) - -ADD_EXECUTABLE (chello ${CHELLO_FILES}) - -TARGET_LINK_LIBRARIES (chello libmpi libopen-rte libopen-pal Ws2_32.lib shlwapi.lib) \ No newline at end of file diff --git a/contrib/platform/win32/examples/chello/chello.c b/contrib/platform/win32/examples/chello/chello.c deleted file mode 100644 index 6f2dc8e637..0000000000 --- a/contrib/platform/win32/examples/chello/chello.c +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- C -*- - * - * 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$ - * - * The most basic of MPI applications - */ - -#include -#include - -int -main(int argc, char* argv[]) -{ - MPI_Init(&argc, &argv); - - printf("Hello, World\n"); - - MPI_Finalize(); - - return 0; -} diff --git a/contrib/platform/win32/examples/chello/chello.vcxproj b/contrib/platform/win32/examples/chello/chello.vcxproj deleted file mode 100644 index 3f8cc496af..0000000000 --- a/contrib/platform/win32/examples/chello/chello.vcxproj +++ /dev/null @@ -1,261 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - MinSizeRel - Win32 - - - RelWithDebInfo - Win32 - - - - {2D02214A-D960-4FED-95AA-A30F7784A0E3} - Win32Proj - Win32 - chello - - - - Application - false - MultiByte - - - Application - false - MultiByte - - - Application - false - MultiByte - - - Application - false - MultiByte - - - - - - - - - - <_ProjectFileVersion>10.0.20506.1 - chello.dir\Debug\ - chello - .exe - true - true - chello.dir\Release\ - chello - .exe - false - true - chello.dir\MinSizeRel\ - chello - .exe - false - true - chello.dir\RelWithDebInfo\ - chello - .exe - true - true - - - - /Zm1000 %(AdditionalOptions) - ..\..\include - EnableFastChecks - CompileAsC - ProgramDatabase - - - Disabled - Disabled - MultiThreadedDebugDLL - Level3 - WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR="Debug";%(PreprocessorDefinitions) - Debug - $(IntDir) - - - WIN32;_WINDOWS;_DEBUG;CMAKE_INTDIR=\"Debug\";%(PreprocessorDefinitions) - ..\..\include - - - ..\..\include - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - /machine:X86 /debug %(AdditionalOptions) - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;..\..\lib\libmpi.lib;..\..\lib\libopen-pal.lib;..\..\lib\libopen-rte.lib - - - true - true - 10000000 - Console - - - - - false - - - - - /Zm1000 %(AdditionalOptions) - ..\..\include - CompileAsC - - - AnySuitable - MaxSpeed - MultiThreadedDLL - Level3 - - - WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR="Release";%(PreprocessorDefinitions) - Release - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"Release\";%(PreprocessorDefinitions) - ..\..\include - - - ..\..\include - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - /machine:X86 %(AdditionalOptions) - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;..\..\lib\libmpi.lib;..\..\lib\libopen-pal.lib;..\..\lib\libopen-rte.lib - - - false - 10000000 - Console - - - - - false - - - - - /Zm1000 %(AdditionalOptions) - ..\..\include - CompileAsC - - - OnlyExplicitInline - MinSpace - MultiThreadedDLL - Level3 - - - WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR="MinSizeRel";%(PreprocessorDefinitions) - MinSizeRel - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"MinSizeRel\";%(PreprocessorDefinitions) - ..\..\include - - - ..\..\include - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - /machine:X86 %(AdditionalOptions) - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;..\..\lib\libmpi.lib;..\..\lib\libopen-pal.lib;..\..\lib\libopen-rte.lib - - - false - 10000000 - Console - - - - - false - - - - - /Zm1000 %(AdditionalOptions) - ..\..\include - CompileAsC - ProgramDatabase - - - OnlyExplicitInline - MaxSpeed - MultiThreadedDLL - Level3 - WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR="RelWithDebInfo";%(PreprocessorDefinitions) - RelWithDebInfo - $(IntDir) - - - WIN32;_WINDOWS;NDEBUG;CMAKE_INTDIR=\"RelWithDebInfo\";%(PreprocessorDefinitions) - ..\..\include - - - ..\..\include - $(IntDir) - %(Filename).h - %(Filename).tlb - %(Filename)_i.c - %(Filename)_p.c - - - /machine:X86 /debug %(AdditionalOptions) - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;..\..\lib\libmpi.lib;..\..\lib\libopen-pal.lib;..\..\lib\libopen-rte.lib - - - true - true - 10000000 - Console - - - - - false - - - - - - - - - diff --git a/contrib/platform/win32/generate_windows_patch.sh b/contrib/platform/win32/generate_windows_patch.sh deleted file mode 100755 index c0c9acf21e..0000000000 --- a/contrib/platform/win32/generate_windows_patch.sh +++ /dev/null @@ -1,27 +0,0 @@ -#! /usr/bin/bash - -VERSION_FILES="opal/include/opal/version.h orte/include/orte/version.h ompi/include/ompi/version.h" -CONFIG_FILES="opal/include/opal_config.h orte/include/orte_config.h ompi/include/ompi_config.h" -MISC_FILES="opal/mca/installdirs/config/install_dirs.h contrib/platform/win32/generate_windows_patch.sh contrib/platform/win32/ompi_install.sh" -MPI_FILES="ompi/include/mpi.h ompi/include/mpif-common.h ompi/include/mpif.h" -STATIC_COMP_FILES=`find . -name static-components.h` - -ALL_FILES="${VERSION_FILES} ${CONFIG_FILES} ${MISC_FILES} ${MPI_FILES} ${STATIC_COMP_FILES}" - -OUTPUT="../ompi_patch`date +'%m%d%y'`" - -rm -f ${OUTPUT} - -echo Preparing SVN diffs -svn diff > ompi_patch - -echo "Preparing the tar file ${OUTPUT}.tar" -tar -c `svn status | grep ".vcproj$" | awk '{print $2}'` ompi_patch ompi-trunk.sln ${ALL_FILES} > ${OUTPUT}.tar - -echo "Compressing the tar file" -bzip2 -9 ${OUTPUT}.tar - -echo "Cleaning up ..." -rm -f ompi_patch - -echo "Done" diff --git a/contrib/platform/win32/hlrs-mtt-files/.mttrc b/contrib/platform/win32/hlrs-mtt-files/.mttrc deleted file mode 100644 index 83c737fc47..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/.mttrc +++ /dev/null @@ -1,60 +0,0 @@ -/bin/date -echo "Loading bashrc" -echo "Have fun!" -echo "" - -#echo "Loading .tcshrc\n\nHave a lot of fun\n" - - -alias ls='ls --color=auto' -alias la='ls --color=auto -a' -alias e='easyterm -i slsrbht -a /H/ads8260.fhb' -alias d='ls -F -l --full-time -G --color=auto' -alias cls='clear' -alias ll='ls -F -al -G' -alias h='history' -alias up='cd ..' - -alias xterm='\xterm -bg black -sl 50000 +tb -sk -si -rightbar -fg white -geometry 120x40 -e bash' - -#PS1="\u@\h:\w >" -#export PS1="\[\e[36;1m\]\u@\H> \[\e[0m\]" -export PS1="\[\e]2; \w\a\e[32;1m\]\[\e[36;1m\]\u@\H:\W>\[\e[0m\] " - -#set tperiod=120 -#alias periodic='echo "\a\n\n\nTime for a break\n\n"' -set rmstar -set autolist -set correct='cmd' -set histdup='prev' -set history=5000 -set savehist -set color -set listlinks -set nobeep -set autologout=0 - - -export DISPLAY=":0.0" -export TERM=cygwin -export LS_COLORS='no=00:fi=00:di=36;01:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=44;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.deb=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.mpg=01;37:*.avi=01;37:*.gl=01;37:*.dl=01;37:*.txt=01;37:*.s=00;35:*.h=01;33:*.c=00;33:*.cc=01;31:*.o=01;31:*~=00;40'; - -export TZ='CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00' - -export PATH=.:$HOME/bin:/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:$PATH - -##### run MTT ##### - -cd /cygdrive/d/tools/MTT-HLRS/mtt-files - -./run-hlrs-windows-trunk.sh - -#./run-hlrs-windows-v1.4.sh - -#./run-hlrs-windows-v1.5.sh - -./run-hlrs-windows-v1.6.sh - -#./run-hlrs-windows-v1.7.sh - -exit diff --git a/contrib/platform/win32/hlrs-mtt-files/.mttrc-local b/contrib/platform/win32/hlrs-mtt-files/.mttrc-local deleted file mode 100644 index bffc6f889a..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/.mttrc-local +++ /dev/null @@ -1,57 +0,0 @@ -/bin/date -echo "Loading bashrc" -echo "Have fun!" -echo "" - -#echo "Loading .tcshrc\n\nHave a lot of fun\n" - - -alias ls='ls --color=auto' -alias la='ls --color=auto -a' -alias e='easyterm -i slsrbht -a /H/ads8260.fhb' -alias d='ls -F -l --full-time -G --color=auto' -alias cls='clear' -alias ll='ls -F -al -G' -alias h='history' -alias up='cd ..' - -alias xterm='\xterm -bg black -sl 50000 +tb -sk -si -rightbar -fg white -geometry 120x40 -e bash' - -#PS1="\u@\h:\w >" -#export PS1="\[\e[36;1m\]\u@\H> \[\e[0m\]" -export PS1="\[\e]2; \w\a\e[32;1m\]\[\e[36;1m\]\u@\H:\W>\[\e[0m\] " - -#set tperiod=120 -#alias periodic='echo "\a\n\n\nTime for a break\n\n"' -set rmstar -set autolist -set correct='cmd' -set histdup='prev' -set history=5000 -set savehist -set color -set listlinks -set nobeep -set autologout=0 - - -export DISPLAY=":0.0" -export TERM=cygwin -export LS_COLORS='no=00:fi=00:di=36;01:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=44;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.deb=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.mpg=01;37:*.avi=01;37:*.gl=01;37:*.dl=01;37:*.txt=01;37:*.s=00;35:*.h=01;33:*.c=00;33:*.cc=01;31:*.o=01;31:*~=00;40'; - -export TZ='CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00' - -export PATH=.:$HOME/bin:/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:$PATH - -##### run MTT ##### - -cd /cygdrive/c/Users/hpcfan/Documents/tools/MTT-HLRS/mtt-files - -./run-hlrs-windows-trunk-local.sh - -#./run-hlrs-windows-v1.4-local.sh - -#./run-hlrs-windows-v1.5-local.sh - - -exit diff --git a/contrib/platform/win32/hlrs-mtt-files/hlrs-windows-trunk-local.ini b/contrib/platform/win32/hlrs-mtt-files/hlrs-windows-trunk-local.ini deleted file mode 100644 index 4b26d70648..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/hlrs-windows-trunk-local.ini +++ /dev/null @@ -1,747 +0,0 @@ -# -# Copyright (c) 2006-2007 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2006-2007 Sun Microystems, Inc. All rights reserved. -# Copyright (c) 2008 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# - -# based on samples/ompi-core-template.ini - -#====================================================================== -# Overall configuration -#====================================================================== - -[MTT] - -# OMPI Core: if you are not running in a scheduled environment and you -# have a fixed hostfile for what nodes you'll be running on, fill in -# the absolute pathname to it here. If you do not have a hostfile, -# leave it empty. Example: -# hostfile = /home/me/mtt-runs/mtt-hostfile -# This file will be parsed and will automatically set a valid value -# for &env_max_np() (it'll count the number of lines in the hostfile, -# adding slots/cpu counts if it finds them). The "hostfile" value is -# ignored if you are running in a recognized scheduled environment. -# hostfile = - -# OMPI Core: if you would rather list the hosts individually on the -# mpirun command line, list hosts here delimited by whitespace (if you -# have a hostfile listed above, this value will be ignored!). Hosts -# can optionally be suffixed with ":num", where "num" is an integer -# indicating how many processes may be started on that machine (if not -# specified, ":1" is assumed). The sum of all of these values is used -# for &env_max_np() at run time. Example (4 uniprocessors): -# hostlist = node1 node2 node3 node4 -# Another example (4 2-way SMPs): -# hostlist = node1:2 node2:2 node3:2 node4:2 -# The "hostlist" value is ignored if you are running in a scheduled -# environment or if you have specified a hostfile. -# hostlist = - -# OMPI Core: if you are running in a scheduled environment and want to -# override the scheduler and set the maximum number of processes -# returned by &env_max_procs(), you can fill in an integer here. -# max_np = - -# OMPI Core: Output display preference; the default width at which MTT -# output will wrap. -textwrap = 76 - -# OMPI Core: After the timeout for a command has passed, wait this -# many additional seconds to drain all output, and then kill it with -# extreme prejiduce. -drain_timeout = 5 - -# OMPI Core: Whether this invocation of the client is a test of the -# client setup itself. Specifically, this value should be set to true -# (1) if you are testing your MTT client and/or INI file and do not -# want the results included in normal reporting in the MTT central -# results database. Results submitted in "trial" mode are not -# viewable (by default) on the central database, and are automatically -# deleted from the database after a short time period (e.g., a week). -# Setting this value to 1 is exactly equivalent to passing "--trial" -# on the MTT client command line. However, any value specified here -# in this INI file will override the "--trial" setting on the command -# line (i.e., if you set "trial = 0" here in the INI file, that will -# override and cancel the effect of "--trial" on the command line). -trial = 0 - -# OMPI Core: Set the scratch parameter here (if you do not want it to -# be automatically set to your current working directory). Setting -# this parameter accomplishes the same thing that the --scratch option -# does. -scratch = &getenv("OPENMPI_MTT_SCRATCH") - -# OMPI Core: Set local_username here if you would prefer to not have -# your local user ID in the MTT database -local_username = shiqing - -# OMPI Core: --force can be set here, instead of at the command line. -# Useful for a developer workspace in which it makes no sense to not -# use --force -# force = 1 - -# OMPI Core: Specify a list of sentinel files that MTT will regularly -# check for. If these files exist, MTT will exit more-or-less -# immediately (i.e., after the current test completes) and report all -# of its results. This is a graceful mechanism to make MTT stop right -# where it is but not lose any results. -# terminate_files = &getenv("HOME")/mtt-stop,&scratch_root()/mtt-stop - -# OMPI Core: Specify a default description string that is used in the -# absence of description strings in the MPI install, Test build, and -# Test run sections. The intent of this field is to record variable -# data that is outside the scope, but has effect on the software under -# test (e.g., firmware version of a NIC). If no description string is -# specified here and no description strings are specified below, the -# description data field is left empty when reported. -# description = NIC firmware: &system("get_nic_firmware_rev") - -# OMPI Core: Specify a logfile where you want all MTT output to be -# sent in addition to stdout / stderr. -logfile = &getenv("MTT_LOG_FILE") - -# OMPI Core: If you have additional .pm files for your own funclets, -# you can have a comma-delimited list of them here. Note that each -# .pm file *must* be a package within the MTT::Values::Functions -# namespace. For example, having a Cisco.pm file must include the -# line: -# -# package MTT::Values::Functions::Cisco; -# -# If this file contains a perl function named foo, you can invoke this -# functlet as &Cisco::foo(). Note that funclet files are loaded -# almost immediately, so you can use them even for other field values -# in the MTT section. -# funclet_files = /path/to/file1.pm, /path/to/file2.pm - -# OMPI Core: To ensure that MTT doesn't fill up your disk, you can -# tell MTT to stop when disk space gets too low. You can specify a -# raw number of bytes or a percentage of overall disk space. For -# example (default value is "5%"): -# -# min_disk_free = 5% # stop when there's less than 5% disk free -# min_disk_free = 500000 # stop when there's less than 500,000 bytes free - -# OMPI Core: When MTT detects a low-disk situation, it can wait a -# little while before reporting whatever results it has accumulated -# and exiting. The min_disk_free_wait field specifies a number of -# minutes to wait for there to be enough disk space to be free. If -# there is still not enough disk space at the end of that time, MTT -# will report accumulated results and quit. -# -# min_disk_free_wait = 60 - -#---------------------------------------------------------------------- - -[Lock] -# The only module available is the MTTLockServer, and requires running -# the mtt-lock-server executable somewhere. You can leave this -# section blank and there will be no locking. -#module = MTTLockServer -#mttlockserver_host = hostname where mtt-lock-server is running -#mttlockserver_port = integer port number of the mtt-lock-server - - - -#---------------------------------------------------------------------- -# -# Hopefully, this is being read in / set before the MPI install phase... -# Maybe this can be moved to a "generic" section, such as [MPI install] -# - -#openib = /opt/system/ofed/1.3 -with_openib = <NUL:" to cygwin.bat). - -run_mtt.bat and run_mtt-local.bat are the main batch file to start the test, one for submitting results to MTT server, one for run locally. - -.mttrc and .mttrc-local includes corresponding settings for cygwin and different tests. - -The .sh files are shell scripts that managing the open mpi versions and temp/output folders. - -The .ini files are the MTT config files. \ No newline at end of file diff --git a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-trunk-local.sh b/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-trunk-local.sh deleted file mode 100644 index a32cb6fa78..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-trunk-local.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - - -# -# This is REALLY important: The output of all commands -# is being parsed by MTT -- this should not be set to -# any other language, other than ENGLISH ,-] -# -unset LANG - - -# -# Of all the MTT-Phases, only the -# reporter-phase is run on the head-node (frbw), -# all the other ones should be run within a batch-job (hlrs-bwgrid.sh) -# - -MTT_DIR=/cygdrive/d/tools/MTT-HLRS/mtt-trunk -export MTT_DIR - -# -# need to find somewhere for logfiles -# currently set it to $MTT_DIR/log -if [ -d "log" ]; then - echo; -else - mkdir log; -fi - -MPI_VERSION=trunk - -MTT_TIME_STAMP=`date +%Y.%m.%d` -export MTT_TIME_STAMP - -MTT_SCRATCH_NAME=mttscratch-$MPI_VERSION-$MTT_TIME_STAMP-loc -mkdir /cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -OPENMPI_MTT_SCRATCH=/cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -export OPENMPI_MTT_SCRATCH - - -# this script should be run in the mtt-files folder -# so that it can find all the configure and test files -MTT_FILE_DIR=`pwd` -mkdir $MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP-loc -MTT_LOG_DIR=$MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP-loc -MTT_LOG_FILE=$MTT_LOG_DIR/full_log_$MPI_VERSION-$MTT_TIME_STAMP.txt -export MTT_LOG_FILE -export MTT_FILE_DIR - -# -# Start the Shell-Script -# -env | sort - - -$MTT_DIR/client/mtt --verbose --debug hlrs-windows-$MPI_VERSION-local.ini - -cp $OPENMPI_MTT_SCRATCH/*.txt $MTT_LOG_DIR/ -cp $OPENMPI_MTT_SCRATCH/*.html $MTT_LOG_DIR/ -rm -rf $OPENMPI_MTT_SCRATCH - diff --git a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-trunk.sh b/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-trunk.sh deleted file mode 100644 index f144705c62..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-trunk.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh - - -# -# This is REALLY important: The output of all commands -# is being parsed by MTT -- this should not be set to -# any other language, other than ENGLISH ,-] -# -unset LANG - - -# -# Of all the MTT-Phases, only the -# reporter-phase is run on the head-node (frbw), -# all the other ones should be run within a batch-job (hlrs-bwgrid.sh) -# - -MTT_DIR=/cygdrive/d/tools/MTT-HLRS/mtt-trunk -export MTT_DIR - -# -# need to find somewhere for logfiles -# currently set it to $MTT_DIR/log -if [ -d "log" ]; then - echo; -else - mkdir log; -fi - -MPI_VERSION=trunk - -MTT_TIME_STAMP=`date +%Y.%m.%d` -export MTT_TIME_STAMP - -MTT_SCRATCH_NAME=mttscratch-$MPI_VERSION-$MTT_TIME_STAMP -mkdir /cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -OPENMPI_MTT_SCRATCH=/cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -export OPENMPI_MTT_SCRATCH - - -# this script should be run in the mtt-files folder -# so that it can find all the configure and test files -MTT_FILE_DIR=`pwd` -mkdir $MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_DIR=$MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_FILE=$MTT_LOG_DIR/full_log_$MPI_VERSION-$MTT_TIME_STAMP.txt -export MTT_LOG_FILE -export MTT_FILE_DIR - -# -# Start the Shell-Script -# -env | sort - - -#need to disable the IPoIB adapter shortly, -#so that the connection to the MTT server can be established. -#e.g.: -# wmic path win32_networkadapter where index=14 call disable -# # run mpi-get and mpi-install phases -# $MTT_DIR/client/mtt --verbose --debug --mpi-phases hlrs-windows-$MPI_VERSION.ini -# # enable the IPoIB adapter, and then do the test-get,build,run phases -# wmic path win32_networkadapter where index=14 call enable -# $MTT_DIR/client/mtt --verbose --debug --test-phases hlrs-windows-$MPI_VERSION.ini -# # disable the IPoIB again, submit to the MTT server now. -# wmic path win32_networkadapter where index=14 call disable -# $MTT_DIR/client/mtt --verbose --debug --no-mpi-phases --no-test-phases hlrs-windows-$MPI_VERSION.ini -# -# - -$MTT_DIR/client/mtt --verbose --debug hlrs-windows-$MPI_VERSION.ini - -cp $OPENMPI_MTT_SCRATCH/*.txt $MTT_LOG_DIR/ -cp $OPENMPI_MTT_SCRATCH/*.html $MTT_LOG_DIR/ -rm -rf $OPENMPI_MTT_SCRATCH - diff --git a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.4-local.sh b/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.4-local.sh deleted file mode 100644 index a600cbd925..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.4-local.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - - -# -# This is REALLY important: The output of all commands -# is being parsed by MTT -- this should not be set to -# any other language, other than ENGLISH ,-] -# -unset LANG - - -# -# Of all the MTT-Phases, only the -# reporter-phase is run on the head-node (frbw), -# all the other ones should be run within a batch-job (hlrs-bwgrid.sh) -# - -MTT_DIR=/cygdrive/d/tools/MTT-HLRS/mtt-trunk -export MTT_DIR - -# -# need to find somewhere for logfiles -# currently set it to $MTT_DIR/log -if [ -d "log" ]; then - echo; -else - mkdir log; -fi - -MPI_VERSION=v1.4 - -MTT_TIME_STAMP=`date +%Y.%m.%d` -export MTT_TIME_STAMP - -MTT_SCRATCH_NAME=mttscratch-$MPI_VERSION-$MTT_TIME_STAMP-loc -mkdir /cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -OPENMPI_MTT_SCRATCH=/cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -export OPENMPI_MTT_SCRATCH - - -# this script should be run in the mtt-files folder -# so that it can find all the configure and test files -MTT_FILE_DIR=`pwd` -mkdir $MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP-loc -MTT_LOG_DIR=$MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP-loc -MTT_LOG_FILE=$MTT_LOG_DIR/full_log_$MPI_VERSION-$MTT_TIME_STAMP.txt -export MTT_LOG_FILE -export MTT_FILE_DIR - -# -# Start the Shell-Script -# -env | sort - - -$MTT_DIR/client/mtt --verbose --debug hlrs-windows-$MPI_VERSION-local.ini - -cp $OPENMPI_MTT_SCRATCH/*.txt $MTT_LOG_DIR/ -cp $OPENMPI_MTT_SCRATCH/*.html $MTT_LOG_DIR/ -rm -rf $OPENMPI_MTT_SCRATCH - diff --git a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.4.sh b/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.4.sh deleted file mode 100644 index 09b564b6f6..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.4.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - - -# -# This is REALLY important: The output of all commands -# is being parsed by MTT -- this should not be set to -# any other language, other than ENGLISH ,-] -# -unset LANG - - -# -# Of all the MTT-Phases, only the -# reporter-phase is run on the head-node (frbw), -# all the other ones should be run within a batch-job (hlrs-bwgrid.sh) -# - -MTT_DIR=/cygdrive/d/tools/MTT-HLRS/mtt-trunk -export MTT_DIR - -# -# need to find somewhere for logfiles -# currently set it to $MTT_DIR/log -if [ -d "log" ]; then - echo; -else - mkdir log; -fi - -MPI_VERSION=v1.4 - -MTT_TIME_STAMP=`date +%Y.%m.%d` -export MTT_TIME_STAMP - -MTT_SCRATCH_NAME=mttscratch-$MPI_VERSION-$MTT_TIME_STAMP -mkdir /cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -OPENMPI_MTT_SCRATCH=/cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -export OPENMPI_MTT_SCRATCH - - -# this script should be run in the mtt-files folder -# so that it can find all the configure and test files -MTT_FILE_DIR=`pwd` -mkdir $MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_DIR=$MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_FILE=$MTT_LOG_DIR/full_log_$MPI_VERSION-$MTT_TIME_STAMP.txt -export MTT_LOG_FILE -export MTT_FILE_DIR - -# -# Start the Shell-Script -# -env | sort - - -$MTT_DIR/client/mtt --verbose --debug hlrs-windows-$MPI_VERSION.ini - -cp $OPENMPI_MTT_SCRATCH/*.txt $MTT_LOG_DIR/ -cp $OPENMPI_MTT_SCRATCH/*.html $MTT_LOG_DIR/ -rm -rf $OPENMPI_MTT_SCRATCH - diff --git a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.5-local.sh b/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.5-local.sh deleted file mode 100644 index 97d6794dc0..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.5-local.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - - -# -# This is REALLY important: The output of all commands -# is being parsed by MTT -- this should not be set to -# any other language, other than ENGLISH ,-] -# -unset LANG - - -# -# Of all the MTT-Phases, only the -# reporter-phase is run on the head-node (frbw), -# all the other ones should be run within a batch-job (hlrs-bwgrid.sh) -# - -MTT_DIR=/cygdrive/d/tools/MTT-HLRS/mtt-trunk -export MTT_DIR - -# -# need to find somewhere for logfiles -# currently set it to $MTT_DIR/log -if [ -d "log" ]; then - echo; -else - mkdir log; -fi - -MPI_VERSION=v1.5 - -MTT_TIME_STAMP=`date +%Y.%m.%d` -export MTT_TIME_STAMP - -MTT_SCRATCH_NAME=mttscratch-$MPI_VERSION-$MTT_TIME_STAMP-loc -mkdir /cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -OPENMPI_MTT_SCRATCH=/cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -export OPENMPI_MTT_SCRATCH - - -# this script should be run in the mtt-files folder -# so that it can find all the configure and test files -MTT_FILE_DIR=`pwd` -mkdir $MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP-loc -MTT_LOG_DIR=$MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP-loc -MTT_LOG_FILE=$MTT_LOG_DIR/full_log_$MPI_VERSION-$MTT_TIME_STAMP.txt -export MTT_LOG_FILE -export MTT_FILE_DIR - -# -# Start the Shell-Script -# -env | sort - - -$MTT_DIR/client/mtt --verbose --debug hlrs-windows-$MPI_VERSION-local.ini - -cp $OPENMPI_MTT_SCRATCH/*.txt $MTT_LOG_DIR/ -cp $OPENMPI_MTT_SCRATCH/*.html $MTT_LOG_DIR/ -rm -rf $OPENMPI_MTT_SCRATCH - diff --git a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.5.sh b/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.5.sh deleted file mode 100644 index b9952c1550..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.5.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - - -# -# This is REALLY important: The output of all commands -# is being parsed by MTT -- this should not be set to -# any other language, other than ENGLISH ,-] -# -unset LANG - - -# -# Of all the MTT-Phases, only the -# reporter-phase is run on the head-node (frbw), -# all the other ones should be run within a batch-job (hlrs-bwgrid.sh) -# - -MTT_DIR=/cygdrive/d/tools/MTT-HLRS/mtt-trunk -export MTT_DIR - -# -# need to find somewhere for logfiles -# currently set it to $MTT_DIR/log -if [ -d "log" ]; then - echo; -else - mkdir log; -fi - -MPI_VERSION=v1.5 - -MTT_TIME_STAMP=`date +%Y.%m.%d` -export MTT_TIME_STAMP - -MTT_SCRATCH_NAME=mttscratch-$MPI_VERSION-$MTT_TIME_STAMP -mkdir /cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -OPENMPI_MTT_SCRATCH=/cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -export OPENMPI_MTT_SCRATCH - - -# this script should be run in the mtt-files folder -# so that it can find all the configure and test files -MTT_FILE_DIR=`pwd` -mkdir $MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_DIR=$MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_FILE=$MTT_LOG_DIR/full_log_$MPI_VERSION-$MTT_TIME_STAMP.txt -export MTT_LOG_FILE -export MTT_FILE_DIR - -# -# Start the Shell-Script -# -env | sort - - -$MTT_DIR/client/mtt --verbose --debug hlrs-windows-$MPI_VERSION.ini - -cp $OPENMPI_MTT_SCRATCH/*.txt $MTT_LOG_DIR/ -cp $OPENMPI_MTT_SCRATCH/*.html $MTT_LOG_DIR/ -rm -rf $OPENMPI_MTT_SCRATCH - diff --git a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.6.sh b/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.6.sh deleted file mode 100644 index aa05f28ec2..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.6.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - - -# -# This is REALLY important: The output of all commands -# is being parsed by MTT -- this should not be set to -# any other language, other than ENGLISH ,-] -# -unset LANG - - -# -# Of all the MTT-Phases, only the -# reporter-phase is run on the head-node (frbw), -# all the other ones should be run within a batch-job (hlrs-bwgrid.sh) -# - -MTT_DIR=/cygdrive/d/tools/MTT-HLRS/mtt-trunk -export MTT_DIR - -# -# need to find somewhere for logfiles -# currently set it to $MTT_DIR/log -if [ -d "log" ]; then - echo; -else - mkdir log; -fi - -MPI_VERSION=v1.6 - -MTT_TIME_STAMP=`date +%Y.%m.%d` -export MTT_TIME_STAMP - -MTT_SCRATCH_NAME=mttscratch-$MPI_VERSION-$MTT_TIME_STAMP -mkdir /cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -OPENMPI_MTT_SCRATCH=/cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -export OPENMPI_MTT_SCRATCH - - -# this script should be run in the mtt-files folder -# so that it can find all the configure and test files -MTT_FILE_DIR=`pwd` -mkdir $MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_DIR=$MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_FILE=$MTT_LOG_DIR/full_log_$MPI_VERSION-$MTT_TIME_STAMP.txt -export MTT_LOG_FILE -export MTT_FILE_DIR - -# -# Start the Shell-Script -# -env | sort - - -$MTT_DIR/client/mtt --verbose --debug hlrs-windows-$MPI_VERSION.ini - -cp $OPENMPI_MTT_SCRATCH/*.txt $MTT_LOG_DIR/ -cp $OPENMPI_MTT_SCRATCH/*.html $MTT_LOG_DIR/ -rm -rf $OPENMPI_MTT_SCRATCH - diff --git a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.7.sh b/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.7.sh deleted file mode 100644 index 2cf805f862..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/run-hlrs-windows-v1.7.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - - -# -# This is REALLY important: The output of all commands -# is being parsed by MTT -- this should not be set to -# any other language, other than ENGLISH ,-] -# -unset LANG - - -# -# Of all the MTT-Phases, only the -# reporter-phase is run on the head-node (frbw), -# all the other ones should be run within a batch-job (hlrs-bwgrid.sh) -# - -MTT_DIR=/cygdrive/d/tools/MTT-HLRS/mtt-trunk -export MTT_DIR - -# -# need to find somewhere for logfiles -# currently set it to $MTT_DIR/log -if [ -d "log" ]; then - echo; -else - mkdir log; -fi - -MPI_VERSION=v1.7 - -MTT_TIME_STAMP=`date +%Y.%m.%d` -export MTT_TIME_STAMP - -MTT_SCRATCH_NAME=mttscratch-$MPI_VERSION-$MTT_TIME_STAMP -mkdir /cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -OPENMPI_MTT_SCRATCH=/cygdrive/d/temp/MTT-run/$MTT_SCRATCH_NAME -export OPENMPI_MTT_SCRATCH - - -# this script should be run in the mtt-files folder -# so that it can find all the configure and test files -MTT_FILE_DIR=`pwd` -mkdir $MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_DIR=$MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_FILE=$MTT_LOG_DIR/full_log_$MPI_VERSION-$MTT_TIME_STAMP.txt -export MTT_LOG_FILE -export MTT_FILE_DIR - -# -# Start the Shell-Script -# -env | sort - - -$MTT_DIR/client/mtt --verbose --debug hlrs-windows-$MPI_VERSION.ini - -cp $OPENMPI_MTT_SCRATCH/*.txt $MTT_LOG_DIR/ -cp $OPENMPI_MTT_SCRATCH/*.html $MTT_LOG_DIR/ -rm -rf $OPENMPI_MTT_SCRATCH - diff --git a/contrib/platform/win32/hlrs-mtt-files/run_mtt-local.bat b/contrib/platform/win32/hlrs-mtt-files/run_mtt-local.bat deleted file mode 100644 index cf1c19e1f1..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/run_mtt-local.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off - -call "%VS100COMNTOOLS%vsvars32.bat" - -C: -chdir C:\Users\hpcfan\Documents\tools\cygwin\bin - -wmic path win32_networkadapter where index=14 call disable - -bash --rcfile ~/Documents/tools/MTT-HLRS/mtt-files/.mttrc-local - -wmic path win32_networkadapter where index=14 call enable diff --git a/contrib/platform/win32/hlrs-mtt-files/run_mtt.bat b/contrib/platform/win32/hlrs-mtt-files/run_mtt.bat deleted file mode 100644 index 58ca603185..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/run_mtt.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off - -call "%VS100COMNTOOLS%vsvars32.bat" - -C: -chdir d:\tools\cygwin\bin - -REM wmic path win32_networkadapter where index=14 call disable - -d:\tools\cygwin\bin\bash --rcfile d:\tools\MTT-HLRS\mtt-files\.mttrc - -REM wmic path win32_networkadapter where index=14 call enable diff --git a/contrib/platform/win32/hlrs-mtt-files/submit-hlrs-windows-trunk.sh b/contrib/platform/win32/hlrs-mtt-files/submit-hlrs-windows-trunk.sh deleted file mode 100644 index 5a6251fb89..0000000000 --- a/contrib/platform/win32/hlrs-mtt-files/submit-hlrs-windows-trunk.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - - -# -# This is REALLY important: The output of all commands -# is being parsed by MTT -- this should not be set to -# any other language, other than ENGLISH ,-] -# -unset LANG - - -# -# Of all the MTT-Phases, only the -# reporter-phase is run on the head-node (frbw), -# all the other ones should be run within a batch-job (hlrs-bwgrid.sh) -# - -MTT_DIR=/cygdrive/c/Users/hpcfan/Documents/tools/MTT-HLRS/mtt-trunk -export MTT_DIR - -# -# need to find somewhere for logfiles -# currently set it to $MTT_DIR/log -if [ -d "log" ]; then - echo; -else - mkdir log; -fi - -MPI_VERSION=trunk - -MTT_TIME_STAMP=`date +%Y.%m.%d` -export MTT_TIME_STAMP - -MTT_SCRATCH_NAME=mttscratch-$MPI_VERSION-$MTT_TIME_STAMP -mkdir /cygdrive/c/Users/hpcfan/Documents/temp/$MTT_SCRATCH_NAME -OPENMPI_MTT_SCRATCH=/cygdrive/c/Users/hpcfan/Documents/temp/$MTT_SCRATCH_NAME -export OPENMPI_MTT_SCRATCH - - -# this script should be run in the mtt-files folder -# so that it can find all the configure and test files -MTT_FILE_DIR=`pwd` -mkdir $MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_DIR=$MTT_FILE_DIR/log/$MPI_VERSION-$MTT_TIME_STAMP -MTT_LOG_FILE=$MTT_LOG_DIR/full_log_$MPI_VERSION-$MTT_TIME_STAMP.txt -export MTT_LOG_FILE -export MTT_FILE_DIR - -# -# Start the Shell-Script -# -env | sort - - -$MTT_DIR/client/mtt --verbose --debug --no-section "get install"--section database hlrs-windows-$MPI_VERSION.ini - -cp $OPENMPI_MTT_SCRATCH/*.txt $MTT_LOG_DIR/ -cp $OPENMPI_MTT_SCRATCH/*.html $MTT_LOG_DIR/ -rm -rf $OPENMPI_MTT_SCRATCH - diff --git a/contrib/platform/win32/include/hwloc/autogen/config.h b/contrib/platform/win32/include/hwloc/autogen/config.h deleted file mode 100644 index 011eaa00c9..0000000000 --- a/contrib/platform/win32/include/hwloc/autogen/config.h +++ /dev/null @@ -1,197 +0,0 @@ -/* include/hwloc/autogen/config.h. Generated from config.h.in by configure. */ -/* -*- c -*- - * Copyright © 2009 CNRS - * Copyright © 2009-2010 inria. All rights reserved. - * Copyright © 2009-2012 Université Bordeaux 1 - * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved. - * See COPYING in top-level directory. - */ - -/* The configuration file */ - -#ifndef HWLOC_CONFIG_H -#define HWLOC_CONFIG_H - -#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) -# define __hwloc_restrict __restrict -#else -# if __STDC_VERSION__ >= 199901L -# define __hwloc_restrict restrict -# else -# define __hwloc_restrict -# endif -#endif - -/* Note that if we're compiling C++, then just use the "inline" - keyword, since it's part of C++ */ -#if defined(c_plusplus) || defined(__cplusplus) -# define __hwloc_inline inline -#elif defined(_MSC_VER) || defined(__HP_cc) -# define __hwloc_inline __inline -#else -# define __hwloc_inline __inline__ -#endif - -/* - * Note: this is public. We can not assume anything from the compiler used - * by the application and thus the HWLOC_HAVE_* macros below are not - * fetched from the autoconf result here. We only automatically use a few - * well-known easy cases. - */ - -/* Some handy constants to make the logic below a little more readable */ -#if defined(__cplusplus) && \ - (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR >= 4)) -#define GXX_ABOVE_3_4 1 -#else -#define GXX_ABOVE_3_4 0 -#endif - -#if !defined(__cplusplus) && \ - (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) -#define GCC_ABOVE_2_95 1 -#else -#define GCC_ABOVE_2_95 0 -#endif - -#if !defined(__cplusplus) && \ - (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) -#define GCC_ABOVE_2_96 1 -#else -#define GCC_ABOVE_2_96 0 -#endif - -#if !defined(__cplusplus) && \ - (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) -#define GCC_ABOVE_3_3 1 -#else -#define GCC_ABOVE_3_3 0 -#endif - -/* Maybe before gcc 2.95 too */ -#ifdef HWLOC_HAVE_ATTRIBUTE_UNUSED -#define __HWLOC_HAVE_ATTRIBUTE_UNUSED HWLOC_HAVE_ATTRIBUTE_UNUSED -#elif defined(__GNUC__) -# define __HWLOC_HAVE_ATTRIBUTE_UNUSED (GXX_ABOVE_3_4 || GCC_ABOVE_2_95) -#else -# define __HWLOC_HAVE_ATTRIBUTE_UNUSED 0 -#endif -#if __HWLOC_HAVE_ATTRIBUTE_UNUSED -# define __hwloc_attribute_unused __attribute__((__unused__)) -#else -# define __hwloc_attribute_unused -#endif - -#ifdef HWLOC_HAVE_ATTRIBUTE_MALLOC -#define __HWLOC_HAVE_ATTRIBUTE_MALLOC HWLOC_HAVE_ATTRIBUTE_MALLOC -#elif defined(__GNUC__) -# define __HWLOC_HAVE_ATTRIBUTE_MALLOC (GXX_ABOVE_3_4 || GCC_ABOVE_2_96) -#else -# define __HWLOC_HAVE_ATTRIBUTE_MALLOC 0 -#endif -#if __HWLOC_HAVE_ATTRIBUTE_MALLOC -# define __hwloc_attribute_malloc __attribute__((__malloc__)) -#else -# define __hwloc_attribute_malloc -#endif - -#ifdef HWLOC_HAVE_ATTRIBUTE_CONST -#define __HWLOC_HAVE_ATTRIBUTE_CONST HWLOC_HAVE_ATTRIBUTE_CONST -#elif defined(__GNUC__) -# define __HWLOC_HAVE_ATTRIBUTE_CONST (GXX_ABOVE_3_4 || GCC_ABOVE_2_95) -#else -# define __HWLOC_HAVE_ATTRIBUTE_CONST 0 -#endif -#if __HWLOC_HAVE_ATTRIBUTE_CONST -# define __hwloc_attribute_const __attribute__((__const__)) -#else -# define __hwloc_attribute_const -#endif - -#ifdef HWLOC_HAVE_ATTRIBUTE_PURE -#define __HWLOC_HAVE_ATTRIBUTE_PURE HWLOC_HAVE_ATTRIBUTE_PURE -#elif defined(__GNUC__) -# define __HWLOC_HAVE_ATTRIBUTE_PURE (GXX_ABOVE_3_4 || GCC_ABOVE_2_96) -#else -# define __HWLOC_HAVE_ATTRIBUTE_PURE 0 -#endif -#if __HWLOC_HAVE_ATTRIBUTE_PURE -# define __hwloc_attribute_pure __attribute__((__pure__)) -#else -# define __hwloc_attribute_pure -#endif - -#ifdef HWLOC_HAVE_ATTRIBUTE_DEPRECATED -#define __HWLOC_HAVE_ATTRIBUTE_DEPRECATED HWLOC_HAVE_ATTRIBUTE_DEPRECATED -#elif defined(__GNUC__) -# define __HWLOC_HAVE_ATTRIBUTE_DEPRECATED (GXX_ABOVE_3_4 || GCC_ABOVE_3_3) -#else -# define __HWLOC_HAVE_ATTRIBUTE_DEPRECATED 0 -#endif -#if __HWLOC_HAVE_ATTRIBUTE_DEPRECATED -# define __hwloc_attribute_deprecated __attribute__((__deprecated__)) -#else -# define __hwloc_attribute_deprecated -#endif - -#ifdef HWLOC_C_HAVE_VISIBILITY -# if HWLOC_C_HAVE_VISIBILITY -# define HWLOC_DECLSPEC __attribute__((__visibility__("default"))) -# else -# define HWLOC_DECLSPEC -# endif -#else -# if defined(OPAL_IMPORTS) -# define HWLOC_DECLSPEC __declspec(dllimport) -# else -# define HWLOC_DECLSPEC __declspec(dllexport) -# endif -#endif - -/* Defined to 1 on Linux */ -/* #undef HWLOC_LINUX_SYS */ - -/* Defined to 1 if the CPU_SET macro works */ -/* #undef HWLOC_HAVE_CPU_SET */ - -/* Defined to 1 if you have the `windows.h' header. */ -#define HWLOC_HAVE_WINDOWS_H 1 -#define hwloc_pid_t HANDLE -#define hwloc_thread_t HANDLE - -#ifdef HWLOC_HAVE_WINDOWS_H - -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif - -# include -typedef DWORDLONG hwloc_uint64_t; - -#else /* HWLOC_HAVE_WINDOWS_H */ - -# ifdef hwloc_thread_t -# include -# endif /* hwloc_thread_t */ - -/* Defined to 1 if you have the header file. */ -# define HWLOC_HAVE_STDINT_H 1 - -# include -# ifdef HWLOC_HAVE_STDINT_H -# include -# endif -typedef uint64_t hwloc_uint64_t; - -#endif /* HWLOC_HAVE_WINDOWS_H */ - -/* Whether we need to re-define all the hwloc public symbols or not */ -#define HWLOC_SYM_TRANSFORM 0 - -/* The hwloc symbol prefix */ -#define HWLOC_SYM_PREFIX hwloc_ - -/* The hwloc symbol prefix in all caps */ -#define HWLOC_SYM_PREFIX_CAPS HWLOC_ - -#endif /* HWLOC_CONFIG_H */ diff --git a/contrib/platform/win32/include/private/autogen/config.h b/contrib/platform/win32/include/private/autogen/config.h deleted file mode 100644 index 0bdac6d252..0000000000 --- a/contrib/platform/win32/include/private/autogen/config.h +++ /dev/null @@ -1,576 +0,0 @@ -/* include/private/autogen/config.h. Generated from config.h.in by configure. */ -/* include/private/autogen/config.h.in. Generated from configure.ac by autoheader. */ - -/* -*- c -*- - * - * Copyright © 2009, 2012 CNRS, inria., Université Bordeaux 1 All rights reserved. - * Copyright © 2009 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - * This file is automatically generated by configure. Edits will be lost - * the next time you run configure! - */ - -#ifndef HWLOC_CONFIGURE_H -#define HWLOC_CONFIGURE_H - - -/* Define to 1 if the system has the type `CACHE_DESCRIPTOR'. */ -#define HAVE_CACHE_DESCRIPTOR 1 - -/* Define to 1 if the system has the type `CACHE_RELATIONSHIP'. */ -#define HAVE_CACHE_RELATIONSHIP 1 - -/* Define to 1 if you have the `clz' function. */ -/* #undef HAVE_CLZ */ - -/* Define to 1 if you have the `clzl' function. */ -/* #undef HAVE_CLZL */ - -/* Define to 1 if we have -lcuda */ -/* #undef HAVE_CUDA */ - -/* Define to 1 if we have -lcudart */ -/* #undef HAVE_CUDART */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_CUDA_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_CUDA_RUNTIME_API_H */ - -/* Define to 1 if you have the declaration of `CTL_HW', and to 0 if you don't. - */ -/* #undef HAVE_DECL_CTL_HW */ - -/* Define to 1 if you have the declaration of `fabsf', and to 0 if you don't. - */ -#define HAVE_DECL_FABSF 1 - -/* Define to 1 if you have the declaration of `HW_NCPU', and to 0 if you - don't. */ -/* #undef HAVE_DECL_HW_NCPU */ - -/* Define to 1 if you have the declaration of `PCI_LOOKUP_NO_NUMBERS', and to - 0 if you don't. */ -/* #undef HAVE_DECL_PCI_LOOKUP_NO_NUMBERS */ - -/* Define to 1 if you have the declaration of `pthread_getaffinity_np', and to - 0 if you don't. */ -#define HAVE_DECL_PTHREAD_GETAFFINITY_NP 0 - -/* Define to 1 if you have the declaration of `pthread_setaffinity_np', and to - 0 if you don't. */ -#define HAVE_DECL_PTHREAD_SETAFFINITY_NP 0 - -/* Define to 1 if you have the declaration of `_SC_LARGE_PAGESIZE', and to 0 - if you don't. */ -#define HAVE_DECL__SC_LARGE_PAGESIZE 0 - -/* Define to 1 if you have the declaration of `_SC_NPROCESSORS_CONF', and to 0 - if you don't. */ -/* #undef HAVE_DECL__SC_NPROCESSORS_CONF */ - -/* Define to 1 if you have the declaration of `_SC_NPROCESSORS_ONLN', and to 0 - if you don't. */ -/* #undef HAVE_DECL__SC_NPROCESSORS_ONLN */ - -/* Define to 1 if you have the declaration of `_SC_NPROC_CONF', and to 0 if - you don't. */ -#define HAVE_DECL__SC_NPROC_CONF 0 - -/* Define to 1 if you have the declaration of `_SC_NPROC_ONLN', and to 0 if - you don't. */ -#define HAVE_DECL__SC_NPROC_ONLN 0 - -/* Define to 1 if you have the header file. */ -#define HAVE_DLFCN_H 1 - -/* Define to 1 if you have the `ffs' function. */ -/* #undef HAVE_FFS */ - -/* Define to 1 if you have the `ffsl' function. */ -/* #undef HAVE_FFSL */ - -/* Define to 1 if you have the `fls' function. */ -/* #undef HAVE_FLS */ - -/* Define to 1 if you have the `flsl' function. */ -/* #undef HAVE_FLSL */ - -/* Define to 1 if you have the `getpagesize' function. */ -#define HAVE_GETPAGESIZE 1 - -/* Define to 1 if the system has the type `GROUP_AFFINITY'. */ -#define HAVE_GROUP_AFFINITY 1 - -/* Define to 1 if the system has the type `GROUP_RELATIONSHIP'. */ -#define HAVE_GROUP_RELATIONSHIP 1 - -/* Define to 1 if you have the `host_info' function. */ -/* #undef HAVE_HOST_INFO */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_INFINIBAND_VERBS_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* Define to 1 if the system has the type `KAFFINITY'. */ -/* #undef HAVE_KAFFINITY */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_KSTAT_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_LANGINFO_H 1 - -/* Define to 1 if we have -lgdi32 */ -#define HAVE_LIBGDI32 1 - -/* Define to 1 if we have -libverbs */ -/* #undef HAVE_LIBIBVERBS */ - -/* Define to 1 if we have -lkstat */ -/* #undef HAVE_LIBKSTAT */ - -/* Define to 1 if we have -llgrp */ -/* #undef HAVE_LIBLGRP */ - -/* Define to 1 if you have the `pci' library (-lpci). */ -/* #undef HAVE_LIBPCI */ - -/* Define to 1 if you have the header file. */ -#define HAVE_LOCALE_H 1 - -/* Define to 1 if the system has the type `LOGICAL_PROCESSOR_RELATIONSHIP'. */ -#define HAVE_LOGICAL_PROCESSOR_RELATIONSHIP 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MACH_MACH_HOST_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MACH_MACH_INIT_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_MALLOC_H 1 - -/* Define to 1 if you have the `memalign' function. */ -/* #undef HAVE_MEMALIGN */ - -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MYRIEXPRESS_H */ - -/* Define to 1 if you have the `nl_langinfo' function. */ -#define HAVE_NL_LANGINFO 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_NUMAIF_H */ - -/* Define to 1 if the system has the type `NUMA_NODE_RELATIONSHIP'. */ -#define HAVE_NUMA_NODE_RELATIONSHIP 1 - -/* Define to 1 if you have the `openat' function. */ -#define HAVE_OPENAT 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_PCI_PCI_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_PICL_H */ - -/* Define to 1 if the system has the type `PROCESSOR_CACHE_TYPE'. */ -#define HAVE_PROCESSOR_CACHE_TYPE 1 - -/* Define to 1 if the system has the type `PROCESSOR_GROUP_INFO'. */ -#define HAVE_PROCESSOR_GROUP_INFO 1 - -/* Define to 1 if the system has the type `PROCESSOR_RELATIONSHIP'. */ -#define HAVE_PROCESSOR_RELATIONSHIP 1 - -/* Define to 1 if the system has the type `PSAPI_WORKING_SET_EX_BLOCK'. */ -/* #undef HAVE_PSAPI_WORKING_SET_EX_BLOCK */ - -/* Define to 1 if the system has the type `PSAPI_WORKING_SET_EX_INFORMATION'. - */ -/* #undef HAVE_PSAPI_WORKING_SET_EX_INFORMATION */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_PTHREAD_NP_H */ - -/* Define to 1 if the system has the type `pthread_t'. */ -/* #undef HAVE_PTHREAD_T */ - -/* Define to 1 if you have the `putwc' function. */ -#define HAVE_PUTWC 1 - -/* Define to 1 if the system has the type `RelationProcessorPackage'. */ -/* #undef HAVE_RELATIONPROCESSORPACKAGE */ - -/* Define to 1 if you have the `setlocale' function. */ -#define HAVE_SETLOCALE 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDINT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the `strftime' function. */ -#define HAVE_STRFTIME 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_STRINGS_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if you have the `strncasecmp' function. */ -#define HAVE_STRNCASECMP 1 - -/* Define to 1 if you have the `sysctl' function. */ -/* #undef HAVE_SYSCTL */ - -/* Define to 1 if you have the `sysctlbyname' function. */ -/* #undef HAVE_SYSCTLBYNAME */ - -/* Define to 1 if the system has the type - `SYSTEM_LOGICAL_PROCESSOR_INFORMATION'. */ -#define HAVE_SYSTEM_LOGICAL_PROCESSOR_INFORMATION 1 - -/* Define to 1 if the system has the type - `SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX'. */ -#define HAVE_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_CPUSET_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_LGRP_USER_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_MMAN_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_PARAM_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_SYSCTL_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_UTSNAME_H */ - -/* Define to 1 if you have the `uname' function. */ -/* #undef HAVE_UNAME */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_UNISTD_H */ - -/* Define to 1 if you have the `uselocale' function. */ -/* #undef HAVE_USELOCALE */ - -/* Define to 1 if the system has the type `wchar_t'. */ -#define HAVE_WCHAR_T 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_X11_KEYSYM_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_X11_XLIB_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_X11_XUTIL_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_XLOCALE_H */ - -/* Define to 1 on AIX */ -/* #undef HWLOC_AIX_SYS */ - -/* Whether C compiler supports symbol visibility or not */ -/* #undef HWLOC_C_HAVE_VISIBILITY */ - -/* Define to 1 on Darwin */ -/* #undef HWLOC_DARWIN_SYS */ - -/* Whether we are in debugging mode or not */ -/* #undef HWLOC_DEBUG */ - -/* Define to 1 on *FREEBSD */ -/* #undef HWLOC_FREEBSD_SYS */ - -/* Define to 1 if your `ffs' function is known to be broken. */ -/* #undef HWLOC_HAVE_BROKEN_FFS */ - -/* Define to 1 if you have the `cairo' library. */ -/* #undef HWLOC_HAVE_CAIRO */ - -/* Define to 1 if you have the `clz' function. */ -/* #undef HWLOC_HAVE_CLZ */ - -/* Define to 1 if you have the `clzl' function. */ -/* #undef HWLOC_HAVE_CLZL */ - -/* Define to 1 if you have cpuid */ -/* #undef HWLOC_HAVE_CPUID */ - -/* Define to 1 if the CPU_SET macro works */ -/* #undef HWLOC_HAVE_CPU_SET */ - -/* Define to 1 if the CPU_SET_S macro works */ -/* #undef HWLOC_HAVE_CPU_SET_S */ - -/* Define to 1 if function `clz' is declared by system headers */ -/* #undef HWLOC_HAVE_DECL_CLZ */ - -/* Define to 1 if function `clzl' is declared by system headers */ -/* #undef HWLOC_HAVE_DECL_CLZL */ - -/* Define to 1 if function `ffs' is declared by system headers */ -/* #undef HWLOC_HAVE_DECL_FFS */ - -/* Define to 1 if function `ffsl' is declared by system headers */ -/* #undef HWLOC_HAVE_DECL_FFSL */ - -/* Define to 1 if function `fls' is declared by system headers */ -/* #undef HWLOC_HAVE_DECL_FLS */ - -/* Define to 1 if function `flsl' is declared by system headers */ -/* #undef HWLOC_HAVE_DECL_FLSL */ - -/* Define to 1 if you have the `ffs' function. */ -/* #undef HWLOC_HAVE_FFS */ - -/* Define to 1 if you have the `ffsl' function. */ -/* #undef HWLOC_HAVE_FFSL */ - -/* Define to 1 if you have the `fls' function. */ -/* #undef HWLOC_HAVE_FLS */ - -/* Define to 1 if you have the `flsl' function. */ -/* #undef HWLOC_HAVE_FLSL */ - -/* Define to 1 if you have the `libpci' library. */ -/* #undef HWLOC_HAVE_LIBPCI */ - -/* Define to 1 if you have a library providing the termcap interface */ -/* #undef HWLOC_HAVE_LIBTERMCAP */ - -/* Define to 1 if you have the `libxml2' library. */ -/* #undef HWLOC_HAVE_LIBXML2 */ - -/* Define to 1 if mbind is available. */ -/* #undef HWLOC_HAVE_MBIND */ - -/* Define to 1 if migrate_pages is available. */ -/* #undef HWLOC_HAVE_MIGRATE_PAGES */ - -/* Define to 1 if glibc provides the old prototype (without length) of - sched_setaffinity() */ -/* #undef HWLOC_HAVE_OLD_SCHED_SETAFFINITY */ - -/* Define to 1 if struct pci_dev has a `device_class' field. */ -/* #undef HWLOC_HAVE_PCIDEV_DEVICE_CLASS */ - -/* Define to 1 if struct pci_dev has a `domain' field. */ -/* #undef HWLOC_HAVE_PCIDEV_DOMAIN */ - -/* Define to 1 if `libpci' has the `pci_find_cap' function. */ -/* #undef HWLOC_HAVE_PCI_FIND_CAP */ - -/* `Define to 1 if you have pthread_getthrds_np' */ -/* #undef HWLOC_HAVE_PTHREAD_GETTHRDS_NP */ - -/* Define to 1 if glibc provides a prototype of sched_setaffinity() */ -/* #undef HWLOC_HAVE_SCHED_SETAFFINITY */ - -/* Define to 1 if set_mempolicy is available. */ -/* #undef HWLOC_HAVE_SET_MEMPOLICY */ - -/* Define to 1 if you have the header file. */ -#define HWLOC_HAVE_STDINT_H 1 - -/* Define to 1 if you have the `windows.h' header. */ -#define HWLOC_HAVE_WINDOWS_H 1 - -/* Define to 1 if X11 libraries are available. */ -/* #undef HWLOC_HAVE_X11 */ - -/* Define to 1 if the _syscall3 macro works */ -/* #undef HWLOC_HAVE__SYSCALL3 */ - -/* Define to 1 on HP-UX */ -/* #undef HWLOC_HPUX_SYS */ - -/* Define to 1 on Irix */ -/* #undef HWLOC_IRIX_SYS */ - -/* Define to 1 on Linux */ -/* #undef HWLOC_LINUX_SYS */ - -/* Major version of hwloc */ -#define HWLOC_MAJOR_VERSION 1 - -/* Minor version of hwloc */ -#define HWLOC_MINOR_VERSION 5 - -/* Define to 1 on OSF */ -/* #undef HWLOC_OSF_SYS */ - -/* Release version of hwloc */ -#define HWLOC_RELEASE_VERSION 0 - -/* The size of `unsigned int', as computed by sizeof */ -#define HWLOC_SIZEOF_UNSIGNED_INT 4 - -/* The size of `unsigned long', as computed by sizeof */ -#define HWLOC_SIZEOF_UNSIGNED_LONG 4 - -/* Define to 1 on Solaris */ -/* #undef HWLOC_SOLARIS_SYS */ - -/* The hwloc symbol prefix */ -#define HWLOC_SYM_PREFIX hwloc_ - -/* The hwloc symbol prefix in all caps */ -#define HWLOC_SYM_PREFIX_CAPS HWLOC_ - -/* Whether we need to re-define all the hwloc public symbols or not */ -#define HWLOC_SYM_TRANSFORM 0 - -/* Define to 1 on unsupported systems */ -/* #undef HWLOC_UNSUPPORTED_SYS */ - -/* Define to 1 if ncurses works, preferred over curses */ -/* #undef HWLOC_USE_NCURSES */ - -/* Define to 1 on WINDOWS */ -#define HWLOC_WIN_SYS 1 - -/* Define to 1 on x86_32 */ -#define HWLOC_X86_32_ARCH 1 - -/* Define to 1 on x86_64 */ -/* #undef HWLOC_X86_64_ARCH */ - -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ -#define LT_OBJDIR ".libs/" - -/* Define to 1 if your C compiler doesn't accept -c and -o together. */ -/* #undef NO_MINUS_C_MINUS_O */ - -/* Name of package */ -#define PACKAGE "hwloc" - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "http://www.open-mpi.org/projects/hwloc/" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "hwloc" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "hwloc 1.5a1" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "hwloc" - -/* Define to the home page for this package. */ -#define PACKAGE_URL "" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "1.5a1" - -/* The size of `unsigned int', as computed by sizeof. */ -#define SIZEOF_UNSIGNED_INT 4 - -/* The size of `unsigned long', as computed by sizeof. */ -#define SIZEOF_UNSIGNED_LONG 4 - -/* The size of `void *', as computed by sizeof. */ -#define SIZEOF_VOID_P 4 - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Enable extensions on HP-UX. */ -#ifndef _HPUX_SOURCE -# define _HPUX_SOURCE 1 -#endif - - -/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# define _ALL_SOURCE 1 -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE 1 -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# define _POSIX_PTHREAD_SEMANTICS 1 -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# define _TANDEM_SOURCE 1 -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# define __EXTENSIONS__ 1 -#endif - - -/* Version number of package */ -#define VERSION "1.5a1" - -/* Define to 1 if the X Window System is missing or not being used. */ -/* #undef X_DISPLAY_MISSING */ - -/* Are we building for HP-UX? */ -#define _HPUX_SOURCE 1 - -/* Define to 1 if on MINIX. */ -/* #undef _MINIX */ - -/* Define to 2 if the system does not provide POSIX.1 features except with - this defined. */ -/* #undef _POSIX_1_SOURCE */ - -/* Define to 1 if you need to in order for `stat' and other things to work. */ -/* #undef _POSIX_SOURCE */ - -/* Define this to the process ID type */ -#define hwloc_pid_t HANDLE - -/* Define this to either strncasecmp or strncmp */ -#define hwloc_strncasecmp strncasecmp - -/* Define this to the thread ID type */ -#define hwloc_thread_t HANDLE - - -typedef long ssize_t; -#define snprintf _snprintf -#define vsnprintf _vsnprintf -#define strcasecmp _stricmp -#define strncasecmp _strnicmp -#define strtoull _strtoui64 - -#define HWLOC_INSIDE_LIBHWLOC 1 - -#endif /* HWLOC_CONFIGURE_H */ - diff --git a/contrib/platform/win32/ompi-small-setup.vdproj b/contrib/platform/win32/ompi-small-setup.vdproj deleted file mode 100644 index 49d67aa98b..0000000000 --- a/contrib/platform/win32/ompi-small-setup.vdproj +++ /dev/null @@ -1,3693 +0,0 @@ -"DeployProject" -{ -"VSVersion" = "3:800" -"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" -"IsWebType" = "8:FALSE" -"ProjectName" = "8:ompi-small-setup" -"LanguageId" = "3:1033" -"CodePage" = "3:1252" -"UILanguageId" = "3:1033" -"SccProjectName" = "8:" -"SccLocalPath" = "8:" -"SccAuxPath" = "8:" -"SccProvider" = "8:" - "Hierarchy" - { - "Entry" - { - "MsmKey" = "8:_0D567AF937674034BF965CF419D37C5C" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_0D81D698A62241358DB05DB763B47290" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_1087AD0B31DF4306BDFD8A8AD7EAF09D" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_13A932A839DB47D281D5801FD0D4626F" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2D3CDA48B76140CA9BE1290657A69093" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_2EBB3A1CE87D42FC9754146CA08C95F1" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_339E50928C4043E6A494C551FE48B4A5" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_37F4472E6D9348FAA4587C491CDD51D3" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_3FF2FE7561194BA2BED8EB36422CEE7C" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_41B9807890C94400A0E3E3CF99414C86" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_487CA25F19B246998CE879CE1FA2FD03" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_49068025ED1E46248F57A6AADE28CEED" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5A20818923CE4A86B93E91C2BF7B84BD" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5B3442A897214A468E6A4F1A3ADD2DFE" - "OwnerKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_5BC4D0D4B3AD4079BA51B1A091EFB429" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_6070CE6B754E4015B277443A2D07B5D2" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_6219501DF51B404CBE211FB17990928C" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_64A0895EDBD941E0820CE2CE1EFE53CC" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_658666B1290A431F89EDF9843384F8DC" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_65EB919DA0A04E9BA790CD77E9BEC7CF" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_72B3CB804731459DB9302334F130CAE7" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_783AEBC92C1B454481150E1261BBCDD5" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_789FE9A3946E468B81CC62D8D29B9D10" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_831545E322374250A48B85B477FE8307" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_85C9C89C0547424EBD1EF1B614CA1B35" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_8717180A7B56425492E35985FF83CEE1" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_89AA78A03BB74A489BEDF17D154D5D84" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_8A472D81173342B0A3D263AA2598FBC1" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_9689FCAB21564108861FD3903005305A" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_9916F51FA29A41EDA481BF04CF64E5FD" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_9DC7A88E9EBC4F4C97EB7FA530635ED4" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_A659B53C857C4501BDDC574B0013508A" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_AB3D0DFAED9D44C1B02F59D945A52ACB" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_B51B41BA90C547FCBB2602C6346EC64E" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_B5D67DDA91DC45BA8C5EB1D0A4A249DD" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_BAC0EF67B7EF47689180D30D282949FB" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_BD7E3C3126244AC1B5633E9C313F8582" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C2EF2B27EA5D4F2C908D4941F56B5631" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C7963FC62B6C4CDE8A03A75C9CB1B832" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C891A496B62243CBA39066048A7418FF" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_C98DC587730E449091518307517EA05D" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_CB83E1197AD34D909542D184CCD1EEA5" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_CF56D195736C4D0D80B2FF4A405916E7" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_DD88020C3B92498F950E0F4CCB7FF9DD" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E463A7B9F2C04FFBBF993A18C09A1D45" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_E7E2E71A890149A6B71EC0C714B94423" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F11C8620293A4600818FEC33343A52C7" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F25B2D8A807743719921565222991BA1" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F394225879D948CCA72DF7D658C92E3D" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F3A5EC11B2B0483FA4D56063EBD54142" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_0D567AF937674034BF965CF419D37C5C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_FDBBFD1A649648F3B385ECD1A7181FF4" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_F3A5EC11B2B0483FA4D56063EBD54142" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_F394225879D948CCA72DF7D658C92E3D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_F25B2D8A807743719921565222991BA1" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_E7E2E71A890149A6B71EC0C714B94423" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_DD88020C3B92498F950E0F4CCB7FF9DD" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_CF56D195736C4D0D80B2FF4A405916E7" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_CB83E1197AD34D909542D184CCD1EEA5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_C98DC587730E449091518307517EA05D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_C2EF2B27EA5D4F2C908D4941F56B5631" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_BD7E3C3126244AC1B5633E9C313F8582" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_BAC0EF67B7EF47689180D30D282949FB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_B5D67DDA91DC45BA8C5EB1D0A4A249DD" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_AB3D0DFAED9D44C1B02F59D945A52ACB" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_A659B53C857C4501BDDC574B0013508A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_9DC7A88E9EBC4F4C97EB7FA530635ED4" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_9689FCAB21564108861FD3903005305A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_85C9C89C0547424EBD1EF1B614CA1B35" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_831545E322374250A48B85B477FE8307" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_789FE9A3946E468B81CC62D8D29B9D10" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_783AEBC92C1B454481150E1261BBCDD5" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_72B3CB804731459DB9302334F130CAE7" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_65EB919DA0A04E9BA790CD77E9BEC7CF" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_658666B1290A431F89EDF9843384F8DC" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_64A0895EDBD941E0820CE2CE1EFE53CC" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_6219501DF51B404CBE211FB17990928C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_6070CE6B754E4015B277443A2D07B5D2" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_5BC4D0D4B3AD4079BA51B1A091EFB429" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_5A20818923CE4A86B93E91C2BF7B84BD" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_49068025ED1E46248F57A6AADE28CEED" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_41B9807890C94400A0E3E3CF99414C86" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_3FF2FE7561194BA2BED8EB36422CEE7C" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_37F4472E6D9348FAA4587C491CDD51D3" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_2EBB3A1CE87D42FC9754146CA08C95F1" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_2D3CDA48B76140CA9BE1290657A69093" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_13A932A839DB47D281D5801FD0D4626F" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_1087AD0B31DF4306BDFD8A8AD7EAF09D" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_F64C1B31B8D64E43BA7D97C02C9B2408" - "OwnerKey" = "8:_0D81D698A62241358DB05DB763B47290" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_FDBBFD1A649648F3B385ECD1A7181FF4" - "OwnerKey" = "8:_UNDEFINED" - "MsmSig" = "8:_UNDEFINED" - } - } - "Configurations" - { - "Debug" - { - "DisplayName" = "8:Debug" - "IsDebugOnly" = "11:TRUE" - "IsReleaseOnly" = "11:FALSE" - "OutputFilename" = "8:Debug\\ompi-small-setup.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" - { - "Enabled" = "11:FALSE" - "PromptEnabled" = "11:TRUE" - "PrerequisitesLocation" = "2:1" - "Url" = "8:" - "ComponentsUrl" = "8:" - "Items" - { - } - } - } - "Release" - { - "DisplayName" = "8:Release" - "IsDebugOnly" = "11:FALSE" - "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\ompi-small-setup.msi" - "PackageFilesAs" = "3:2" - "PackageFileSize" = "3:-2147483648" - "CabType" = "3:1" - "Compression" = "3:2" - "SignOutput" = "11:FALSE" - "CertificateFile" = "8:" - "PrivateKeyFile" = "8:" - "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" - "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" - { - "Enabled" = "11:TRUE" - "PromptEnabled" = "11:TRUE" - "PrerequisitesLocation" = "2:1" - "Url" = "8:" - "ComponentsUrl" = "8:" - "Items" - { - } - } - } - } - "Deployable" - { - "CustomAction" - { - } - "DefaultFeature" - { - "Name" = "8:DefaultFeature" - "Title" = "8:" - "Description" = "8:" - } - "ExternalPersistence" - { - "LaunchCondition" - { - } - } - "File" - { - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_339E50928C4043E6A494C551FE48B4A5" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\include\\ompi_config.h" - "TargetName" = "8:ompi_config.h" - "Tag" = "8:" - "Folder" = "8:_07B08BBEE4D247E0B53C83A9A19B1579" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_487CA25F19B246998CE879CE1FA2FD03" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\libompi.lib" - "TargetName" = "8:libompi.lib" - "Tag" = "8:" - "Folder" = "8:_7F1C2B2244594989BD940DBFC83CD1B2" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8717180A7B56425492E35985FF83CEE1" - { - "SourcePath" = "8:..\\..\\..\\..\\opal\\include\\opal_config_bottom.h" - "TargetName" = "8:opal_config_bottom.h" - "Tag" = "8:" - "Folder" = "8:_07B08BBEE4D247E0B53C83A9A19B1579" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_89AA78A03BB74A489BEDF17D154D5D84" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\include\\mpi.h" - "TargetName" = "8:mpi.h" - "Tag" = "8:" - "Folder" = "8:_07B08BBEE4D247E0B53C83A9A19B1579" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8A472D81173342B0A3D263AA2598FBC1" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\include\\mpif-config.h" - "TargetName" = "8:mpif-config.h" - "Tag" = "8:" - "Folder" = "8:_07B08BBEE4D247E0B53C83A9A19B1579" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9916F51FA29A41EDA481BF04CF64E5FD" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\libopal.lib" - "TargetName" = "8:libopal.lib" - "Tag" = "8:" - "Folder" = "8:_7F1C2B2244594989BD940DBFC83CD1B2" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B51B41BA90C547FCBB2602C6346EC64E" - { - "SourcePath" = "8:..\\..\\..\\..\\opal\\include\\opal_config.h" - "TargetName" = "8:opal_config.h" - "Tag" = "8:" - "Folder" = "8:_07B08BBEE4D247E0B53C83A9A19B1579" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C7963FC62B6C4CDE8A03A75C9CB1B832" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\include\\mpif.h" - "TargetName" = "8:mpif.h" - "Tag" = "8:" - "Folder" = "8:_07B08BBEE4D247E0B53C83A9A19B1579" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C891A496B62243CBA39066048A7418FF" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\liborte.lib" - "TargetName" = "8:liborte.lib" - "Tag" = "8:" - "Folder" = "8:_7F1C2B2244594989BD940DBFC83CD1B2" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E463A7B9F2C04FFBBF993A18C09A1D45" - { - "SourcePath" = "8:..\\..\\..\\..\\ompi\\include\\mpif-common.h" - "TargetName" = "8:mpif-common.h" - "Tag" = "8:" - "Folder" = "8:_07B08BBEE4D247E0B53C83A9A19B1579" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F11C8620293A4600818FEC33343A52C7" - { - "SourcePath" = "8:..\\..\\..\\..\\orte\\include\\orte_config.h" - "TargetName" = "8:orte_config.h" - "Tag" = "8:" - "Folder" = "8:_07B08BBEE4D247E0B53C83A9A19B1579" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - } - } - "FileType" - { - } - "Folder" - { - "{3C67513D-01DD-4637-8A68-80971EB9504F}:_86311EEAF47F4016BE876CD68AE02186" - { - "DefaultLocation" = "8:[ProgramFilesFolder]\\[ProductName]" - "Name" = "8:#1925" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:TARGETDIR" - "Folders" - { - "{9EF0B969-E518-4E46-987F-47570745A589}:_07B08BBEE4D247E0B53C83A9A19B1579" - { - "Name" = "8:include" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_4C255125672C499395F1F68EEEEA6AF4" - "Folders" - { - } - } - "{9EF0B969-E518-4E46-987F-47570745A589}:_3A0FD7673E99496295E3AB2F7F6307CE" - { - "Name" = "8:bin" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_6253BB13D637492693A6764D7325DA3E" - "Folders" - { - } - } - "{9EF0B969-E518-4E46-987F-47570745A589}:_7F1C2B2244594989BD940DBFC83CD1B2" - { - "Name" = "8:lib" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_AC579ECBEA67492290C5E0C0CD5BBE19" - "Folders" - { - "{9EF0B969-E518-4E46-987F-47570745A589}:_733B273AA0864E8FAE3D45CACE129F22" - { - "Name" = "8:openmpi" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:_167C72B1ABBF42B5B8F85657CD8C453B" - "Folders" - { - } - } - } - } - } - } - "{1525181F-901A-416C-8A58-119130FE478E}:_E1FD4A67B9B84FB5A029D44A3A6738F2" - { - "Name" = "8:#1919" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:ProgramMenuFolder" - "Folders" - { - } - } - "{1525181F-901A-416C-8A58-119130FE478E}:_EFE541698BC5410AB72C4CF6892F8C6C" - { - "Name" = "8:#1916" - "AlwaysCreate" = "11:FALSE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Property" = "8:DesktopFolder" - "Folders" - { - } - } - } - "LaunchCondition" - { - } - "Locator" - { - } - "MsiBootstrapper" - { - "LangId" = "3:1033" - } - "Product" - { - "Name" = "8:Microsoft Visual Studio" - "ProductName" = "8:Open MPI" - "ProductCode" = "8:{035622E5-EB0A-4D33-8F90-5CCED6645A26}" - "PackageCode" = "8:{F20E3219-41F9-4911-B5BA-E7ABD2FCAE0E}" - "UpgradeCode" = "8:{08215937-756F-4420-B352-D02903900B05}" - "RestartWWWService" = "11:FALSE" - "RemovePreviousVersions" = "11:FALSE" - "DetectNewerInstalledVersion" = "11:TRUE" - "InstallAllUsers" = "11:TRUE" - "ProductVersion" = "8:1.1.1" - "Manufacturer" = "8:Open MPI" - "ARPHELPTELEPHONE" = "8:" - "ARPHELPLINK" = "8:http://www.open-mpi.org" - "Title" = "8:Open MPI" - "Subject" = "8:A open source Win32 MPI implementation" - "ARPCONTACT" = "8:ICL / University of Tennessee" - "Keywords" = "8:MPI" - "ARPCOMMENTS" = "8:Open MPI" - "ARPURLINFOABOUT" = "8:http://www.open-mpi.org" - "ARPPRODUCTICON" = "8:" - "ARPIconIndex" = "3:0" - "SearchPath" = "8:" - "UseSystemSearchPath" = "11:TRUE" - "TargetPlatform" = "3:0" - "PreBuildEvent" = "8:" - "PostBuildEvent" = "8:" - "RunPostBuildEvent" = "3:0" - } - "Registry" - { - "HKLM" - { - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_F0F820A7BE234E0895B3EB62F99335C5" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_1B0F779A6B8D4950B82EA63930F3FC4C" - { - "Name" = "8:[Manufacturer]" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - "{ADCFDA98-8FDD-45E4-90BC-E3D20B029870}:_8D17F985EFA9452B88CF9A6EF08D424D" - { - "Name" = "8:PATH" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "ValueTypes" = "3:1" - "Value" = "8:[TARGETDIR]" - } - } - } - } - "Values" - { - } - } - } - } - "HKCU" - { - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_B4A7E7693A5145D28AD26E297381F46C" - { - "Name" = "8:Software" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_2A6BC4F8270F4698A99475F2D29B26C3" - { - "Name" = "8:[Manufacturer]" - "Condition" = "8:" - "AlwaysCreate" = "11:FALSE" - "DeleteAtUninstall" = "11:FALSE" - "Transitive" = "11:FALSE" - "Keys" - { - } - "Values" - { - } - } - } - "Values" - { - } - } - } - } - "HKCR" - { - "Keys" - { - } - } - "HKU" - { - "Keys" - { - } - } - "HKPU" - { - "Keys" - { - } - } - } - "Sequences" - { - } - "Shortcut" - { - } - "UserInterface" - { - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_24FD31F0D53F41A18914139B219252EF" - { - "Name" = "8:#1901" - "Sequence" = "3:2" - "Attributes" = "3:2" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9277E61628B04472813196A7EE28B479" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_4741BADA36814A95A8BD272C96DC2A9D" - { - "Name" = "8:#1901" - "Sequence" = "3:1" - "Attributes" = "3:2" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_AA2D9CBFF404444B926B9C3F4AAA105C" - { - "Sequence" = "3:100" - "DisplayName" = "8:Progress" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdProgressDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "ShowProgress" - { - "Name" = "8:ShowProgress" - "DisplayName" = "8:#1009" - "Description" = "8:#1109" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_8AD3CF3F8ABF4CD3A25372EAEC2D422D" - { - "Name" = "8:#1902" - "Sequence" = "3:1" - "Attributes" = "3:3" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FDED374BB6504298969EAB2D0E042C3F" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "UpdateText" - { - "Name" = "8:UpdateText" - "DisplayName" = "8:#1058" - "Description" = "8:#1158" - "Type" = "3:15" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1258" - "DefaultValue" = "8:#1258" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_B2A7F3925D1D460EA8FF1E6A6A46A78A" - { - "Name" = "8:#1902" - "Sequence" = "3:2" - "Attributes" = "3:3" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_89EBEECAC109449590041D027B21FF7F" - { - "Sequence" = "3:100" - "DisplayName" = "8:Finished" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminFinishedDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_C4F72973F78D4DAC9720668C0718DC93" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdBasicDialogs.wim" - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_CC4D13DDF8D74CF1AE84973810A05790" - { - "Name" = "8:#1900" - "Sequence" = "3:1" - "Attributes" = "3:1" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4A9458C68A2041CFBE6CF255AF2D5695" - { - "Sequence" = "3:300" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CC6D05C43C374ADCB6EC0DF4A93B3F18" - { - "Sequence" = "3:100" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FC982C5352354582A245DF8DD67FE0E2" - { - "Sequence" = "3:200" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "InstallAllUsersVisible" - { - "Name" = "8:InstallAllUsersVisible" - "DisplayName" = "8:#1059" - "Description" = "8:#1159" - "Type" = "3:5" - "ContextData" = "8:1;True=1;False=0" - "Attributes" = "3:0" - "Setting" = "3:0" - "Value" = "3:1" - "DefaultValue" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_E77B503F1ECD46DABB2B00CEC86367B8" - { - "UseDynamicProperties" = "11:FALSE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdUserInterface.wim" - } - "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F499F6C084834DBCBCBD5E25EFF6B41B" - { - "Name" = "8:#1900" - "Sequence" = "3:2" - "Attributes" = "3:1" - "Dialogs" - { - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2BF394D8A18E4707B16C1E31547F21BA" - { - "Sequence" = "3:100" - "DisplayName" = "8:Welcome" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - "CopyrightWarning" - { - "Name" = "8:CopyrightWarning" - "DisplayName" = "8:#1002" - "Description" = "8:#1102" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1202" - "DefaultValue" = "8:#1202" - "UsePlugInResources" = "11:TRUE" - } - "Welcome" - { - "Name" = "8:Welcome" - "DisplayName" = "8:#1003" - "Description" = "8:#1103" - "Type" = "3:3" - "ContextData" = "8:" - "Attributes" = "3:0" - "Setting" = "3:1" - "Value" = "8:#1203" - "DefaultValue" = "8:#1203" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_5427BD5B2B3844DBAB7E1E2F237BC44D" - { - "Sequence" = "3:300" - "DisplayName" = "8:Confirm Installation" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminConfirmDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_66E64B4FB2C847C19BAB59C9E9EEB261" - { - "Sequence" = "3:200" - "DisplayName" = "8:Installation Folder" - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:FALSE" - "SourcePath" = "8:\\VsdAdminFolderDlg.wid" - "Properties" - { - "BannerBitmap" - { - "Name" = "8:BannerBitmap" - "DisplayName" = "8:#1001" - "Description" = "8:#1101" - "Type" = "3:8" - "ContextData" = "8:Bitmap" - "Attributes" = "3:4" - "Setting" = "3:1" - "UsePlugInResources" = "11:TRUE" - } - } - } - } - } - } - "MergeModule" - { - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_5B3442A897214A468E6A4F1A3ADD2DFE" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:policy_8_0_microsoft_vc80_debugcrt_x86.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_F64C1B31B8D64E43BA7D97C02C9B2408" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:Microsoft_VC80_DebugCRT_x86.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:FALSE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - } - "ProjectOutput" - { - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0194E0702ED541AC90028BD975A48C8F" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{844A3F0D-D8F5-4A3E-BB75-A5D459FDC8DC}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0833001F77514CD8971922BBBFFBDC5E" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{E0818023-1824-4C35-BB6F-DDFE0516BEFA}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0C6F2D028200456B871BA505E86BDA65" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_7F1C2B2244594989BD940DBFC83CD1B2" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{EBE41123-A031-4864-B332-72349C2BF787}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0D567AF937674034BF965CF419D37C5C" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_iof_proxy.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{3BEE89E2-5D77-46F5-B977-DB73E9E900E5}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_0D81D698A62241358DB05DB763B47290" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\console.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{A2D7A540-9A9A-4922-B685-2CBDE6EF8CA0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_1087AD0B31DF4306BDFD8A8AD7EAF09D" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\orte-clean.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{8D11133A-EA1C-419A-B38E-2BE90C517374}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_13A932A839DB47D281D5801FD0D4626F" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_rml_oob.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{E0818023-1824-4C35-BB6F-DDFE0516BEFA}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_23F51670F86B47CEB026EF3BB6AD5AD5" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{0F030F96-FAED-463B-B820-C00FF290E674}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_24A4B1CE64C9481D89A296BB99BAD2C2" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{020F9836-63E1-4950-AC47-29E287C35BF1}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2D3CDA48B76140CA9BE1290657A69093" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\opal_wrapper.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{9329769F-C455-4FAB-9BAF-6FAA16A5C748}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2EBB3A1CE87D42FC9754146CA08C95F1" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_ras_localhost.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{EA8FD708-0EBD-409C-892F-61D35F93C2B0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2F0983C622BE4155B5781124FA1C8912" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{6E45B579-0D65-4C1F-AE83-962B9BF3F519}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3363DC6BD56042618347297C3D3E22A3" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{B147EF18-7D29-4BF1-9096-FD2981262A1A}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_37F4472E6D9348FAA4587C491CDD51D3" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_oob_tcp.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{100F795D-A425-4A56-B0C7-F1E5A2C2A221}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3FF2FE7561194BA2BED8EB36422CEE7C" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_rds_resfile.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{1D70B48B-7A30-411F-9DE0-752237A338BC}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_419A0C8538C14626B0EF17FFBF2CF320" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{E5C70D31-997C-4484-BE5C-D91DCA247840}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_41B9807890C94400A0E3E3CF99414C86" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\libopal.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_7F1C2B2244594989BD940DBFC83CD1B2" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{190282AA-8A13-4F2F-B49C-D759EB8CB62E}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4619244E94FF437E8EC25E2489A97D3D" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{E65A8856-E966-4439-88C8-B96158753BE3}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_49068025ED1E46248F57A6AADE28CEED" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_ras_hostfile.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{4D54E5D5-3E28-4832-BA4B-33E80790DD20}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4B2E1EF776B6460481DC5662DB75FDD3" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{7FBD833E-8B0C-4165-90F5-90C9DEE9F078}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4B982DDF47964C848D72D380308DF2D4" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{CF6A8FBE-7E51-4AB5-904E-F1D8F8B2B090}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4D30B081D33140879D1A6F2BCA689520" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{83001768-BBE5-4927-9CF2-FC74AAF2E106}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_596E4CB0E8A34543B60F81FAFED3CD9C" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{1D70B48B-7A30-411F-9DE0-752237A338BC}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_5A20818923CE4A86B93E91C2BF7B84BD" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\orterun.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{61B96D3D-6FA7-47D5-B8C6-0955081EBB85}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_5AB57F46666E4FB891D95BD89D423A1A" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{4D54E5D5-3E28-4832-BA4B-33E80790DD20}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_5BC4D0D4B3AD4079BA51B1A091EFB429" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\libompi.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{689BA431-A964-430C-B68C-75FD1F9D0C94}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_5C9E2716B9934C5A9013855B747A63E6" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{DDB662AB-BAF6-4E22-BB7C-4CA9990717D4}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_6070CE6B754E4015B277443A2D07B5D2" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\orteprobe.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{DDB662AB-BAF6-4E22-BB7C-4CA9990717D4}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_6219501DF51B404CBE211FB17990928C" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\libompi.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_7F1C2B2244594989BD940DBFC83CD1B2" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{689BA431-A964-430C-B68C-75FD1F9D0C94}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_64A0895EDBD941E0820CE2CE1EFE53CC" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_rds_hostfile.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{C1839F06-4C70-43AB-8F36-17B7900D0C4D}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_651196DFDB60426AA828FD8ACC384D02" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_7F1C2B2244594989BD940DBFC83CD1B2" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{190282AA-8A13-4F2F-B49C-D759EB8CB62E}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_658666B1290A431F89EDF9843384F8DC" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\liborte.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_7F1C2B2244594989BD940DBFC83CD1B2" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{EBE41123-A031-4864-B332-72349C2BF787}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_65EB919DA0A04E9BA790CD77E9BEC7CF" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\ompi_info.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{7086D847-BC17-4730-8082-89145563D95F}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_6DD23266982A476DAFD9F0BC79C635E9" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{3B5FBFCF-A778-446D-9682-C8D1EF178101}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_709EF00F1F9941789B3030B7EA24976F" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{8D11133A-EA1C-419A-B38E-2BE90C517374}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_71952055A3C5489893145345119D3629" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{61B96D3D-6FA7-47D5-B8C6-0955081EBB85}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_720DB77E9AC44FB89E3D2ABE80A3D601" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{DA5A7A6B-AEAF-4535-8678-5AB585CA0437}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_72B3CB804731459DB9302334F130CAE7" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_gpr_proxy.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{E65A8856-E966-4439-88C8-B96158753BE3}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_783AEBC92C1B454481150E1261BBCDD5" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_sds_seed.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{1508DEAC-5DE6-4EE9-B23C-B0A2263C1750}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_789FE9A3946E468B81CC62D8D29B9D10" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_ns_replica.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{A048413B-F23E-4085-9C52-45AC97C86E81}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_7AA9FE2E37C34F2482C3C2EC9652D95F" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{A2081600-CDBB-4D64-861D-50AB224C7283}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_831545E322374250A48B85B477FE8307" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_ns_proxy.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{83001768-BBE5-4927-9CF2-FC74AAF2E106}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_85C9C89C0547424EBD1EF1B614CA1B35" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\orted.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{FCAA3256-6255-43F5-99AC-057C7ED1A296}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_8B40F554587C41FDB2093AB1AB091561" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{1508DEAC-5DE6-4EE9-B23C-B0A2263C1750}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_93E0145FC5414C078FAB76AD83D028A5" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{EA8FD708-0EBD-409C-892F-61D35F93C2B0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_94E40BB6B0694D7DAEE973DD72E8B667" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{689BA431-A964-430C-B68C-75FD1F9D0C94}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_9689FCAB21564108861FD3903005305A" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_gpr_null.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{E5C70D31-997C-4484-BE5C-D91DCA247840}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_986F2DB9ECC74324812475B145052C64" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{FCAA3256-6255-43F5-99AC-057C7ED1A296}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_9DC7A88E9EBC4F4C97EB7FA530635ED4" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_rmgr_proxy.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{844A3F0D-D8F5-4A3E-BB75-A5D459FDC8DC}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A04618AABC1F4A78BB472F8BC83BBC3F" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_7F1C2B2244594989BD940DBFC83CD1B2" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{689BA431-A964-430C-B68C-75FD1F9D0C94}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A1B929922CE346A0B9B491F2D316D78E" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{EBE41123-A031-4864-B332-72349C2BF787}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A659B53C857C4501BDDC574B0013508A" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_ras_dash_host.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{20942679-774F-44FB-BD20-4C7C2FCCB595}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A7D27EAB01324CBBA4CF8B60543CA9AC" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{3BEE89E2-5D77-46F5-B977-DB73E9E900E5}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_AB3D0DFAED9D44C1B02F59D945A52ACB" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_maffinity_first_use.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{DA5A7A6B-AEAF-4535-8678-5AB585CA0437}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B5D67DDA91DC45BA8C5EB1D0A4A249DD" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\libopal.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{190282AA-8A13-4F2F-B49C-D759EB8CB62E}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BAC0EF67B7EF47689180D30D282949FB" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\liborte.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{EBE41123-A031-4864-B332-72349C2BF787}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BD21C743FBF94D0E9FC1EA74FC619DDB" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{58028003-2302-4E78-B4ED-213333043087}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BD7E3C3126244AC1B5633E9C313F8582" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_rmgr_urm.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{A2081600-CDBB-4D64-861D-50AB224C7283}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BE551EB9162248809FDE5DF61F5F18FA" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{A048413B-F23E-4085-9C52-45AC97C86E81}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BF2B427D4623497585D6BF3DD8DE8997" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{C1839F06-4C70-43AB-8F36-17B7900D0C4D}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C2EF2B27EA5D4F2C908D4941F56B5631" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_paffinity_windows.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{020F9836-63E1-4950-AC47-29E287C35BF1}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C3B618E42B614DB2BAFA69D1DDD983C8" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{7086D847-BC17-4730-8082-89145563D95F}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C3D5078725BD4565A1154B5A5B5C513C" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{D3C515F9-81A8-47C0-9FF7-976E3E174DD0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C7EFDAC25B7D481BA415181935C28CFF" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{100F795D-A425-4A56-B0C7-F1E5A2C2A221}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C98DC587730E449091518307517EA05D" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_rmaps_round_robin.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{B147EF18-7D29-4BF1-9096-FD2981262A1A}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_CB83E1197AD34D909542D184CCD1EEA5" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_sds_singleton.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{CF6A8FBE-7E51-4AB5-904E-F1D8F8B2B090}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_CF56D195736C4D0D80B2FF4A405916E7" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_iof_svc.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{C346DD14-9B35-48DB-981E-945E918264CD}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D00428EF57674F19B959E852963F0810" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{A2D7A540-9A9A-4922-B685-2CBDE6EF8CA0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D975C801DD484E1386BE181255293173" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{190282AA-8A13-4F2F-B49C-D759EB8CB62E}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_DD88020C3B92498F950E0F4CCB7FF9DD" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_iof_null.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{0F030F96-FAED-463B-B820-C00FF290E674}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_E027A555ADA2476E8CD2BB6547810FA8" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{C346DD14-9B35-48DB-981E-945E918264CD}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_E7E2E71A890149A6B71EC0C714B94423" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_sds_env.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{D3C515F9-81A8-47C0-9FF7-976E3E174DD0}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F25B2D8A807743719921565222991BA1" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\orte-ps.exe" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{3B5FBFCF-A778-446D-9682-C8D1EF178101}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F394225879D948CCA72DF7D658C92E3D" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_pls_process.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{58028003-2302-4E78-B4ED-213333043087}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F3A5EC11B2B0483FA4D56063EBD54142" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_gpr_replica.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{6E45B579-0D65-4C1F-AE83-962B9BF3F519}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FC04822D04AA4019A46C2E7966E5FA53" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{20942679-774F-44FB-BD20-4C7C2FCCB595}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FDBBFD1A649648F3B385ECD1A7181FF4" - { - "SourcePath" = "8:..\\..\\..\\..\\Debug\\mca_sds_pipe.dll" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_733B273AA0864E8FAE3D45CACE129F22" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Built" - "OutputProjectGuid" = "8:{7FBD833E-8B0C-4165-90F5-90C9DEE9F078}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FE37203364D24F0BB525419603149F8B" - { - "SourcePath" = "8:" - "TargetName" = "8:" - "Tag" = "8:" - "Folder" = "8:_3A0FD7673E99496295E3AB2F7F6307CE" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" - "IsolateTo" = "8:" - "ProjectOutputGroupRegister" = "3:1" - "OutputConfiguration" = "8:" - "OutputGroupCanonicalName" = "8:Symbols" - "OutputProjectGuid" = "8:{9329769F-C455-4FAB-9BAF-6FAA16A5C748}" - "ShowKeyOutput" = "11:TRUE" - "ExcludeFilters" - { - } - } - } - } -} diff --git a/contrib/platform/win32/ompi-static.tgz b/contrib/platform/win32/ompi-static.tgz deleted file mode 100644 index 86d981a822..0000000000 Binary files a/contrib/platform/win32/ompi-static.tgz and /dev/null differ diff --git a/contrib/platform/win32/ompi_install.sh b/contrib/platform/win32/ompi_install.sh deleted file mode 100755 index da66ec8b0f..0000000000 --- a/contrib/platform/win32/ompi_install.sh +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/sh - -SOURCE=x64/debug -DEST=/cygdrive/z/ompi/ - -mkdir -p ${DEST}/bin -mkdir -p ${DEST}/etc -mkdir -p ${DEST}/include -mkdir -p ${DEST}/lib -mkdir -p ${DEST}/lib/openmpi -mkdir -p ${DEST}/share -mkdir -p ${DEST}/share/openmpi - -# -# Copy all includes -# -cp opal/include/opal_config.h ${DEST}/share/openmpi/ -cp opal/include/opal_config_bottom.h ${DEST}/share/openmpi/ -cp orte/include/orte_config.h ${DEST}/share/openmpi/ -cp ompi/include/mpi.h ${DEST}/include -cp ompi/include/mpif.h ${DEST}/include -cp ompi/include/mpif-config.h ${DEST}/share/openmpi/ -cp ompi/include/mpif-common.h ${DEST}/share/openmpi/ -cp ompi/include/ompi_config.h ${DEST}/share/openmpi/ - -# -# Copy the helpers .txt files -# -cp AUTHORS ${DEST}/ -# -# OPAL -# -cp opal/etc/openmpi-mca-params.conf ${DEST}/etc -cp opal/mca/base/help-mca-base.txt ${DEST}/share/openmpi -cp opal/mca/base/help-mca-param.txt ${DEST}/share/openmpi -cp opal/runtime/help-opal-runtime.txt ${DEST}/share/openmpi -cp opal/tools/wrappers/help-opal-wrapper.txt ${DEST}/share/openmpi -cp opal/tools/wrappers/opalc++-wrapper-data.txt ${DEST}/share/openmpi -cp opal/tools/wrappers/opalcc-wrapper-data.txt ${DEST}/share/openmpi -# -# ORTE -# -cp orte/mca/odls/default/help-odls-default.txt ${DEST}/share/openmpi -cp orte/mca/odls/process/help-odls-process.txt ${DEST}/share/openmpi -cp orte/mca/pls/base/help-pls-base.txt ${DEST}/share/openmpi -cp orte/mca/pls/bproc/help-pls-bproc.txt ${DEST}/share/openmpi -cp orte/mca/pls/gridengine/help-pls-gridengine.txt ${DEST}/share/openmpi -cp orte/mca/pls/rsh/help-pls-rsh.txt ${DEST}/share/openmpi -cp orte/mca/pls/slurm/help-pls-slurm.txt ${DEST}/share/openmpi -cp orte/mca/pls/tm/help-pls-tm.txt ${DEST}/share/openmpi -cp orte/mca/ras/gridengine/help-ras-gridengine.txt ${DEST}/share/openmpi/ -cp orte/mca/ras/slurm/help-ras-slurm.txt ${DEST}/share/openmpi/ -cp orte/mca/rds/hostfile/help-rds-hostfile.txt ${DEST}/share/openmpi -cp orte/mca/rmaps/base/help-orte-rmaps-base.txt ${DEST}/share/openmpi -cp orte/mca/rmaps/round_robin/help-orte-rmaps-rr.txt ${DEST}/share/openmpi -cp orte/mca/rmgr/base/help-rmgr-base.txt ${DEST}/share/openmpi -cp orte/runtime/help-orte-runtime.txt ${DEST}/share/openmpi -cp orte/tools/console/help-orteconsole.txt ${DEST}/share/openmpi/ -cp orte/tools/orte-clean/help-orte-clean.txt ${DEST}/share/openmpi -cp orte/tools/orte-clean/orte-clean.1 ${DEST}/share/openmpi -cp orte/tools/orte-ps/help-orte-ps.txt ${DEST}/share/openmpi/ -cp orte/tools/orte-ps/orte-ps.1 ${DEST}/share/openmpi -cp orte/tools/orted/help-orted.txt ${DEST}/share/openmpi -cp orte/tools/orteprobe/help-orteprobe.txt ${DEST}/share/openmpi -cp orte/tools/orterun/help-orterun.txt ${DEST}/share/openmpi -cp orte/tools/orterun/orterun.1 ${DEST}/share/openmpi/ -cp orte/tools/wrappers/ortec++-wrapper-data.txt ${DEST}/share/openmpi -cp orte/tools/wrappers/ortecc-wrapper-data.txt ${DEST}/share/openmpi -# -# OMPI -# -cp ompi/mca/bml/r2/help-mca-bml-r2.txt ${DEST}/share/openmpi/ -cp ompi/mca/btl/base/help-mpi-btl-base.txt ${DEST}/share/openmpi/ -cp ompi/mca/btl/mvapi/help-mpi-btl-mvapi.txt ${DEST}/share/openmpi/ -cp ompi/mca/btl/openib/help-mpi-btl-openib.txt ${DEST}/share/openmpi -cp ompi/mca/btl/mvapi/help-mpi-btl-mvapi.txt ${DEST}/share/openmpi -cp ompi/mca/coll/base/help-mca-coll-base.txt ${DEST}/share/openmpi -cp ompi/mca/coll/sm/help-coll-sm.txt ${DEST}/share/openmpi -cp ompi/mpi/help-mpi-api.txt ${DEST}/share/openmpi -cp ompi/runtime/help-mpi-runtime.txt ${DEST}/share/openmpi/ -cp ompi/tools/ompi_info/help-ompi_info.txt ${DEST}/share/openmpi -cp ompi/tools/wrappers/mpic++-wrapper-data.txt ${DEST}/share/openmpi/ -cp ompi/tools/wrappers/mpicc-wrapper-data.txt ${DEST}/share/openmpi -cp ompi/tools/wrappers/mpicxx-wrapper-data.txt ${DEST}/share/openmpi -cp ompi/tools/wrappers/mpif77-wrapper-data.txt ${DEST}/share/openmpi/ -cp ompi/tools/wrappers/mpif90-wrapper-data.txt ${DEST}/share/openmpi - -# -# Copy the libraries -# -cp ${SOURCE}/liborte.lib ${DEST}/lib/ -cp ${SOURCE}/libompi.lib ${DEST}/lib/ -cp ${SOURCE}/libopal.lib ${DEST}/lib/ -cp ${SOURCE}/liborte.dll ${DEST}/lib/ -cp ${SOURCE}/libompi.dll ${DEST}/lib/ -cp ${SOURCE}/libopal.dll ${DEST}/lib/ -cp ${SOURCE}/liborte.dll ${DEST}/bin/ -cp ${SOURCE}/libompi.dll ${DEST}/bin/ -cp ${SOURCE}/libopal.dll ${DEST}/bin/ -cp ${SOURCE}/mca_*.dll ${DEST}/lib/openmpi -cp ${SOURCE}/mca_*.lib ${DEST}/lib/openmpi - -# -# Copy the executables -# -cp ${SOURCE}/*.exe ${DEST}/bin/ -cp ${SOURCE}/opal_wrapper.exe ${DEST}/bin/ -cp ${SOURCE}/opal_wrapper.exe ${DEST}/bin/ortecc.exe -cp ${SOURCE}/opal_wrapper.exe ${DEST}/bin/ortec++.exe -cp ${SOURCE}/opal_wrapper.exe ${DEST}/bin/ortecxx.exe -cp ${SOURCE}/opal_wrapper.exe ${DEST}/bin/mpicc.exe -cp ${SOURCE}/opal_wrapper.exe ${DEST}/bin/mpic++.exe -cp ${SOURCE}/opal_wrapper.exe ${DEST}/bin/mpicxx.exe -cp ${SOURCE}/opal_wrapper.exe ${DEST}/bin/mpif77.exe -cp ${SOURCE}/opal_wrapper.exe ${DEST}/bin/mpif90.exe -cp ${SOURCE}/orterun.exe ${DEST}/bin/mpirun.exe -cp ${SOURCE}/orterun.exe ${DEST}/bin/mpiexec.exe - -#cp ${DEST}/share/openmpi diff --git a/contrib/platform/win32/scripts/build_release_shared_32.bat b/contrib/platform/win32/scripts/build_release_shared_32.bat deleted file mode 100644 index be9d5245a1..0000000000 --- a/contrib/platform/win32/scripts/build_release_shared_32.bat +++ /dev/null @@ -1,36 +0,0 @@ - -SET src=%1 -SET cwd=D:\temp\OpenMPI - -copy open-mpi-logo.ico %src%\contrib\platform\win32\ -copy uninstall.ico %src%\contrib\platform\win32\ - -REM build 32 debug version -cd %cwd%\COMPILE -md %src%-shared-debug-32 -cd %src%-shared-debug-32 - -cmake -G "Visual Studio 10" -D CMAKE_INSTALL_PREFIX:PATH=%cwd%\%src%\installed-32 -D BUILD_SHARED_LIBS:BOOL=TRUE -D CMAKE_BUILD_TYPE:STRING=debug -D ORTE_WANT_CCP:BOOL=FALSE -D OMPI_WANT_CXX_BINDINGS:BOOL=TRUE -D OMPI_RELEASE_BUILD:BOOL=TRUE -D CMAKE_Fortran_COMPILER:FILEPATH="C:/Program Files (x86)/Intel/ComposerXE-2011/bin/ia32/ifort.exe" -D OMPI_WANT_F77_BINDINGS:BOOL=TRUE ..\..\%src% > configure-log.txt - -devenv.com OpenMPI.sln /build debug > build-log.txt - -devenv.com OpenMPI.sln /project INSTALL.vcxproj /build debug - -cd ..\.. - -REM build 32 release version -cd %cwd%\COMPILE -md %src%-shared-release-32 -cd %src%-shared-release-32 - -cmake -G "Visual Studio 10" -D CMAKE_INSTALL_PREFIX:PATH=%cwd%\%src%\installed-32 -D BUILD_SHARED_LIBS:BOOL=TRUE -D CMAKE_BUILD_TYPE:STRING=release -D ORTE_WANT_CCP:BOOL=FALSE -D OMPI_WANT_CXX_BINDINGS:BOOL=TRUE -D CMAKE_Fortran_COMPILER:FILEPATH="C:/Program Files (x86)/Intel/ComposerXE-2011/bin/ia32/ifort.exe" -D OMPI_WANT_F77_BINDINGS:BOOL=TRUE ..\..\%src% > configure-log.txt - -devenv.com OpenMPI.sln /build release > build-log.txt - -devenv.com OpenMPI.sln /project INSTALL.vcxproj /build release - -devenv.com OpenMPI.sln /project PACKAGE.vcxproj /build release - -cd ..\.. - - diff --git a/contrib/platform/win32/scripts/build_release_shared_64.bat b/contrib/platform/win32/scripts/build_release_shared_64.bat deleted file mode 100644 index 4e3c31e26c..0000000000 --- a/contrib/platform/win32/scripts/build_release_shared_64.bat +++ /dev/null @@ -1,34 +0,0 @@ - -SET src=%1 -SET cwd=D:\temp\OpenMPI - -copy open-mpi-logo.ico %src%\contrib\platform\win32\ -copy uninstall.ico %src%\contrib\platform\win32\ - -REM build 64 debug version -cd %cwd%\COMPILE -md %src%-shared-debug-64 -cd %src%-shared-debug-64 - -cmake -G "Visual Studio 10 Win64" -D CMAKE_INSTALL_PREFIX:PATH=%cwd%\%src%\installed-64 -D BUILD_SHARED_LIBS:BOOL=TRUE -D CMAKE_BUILD_TYPE:STRING=debug -D OMPI_WANT_CXX_BINDINGS:BOOL=TRUE -D OMPI_RELEASE_BUILD:BOOL=TRUE -D CMAKE_Fortran_COMPILER:FILEPATH="C:/Program Files (x86)/Intel/ComposerXE-2011/bin/amd64/ifort.exe" -D OMPI_WANT_F77_BINDINGS:BOOL=TRUE ..\..\%src% > configure-log.txt - -devenv.com OpenMPI.sln /build debug > build-log.txt - -devenv.com OpenMPI.sln /project INSTALL.vcxproj /build debug - -cd ..\.. - -REM build 32 release version -cd %cwd%\COMPILE -md %src%-shared-release-64 -cd %src%-shared-release-64 - -cmake -G "Visual Studio 10 Win64" -D CMAKE_INSTALL_PREFIX:PATH=%cwd%\%src%\installed-64 -D BUILD_SHARED_LIBS:BOOL=TRUE -D CMAKE_BUILD_TYPE:STRING=release -D OMPI_WANT_CXX_BINDINGS:BOOL=TRUE -D OMPI_RELEASE_BUILD:BOOL=TRUE -D CMAKE_Fortran_COMPILER:FILEPATH="C:/Program Files (x86)/Intel/ComposerXE-2011/bin/amd64/ifort.exe" -D OMPI_WANT_F77_BINDINGS:BOOL=TRUE ..\..\%src% > configure-log.txt - -devenv.com OpenMPI.sln /build release > build-log.txt - -devenv.com OpenMPI.sln /project INSTALL.vcxproj /build release - -devenv.com OpenMPI.sln /project PACKAGE.vcxproj /build release - -cd ..\.. \ No newline at end of file diff --git a/contrib/platform/win32/scripts/build_release_static_32.bat b/contrib/platform/win32/scripts/build_release_static_32.bat deleted file mode 100644 index e4de4b895a..0000000000 --- a/contrib/platform/win32/scripts/build_release_static_32.bat +++ /dev/null @@ -1,36 +0,0 @@ - -SET src=%1 -SET cwd=D:\temp\OpenMPI - -copy open-mpi-logo.ico %src%\contrib\platform\win32\ -copy uninstall.ico %src%\contrib\platform\win32\ - -REM build 32 debug version -cd %cwd%\COMPILE -md %src%-static-debug-32 -cd %src%-static-debug-32 - -cmake -G "Visual Studio 10" -D CMAKE_INSTALL_PREFIX:PATH=%cwd%\%src%\installed-32 -D BUILD_SHARED_LIBS:BOOL=FALSE -D CMAKE_BUILD_TYPE:STRING=debug -D ORTE_WANT_CCP:BOOL=FALSE -D OMPI_WANT_CXX_BINDINGS:BOOL=TRUE -D OMPI_RELEASE_BUILD:BOOL=TRUE -D CMAKE_Fortran_COMPILER:FILEPATH="C:/Program Files (x86)/Intel/ComposerXE-2011/bin/ia32/ifort.exe" -D OMPI_WANT_F77_BINDINGS:BOOL=TRUE ..\..\%src% > configure-log.txt - -devenv.com OpenMPI.sln /build debug > build-log.txt - -devenv.com OpenMPI.sln /project INSTALL.vcxproj /build debug - -cd ..\.. - -REM build 32 release version -cd %cwd%\COMPILE -md %src%-static-release-32 -cd %src%-static-release-32 - -cmake -G "Visual Studio 10" -D CMAKE_INSTALL_PREFIX:PATH=%cwd%\%src%\installed-32 -D BUILD_SHARED_LIBS:BOOL=FALSE -D CMAKE_BUILD_TYPE:STRING=release -D ORTE_WANT_CCP:BOOL=FALSE-D -D OMPI_WANT_CXX_BINDINGS:BOOL=TRUE -D OMPI_RELEASE_BUILD:BOOL=TRUE -D CMAKE_Fortran_COMPILER:FILEPATH="C:/Program Files (x86)/Intel/ComposerXE-2011/bin/ia32/ifort.exe" -D OMPI_WANT_F77_BINDINGS:BOOL=TRUE ..\..\%src% > configure-log.txt - -devenv.com OpenMPI.sln /build release > build-log.txt - -devenv.com OpenMPI.sln /project INSTALL.vcxproj /build release - -devenv.com OpenMPI.sln /project PACKAGE.vcxproj /build release - -cd ..\.. - - diff --git a/contrib/platform/win32/scripts/build_release_static_64.bat b/contrib/platform/win32/scripts/build_release_static_64.bat deleted file mode 100644 index 88477bd853..0000000000 --- a/contrib/platform/win32/scripts/build_release_static_64.bat +++ /dev/null @@ -1,34 +0,0 @@ - -SET src=%1 -SET cwd=D:\temp\OpenMPI - -copy open-mpi-logo.ico %src%\contrib\platform\win32\ -copy uninstall.ico %src%\contrib\platform\win32\ - -REM build 64 debug version -cd %cwd%\COMPILE -md %src%-static-debug-64 -cd %src%-static-debug-64 - -cmake -G "Visual Studio 10 Win64" -D CMAKE_INSTALL_PREFIX:PATH=%cwd%\%src%\installed-64 -D BUILD_SHARED_LIBS:BOOL=FALSE -D CMAKE_BUILD_TYPE:STRING=debug -D OMPI_WANT_CXX_BINDINGS:BOOL=TRUE -D OMPI_RELEASE_BUILD:BOOL=TRUE -D CMAKE_Fortran_COMPILER:FILEPATH="C:/Program Files (x86)/Intel/ComposerXE-2011/bin/amd64/ifort.exe" -D OMPI_WANT_F77_BINDINGS:BOOL=TRUE ..\..\%src% > configure-log.txt - -devenv.com OpenMPI.sln /build debug > build-log.txt - -devenv.com OpenMPI.sln /project INSTALL.vcxproj /build debug - -cd ..\.. - -REM build 32 release version -cd %cwd%\COMPILE -md %src%-static-release-64 -cd %src%-static-release-64 - -cmake -G "Visual Studio 10 Win64" -D CMAKE_INSTALL_PREFIX:PATH=%cwd%\%src%\installed-64 -D BUILD_SHARED_LIBS:BOOL=FALSE -D CMAKE_BUILD_TYPE:STRING=release -D OMPI_WANT_CXX_BINDINGS:BOOL=TRUE -D CMAKE_Fortran_COMPILER:FILEPATH="C:/Program Files (x86)/Intel/ComposerXE-2011/bin/amd64/ifort.exe" -D OMPI_WANT_F77_BINDINGS:BOOL=TRUE ..\..\%src% > configure-log.txt - -devenv.com OpenMPI.sln /build release > build-log.txt - -devenv.com OpenMPI.sln /project INSTALL.vcxproj /build release - -devenv.com OpenMPI.sln /project PACKAGE.vcxproj /build release - -cd ..\.. \ No newline at end of file diff --git a/contrib/platform/win32/scripts/readme.txt b/contrib/platform/win32/scripts/readme.txt deleted file mode 100644 index 4cd78fe048..0000000000 --- a/contrib/platform/win32/scripts/readme.txt +++ /dev/null @@ -1,8 +0,0 @@ -This folder contains the batch files for building Open MPI releases. - -Using the scripts is very straightforward, just specify the path to the ompi source as the first (only) parameter, e.g.: - build_release_shared_64.bat OpenMPI/openmpi-1.7 - -In the script, one may have to modify the cwd variable to a proper place, which is the absolute working path. - -The ompi icons may be also put in the same directory, so the generated installers will look better. diff --git a/ompi/mca/allocator/basic/.windows b/ompi/mca/allocator/basic/.windows deleted file mode 100644 index 5e0af15aec..0000000000 --- a/ompi/mca/allocator/basic/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi diff --git a/ompi/mca/allocator/basic/Makefile.am b/ompi/mca/allocator/basic/Makefile.am index fff062bbd4..fb8c168585 100644 --- a/ompi/mca/allocator/basic/Makefile.am +++ b/ompi/mca/allocator/basic/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ allocator_basic.c \ allocator_basic.h diff --git a/ompi/mca/allocator/bucket/.windows b/ompi/mca/allocator/bucket/.windows deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/ompi/mca/allocator/bucket/Makefile.am b/ompi/mca/allocator/bucket/Makefile.am index 3759bafb15..8836f46807 100644 --- a/ompi/mca/allocator/bucket/Makefile.am +++ b/ompi/mca/allocator/bucket/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ allocator_bucket.c \ allocator_bucket_alloc.c \ diff --git a/ompi/mca/bml/r2/.windows b/ompi/mca/bml/r2/.windows deleted file mode 100644 index 8d2f3e3450..0000000000 --- a/ompi/mca/bml/r2/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte diff --git a/ompi/mca/bml/r2/Makefile.am b/ompi/mca/bml/r2/Makefile.am index 6fedf2e0d7..6b4810f154 100644 --- a/ompi/mca/bml/r2/Makefile.am +++ b/ompi/mca/bml/r2/Makefile.am @@ -15,8 +15,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - r2_sources = \ bml_r2.c \ bml_r2.h \ diff --git a/ompi/mca/btl/openib/.windows b/ompi/mca/btl/openib/.windows deleted file mode 100644 index f2a72ec316..0000000000 --- a/ompi/mca/btl/openib/.windows +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte Ws2_32.lib -exclude_list=btl_openib_failover.c;btl_openib_failover.h;btl_openib_fd.c;btl_openib_fd.h;connect/btl_openib_connect_ibcm.h;connect/btl_openib_connect_ibcm.c;connect/btl_openib_connect_xoob.h;connect/btl_openib_connect_xoob.c -required_check=find_ofed_sdk diff --git a/ompi/mca/btl/openib/Makefile.am b/ompi/mca/btl/openib/Makefile.am index 5ea125fc92..dd1ab30cb4 100644 --- a/ompi/mca/btl/openib/Makefile.am +++ b/ompi/mca/btl/openib/Makefile.am @@ -21,8 +21,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - AM_CPPFLAGS = $(btl_openib_CPPFLAGS) AM_LFLAGS = -Pbtl_openib_ini_yy LEX_OUTPUT_ROOT = lex.btl_openib_ini_yy diff --git a/ompi/mca/btl/self/.windows b/ompi/mca/btl/self/.windows deleted file mode 100644 index 5e0af15aec..0000000000 --- a/ompi/mca/btl/self/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi diff --git a/ompi/mca/btl/self/Makefile.am b/ompi/mca/btl/self/Makefile.am index 31bc939e6f..64a7073c41 100644 --- a/ompi/mca/btl/self/Makefile.am +++ b/ompi/mca/btl/self/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - libmca_btl_self_la_sources = \ btl_self.c \ btl_self.h \ diff --git a/ompi/mca/btl/sm/.windows b/ompi/mca/btl/sm/.windows deleted file mode 100644 index bd2a56336f..0000000000 --- a/ompi/mca/btl/sm/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte libmca_common_sm diff --git a/ompi/mca/btl/sm/Makefile.am b/ompi/mca/btl/sm/Makefile.am index 69f0de7b91..ba0dc9a1a6 100644 --- a/ompi/mca/btl/sm/Makefile.am +++ b/ompi/mca/btl/sm/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - dist_pkgdata_DATA = help-mpi-btl-sm.txt libmca_btl_sm_la_sources = \ diff --git a/ompi/mca/btl/tcp/.windows b/ompi/mca/btl/tcp/.windows deleted file mode 100644 index 2f26f617d9..0000000000 --- a/ompi/mca/btl/tcp/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte Ws2_32.lib diff --git a/ompi/mca/btl/tcp/Makefile.am b/ompi/mca/btl/tcp/Makefile.am index 1d66c35ae4..93b6fd28be 100644 --- a/ompi/mca/btl/tcp/Makefile.am +++ b/ompi/mca/btl/tcp/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - dist_pkgdata_DATA = help-mpi-btl-tcp.txt sources = \ diff --git a/ompi/mca/btl/wv/.windows b/ompi/mca/btl/wv/.windows deleted file mode 100644 index 24ecd686ef..0000000000 --- a/ompi/mca/btl/wv/.windows +++ /dev/null @@ -1,13 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte Ws2_32.lib -required_check=find_winverbs diff --git a/ompi/mca/btl/wv/Makefile.am b/ompi/mca/btl/wv/Makefile.am deleted file mode 100644 index c541591b7d..0000000000 --- a/ompi/mca/btl/wv/Makefile.am +++ /dev/null @@ -1,79 +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-2010 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-2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -EXTRA_DIST = .windows - -AM_CPPFLAGS = $(btl_wv_CPPFLAGS) - -dist_pkgdata_DATA = help-mpi-btl-wv.txt \ - mca-btl-wv-device-params.ini \ - connect/help-mpi-btl-wv-cpc-base.txt - -sources = \ - btl_wv.c \ - btl_wv.h \ - btl_wv_component.c \ - btl_wv_def.h \ - btl_wv_eager_rdma.h \ - btl_wv_endpoint.c \ - btl_wv_endpoint.h \ - btl_wv_frag.c \ - btl_wv_frag.h \ - btl_wv_ini.c \ - btl_wv_ini.h \ - btl_wv_lex.h \ - btl_wv_lex.l \ - btl_wv_mca.c \ - btl_wv_mca.h \ - btl_wv_proc.c \ - btl_wv_proc.h \ - connect/base.h \ - connect/btl_wv_connect_base.c \ - connect/btl_wv_connect_oob.c \ - connect/btl_wv_connect_oob.h \ - connect/btl_wv_connect_empty.c \ - connect/btl_wv_connect_empty.h \ - connect/connect.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_btl_wv_DSO -lib = -lib_sources = -component = mca_btl_wv.la -component_sources = $(sources) -else -lib = libmca_btl_wv.la -lib_sources = $(sources) -component = -component_sources = -endif - -mcacomponentdir = $(pkglibdir) -mcacomponent_LTLIBRARIES = $(component) -mca_btl_wv_la_SOURCES = $(component_sources) -mca_btl_wv_la_LDFLAGS = -module -avoid-version $(btl_wv_LDFLAGS) -mca_btl_wv_la_LIBADD = $(btl_wv_LIBS) - -noinst_LTLIBRARIES = $(lib) -libmca_btl_wv_la_SOURCES = $(lib_sources) -libmca_btl_wv_la_LDFLAGS = -module -avoid-version $(btl_wv_LDFLAGS) -libmca_btl_wv_la_LIBADD = $(btl_wv_LIBS) diff --git a/ompi/mca/btl/wv/btl_wv.c b/ompi/mca/btl/wv/btl_wv.c deleted file mode 100644 index e4db9a2e2d..0000000000 --- a/ompi/mca/btl/wv/btl_wv.c +++ /dev/null @@ -1,1471 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; -*- */ -/* - * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2008 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-2010 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2006-2009 Mellanox Technologies. All rights reserved. - * Copyright (c) 2006-2012 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2006-2007 Voltaire All rights reserved. - * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2009 IBM Corporation. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" -#include - -#include "opal/class/opal_bitmap.h" -#include "opal/util/output.h" -#include "opal/util/arch.h" - -#include "ompi/mca/btl/btl.h" -#include "ompi/mca/btl/base/btl_base_error.h" - -#include "btl_wv_ini.h" - -#include "btl_wv.h" -#include "btl_wv_frag.h" -#include "btl_wv_proc.h" -#include "btl_wv_endpoint.h" -#include "opal/datatype/opal_convertor.h" -#include "ompi/mca/mpool/base/base.h" -#include "ompi/mca/mpool/grdma/mpool_grdma.h" -#include -#include -#include -#include - -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYS_RESOURCE_H -#include -#endif -#ifdef HAVE_UNISTD_H -#include -#endif -#ifndef MIN -#define MIN(a,b) ((a)<(b)?(a):(b)) -#endif - -mca_btl_wv_module_t mca_btl_wv_module = { - { - &mca_btl_wv_component.super, - 0, /* max size of first fragment */ - 0, /* min send fragment size */ - 0, /* max send fragment size */ - 0, /* btl_rdma_pipeline_send_length */ - 0, /* btl_rdma_pipeline_frag_size */ - 0, /* btl_min_rdma_pipeline_size */ - 0, /* exclusivity */ - 0, /* latency */ - 0, /* bandwidth */ - 0, /* TODO this should be PUT btl flags */ - 0, /* segment size */ - mca_btl_wv_add_procs, - mca_btl_wv_del_procs, - NULL, - mca_btl_wv_finalize, - /* we need alloc free, pack */ - mca_btl_wv_alloc, - mca_btl_wv_free, - mca_btl_wv_prepare_src, - mca_btl_wv_prepare_dst, - mca_btl_wv_send, - mca_btl_wv_sendi, /* send immediate */ - mca_btl_wv_put, - mca_btl_wv_get, - mca_btl_base_dump, - NULL, /* mpool */ - mca_btl_wv_register_error_cb, /* error call back registration */ - mca_btl_wv_ft_event - } -}; - -char* const mca_btl_wv_transport_name_strings[MCA_BTL_WV_TRANSPORT_SIZE] = { - "MCA_BTL_WV_TRANSPORT_IB", - "MCA_BTL_WV_TRANSPORT_IWARP", - "MCA_BTL_WV_TRANSPORT_RDMAOE", - "MCA_BTL_WV_TRANSPORT_UNKNOWN" -}; - -static int mca_btl_wv_finalize_resources(struct mca_btl_base_module_t* btl); - -void mca_btl_wv_show_init_error(const char *file, int line, - const char *func, const char *dev) -{ - if (ENOMEM == errno) {char *str_limit = NULL; - - opal_show_help("help-mpi-btl-wv.txt", "init-fail-no-mem", - true, ompi_process_info.nodename, - file, line, func, dev, str_limit); - - if (NULL != str_limit) free(str_limit); - } else { - opal_show_help("help-mpi-btl-wv.txt", "init-fail-create-q", - true, ompi_process_info.nodename, - file, line, func, strerror(errno), errno, dev); - } -} - -static inline struct wv_cq *create_cq_compat(struct wv_context *context, - int cqe, void *cq_context, struct wv_comp_channel *channel, - int comp_vector) -{ - struct wv_cq *cq; - HRESULT hr; - SIZE_T entries; - cq = (struct wv_cq*)malloc(sizeof(struct wv_cq)); - cq->context = context; - cq->channel = channel; - cq->cq_context = cq_context; - cq->notify_cnt = 0; - cq->ack_cnt = 0; - entries = cqe; - hr = context->device_if->CreateCompletionQueue(&entries, &cq->handle); - if (FAILED(hr)) { - goto err; - } - memset(&cq->comp_entry, 0, sizeof cq->comp_entry); - cq->cqe = (uint32_t) entries; - return cq; -err: - delete cq; - return NULL; -} - -static int adjust_cq(mca_btl_wv_device_t *device, const int cq) -{ - uint32_t cq_size = device->cq_size[cq]; - - /* make sure we don't exceed the maximum CQ size and that we - * don't size the queue smaller than otherwise requested - */ - if(cq_size < mca_btl_wv_component.ib_cq_size[cq]) - cq_size = mca_btl_wv_component.ib_cq_size[cq]; - - if(cq_size > (uint32_t)device->ib_dev_attr.MaxCqEntries) - cq_size = (uint32_t)device->ib_dev_attr.MaxCqEntries; - - if(NULL == device->ib_cq[cq]) { - device->ib_cq[cq] = create_cq_compat(device->ib_dev_context, cq_size, - NULL, NULL, 0); - if (NULL == device->ib_cq[cq]) { - mca_btl_wv_show_init_error(__FILE__, __LINE__, "create_cq", - device->ib_dev->name); - return OMPI_ERROR; - } - } - return OMPI_SUCCESS; -} - -/* - * create both the high and low priority completion queues - * and the shared receive queue (if requested) - */ -static int create_srq(mca_btl_wv_module_t *wv_btl) -{ - int qp, rc = 0; - int32_t rd_num, rd_curr_num; - - bool device_support_modify_srq = true; - - /* create the SRQ's */ - for(qp = 0; qp < mca_btl_wv_component.num_qps; qp++) { - struct wv_srq_init_attr attr; - memset(&attr, 0, sizeof(struct wv_srq_init_attr)); - - if(!BTL_WV_QP_TYPE_PP(qp)) { - attr.attr.max_wr = mca_btl_wv_component.qp_infos[qp].rd_num + - mca_btl_wv_component.qp_infos[qp].u.srq_qp.sd_max; - attr.attr.max_sge = 1; - wv_btl->qps[qp].u.srq_qp.rd_posted = 0; - wv_btl->qps[qp].u.srq_qp.srq = (struct wv_srq*) malloc(sizeof(wv_srq)); - wv_btl->qps[qp].u.srq_qp.srq->context = wv_btl->device->ib_pd->context; - wv_btl->qps[qp].u.srq_qp.srq->srq_context = attr.srq_context; - wv_btl->qps[qp].u.srq_qp.srq->pd = wv_btl->device->ib_pd; - wv_btl->device->ib_pd->handle->CreateSharedReceiveQueue(attr.attr.max_wr, - attr.attr.max_sge, attr.attr.srq_limit, - &wv_btl->qps[qp].u.srq_qp.srq->handle); - if (NULL == wv_btl->qps[qp].u.srq_qp.srq) { - mca_btl_wv_show_init_error(__FILE__, __LINE__, - "create_srq", - wv_btl->device->ib_dev->name); - return OMPI_ERROR; - } - - rd_num = mca_btl_wv_component.qp_infos[qp].rd_num; - rd_curr_num = wv_btl->qps[qp].u.srq_qp.rd_curr_num = mca_btl_wv_component.qp_infos[qp].u.srq_qp.rd_init; - - if(true == mca_btl_wv_component.enable_srq_resize && - true == device_support_modify_srq) { - if(0 == rd_curr_num) { - wv_btl->qps[qp].u.srq_qp.rd_curr_num = 1; - } - wv_btl->qps[qp].u.srq_qp.rd_low_local = rd_curr_num - (rd_curr_num >> 2); - wv_btl->qps[qp].u.srq_qp.srq_limit_event_flag = true; - } else { - wv_btl->qps[qp].u.srq_qp.rd_curr_num = rd_num; - wv_btl->qps[qp].u.srq_qp.rd_low_local = mca_btl_wv_component.qp_infos[qp].rd_low; - mca_btl_wv_component.qp_infos[qp].u.srq_qp.srq_limit = 0; - wv_btl->qps[qp].u.srq_qp.srq_limit_event_flag = false; - } - } - } - return OMPI_SUCCESS; -} - -static int mca_btl_wv_size_queues(struct mca_btl_wv_module_t* wv_btl, size_t nprocs) -{ - uint32_t send_cqes, recv_cqes; - int rc = OMPI_SUCCESS, qp; - mca_btl_wv_device_t *device = wv_btl->device; - - /* figure out reasonable sizes for completion queues */ - for(qp = 0; qp < mca_btl_wv_component.num_qps; qp++) { - if(BTL_WV_QP_TYPE_SRQ(qp)) { - send_cqes = mca_btl_wv_component.qp_infos[qp].u.srq_qp.sd_max; - recv_cqes = mca_btl_wv_component.qp_infos[qp].rd_num; - } else { - send_cqes = (mca_btl_wv_component.qp_infos[qp].rd_num + - mca_btl_wv_component.qp_infos[qp].u.pp_qp.rd_rsv) * nprocs; - recv_cqes = send_cqes; - } - wv_btl->device->cq_size[qp_cq_prio(qp)] += recv_cqes; - wv_btl->device->cq_size[BTL_WV_LP_CQ] += send_cqes; - } - - rc = adjust_cq(device, BTL_WV_HP_CQ); - if (OMPI_SUCCESS != rc) { - goto out; - } - - rc = adjust_cq(device, BTL_WV_LP_CQ); - if (OMPI_SUCCESS != rc) { - goto out; - } - - if (0 == wv_btl->num_peers && mca_btl_wv_component.num_srq_qps > 0 ) { - rc = create_srq(wv_btl); - } - - wv_btl->num_peers += nprocs; -out: - return rc; -} - -mca_btl_wv_transport_type_t mca_btl_wv_get_transport_type(mca_btl_wv_module_t* wv_btl) -{ - return MCA_BTL_WV_TRANSPORT_IB; -} - -static int mca_btl_wv_tune_endpoint(mca_btl_wv_module_t* wv_btl, - mca_btl_base_endpoint_t* endpoint) -{ - int ret = OMPI_SUCCESS; - - char* recv_qps = NULL; - - ompi_btl_wv_ini_values_t values; - - if(mca_btl_wv_get_transport_type(wv_btl) != endpoint->rem_info.rem_transport_type) { - opal_show_help("help-mpi-btl-wv.txt", - "conflicting transport types", true, - ompi_process_info.nodename, - wv_btl->device->ib_dev->name, - (wv_btl->device->ib_dev_attr).VendorId, - (wv_btl->device->ib_dev_attr).VendorPartId, - mca_btl_wv_transport_name_strings[mca_btl_wv_get_transport_type(wv_btl)], - endpoint->endpoint_proc->proc_ompi->proc_hostname, - endpoint->rem_info.rem_vendor_id, - endpoint->rem_info.rem_vendor_part_id, - mca_btl_wv_transport_name_strings[endpoint->rem_info.rem_transport_type]); - - return OMPI_ERROR; - } - - memset(&values, 0, sizeof(ompi_btl_wv_ini_values_t)); - ret = ompi_btl_wv_ini_query(endpoint->rem_info.rem_vendor_id, - endpoint->rem_info.rem_vendor_part_id, &values); - - if (OMPI_SUCCESS != ret && - OMPI_ERR_NOT_FOUND != ret) { - opal_show_help("help-mpi-btl-wv.txt", - "error in device init", true, - ompi_process_info.nodename, - wv_btl->device->ib_dev->name); - return ret; - } - - if(wv_btl->device->mtu < endpoint->rem_info.rem_mtu) { - endpoint->rem_info.rem_mtu = wv_btl->device->mtu; - } - - endpoint->use_eager_rdma = wv_btl->device->use_eager_rdma & - endpoint->use_eager_rdma; - - /* Receive queues checking */ - - /* In this check we assume that the command line or INI file parameters are the same - for all processes on all machines. The assumption is correct for 99.9999% of users, - if a user distributes different INI files or parameters for different node/procs, - it is on his own responsibility */ - switch(mca_btl_wv_component.receive_queues_source) { - case BTL_WV_RQ_SOURCE_MCA: - case BTL_WV_RQ_SOURCE_MAX: - break; - - /* If the queues configuration was set from command line - (with --mca btl_wv_receive_queues parameter) => both sides have a same configuration */ - - /* In this case the local queues configuration was gotten from INI file => - not possible that remote side got its queues configuration from command line => - (by prio) the configuration was set from INI file or (if not configure) - by default queues configuration */ - case BTL_WV_RQ_SOURCE_DEVICE_INI: - if(NULL != values.receive_queues) { - recv_qps = values.receive_queues; - } else { - recv_qps = mca_btl_wv_component.default_recv_qps; - } - - if(0 != strcmp(mca_btl_wv_component.receive_queues, - recv_qps)) { - opal_show_help("help-mpi-btl-wv.txt", - "unsupported queues configuration", true, - ompi_process_info.nodename, - wv_btl->device->ib_dev->name, - (wv_btl->device->ib_dev_attr).VendorId, - (wv_btl->device->ib_dev_attr).VendorPartId, - mca_btl_wv_component.receive_queues, - endpoint->endpoint_proc->proc_ompi->proc_hostname, - endpoint->rem_info.rem_vendor_id, - endpoint->rem_info.rem_vendor_part_id, - recv_qps); - - return OMPI_ERROR; - } - break; - - /* If the local queues configuration was set - by default queues => check all possible cases for remote side and compare */ - case BTL_WV_RQ_SOURCE_DEFAULT: - if(NULL != values.receive_queues) { - if(0 != strcmp(mca_btl_wv_component.receive_queues, - values.receive_queues)) { - opal_show_help("help-mpi-btl-wv.txt", - "unsupported queues configuration", true, - ompi_process_info.nodename, - wv_btl->device->ib_dev->name, - (wv_btl->device->ib_dev_attr).VendorId, - (wv_btl->device->ib_dev_attr).VendorPartId, - mca_btl_wv_component.receive_queues, - endpoint->endpoint_proc->proc_ompi->proc_hostname, - endpoint->rem_info.rem_vendor_id, - endpoint->rem_info.rem_vendor_part_id, - values.receive_queues); - - return OMPI_ERROR; - } - } - break; - } - - return OMPI_SUCCESS; -} - -/* - * add a proc to this btl module - * creates an endpoint that is setup on the - * first send to the endpoint - */ -int mca_btl_wv_add_procs(struct mca_btl_base_module_t* btl, - size_t nprocs, - struct ompi_proc_t **ompi_procs, - struct mca_btl_base_endpoint_t** peers, - opal_bitmap_t* reachable) -{ - mca_btl_wv_module_t* wv_btl = (mca_btl_wv_module_t*)btl; - int i,j, rc; - int rem_subnet_id_port_cnt; - int lcl_subnet_id_port_cnt = 0; - int btl_rank = 0; - mca_btl_base_endpoint_t* endpoint; - ompi_btl_wv_connect_base_module_t *local_cpc; - ompi_btl_wv_connect_base_module_data_t *remote_cpc_data; - - for(j=0; j < mca_btl_wv_component.ib_num_btls; j++){ - if(mca_btl_wv_component.wv_btls[j]->port_info.subnet_id - == wv_btl->port_info.subnet_id) { - if(wv_btl == mca_btl_wv_component.wv_btls[j]) { - btl_rank = lcl_subnet_id_port_cnt; - } - lcl_subnet_id_port_cnt++; - } - } - for (i = 0; i < (int) nprocs; i++) { - struct ompi_proc_t* ompi_proc = ompi_procs[i]; - mca_btl_wv_proc_t* ib_proc; - int remote_matching_port; - - opal_output(-1, "add procs: adding proc %d", i); - - /* OOB, XOOB, RDMACM, IBCM does not support SELF comunication, so - * mark the prco as unreachable by wv btl */ - if (OPAL_EQUAL == ompi_rte_compare_name_fields - (OMPI_RTE_CMP_ALL, OMPI_PROC_MY_NAME, &ompi_proc->proc_name)) { - continue; - } - - if(NULL == (ib_proc = mca_btl_wv_proc_create(ompi_proc))) { - return OMPI_ERR_OUT_OF_RESOURCE; - } - - /* check if the remote proc has any ports that: - - on the same subnet as the local proc, and - - on that subnet, has a CPC in common with the local proc - */ - remote_matching_port = -1; - rem_subnet_id_port_cnt = 0; - BTL_VERBOSE(("got %d port_infos ", ib_proc->proc_port_count)); - for (j = 0; j < (int) ib_proc->proc_port_count; j++){ - BTL_VERBOSE(("got a subnet %016" PRIx64, - ib_proc->proc_ports[j].pm_port_info.subnet_id)); - if (ib_proc->proc_ports[j].pm_port_info.subnet_id == - wv_btl->port_info.subnet_id) { - BTL_VERBOSE(("Got a matching subnet!")); - if (rem_subnet_id_port_cnt == btl_rank) { - remote_matching_port = j; - } - rem_subnet_id_port_cnt++; - } - } - - if (0 == rem_subnet_id_port_cnt) { - /* no use trying to communicate with this endpoint */ - BTL_VERBOSE(("No matching subnet id/CPC was found, moving on.. ")); - continue; - } - - /* If this process has multiple ports on a single subnet ID, - and the report proc also has multiple ports on this same - subnet ID, the default connection pattern is: - - LOCAL REMOTE PEER - 1st port on subnet X <--> 1st port on subnet X - 2nd port on subnet X <--> 2nd port on subnet X - 3nd port on subnet X <--> 3nd port on subnet X - ...etc. - - Note that the port numbers may not be contiguous, and they - may not be the same on either side. Hence the "1st", "2nd", - "3rd, etc. notation, above. - - Hence, if the local "rank" of this module's port on the - subnet ID is greater than the total number of ports on the - peer on this same subnet, then we have no match. So skip - this connection. */ - if (rem_subnet_id_port_cnt < lcl_subnet_id_port_cnt && - btl_rank >= rem_subnet_id_port_cnt) { - BTL_VERBOSE(("Not enough remote ports on this subnet id, moving on.. ")); - continue; - } - - /* Now that we have verified that we're on the same subnet and - the remote peer has enough ports, see if that specific port - on the peer has a matching CPC. */ - assert(btl_rank <= ib_proc->proc_port_count); - assert(remote_matching_port != -1); - if (OMPI_SUCCESS != - ompi_btl_wv_connect_base_find_match(wv_btl, - &(ib_proc->proc_ports[remote_matching_port]), - &local_cpc, - &remote_cpc_data)) { - continue; - } - - OPAL_THREAD_LOCK(&ib_proc->proc_lock); - - /* The btl_proc datastructure is shared by all IB BTL - * instances that are trying to reach this destination. - * Cache the peer instance on the btl_proc. - */ - endpoint = OBJ_NEW(mca_btl_wv_endpoint_t); - assert(((opal_object_t*)endpoint)->obj_reference_count == 1); - if(NULL == endpoint) { - OPAL_THREAD_UNLOCK(&ib_proc->proc_lock); - return OMPI_ERR_OUT_OF_RESOURCE; - } - - mca_btl_wv_endpoint_init(wv_btl, endpoint, - local_cpc, - &(ib_proc->proc_ports[remote_matching_port]), - remote_cpc_data); - - rc = mca_btl_wv_proc_insert(ib_proc, endpoint); - if (OMPI_SUCCESS != rc) { - OBJ_RELEASE(endpoint); - OPAL_THREAD_UNLOCK(&ib_proc->proc_lock); - continue; - } - - if(OMPI_SUCCESS != mca_btl_wv_tune_endpoint(wv_btl, endpoint)) { - OBJ_RELEASE(endpoint); - OPAL_THREAD_UNLOCK(&ib_proc->proc_lock); - return OMPI_ERROR; - } - - endpoint->index = opal_pointer_array_add(wv_btl->device->endpoints, (void*)endpoint); - if( 0 > endpoint->index ) { - OBJ_RELEASE(endpoint); - OPAL_THREAD_UNLOCK(&ib_proc->proc_lock); - continue; - } - - /* Tell the selected CPC that it won. NOTE: This call is - outside of / separate from mca_btl_wv_endpoint_init() - because this function likely needs the endpoint->index. */ - if (NULL != local_cpc->cbm_endpoint_init) { - rc = local_cpc->cbm_endpoint_init(endpoint); - if (OMPI_SUCCESS != rc) { - OBJ_RELEASE(endpoint); - OPAL_THREAD_UNLOCK(&ib_proc->proc_lock); - continue; - } - } - - opal_bitmap_set_bit(reachable, i); - OPAL_THREAD_UNLOCK(&ib_proc->proc_lock); - - peers[i] = endpoint; - } - - return mca_btl_wv_size_queues(wv_btl, nprocs); -} - -/* - * delete the proc as reachable from this btl module - */ -int mca_btl_wv_del_procs(struct mca_btl_base_module_t* btl, - size_t nprocs, - struct ompi_proc_t **procs, - struct mca_btl_base_endpoint_t ** peers) -{ - int i,ep_index; - mca_btl_wv_module_t* wv_btl = (mca_btl_wv_module_t*) btl; - mca_btl_wv_endpoint_t* endpoint; - - for (i=0 ; i < (int) nprocs ; i++) { - mca_btl_base_endpoint_t* del_endpoint = peers[i]; - for(ep_index=0; - ep_index < opal_pointer_array_get_size(wv_btl->device->endpoints); - ep_index++) { - endpoint = (mca_btl_wv_endpoint_t *) - opal_pointer_array_get_item(wv_btl->device->endpoints, - ep_index); - if(!endpoint || endpoint->endpoint_btl != wv_btl) { - continue; - } - if (endpoint == del_endpoint) { - BTL_VERBOSE(("in del_procs %d, setting another endpoint to null", - ep_index)); - opal_pointer_array_set_item(wv_btl->device->endpoints, - ep_index, NULL); - assert(((opal_object_t*)endpoint)->obj_reference_count == 1); - mca_btl_wv_proc_remove(procs[i], endpoint); - OBJ_RELEASE(endpoint); - } - } - } - - return OMPI_SUCCESS; -} - -/* - *Register callback function for error handling.. - */ -int mca_btl_wv_register_error_cb(struct mca_btl_base_module_t* btl, - mca_btl_base_module_error_cb_fn_t cbfunc) -{ - - mca_btl_wv_module_t* wv_btl = (mca_btl_wv_module_t*) btl; - wv_btl->error_cb = cbfunc; /* stash for later */ - return OMPI_SUCCESS; -} - -static inline mca_btl_base_descriptor_t * -ib_frag_alloc(mca_btl_wv_module_t *btl, size_t size, uint8_t order, - uint32_t flags) -{ - int qp, rc; - ompi_free_list_item_t* item = NULL; - - for(qp = 0; qp < mca_btl_wv_component.num_qps; qp++) { - if(mca_btl_wv_component.qp_infos[qp].size >= size) { - OMPI_FREE_LIST_GET(&btl->device->qps[qp].send_free, item, rc); - if(item) - break; - } - } - if(NULL == item) - return NULL; - - /* not all upper layer users set this */ - to_base_frag(item)->segment.base.seg_len = size; - to_base_frag(item)->base.order = order; - to_base_frag(item)->base.des_flags = flags; - - assert(to_send_frag(item)->qp_idx <= order); - return &to_base_frag(item)->base; -} - -/* check if pending fragment has enough space for coalescing */ -static mca_btl_wv_send_frag_t *check_coalescing(opal_list_t *frag_list, - opal_mutex_t *lock, - mca_btl_base_endpoint_t - *ep, size_t size) -{ - mca_btl_wv_send_frag_t *frag = NULL; - - if(opal_list_is_empty(frag_list)) - return NULL; - - OPAL_THREAD_LOCK(lock); - if(!opal_list_is_empty(frag_list)) { - int qp; - size_t total_length; - opal_list_item_t *i = opal_list_get_first(frag_list); - frag = to_send_frag(i); - if(to_com_frag(frag)->endpoint != ep || - MCA_BTL_WV_FRAG_CONTROL == wv_frag_type(frag)) { - OPAL_THREAD_UNLOCK(lock); - return NULL; - } - - total_length = size + frag->coalesced_length + - to_base_frag(frag)->segment.base.seg_len + - sizeof(mca_btl_wv_header_coalesced_t); - - qp = to_base_frag(frag)->base.order; - - if(total_length <= mca_btl_wv_component.qp_infos[qp].size) - opal_list_remove_first(frag_list); - else - frag = NULL; - } - OPAL_THREAD_UNLOCK(lock); - - return frag; -} - -/** - * Allocate a segment. - * - * @param btl (IN) BTL module - * @param size (IN) Request segment size. - * @param size (IN) Size of segment to allocate - * - * When allocating a segment we pull a pre-alllocated segment - * from one of two free lists, an eager list and a max list - */ -mca_btl_base_descriptor_t* mca_btl_wv_alloc(struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* ep, - uint8_t order, - size_t size, - uint32_t flags) -{ - mca_btl_wv_module_t *obtl = (mca_btl_wv_module_t*)btl; - int qp = frag_size_to_order(obtl, size); - mca_btl_wv_send_frag_t *sfrag = NULL; - mca_btl_wv_coalesced_frag_t *cfrag; - - assert(qp != MCA_BTL_NO_ORDER); - - if(mca_btl_wv_component.use_message_coalescing && - (flags & MCA_BTL_DES_FLAGS_BTL_OWNERSHIP)) { - int prio = !(flags & MCA_BTL_DES_FLAGS_PRIORITY); - sfrag = check_coalescing(&ep->qps[qp].no_wqe_pending_frags[prio], - &ep->endpoint_lock, ep, size); - - if(NULL == sfrag) { - if(BTL_WV_QP_TYPE_PP(qp)) { - sfrag = check_coalescing(&ep->qps[qp].no_credits_pending_frags[prio], - &ep->endpoint_lock, ep, size); - } else { - sfrag = check_coalescing( - &obtl->qps[qp].u.srq_qp.pending_frags[prio], - &obtl->ib_lock, ep, size); - } - } - } - - if(NULL == sfrag) - return ib_frag_alloc((mca_btl_wv_module_t*)btl, size, order, flags); - - /* begin coalescing message */ - cfrag = alloc_coalesced_frag(); - cfrag->send_frag = sfrag; - - /* fix up new coalescing header if this is the first coalesced frag */ - if(sfrag->hdr != sfrag->chdr) { - mca_btl_wv_control_header_t *ctrl_hdr; - mca_btl_wv_header_coalesced_t *clsc_hdr; - uint8_t org_tag; - - org_tag = sfrag->hdr->tag; - sfrag->hdr = sfrag->chdr; - ctrl_hdr = (mca_btl_wv_control_header_t*)(sfrag->hdr + 1); - clsc_hdr = (mca_btl_wv_header_coalesced_t*)(ctrl_hdr + 1); - sfrag->hdr->tag = MCA_BTL_TAG_BTL; - ctrl_hdr->type = MCA_BTL_WV_CONTROL_COALESCED; - clsc_hdr->tag = org_tag; - clsc_hdr->size = to_base_frag(sfrag)->segment.base.seg_len; - clsc_hdr->alloc_size = to_base_frag(sfrag)->segment.base.seg_len; - if(ep->nbo) - BTL_WV_HEADER_COALESCED_HTON(*clsc_hdr); - sfrag->coalesced_length = sizeof(mca_btl_wv_control_header_t) + - sizeof(mca_btl_wv_header_coalesced_t); - to_com_frag(sfrag)->sg_entry.pAddress = (void*)(uintptr_t)sfrag->hdr; - } - - cfrag->hdr = (mca_btl_wv_header_coalesced_t*) - (((unsigned char*)(sfrag->hdr + 1)) + sfrag->coalesced_length + - to_base_frag(sfrag)->segment.base.seg_len); - cfrag->hdr->alloc_size = size; - - /* point coalesced frag pointer into a data buffer */ - to_base_frag(cfrag)->segment.base.seg_addr.pval = cfrag->hdr + 1; - to_base_frag(cfrag)->segment.base.seg_len = size; - - /* save coalesced fragment on a main fragment; we will need it after send - * completion to free it and to call upper layer callback */ - opal_list_append(&sfrag->coalesced_frags, (opal_list_item_t*)cfrag); - sfrag->coalesced_length += (size+sizeof(mca_btl_wv_header_coalesced_t)); - - to_base_frag(cfrag)->base.des_flags = flags; - - return &to_base_frag(cfrag)->base; -} - -/** - * Return a segment - * - * Return the segment to the appropriate - * preallocated segment list - */ -int mca_btl_wv_free(struct mca_btl_base_module_t* btl, - mca_btl_base_descriptor_t* des) -{ - /* is this fragment pointing at user memory? */ - if(MCA_BTL_WV_FRAG_SEND_USER == wv_frag_type(des) || - MCA_BTL_WV_FRAG_RECV_USER == wv_frag_type(des)) { - mca_btl_wv_com_frag_t* frag = to_com_frag(des); - - if(frag->registration != NULL) { - btl->btl_mpool->mpool_deregister(btl->btl_mpool, - (mca_mpool_base_registration_t*)frag->registration); - frag->registration = NULL; - } - } - - /* reset those field on free so we will not have to do it on alloc */ - to_base_frag(des)->base.des_flags = 0; - switch(wv_frag_type(des)) { - case MCA_BTL_WV_FRAG_RECV: - case MCA_BTL_WV_FRAG_RECV_USER: - to_base_frag(des)->base.des_src = NULL; - to_base_frag(des)->base.des_src_cnt = 0; - break; - case MCA_BTL_WV_FRAG_SEND: - to_send_frag(des)->hdr = (mca_btl_wv_header_t*) - (((unsigned char*)to_send_frag(des)->chdr) + - sizeof(mca_btl_wv_header_coalesced_t) + - sizeof(mca_btl_wv_control_header_t)); - to_com_frag(des)->sg_entry.pAddress = - (void*)(uintptr_t)to_send_frag(des)->hdr; - to_send_frag(des)->coalesced_length = 0; - to_base_frag(des)->segment.base.seg_addr.pval = - to_send_frag(des)->hdr + 1; - assert(!opal_list_get_size(&to_send_frag(des)->coalesced_frags)); - /* fall throug */ - case MCA_BTL_WV_FRAG_SEND_USER: - to_base_frag(des)->base.des_dst = NULL; - to_base_frag(des)->base.des_dst_cnt = 0; - break; - default: - break; - } - MCA_BTL_IB_FRAG_RETURN(des); - - return OMPI_SUCCESS; -} - -/** - * register user buffer or pack - * data into pre-registered buffer and return a - * descriptor that can be - * used for send/put. - * - * @param btl (IN) BTL module - * @param peer (IN) BTL peer addressing - * - * prepare source's behavior depends on the following: - * Has a valid memory registration been passed to prepare_src? - * if so we attempt to use the pre-registered user-buffer, if the memory registration - * is too small (only a portion of the user buffer) then we must reregister the user buffer - * Has the user requested the memory to be left pinned? - * if so we insert the memory registration into a memory tree for later lookup, we - * may also remove a previous registration if a MRU (most recently used) list of - * registrations is full, this prevents resources from being exhausted. - * Is the requested size larger than the btl's max send size? - * if so and we aren't asked to leave the registration pinned, then we register the memory if - * the users buffer is contiguous - * Otherwise we choose from two free lists of pre-registered memory in which to pack the data into. - * - */ -mca_btl_base_descriptor_t* mca_btl_wv_prepare_src(struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* endpoint, - mca_mpool_base_registration_t* registration, - struct opal_convertor_t* convertor, - uint8_t order, - size_t reserve, - size_t* size, - uint32_t flags) -{ - mca_btl_wv_module_t *wv_btl; - mca_btl_wv_reg_t *wv_reg; - mca_btl_wv_com_frag_t *frag = NULL; - struct iovec iov; - uint32_t iov_count = 1; - size_t max_data = *size; - void *ptr; - int rc; - - wv_btl = (mca_btl_wv_module_t*)btl; - - if(opal_convertor_need_buffers(convertor) == false && 0 == reserve) { - /* GMS bloody HACK! */ - if(registration != NULL || max_data > btl->btl_max_send_size) { - frag = alloc_send_user_frag(); - if(NULL == frag) { - return NULL; - } - - iov.iov_len = max_data; - iov.iov_base = NULL; - - opal_convertor_pack(convertor, &iov, &iov_count, &max_data); - - *size = max_data; - - if(NULL == registration) { - rc = btl->btl_mpool->mpool_register(btl->btl_mpool, - iov.iov_base, max_data, 0, ®istration); - if(OMPI_SUCCESS != rc || NULL == registration) { - MCA_BTL_IB_FRAG_RETURN(frag); - return NULL; - } - /* keep track of the registration we did */ - to_com_frag(frag)->registration = - (mca_btl_wv_reg_t*)registration; - } - wv_reg = (mca_btl_wv_reg_t*)registration; - frag->sg_entry.Length = max_data; - frag->sg_entry.Lkey = wv_reg->mr->lkey; - frag->sg_entry.pAddress = (void*)(uintptr_t)iov.iov_base; - to_base_frag(frag)->base.order = order; - to_base_frag(frag)->base.des_flags = flags; - to_base_frag(frag)->segment.base.seg_len = max_data; - to_base_frag(frag)->segment.base.seg_addr.lval = (uint64_t)(uintptr_t) iov.iov_base; - to_base_frag(frag)->segment.key = (uint32_t)frag->sg_entry.Lkey; - assert(MCA_BTL_NO_ORDER == order); - BTL_VERBOSE(("frag->sg_entry.lkey = %" PRIu32 " .addr = %" PRIx64 - " frag->segment.seg_key.key32[0] = %" PRIu32, - frag->sg_entry.lkey, - frag->sg_entry.addr, - frag->sg_entry.lkey)); - return &to_base_frag(frag)->base; - } - } - - assert(MCA_BTL_NO_ORDER == order); - - if(max_data + reserve > btl->btl_max_send_size) { - max_data = btl->btl_max_send_size - reserve; - } - - if (OPAL_UNLIKELY(0 == reserve)) { - frag = (mca_btl_wv_com_frag_t *) ib_frag_alloc(wv_btl, max_data, order, flags); - if(NULL == frag) - return NULL; - - /* NTH: this frag will be ue used for either a get or put so we need to set the lval to be - consistent with the usage in get and put. the pval will be restored in mca_btl_openib_free */ - ptr = to_base_frag(frag)->segment.base.seg_addr.pval; - to_base_frag(frag)->segment.base.seg_addr.lval = - (uint64_t)(uintptr_t) ptr; - } else { - frag = - (mca_btl_wv_com_frag_t *) mca_btl_wv_alloc(btl, endpoint, order, - max_data + reserve, flags); - if(NULL == frag) - return NULL; - - ptr = to_base_frag(frag)->segment.base.seg_addr.pval; - } - - iov.iov_len = max_data; - iov.iov_base = (IOVBASE_TYPE *) ( (unsigned char*) ptr + reserve ); - rc = opal_convertor_pack(convertor, &iov, &iov_count, &max_data); - *size = max_data; - /* not all upper layer users set this */ - to_base_frag(frag)->segment.base.seg_len = max_data + reserve; - - return &to_base_frag(frag)->base; -} - -/** - * Prepare the dst buffer - * - * @param btl (IN) BTL module - * @param peer (IN) BTL peer addressing - * prepare dest's behavior depends on the following: - * Has a valid memory registration been passed to prepare_src? - * if so we attempt to use the pre-registered user-buffer, if the memory registration - * is to small (only a portion of the user buffer) then we must reregister the user buffer - * Has the user requested the memory to be left pinned? - * if so we insert the memory registration into a memory tree for later lookup, we - * may also remove a previous registration if a MRU (most recently used) list of - * registrations is full, this prevents resources from being exhausted. - */ -mca_btl_base_descriptor_t* mca_btl_wv_prepare_dst(struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* endpoint, - mca_mpool_base_registration_t* registration, - struct opal_convertor_t* convertor, - uint8_t order, - size_t reserve, - size_t* size, - uint32_t flags) -{ - mca_btl_wv_module_t *wv_btl; - mca_btl_wv_component_t *wv_component; - mca_btl_wv_com_frag_t *frag; - mca_btl_wv_reg_t *wv_reg; - size_t max_msg_sz; - int rc; - void *buffer; - - wv_btl = (mca_btl_wv_module_t*)btl; - wv_component = (mca_btl_wv_component_t*)btl->btl_component; - - frag = alloc_recv_user_frag(); - if(NULL == frag) { - return NULL; - } - - /* max_msg_sz is the maximum message size of the HCA (hw limitation) - set the minimum between local max_msg_sz and the remote */ - max_msg_sz = MIN(wv_btl->ib_port_attr.MaxMessageSize, - endpoint->endpoint_btl->ib_port_attr.MaxMessageSize); - - /* check if user has explicitly limited the max message size */ - if(wv_component->max_hw_msg_size > 0 && - max_msg_sz > wv_component->max_hw_msg_size) { - max_msg_sz = wv_component->max_hw_msg_size; - } - - /* limit the message so to max_msg_size */ - if(*size > max_msg_sz) { - *size = max_msg_sz; - BTL_VERBOSE(("message size limited to %d",*size)); - } - - opal_convertor_get_current_pointer(convertor, &buffer); - - if(NULL == registration){ - /* we didn't get a memory registration passed in, so we have to - * register the region ourselves - */ - rc = btl->btl_mpool->mpool_register(btl->btl_mpool, buffer, *size, 0, - ®istration); - if(OMPI_SUCCESS != rc || NULL == registration) { - MCA_BTL_IB_FRAG_RETURN(frag); - return NULL; - } - /* keep track of the registration we did */ - frag->registration = (mca_btl_wv_reg_t*)registration; - } - wv_reg = (mca_btl_wv_reg_t*)registration; - frag->sg_entry.Length = *size; - frag->sg_entry.Lkey = wv_reg->mr->lkey; - frag->sg_entry.pAddress = (void*)(uintptr_t)buffer; - to_base_frag(frag)->segment.base.seg_addr.lval = (uint64_t)(uintptr_t) buffer; - to_base_frag(frag)->segment.base.seg_len = *size; - to_base_frag(frag)->segment.key = wv_reg->mr->rkey; - to_base_frag(frag)->base.order = order; - to_base_frag(frag)->base.des_flags = flags; - BTL_VERBOSE(("frag->sg_entry.lkey = %" PRIu32 " .addr = %" PRIx64 " " - "frag->segment.seg_key.key32[0] = %" PRIu32, - frag->sg_entry.lkey, - frag->sg_entry.addr, - wv_reg->mr->rkey)); - - return &to_base_frag(frag)->base; -} - -static int mca_btl_wv_finalize_resources(struct mca_btl_base_module_t* btl) { - mca_btl_wv_module_t* wv_btl; - mca_btl_wv_endpoint_t* endpoint; - int ep_index, i; - int qp, rc = OMPI_SUCCESS; - wv_btl = (mca_btl_wv_module_t*) btl; - /* Sanity check */ - if( mca_btl_wv_component.ib_num_btls <= 0 ) { - return OMPI_SUCCESS; - } - /* Release all QPs */ - for (ep_index=0; - ep_index < opal_pointer_array_get_size(wv_btl->device->endpoints); - ep_index++) { - endpoint=(mca_btl_wv_endpoint_t *)opal_pointer_array_get_item(wv_btl->device->endpoints, - ep_index); - if(!endpoint) { - BTL_VERBOSE(("In finalize, got another null endpoint")); - continue; - } - if(endpoint->endpoint_btl != wv_btl) { - continue; - } - for(i = 0; i < wv_btl->device->eager_rdma_buffers_count; i++) { - if(wv_btl->device->eager_rdma_buffers[i] == endpoint) { - wv_btl->device->eager_rdma_buffers[i] = NULL; - OBJ_RELEASE(endpoint); - } - } - OBJ_RELEASE(endpoint); - } - - /* Release SRQ resources */ - for(qp = 0; qp < mca_btl_wv_component.num_qps; qp++) { - if(!BTL_WV_QP_TYPE_PP(qp)) { - MCA_BTL_WV_CLEAN_PENDING_FRAGS( - &wv_btl->qps[qp].u.srq_qp.pending_frags[0]); - MCA_BTL_WV_CLEAN_PENDING_FRAGS( - &wv_btl->qps[qp].u.srq_qp.pending_frags[1]); - if (NULL != wv_btl->qps[qp].u.srq_qp.srq) { - wv_btl->qps[qp].u.srq_qp.srq->handle->Release(); - free(wv_btl->qps[qp].u.srq_qp.srq); - } - OBJ_DESTRUCT(&wv_btl->qps[qp].u.srq_qp.pending_frags[0]); - OBJ_DESTRUCT(&wv_btl->qps[qp].u.srq_qp.pending_frags[1]); - } - } - - /* Finalize the CPC modules on this wv module */ - for (i = 0; i < wv_btl->num_cpcs; ++i) { - if (NULL != wv_btl->cpcs[i]->cbm_finalize) { - wv_btl->cpcs[i]->cbm_finalize(wv_btl, wv_btl->cpcs[i]); - } - free(wv_btl->cpcs[i]); - } - free(wv_btl->cpcs); - - /* Release device if there are no more users */ - if(!(--wv_btl->device->btls)) { - OBJ_RELEASE(wv_btl->device); - } - - if (NULL != wv_btl->qps) { - free(wv_btl->qps); - } - - return rc; -} - - -int mca_btl_wv_finalize(struct mca_btl_base_module_t* btl) -{ - mca_btl_wv_module_t* wv_btl; - int i, rc = OMPI_SUCCESS; - - wv_btl = (mca_btl_wv_module_t*) btl; - - /* Sanity check */ - if( mca_btl_wv_component.ib_num_btls <= 0 ) { - return 0; - } - - if( OMPI_SUCCESS != (rc = mca_btl_wv_finalize_resources(btl) ) ) { - BTL_VERBOSE(("Failed to finalize resources")); - } - - /* Remove the btl from component list */ - if ( mca_btl_wv_component.ib_num_btls > 1 ) { - for(i = 0; i < mca_btl_wv_component.ib_num_btls; i++){ - if (mca_btl_wv_component.wv_btls[i] == wv_btl){ - mca_btl_wv_component.wv_btls[i] = - mca_btl_wv_component.wv_btls[mca_btl_wv_component.ib_num_btls-1]; - break; - } - } - } - - mca_btl_wv_component.ib_num_btls--; - - OBJ_DESTRUCT(&wv_btl->ib_lock); - free(wv_btl); - - BTL_VERBOSE(("Success in closing BTL resources")); - - return rc; -} - -/* - * Send immediate - Minimum function calls minimum checks, send the data ASAP. - * If BTL can't to send the messages imidiate, it creates messages descriptor - * returns it to PML. - */ -int mca_btl_wv_sendi(struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* ep, - struct opal_convertor_t* convertor, - void* header, - size_t header_size, - size_t payload_size, - uint8_t order, - uint32_t flags, - mca_btl_base_tag_t tag, - mca_btl_base_descriptor_t** descriptor) -{ - mca_btl_wv_module_t *obtl = (mca_btl_wv_module_t*)btl; - size_t size = payload_size + header_size; - size_t eager_limit; - int rc, - qp = frag_size_to_order(obtl, size), - prio = !(flags & MCA_BTL_DES_FLAGS_PRIORITY), - ib_rc; - int32_t cm_return; - bool do_rdma = false; - ompi_free_list_item_t* item = NULL; - mca_btl_wv_frag_t *frag; - mca_btl_wv_header_t *hdr; - - OPAL_THREAD_LOCK(&ep->endpoint_lock); - - if (OPAL_UNLIKELY(MCA_BTL_IB_CONNECTED != ep->endpoint_state)) { - goto cant_send; - } - - /* If it is pending messages on the qp - we can not send */ - if(OPAL_UNLIKELY(!opal_list_is_empty(&ep->qps[qp].no_wqe_pending_frags[prio]))) { - goto cant_send; - } - - /* Allocate WQE */ - if(OPAL_UNLIKELY(qp_get_wqe(ep, qp) < 0)) { - goto no_credits_or_wqe; - } - - /* eager rdma or send ? Check eager rdma credits */ - /* Note: Maybe we want to implement isend only for eager rdma ?*/ - eager_limit = mca_btl_wv_component.eager_limit + - sizeof(mca_btl_wv_header_coalesced_t) + - sizeof(mca_btl_wv_control_header_t); - - if(OPAL_LIKELY(size <= eager_limit)) { - if(acquire_eager_rdma_send_credit(ep) == OMPI_SUCCESS) { - do_rdma = true; - } - } - - /* Check send credits if it is no rdma */ - if(!do_rdma) { - if(BTL_WV_QP_TYPE_PP(qp)) { - if(OPAL_UNLIKELY(OPAL_THREAD_ADD32(&ep->qps[qp].u.pp_qp.sd_credits, -1) < 0)){ - OPAL_THREAD_ADD32(&ep->qps[qp].u.pp_qp.sd_credits, 1); - goto no_credits_or_wqe; - } - } else { - if(OPAL_UNLIKELY(OPAL_THREAD_ADD32(&obtl->qps[qp].u.srq_qp.sd_credits, -1) < 0)){ - OPAL_THREAD_ADD32(&obtl->qps[qp].u.srq_qp.sd_credits, 1); - goto no_credits_or_wqe; - } - } - } - - /* Allocate fragment */ - OMPI_FREE_LIST_GET(&obtl->device->qps[qp].send_free, item, rc); - if(OPAL_UNLIKELY(NULL == item)) { - /* we don't return NULL because maybe later we will try to coalesce */ - goto no_frags; - } - frag = to_base_frag(item); - hdr = to_send_frag(item)->hdr; - frag->segment.base.seg_len = size; - frag->base.order = qp; - frag->base.des_flags = flags; - hdr->tag = tag; - to_com_frag(item)->endpoint = ep; - - /* put match header */ - memcpy(frag->segment.base.seg_addr.pval, header, header_size); - - /* Pack data */ - if(payload_size) { - size_t max_data; - struct iovec iov; - uint32_t iov_count; - /* pack the data into the supplied buffer */ - iov.iov_base = (IOVBASE_TYPE*)((unsigned char*)frag->segment.base.seg_addr.pval + header_size); - iov.iov_len = max_data = payload_size; - iov_count = 1; - - (void)opal_convertor_pack( convertor, &iov, &iov_count, &max_data); - - assert(max_data == payload_size); - } - - /* Set all credits */ - BTL_WV_GET_CREDITS(ep->eager_rdma_local.credits, hdr->credits); - if(hdr->credits) - hdr->credits |= BTL_WV_RDMA_CREDITS_FLAG; - - if(!do_rdma) { - if(BTL_WV_QP_TYPE_PP(qp) && 0 == hdr->credits) { - BTL_WV_GET_CREDITS(ep->qps[qp].u.pp_qp.rd_credits, hdr->credits); - } - } else { - hdr->credits |= (qp << 11); - } - - BTL_WV_GET_CREDITS(ep->qps[qp].u.pp_qp.cm_return, cm_return); - /* cm_seen is only 8 bytes, but cm_return is 32 bytes */ - if(cm_return > 255) { - hdr->cm_seen = 255; - cm_return -= 255; - OPAL_THREAD_ADD32(&ep->qps[qp].u.pp_qp.cm_return, cm_return); - } else { - hdr->cm_seen = cm_return; - } - - ib_rc = post_send(ep, to_send_frag(item), do_rdma); - - if(!ib_rc) { - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - return OMPI_SUCCESS; - } - - /* Failed to send, do clean up all allocated resources */ - if(ep->nbo) { - BTL_WV_HEADER_NTOH(*hdr); - } - if(BTL_WV_IS_RDMA_CREDITS(hdr->credits)) { - OPAL_THREAD_ADD32(&ep->eager_rdma_local.credits, - BTL_WV_CREDITS(hdr->credits)); - } - if (!do_rdma && BTL_WV_QP_TYPE_PP(qp)) { - OPAL_THREAD_ADD32(&ep->qps[qp].u.pp_qp.rd_credits, - hdr->credits); - } -no_frags: - if(do_rdma) { - OPAL_THREAD_ADD32(&ep->eager_rdma_remote.tokens, 1); - } else { - if(BTL_WV_QP_TYPE_PP(qp)) { - OPAL_THREAD_ADD32(&ep->qps[qp].u.pp_qp.sd_credits, 1); - } else if BTL_WV_QP_TYPE_SRQ(qp){ - OPAL_THREAD_ADD32(&obtl->qps[qp].u.srq_qp.sd_credits, 1); - } - } -no_credits_or_wqe: - qp_put_wqe(ep, qp); -cant_send: - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - /* We can not send the data directly, so we just return descriptor */ - *descriptor = mca_btl_wv_alloc(btl, ep, order, size, flags); - return OMPI_ERR_RESOURCE_BUSY; -} -/* - * Initiate a send. - */ - -int mca_btl_wv_send( - struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* ep, - struct mca_btl_base_descriptor_t* des, - mca_btl_base_tag_t tag) - -{ - mca_btl_wv_send_frag_t *frag; - - assert(wv_frag_type(des) == MCA_BTL_WV_FRAG_SEND || - wv_frag_type(des) == MCA_BTL_WV_FRAG_COALESCED); - - if(wv_frag_type(des) == MCA_BTL_WV_FRAG_COALESCED) { - to_coalesced_frag(des)->hdr->tag = tag; - to_coalesced_frag(des)->hdr->size = des->des_src->seg_len; - if(ep->nbo) - BTL_WV_HEADER_COALESCED_HTON(*to_coalesced_frag(des)->hdr); - frag = to_coalesced_frag(des)->send_frag; - } else { - frag = to_send_frag(des); - to_com_frag(des)->endpoint = ep; - frag->hdr->tag = tag; - } - - des->des_flags |= MCA_BTL_DES_SEND_ALWAYS_CALLBACK; - - return mca_btl_wv_endpoint_send(ep, frag); -} - -/* - * RDMA WRITE local buffer to remote buffer address. - */ - -int mca_btl_wv_put(mca_btl_base_module_t* btl, - mca_btl_base_endpoint_t* ep, - mca_btl_base_descriptor_t* descriptor) -{ - WV_SEND_REQUEST *bad_wr; - HRESULT hr = 0; - mca_btl_wv_out_frag_t* frag = to_out_frag(descriptor); - int qp = descriptor->order; - - mca_btl_openib_segment_t *src_seg = (mca_btl_openib_segment_t *) descriptor->des_src; - mca_btl_openib_segment_t *dst_seg = (mca_btl_openib_segment_t *) descriptor->des_dst; - - uint64_t rem_addr = descriptor->des_dst->seg_addr.lval; - uint32_t rkey = dst_seg->key; - assert(wv_frag_type(frag) == MCA_BTL_WV_FRAG_SEND_USER || - wv_frag_type(frag) == MCA_BTL_WV_FRAG_SEND); - descriptor->des_flags |= MCA_BTL_DES_SEND_ALWAYS_CALLBACK; - - if(ep->endpoint_state != MCA_BTL_IB_CONNECTED) { - int rc; - OPAL_THREAD_LOCK(&ep->endpoint_lock); - rc = check_endpoint_state(ep, descriptor, &ep->pending_put_frags); - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - if(OMPI_ERR_RESOURCE_BUSY == rc) - return OMPI_SUCCESS; - if(OMPI_SUCCESS != rc) - return rc; - } - - if(MCA_BTL_NO_ORDER == qp) - qp = mca_btl_wv_component.rdma_qp; - - /* check for a send wqe */ - if (qp_get_wqe(ep, qp) < 0) { - qp_put_wqe(ep, qp); - OPAL_THREAD_LOCK(&ep->endpoint_lock); - opal_list_append(&ep->pending_put_frags, (opal_list_item_t*)frag); - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - return OMPI_SUCCESS; - } - - frag->sr_desc.Wr.Rdma.RemoteAddress = htonll(rem_addr); - frag->sr_desc.Wr.Rdma.Rkey = htonl(rkey); - to_com_frag(frag)->sg_entry.pAddress = - (void*)(uintptr_t)descriptor->des_src->seg_addr.lval; - to_com_frag(frag)->sg_entry.Length = descriptor->des_src->seg_len; - to_com_frag(frag)->endpoint = ep; - descriptor->order = qp; - /* Setting opcode on a frag constructor isn't enough since prepare_src - * may return send_frag instead of put_frag */ - frag->sr_desc.Opcode = WvRdmaWrite; - frag->sr_desc.Flags = ib_send_flags(descriptor->des_src->seg_len, &(ep->qps[qp])); - hr = ep->qps[qp].qp->lcl_qp->handle->PostSend((WV_SEND_REQUEST*)&frag->sr_desc, - (WV_SEND_REQUEST**)&bad_wr); - if(FAILED(hr)) - return OMPI_ERROR; - - return OMPI_SUCCESS; -} - -/* - * RDMA READ remote buffer to local buffer address. - */ - -int mca_btl_wv_get(mca_btl_base_module_t* btl, - mca_btl_base_endpoint_t* ep, - mca_btl_base_descriptor_t* descriptor) -{ - WV_SEND_REQUEST *bad_wr; - HRESULT hr = 0; - mca_btl_wv_get_frag_t* frag = to_get_frag(descriptor); - int qp = descriptor->order; - - mca_btl_openib_segment_t *src_seg = (mca_btl_openib_segment_t *) descriptor->des_src; - mca_btl_openib_segment_t *dst_seg = (mca_btl_openib_segment_t *) descriptor->des_dst; - - uint64_t rem_addr = descriptor->des_src->seg_addr.lval; - uint32_t rkey = dst_seg->key; - assert(wv_frag_type(frag) == MCA_BTL_WV_FRAG_RECV_USER); - descriptor->des_flags |= MCA_BTL_DES_SEND_ALWAYS_CALLBACK; - - if(ep->endpoint_state != MCA_BTL_IB_CONNECTED) { - int rc; - OPAL_THREAD_LOCK(&ep->endpoint_lock); - rc = check_endpoint_state(ep, descriptor, &ep->pending_get_frags); - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - if(OMPI_ERR_RESOURCE_BUSY == rc) - return OMPI_SUCCESS; - if(OMPI_SUCCESS != rc) - return rc; - } - - if(MCA_BTL_NO_ORDER == qp) - qp = mca_btl_wv_component.rdma_qp; - - /* check for a send wqe */ - if (qp_get_wqe(ep, qp) < 0) { - qp_put_wqe(ep, qp); - OPAL_THREAD_LOCK(&ep->endpoint_lock); - opal_list_append(&ep->pending_get_frags, (opal_list_item_t*)frag); - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - return OMPI_SUCCESS; - } - - /* check for a get token */ - if(OPAL_THREAD_ADD32(&ep->get_tokens,-1) < 0) { - qp_put_wqe(ep, qp); - OPAL_THREAD_ADD32(&ep->get_tokens,1); - OPAL_THREAD_LOCK(&ep->endpoint_lock); - opal_list_append(&ep->pending_get_frags, (opal_list_item_t*)frag); - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - return OMPI_SUCCESS; - } - - frag->sr_desc.Wr.Rdma.RemoteAddress = htonll(rem_addr); - frag->sr_desc.Wr.Rdma.Rkey = htonl(rkey); - to_com_frag(frag)->sg_entry.pAddress = - (void*)(uintptr_t)descriptor->des_dst->seg_addr.lval; - to_com_frag(frag)->sg_entry.Length = descriptor->des_dst->seg_len; - to_com_frag(frag)->endpoint = ep; - descriptor->order = qp; - hr = ep->qps[qp].qp->lcl_qp->handle->PostSend((WV_SEND_REQUEST*)&frag->sr_desc, - (WV_SEND_REQUEST**)&bad_wr); - if(FAILED(hr)) - return OMPI_ERROR; - - return OMPI_SUCCESS; -} - -int mca_btl_wv_ft_event(int state) { - return OMPI_SUCCESS; -} diff --git a/ompi/mca/btl/wv/btl_wv.h b/ompi/mca/btl/wv/btl_wv.h deleted file mode 100644 index b46c1b8567..0000000000 --- a/ompi/mca/btl/wv/btl_wv.h +++ /dev/null @@ -1,687 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; -*- */ -/* - * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2009 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2007 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-2008 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2006-2009 Mellanox Technologies. All rights reserved. - * Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2006-2007 Voltaire All rights reserved. - * Copyright (c) 2009-2010 Oracle and/or its affiliates. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - * @file - */ - -#ifndef MCA_BTL_IB_H -#define MCA_BTL_IB_H - -#include "ompi_config.h" -#include -#include -#include "btl_wv_def.h" - -/* Open MPI includes */ -#include "ompi/class/ompi_free_list.h" -#include "opal/class/opal_pointer_array.h" -#include "opal/class/opal_hash_table.h" -#include "opal/util/output.h" -#include "opal/mca/event/event.h" -#include "opal/threads/threads.h" -#include "ompi/mca/btl/btl.h" -#include "ompi/mca/mpool/mpool.h" -#include "ompi/mca/btl/base/btl_base_error.h" - -#include "ompi/mca/btl/btl.h" -#include "ompi/mca/btl/base/base.h" - -#include "connect/connect.h" - -BEGIN_C_DECLS - - -#define MCA_BTL_IB_LEAVE_PINNED 1 -#define IB_DEFAULT_GID_PREFIX 0xfe80000000000000ll -#define MCA_BTL_IB_PKEY_MASK 0x7fff - - -/*--------------------------------------------------------------------*/ - -#if OPAL_ENABLE_DEBUG -#define ATTACH() do { \ - int i = 0; \ - opal_output(0, "WAITING TO DEBUG ATTACH"); \ - while (i == 0) sleep(5); \ - } while(0); -#else -#define ATTACH() -#endif - -/*--------------------------------------------------------------------*/ - -/** - * Infiniband (IB) BTL component. - */ - -typedef enum { - MCA_BTL_WV_TRANSPORT_IB, - MCA_BTL_WV_TRANSPORT_IWARP, - MCA_BTL_WV_TRANSPORT_RDMAOE, - MCA_BTL_WV_TRANSPORT_UNKNOWN, - MCA_BTL_WV_TRANSPORT_SIZE -} mca_btl_wv_transport_type_t; - -typedef enum { - MCA_BTL_WV_PP_QP, - MCA_BTL_WV_SRQ_QP, -} mca_btl_wv_qp_type_t; - -struct mca_btl_wv_pp_qp_info_t { - int32_t rd_win; - int32_t rd_rsv; -}; typedef struct mca_btl_wv_pp_qp_info_t mca_btl_wv_pp_qp_info_t; - -struct mca_btl_wv_srq_qp_info_t { - int32_t sd_max; - /* The init value for rd_curr_num variables of all SRQs */ - int32_t rd_init; - /* The watermark, threshold - if the number of WQEs in SRQ is less then this value => - the SRQ limit event will be generated on corresponding SRQ. - As result the maximal number of pre-posted WQEs on the SRQ will be increased */ - int32_t srq_limit; -}; typedef struct mca_btl_wv_srq_qp_info_t mca_btl_wv_srq_qp_info_t; - -struct mca_btl_wv_qp_info_t { - mca_btl_wv_qp_type_t type; - size_t size; - int32_t rd_num; - int32_t rd_low; - union { - mca_btl_wv_pp_qp_info_t pp_qp; - mca_btl_wv_srq_qp_info_t srq_qp; - } u; -}; typedef struct mca_btl_wv_qp_info_t mca_btl_wv_qp_info_t; - -#define BTL_WV_QP_TYPE(Q) (mca_btl_wv_component.qp_infos[(Q)].type) -#define BTL_WV_QP_TYPE_PP(Q) \ - (BTL_WV_QP_TYPE(Q) == MCA_BTL_WV_PP_QP) -#define BTL_WV_QP_TYPE_SRQ(Q) \ - (BTL_WV_QP_TYPE(Q) == MCA_BTL_WV_SRQ_QP) - -typedef enum { - BTL_WV_RQ_SOURCE_DEFAULT, - BTL_WV_RQ_SOURCE_MCA, - BTL_WV_RQ_SOURCE_DEVICE_INI, - BTL_WV_RQ_SOURCE_MAX -} btl_wv_receive_queues_source_t; - -typedef enum { - BTL_WV_DT_IB, - BTL_WV_DT_IWARP, - BTL_WV_DT_ALL -} btl_wv_device_type_t; - -struct mca_btl_wv_component_t { - /**< base BTL component */ - mca_btl_base_component_2_0_0_t super; - - /**< maximum number of devices available to wv component */ - int ib_max_btls; - - /**< number of devices available to the wv component */ - int ib_num_btls; - - /**< array of available BTLs */ - struct mca_btl_wv_module_t **wv_btls; - - /**< array of available devices */ - opal_pointer_array_t devices; - int devices_count; - - /**< initial size of free lists */ - int ib_free_list_num; - - /**< maximum size of free lists */ - int ib_free_list_max; - - /**< number of elements to alloc when growing free lists */ - int ib_free_list_inc; - - /**< list of ib proc structures */ - opal_list_t ib_procs; - - /**< event structure for sends */ - opal_event_t ib_send_event; - - /**< event structure for recvs */ - opal_event_t ib_recv_event; - - /**< lock for accessing module state */ - opal_mutex_t ib_lock; - - /**< name of ib memory pool */ - char* ib_mpool_name; - - /**< number of pp qp's */ - uint8_t num_pp_qps; - /**< number of srq qp's */ - uint8_t num_srq_qps; - /**< total number of qp's */ - uint8_t num_qps; - - mca_btl_wv_qp_info_t *qp_infos; - - /**< Eager send limit of first fragment, in Bytes */ - size_t eager_limit; - /**< Maximum send size, in Bytes */ - size_t max_send_size; - /**< Maximum message size for RDMA protocols in Bytes */ - int32_t max_hw_msg_size; - /**< Length of the registration cache most recently used list */ - uint32_t reg_mru_len; - /**< Use the Shared Receive Queue (SRQ mode) */ - uint32_t use_srq; - - /**< Max outstanding CQE on the CQ */ - uint32_t ib_cq_size[2]; - - /**< Max size of inline data */ - int32_t ib_max_inline_data; - - uint32_t ib_pkey_val; - uint32_t ib_psn; - uint32_t ib_qp_ous_rd_atom; - uint32_t ib_mtu; - uint32_t ib_min_rnr_timer; - uint32_t ib_timeout; - uint32_t ib_retry_count; - uint32_t ib_rnr_retry; - uint32_t ib_max_rdma_dst_ops; - uint32_t ib_service_level; - uint32_t ib_path_rec_service_level; - int32_t use_eager_rdma; - /**< After this number of msg, use RDMA for short messages, always */ - int32_t eager_rdma_threshold; - int32_t eager_rdma_num; - int32_t max_eager_rdma; - uint32_t btls_per_lid; - uint32_t max_lmc; - int32_t apm_lmc; - int32_t apm_ports; - /**< Preferred communication buffer alignment in Bytes (must be power of two) */ - uint32_t buffer_alignment; - btl_wv_device_type_t device_type; - char *if_include; - char **if_include_list; - char *if_exclude; - char **if_exclude_list; - char *ipaddr_include; - char *ipaddr_exclude; - - /* MCA param btl_wv_receive_queues */ - char *receive_queues; - /* Whether we got a non-default value of btl_wv_receive_queues */ - btl_wv_receive_queues_source_t receive_queues_source; - - /** Colon-delimited list of filenames for device parameters */ - char *device_params_file_names; - - /** Whether we're in verbose mode or not */ - bool verbose; - - /** Whether we want a warning if no device-specific parameters are - found in INI files */ - bool warn_no_device_params_found; - /** Whether we want a warning if non default GID prefix is not configured - on multiport setup */ - bool warn_default_gid_prefix; - /** Whether we want a warning if the user specifies a non-existent - device and/or port via btl_wv_if_[in|ex]clude MCA params */ - bool warn_nonexistent_if; - /** Dummy argv-style list; a copy of names from the - if_[in|ex]clude list that we use for error checking (to ensure - that they all exist) */ - char **if_list; - bool use_message_coalescing; - uint32_t cq_poll_ratio; - uint32_t cq_poll_progress; - uint32_t eager_rdma_poll_ratio; - int rdma_qp; - /* qp used for software flow control */ - int credits_qp; - bool cpc_explicitly_defined; - /**< free list of frags only; used for pining user memory */ - ompi_free_list_t send_user_free; - /**< free list of frags only; used for pining user memory */ - ompi_free_list_t recv_user_free; - /**< frags for coalesced massages */ - ompi_free_list_t send_free_coalesced; - /** Default receive queues */ - char *default_recv_qps; - /** Whether we want a dynamically resizing srq, enabled by default */ - bool enable_srq_resize; -#if BTL_WV_FAILOVER_ENABLED - int verbose_failover; -#endif -}; typedef struct mca_btl_wv_component_t mca_btl_wv_component_t; - -OMPI_MODULE_DECLSPEC extern mca_btl_wv_component_t mca_btl_wv_component; - -typedef mca_btl_base_recv_reg_t mca_btl_wv_recv_reg_t; - -/** - * Common information for all ports that is sent in the modex message - */ -typedef struct mca_btl_wv_modex_message_t { - /** The subnet ID of this port */ - uint64_t subnet_id; - /** LID of this port */ - uint16_t lid; - /** APM LID for this port */ - uint16_t apm_lid; - /** The MTU used by this port */ - uint8_t mtu; - /** vendor id define device type and tuning */ - uint32_t vendor_id; - /** vendor part id define device type and tuning */ - uint32_t vendor_part_id; - /** Transport type of remote port */ - uint8_t transport_type; - /** Dummy field used to calculate the real length */ - uint8_t end; -} mca_btl_wv_modex_message_t; - -#define MCA_BTL_WV_MODEX_MSG_NTOH(hdr) \ - do { \ - (hdr).subnet_id = ntoh64((hdr).subnet_id); \ - (hdr).lid = ntohs((hdr).lid); \ - } while (0) -#define MCA_BTL_WV_MODEX_MSG_HTON(hdr) \ - do { \ - (hdr).subnet_id = hton64((hdr).subnet_id); \ - (hdr).lid = htons((hdr).lid); \ - } while (0) - -typedef struct mca_btl_wv_device_qp_t { - ompi_free_list_t send_free; /**< free lists of send buffer descriptors */ - ompi_free_list_t recv_free; /**< free lists of receive buffer descriptors */ -} mca_btl_wv_device_qp_t; - -struct mca_btl_base_endpoint_t; - -typedef struct mca_btl_wv_device_t { - opal_object_t super; - struct wv_device *ib_dev; /* the ib device */ - opal_mutex_t device_lock; /* device level lock */ - struct wv_context *ib_dev_context; - WV_DEVICE_ATTRIBUTES ib_dev_attr; - struct wv_pd *ib_pd; - struct wv_cq *ib_cq[2]; - uint32_t cq_size[2]; - mca_mpool_base_module_t *mpool; - /* MTU for this device */ - uint32_t mtu; - /* Whether this device supports eager RDMA */ - uint8_t use_eager_rdma; - uint8_t btls; /** < number of btls using this device */ - opal_pointer_array_t *endpoints; - opal_pointer_array_t *device_btls; - uint16_t hp_cq_polls; - uint16_t eager_rdma_polls; - bool pollme; - int32_t non_eager_rdma_endpoints; - int32_t eager_rdma_buffers_count; - struct mca_btl_base_endpoint_t **eager_rdma_buffers; - /**< frags for control massages */ - ompi_free_list_t send_free_control; - /* QP types and attributes that will be used on this device */ - mca_btl_wv_device_qp_t *qps; - /* Maximum value supported by this device for max_inline_data */ - uint32_t max_inline_data; -} mca_btl_wv_device_t; -OBJ_CLASS_DECLARATION(mca_btl_wv_device_t); - -struct mca_btl_wv_module_pp_qp_t { - int32_t dummy; -}; typedef struct mca_btl_wv_module_pp_qp_t mca_btl_wv_module_pp_qp_t; - -struct mca_btl_wv_module_srq_qp_t { - struct wv_srq *srq; - int32_t rd_posted; - int32_t sd_credits; /* the max number of outstanding sends on a QP when using SRQ */ - /* i.e. the number of frags that can be outstanding (down counter) */ - opal_list_t pending_frags[2]; /**< list of high/low prio frags */ - /** The number of receive buffers that can be post in the current time. - The value starts from (rd_num / 4) and increased up to rd_num */ - int32_t rd_curr_num; - /** We post additional WQEs only if a number of WQEs (in specific SRQ) is less of this value. - The value increased together with rd_curr_num. The value is unique for every SRQ. */ - int32_t rd_low_local; - - bool srq_limit_event_flag; - /**< In difference of the "--mca enable_srq_resize" parameter that says, if we want(or no) - to start with small num of pre-posted receive buffers (rd_curr_num) and to increase this number by needs - (the max of this value is rd_num – the whole size of SRQ), the "srq_limit_event_flag" says if we want to get limit event - from device if the defined srq limit was reached (signal to the main thread) and we put off this flag if the rd_curr_num - was increased up to rd_num.*/ -}; typedef struct mca_btl_wv_module_srq_qp_t mca_btl_wv_module_srq_qp_t; - -struct mca_btl_wv_module_qp_t { - union { - mca_btl_wv_module_pp_qp_t pp_qp; - mca_btl_wv_module_srq_qp_t srq_qp; - } u; -}; typedef struct mca_btl_wv_module_qp_t mca_btl_wv_module_qp_t; - -/** - * IB BTL Interface - */ -struct mca_btl_wv_module_t { - /* Base BTL module */ - mca_btl_base_module_t super; - - bool btl_inited; - - /** Common information about all ports */ - mca_btl_wv_modex_message_t port_info; - - /** Array of CPCs on this port */ - ompi_btl_wv_connect_base_module_t **cpcs; - - /** Number of elements in the cpcs array */ - uint8_t num_cpcs; - - mca_btl_wv_device_t *device; - uint8_t port_num; /**< ID of the PORT */ - uint16_t pkey_index; - WV_PORT_ATTRIBUTES ib_port_attr; - uint16_t lid; /**< lid that is actually used (for LMC) */ - int apm_port; /**< Alternative port that may be used for APM */ - uint8_t src_path_bits; /**< offset from base lid (for LMC) */ - - int32_t num_peers; - - opal_mutex_t ib_lock; /**< module level lock */ - - size_t eager_rdma_frag_size; /**< length of eager frag */ - volatile int32_t eager_rdma_channels; /**< number of open RDMA channels */ - - mca_btl_base_module_error_cb_fn_t error_cb; /**< error handler */ - - mca_btl_wv_module_qp_t * qps; -}; -typedef struct mca_btl_wv_module_t mca_btl_wv_module_t; - -extern mca_btl_wv_module_t mca_btl_wv_module; - -struct mca_btl_wv_reg_t { - mca_mpool_base_registration_t base; - struct wv_mr *mr; -}; -typedef struct mca_btl_wv_reg_t mca_btl_wv_reg_t; -/** - * Register a callback function that is called on error.. - * - * @param btl (IN) BTL module - * @return Status indicating if cleanup was successful - */ - -int mca_btl_wv_register_error_cb( - struct mca_btl_base_module_t* btl, - mca_btl_base_module_error_cb_fn_t cbfunc -); - - -/** - * Cleanup any resources held by the BTL. - * - * @param btl BTL instance. - * @return OMPI_SUCCESS or error status on failure. - */ - -extern int mca_btl_wv_finalize( - struct mca_btl_base_module_t* btl -); - - -/** - * PML->BTL notification of change in the process list. - * - * @param btl (IN) BTL module - * @param nprocs (IN) Number of processes - * @param procs (IN) Set of processes - * @param peers (OUT) Set of (optional) peer addressing info. - * @param reachable (IN/OUT) Set of processes that are reachable via this BTL. - * @return OMPI_SUCCESS or error status on failure. - * - */ - -extern int mca_btl_wv_add_procs( - struct mca_btl_base_module_t* btl, - size_t nprocs, - struct ompi_proc_t **procs, - struct mca_btl_base_endpoint_t** peers, - opal_bitmap_t* reachable -); - -/** - * PML->BTL notification of change in the process list. - * - * @param btl (IN) BTL instance - * @param nproc (IN) Number of processes. - * @param procs (IN) Set of processes. - * @param peers (IN) Set of peer data structures. - * @return Status indicating if cleanup was successful - * - */ -extern int mca_btl_wv_del_procs( - struct mca_btl_base_module_t* btl, - size_t nprocs, - struct ompi_proc_t **procs, - struct mca_btl_base_endpoint_t** peers -); - - -/** - * PML->BTL Initiate a send of the specified size. - * - * @param btl (IN) BTL instance - * @param btl_peer (IN) BTL peer addressing - * @param descriptor (IN) Descriptor of data to be transmitted. - * @param tag (IN) Tag. - */ -extern int mca_btl_wv_send( - struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* btl_peer, - struct mca_btl_base_descriptor_t* descriptor, - mca_btl_base_tag_t tag -); - -/** - * PML->BTL Initiate a immediate send of the specified size. - * - * @param btl (IN) BTL instance - * @param ep (IN) Endpoint - * @param convertor (IN) Datatypes converter - * @param header (IN) PML header - * @param header_size (IN) PML header size - * @param payload_size (IN) Payload size - * @param order (IN) Order - * @param flags (IN) Flags - * @param tag (IN) Tag - * @param descriptor (OUT) Messages descriptor - */ -extern int mca_btl_wv_sendi( struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* ep, - struct opal_convertor_t* convertor, - void* header, - size_t header_size, - size_t payload_size, - uint8_t order, - uint32_t flags, - mca_btl_base_tag_t tag, - mca_btl_base_descriptor_t** descriptor -); - -/** - * PML->BTL Initiate a put of the specified size. - * - * @param btl (IN) BTL instance - * @param btl_peer (IN) BTL peer addressing - * @param descriptor (IN) Descriptor of data to be transmitted. - */ -extern int mca_btl_wv_put( - struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* btl_peer, - struct mca_btl_base_descriptor_t* descriptor - ); - -/** - * PML->BTL Initiate a get of the specified size. - * - * @param btl (IN) BTL instance - * @param btl_base_peer (IN) BTL peer addressing - * @param descriptor (IN) Descriptor of data to be transmitted. - */ -extern int mca_btl_wv_get( - struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* btl_peer, - struct mca_btl_base_descriptor_t* descriptor - ); - - -/** - * Allocate a descriptor. - * - * @param btl (IN) BTL module - * @param size (IN) Requested descriptor size. - */ -extern mca_btl_base_descriptor_t* mca_btl_wv_alloc( - struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* endpoint, - uint8_t order, - size_t size, - uint32_t flags); - - -/** - * Return a segment allocated by this BTL. - * - * @param btl (IN) BTL module - * @param descriptor (IN) Allocated descriptor. - */ -extern int mca_btl_wv_free( - struct mca_btl_base_module_t* btl, - mca_btl_base_descriptor_t* des); - - -/** - * Pack data and return a descriptor that can be - * used for send/put. - * - * @param btl (IN) BTL module - * @param peer (IN) BTL peer addressing - */ -mca_btl_base_descriptor_t* mca_btl_wv_prepare_src( - struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* peer, - mca_mpool_base_registration_t* registration, - struct opal_convertor_t* convertor, - uint8_t order, - size_t reserve, - size_t* size, - uint32_t flags - ); - -/** - * Allocate a descriptor initialized for RDMA write. - * - * @param btl (IN) BTL module - * @param peer (IN) BTL peer addressing - */ -extern mca_btl_base_descriptor_t* mca_btl_wv_prepare_dst( - struct mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* peer, - mca_mpool_base_registration_t* registration, - struct opal_convertor_t* convertor, - uint8_t order, - size_t reserve, - size_t* size, - uint32_t flags); - -extern void mca_btl_wv_frag_progress_pending_put_get( - struct mca_btl_base_endpoint_t*, const int); - -/** - * Fault Tolerance Event Notification Function - * - * @param state (IN) Checkpoint State - * @return OMPI_SUCCESS or failure status - */ -extern int mca_btl_wv_ft_event(int state); - - -/** - * Show an error during init, particularly when running out of - * registered memory. - */ -void mca_btl_wv_show_init_error(const char *file, int line, - const char *func, const char *dev); - -#define BTL_WV_HP_CQ 0 -#define BTL_WV_LP_CQ 1 - - -/** - * Post to Shared Receive Queue with certain priority - * - * @param wv_btl (IN) BTL module - * @param additional (IN) Additional Bytes to reserve - * @param prio (IN) Priority (either BTL_WV_HP_QP or BTL_WV_LP_QP) - * @return OMPI_SUCCESS or failure status - */ - -int mca_btl_wv_post_srr(mca_btl_wv_module_t* wv_btl, const int qp); - -/** - * Get a transport name of btl by its transport type. - */ - -const char* btl_wv_get_transport_name(mca_btl_wv_transport_type_t transport_type); - -/** - * Get a transport type of btl. - */ - -mca_btl_wv_transport_type_t mca_btl_wv_get_transport_type(mca_btl_wv_module_t* wv_btl); - -static inline int qp_cq_prio(const int qp) -{ - if(0 == qp) - return BTL_WV_HP_CQ; /* smallest qp is always HP */ - - /* If the size for this qp is <= the eager limit, make it a - high priority QP. Otherwise, make it a low priority QP. */ - return (mca_btl_wv_component.qp_infos[qp].size <= - mca_btl_wv_component.eager_limit) ? - BTL_WV_HP_CQ : BTL_WV_LP_CQ; -} - -#define BTL_WV_RDMA_QP(QP) \ - ((QP) == mca_btl_wv_component.rdma_qp) - -END_C_DECLS - -#endif /* MCA_BTL_IB_H */ diff --git a/ompi/mca/btl/wv/btl_wv_component.c b/ompi/mca/btl/wv/btl_wv_component.c deleted file mode 100644 index c4914ad7e6..0000000000 --- a/ompi/mca/btl/wv/btl_wv_component.c +++ /dev/null @@ -1,3162 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; -*- */ -/* - * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2008 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-2012 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2006-2009 Mellanox Technologies. All rights reserved. - * Copyright (c) 2006-2012 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2006-2007 Voltaire All rights reserved. - * Copyright (c) 2009-2010 Oracle and/or its affiliates. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" -#include -#include -#include -#include -#include -#include -#include - -#include "opal/mca/event/event.h" -#include "opal/align.h" -#include "opal/util/output.h" -#include "opal/util/argv.h" -#include "opal/sys/timer.h" -#include "opal/sys/atomic.h" -#include "opal/util/argv.h" -#include "opal/memoryhooks/memory.h" -#include "opal/mca/base/mca_base_param.h" -#include "opal/mca/hwloc/base/base.h" -/* Define this before including hwloc.h so that we also get the hwloc - verbs helper header file, too. We have to do this level of - indirection because the hwloc subsystem is a component -- we don't - know its exact path. We have to rely on the framework header files - to find the right hwloc verbs helper file for us. */ -#define OPAL_HWLOC_WANT_VERBS_HELPER 1 -#include "opal/mca/hwloc/hwloc.h" -#include "opal/mca/hwloc/base/base.h" -#include "hwloc/openfabrics-verbs.h" - -#include "opal/mca/installdirs/installdirs.h" -#include "opal_stdint.h" - -#include "ompi/constants.h" -#include "ompi/proc/proc.h" -#include "ompi/mca/btl/btl.h" -#include "ompi/mca/mpool/base/base.h" -#include "ompi/mca/mpool/grdma/mpool_grdma.h" -#include "ompi/mca/btl/base/base.h" -#include "ompi/runtime/ompi_module_exchange.h" -#include "ompi/runtime/mpiruntime.h" - -#include "btl_wv.h" -#include "btl_wv_frag.h" -#include "btl_wv_endpoint.h" -#include "btl_wv_eager_rdma.h" -#include "btl_wv_proc.h" -#include "btl_wv_ini.h" -#include "btl_wv_mca.h" -#include "connect/base.h" -#include "ompi/runtime/params.h" - -/* - * Local functions - */ -static int btl_wv_component_register(void); -static int btl_wv_component_open(void); -static int btl_wv_component_close(void); -static mca_btl_base_module_t **btl_wv_component_init(int*, bool, bool); -static int btl_wv_component_progress(void); - -/* - * Local variables - */ -static mca_btl_wv_device_t *receive_queues_device = NULL; -IWVProvider *prov; - -mca_btl_wv_component_t mca_btl_wv_component = { - { - /* First, the mca_base_component_t struct containing meta information - about the component itself */ - - { - MCA_BTL_BASE_VERSION_2_0_0, - - "wv", /* MCA component name */ - OMPI_MAJOR_VERSION, /* MCA component major version */ - OMPI_MINOR_VERSION, /* MCA component minor version */ - OMPI_RELEASE_VERSION, /* MCA component release version */ - btl_wv_component_open, /* component open */ - btl_wv_component_close, /* component close */ - NULL, /* component query */ - btl_wv_component_register, /* component register */ - }, - { - /* The component is checkpoint ready */ - MCA_BASE_METADATA_PARAM_CHECKPOINT - }, - - btl_wv_component_init, - btl_wv_component_progress, - } -}; - -static enum wv_mtu wv_convert_mtu(UINT32 mtu) -{ - switch (mtu) { - case 256: return WV_MTU_256; - case 512: return WV_MTU_512; - case 1024: return WV_MTU_1024; - case 2048: return WV_MTU_2048; - case 4096: return WV_MTU_4096; - default: return (wv_mtu) mtu; - } -} - -static int btl_wv_component_register(void) -{ - int ret; - - /* register IB component parameters */ - ret = btl_wv_register_mca_params(); - - mca_btl_wv_component.max_send_size = - mca_btl_wv_module.super.btl_max_send_size; - mca_btl_wv_component.eager_limit = - mca_btl_wv_module.super.btl_eager_limit; - - return OMPI_SUCCESS; -} - -/* - * Called by MCA framework to open the component, registers - * component parameters. - */ -static int btl_wv_component_open(void) -{ - /* initialize state */ - int ret = OMPI_SUCCESS; - mca_btl_wv_component.ib_num_btls = 0; - mca_btl_wv_component.wv_btls = NULL; - OBJ_CONSTRUCT(&mca_btl_wv_component.devices, opal_pointer_array_t); - mca_btl_wv_component.devices_count = 0; - mca_btl_wv_component.cpc_explicitly_defined = false; - mca_btl_wv_component.default_recv_qps = NULL; - - /* initialize objects */ - OBJ_CONSTRUCT(&mca_btl_wv_component.ib_procs, opal_list_t); - - srand48(getpid() * time(NULL)); - return ret; -} - -/* - * component cleanup - sanity checking of queue lengths - */ - -static int btl_wv_component_close(void) -{ - int rc = OMPI_SUCCESS; - ompi_btl_wv_connect_base_finalize(); - ompi_btl_wv_ini_finalize(); - if (NULL != mca_btl_wv_component.receive_queues) { - free(mca_btl_wv_component.receive_queues); - } - - if (NULL != mca_btl_wv_component.default_recv_qps) { - free(mca_btl_wv_component.default_recv_qps); - } - - return rc; -} - -static void inline pack8(char **dest, uint8_t value) -{ - /* Copy one character */ - **dest = (char) value; - /* Most the dest ahead one */ - ++*dest; -} - -/* - * Register local wv port information with the modex so that it - * can be shared with all other peers. - */ -static int btl_wv_modex_send(void) -{ - int rc, i, j; - int modex_message_size; - char *message, *offset; - size_t size, msg_size; - ompi_btl_wv_connect_base_module_t *cpc; - - opal_output(-1, "Starting to modex send"); - if (0 == mca_btl_wv_component.ib_num_btls) { - return 0; - } - modex_message_size = offsetof(mca_btl_wv_modex_message_t, end); - - /* The message is packed into multiple parts: - * 1. a uint8_t indicating the number of modules (ports) in the message - * 2. for each module: - * a. the common module data - * b. a uint8_t indicating how many CPCs follow - * c. for each CPC: - * a. a uint8_t indicating the index of the CPC in the all[] - * array in btl_wv_connect_base.c - * b. a uint8_t indicating the priority of this CPC - * c. a uint8_t indicating the length of the blob to follow - * d. a blob that is only meaningful to that CPC - */ - msg_size = - /* uint8_t for number of modules in the message */ - 1 + - /* For each module: */ - mca_btl_wv_component.ib_num_btls * - ( - /* Common module data */ - modex_message_size + - /* uint8_t for how many CPCs follow */ - 1 - ); - /* For each module, add in the size of the per-CPC data */ - for (i = 0; i < mca_btl_wv_component.ib_num_btls; i++) { - for (j = 0; - j < mca_btl_wv_component.wv_btls[i]->num_cpcs; - ++j) { - msg_size += - /* uint8_t for the index of the CPC */ - 1 + - /* uint8_t for the CPC's priority */ - 1 + - /* uint8_t for the blob length */ - 1 + - /* blob length */ - mca_btl_wv_component.wv_btls[i]->cpcs[j]->data.cbm_modex_message_len; - } - } - message = (char *) malloc(msg_size); - if (NULL == message) { - BTL_ERROR(("Failed malloc")); - return OMPI_ERR_OUT_OF_RESOURCE; - } - - /* Pack the number of modules */ - offset = message; - pack8(&offset, mca_btl_wv_component.ib_num_btls); - opal_output(-1, "modex sending %d btls (packed: %d, offset now at %d)", mca_btl_wv_component.ib_num_btls, *((uint8_t*) message), (int) (offset - message)); - - /* Pack each of the modules */ - for (i = 0; i < mca_btl_wv_component.ib_num_btls; i++) { - - /* Pack the modex common message struct. */ - size = modex_message_size; - - (mca_btl_wv_component.wv_btls[i]->port_info).vendor_id = - (mca_btl_wv_component.wv_btls[i]->device->ib_dev_attr).VendorId; - - (mca_btl_wv_component.wv_btls[i]->port_info).vendor_part_id = - (mca_btl_wv_component.wv_btls[i]->device->ib_dev_attr).VendorPartId; - - (mca_btl_wv_component.wv_btls[i]->port_info).transport_type = MCA_BTL_WV_TRANSPORT_IB; - - memcpy(offset, - &(mca_btl_wv_component.wv_btls[i]->port_info), - size); - opal_output(-1, "modex packed btl port modex message: 0x%" PRIx64 ", %d, %d (size: %d)", - mca_btl_wv_component.wv_btls[i]->port_info.subnet_id, - mca_btl_wv_component.wv_btls[i]->port_info.mtu, - mca_btl_wv_component.wv_btls[i]->port_info.lid, - (int) size); - - offset += size; - opal_output(-1, "modex packed btl %d: modex message, offset now %d", - i, (int) (offset -message)); - - /* Pack the number of CPCs that follow */ - pack8(&offset, - mca_btl_wv_component.wv_btls[i]->num_cpcs); - opal_output(-1, "modex packed btl %d: to pack %d cpcs (packed: %d, offset now %d)", - i, mca_btl_wv_component.wv_btls[i]->num_cpcs, - *((uint8_t*) (offset - 1)), (int) (offset-message)); - - /* Pack each CPC */ - for (j = 0; - j < mca_btl_wv_component.wv_btls[i]->num_cpcs; - ++j) { - uint8_t u8; - - cpc = mca_btl_wv_component.wv_btls[i]->cpcs[j]; - opal_output(-1, "modex packed btl %d: packing cpc %s", - i, cpc->data.cbm_component->cbc_name); - /* Pack the CPC index */ - u8 = ompi_btl_wv_connect_base_get_cpc_index(cpc->data.cbm_component); - pack8(&offset, u8); - opal_output(-1, "packing btl %d: cpc %d: index %d (packed %d, offset now %d)", - i, j, u8, *((uint8_t*) (offset-1)), (int)(offset-message)); - /* Pack the CPC priority */ - pack8(&offset, cpc->data.cbm_priority); - opal_output(-1, "packing btl %d: cpc %d: priority %d (packed %d, offset now %d)", - i, j, cpc->data.cbm_priority, *((uint8_t*) (offset-1)), (int)(offset-message)); - /* Pack the blob length */ - u8 = cpc->data.cbm_modex_message_len; - pack8(&offset, u8); - opal_output(-1, "packing btl %d: cpc %d: message len %d (packed %d, offset now %d)", - i, j, u8, *((uint8_t*) (offset-1)), (int)(offset-message)); - /* If the blob length is > 0, pack the blob */ - if (u8 > 0) { - memcpy(offset, cpc->data.cbm_modex_message, u8); - offset += u8; - opal_output(-1, "packing btl %d: cpc %d: blob packed %d %x (offset now %d)", - i, j, - ((uint32_t*)cpc->data.cbm_modex_message)[0], - ((uint32_t*)cpc->data.cbm_modex_message)[1], - (int)(offset-message)); - } - - /* Sanity check */ - assert((size_t) (offset - message) <= msg_size); - } - } - - /* All done -- send it! */ - rc = ompi_modex_send(&mca_btl_wv_component.super.btl_version, - message, msg_size); - free(message); - opal_output(-1, "Modex sent! %d calculated, %d actual\n", (int) msg_size, (int) (offset - message)); - - return rc; -} - -/* - * Active Message Callback function on control message. - */ - -static void btl_wv_control(mca_btl_base_module_t* btl, - mca_btl_base_tag_t tag, mca_btl_base_descriptor_t* des, - void* cbdata) -{ - /* don't return credits used for control messages */ - mca_btl_wv_module_t *obtl = (mca_btl_wv_module_t*)btl; - mca_btl_wv_endpoint_t* ep = to_com_frag(des)->endpoint; - mca_btl_wv_control_header_t *ctl_hdr = - (mca_btl_wv_control_header_t *) to_base_frag(des)->segment.base.seg_addr.pval; - mca_btl_wv_eager_rdma_header_t *rdma_hdr; - mca_btl_wv_header_coalesced_t *clsc_hdr = - (mca_btl_wv_header_coalesced_t*)(ctl_hdr + 1); - mca_btl_active_message_callback_t* reg; - size_t len = des->des_dst->seg_len - sizeof(*ctl_hdr); - - switch (ctl_hdr->type) { - case MCA_BTL_WV_CONTROL_CREDITS: - assert(0); /* Credit message is handled elsewhere */ - break; - case MCA_BTL_WV_CONTROL_RDMA: - rdma_hdr = (mca_btl_wv_eager_rdma_header_t*)ctl_hdr; - - BTL_VERBOSE(("prior to NTOH received rkey %" PRIu32 - ", rdma_start.lval %" PRIx64 ", pval %p, ival %" PRIu32, - rdma_hdr->rkey, - rdma_hdr->rdma_start.lval, - rdma_hdr->rdma_start.pval, - rdma_hdr->rdma_start.ival - )); - - if(ep->nbo) { - BTL_WV_EAGER_RDMA_CONTROL_HEADER_NTOH(*rdma_hdr); - } - - BTL_VERBOSE(("received rkey %" PRIu32 - ", rdma_start.lval %" PRIx64 ", pval %p," - " ival %" PRIu32, rdma_hdr->rkey, - rdma_hdr->rdma_start.lval, - rdma_hdr->rdma_start.pval, rdma_hdr->rdma_start.ival)); - - if (ep->eager_rdma_remote.base.pval) { - BTL_ERROR(("Got RDMA connect twice!")); - return; - } - ep->eager_rdma_remote.rkey = rdma_hdr->rkey; - ep->eager_rdma_remote.base.lval = rdma_hdr->rdma_start.lval; - ep->eager_rdma_remote.tokens=mca_btl_wv_component.eager_rdma_num - 1; - break; - case MCA_BTL_WV_CONTROL_COALESCED: - while(len > 0) { - size_t skip; - mca_btl_base_descriptor_t tmp_des; - mca_btl_base_segment_t tmp_seg; - - assert(len >= sizeof(*clsc_hdr)); - - if(ep->nbo) - BTL_WV_HEADER_COALESCED_NTOH(*clsc_hdr); - - skip = (sizeof(*clsc_hdr) + clsc_hdr->alloc_size); - - tmp_des.des_dst = &tmp_seg; - tmp_des.des_dst_cnt = 1; - tmp_seg.seg_addr.pval = clsc_hdr + 1; - tmp_seg.seg_len = clsc_hdr->size; - - /* call registered callback */ - reg = mca_btl_base_active_message_trigger + clsc_hdr->tag; - reg->cbfunc( &obtl->super, clsc_hdr->tag, &tmp_des, reg->cbdata ); - len -= skip; - clsc_hdr = (mca_btl_wv_header_coalesced_t*) - (((unsigned char*)clsc_hdr) + skip); - } - break; - case MCA_BTL_WV_CONTROL_CTS: - OPAL_OUTPUT((-1, "received CTS from %s (buffer %p): posted recvs %d, sent cts %d", - ep->endpoint_proc->proc_ompi->proc_hostname, - (void*) ctl_hdr, - ep->endpoint_posted_recvs, ep->endpoint_cts_sent)); - ep->endpoint_cts_received = true; - - /* Only send the CTS back and mark connected if: - - we have posted our receives (it's possible that we can - get this CTS before this side's CPC has called - cpc_complete()) - - we have not yet sent our CTS - - We don't even want to mark the endpoint connected() until - we have posted our receives because otherwise we will - trigger credit management (because the rd_credits will - still be negative), and Bad Things will happen. */ - if (ep->endpoint_posted_recvs) { - if (!ep->endpoint_cts_sent) { - mca_btl_wv_endpoint_send_cts(ep); - } - mca_btl_wv_endpoint_connected(ep); - } - break; - default: - BTL_ERROR(("Unknown message type received by BTL")); - break; - } -} - -static int wv_reg_mr(void *reg_data, void *base, size_t size, - mca_mpool_base_registration_t *reg) -{ - HRESULT hr; - mca_btl_wv_device_t *device = (mca_btl_wv_device_t*)reg_data; - mca_btl_wv_reg_t *wv_reg = (mca_btl_wv_reg_t*)reg; - - wv_reg->mr = (struct wv_mr*)malloc(sizeof(wv_mr)); - wv_reg->mr->context = device->ib_dev_context; - wv_reg->mr->pd = device->ib_pd; - wv_reg->mr->addr = base; - wv_reg->mr->length = size; - hr = device->ib_pd->handle->RegisterMemory(base, size, WV_ACCESS_LOCAL_WRITE| \ - WV_ACCESS_REMOTE_WRITE|WV_ACCESS_REMOTE_READ, NULL, - (WV_MEMORY_KEYS *) &wv_reg->mr->lkey); - wv_reg->mr->rkey = ntohl(wv_reg->mr->rkey); - if (NULL == wv_reg->mr) { - return OMPI_ERR_OUT_OF_RESOURCE; - } - - return OMPI_SUCCESS; -} - -static int wv_dereg_mr(void *reg_data, mca_mpool_base_registration_t *reg) -{ - HRESULT hr; - mca_btl_wv_reg_t *wv_reg = (mca_btl_wv_reg_t*)reg; - hr = wv_reg->mr->pd->handle->DeregisterMemory(wv_reg->mr->lkey,NULL); - if(SUCCEEDED(hr)) { - free(wv_reg->mr); - }else { - BTL_ERROR(("%s: error unpinning wv memory errno says %s", - __func__, strerror(errno))); - return OMPI_ERROR; - } - wv_reg->mr = NULL; - return OMPI_SUCCESS; -} - -static inline int param_register_int(const char* param_name, int default_value) -{ - int param_value = default_value; - mca_base_param_reg_int(&mca_btl_wv_component.super.btl_version, - param_name, NULL, false, false, default_value, - ¶m_value); - return param_value; -} - -static int init_one_port(opal_list_t *btl_list, mca_btl_wv_device_t *device, - uint8_t port_num, uint16_t pkey_index, - WV_PORT_ATTRIBUTES *ib_port_attr) -{ - HRESULT hr; - uint16_t lid, i, lmc, lmc_step; - mca_btl_wv_module_t *wv_btl; - mca_btl_base_selected_module_t *ib_selected; - union wv_gid gid; - uint64_t subnet_id; - - hr = device->ib_dev_context->device_if->QueryGid(port_num,0,(WV_GID*)&gid); - if(FAILED(hr)) { - BTL_ERROR(("query_gid failed (%s:%d)\n", - device->ib_dev->name, port_num)); - return OMPI_ERR_NOT_FOUND; - } - subnet_id = ntoh64(gid.global.subnet_prefix); - BTL_VERBOSE(("my IB-only subnet_id for HCA %s port %d is %016" PRIx64, - device->ib_dev->name, port_num, subnet_id)); - if(mca_btl_wv_component.ib_num_btls > 0 && - IB_DEFAULT_GID_PREFIX == subnet_id && - mca_btl_wv_component.warn_default_gid_prefix) { - opal_show_help("help-mpi-btl-wv.txt", "default subnet prefix", - true, ompi_process_info.nodename); - } - - lmc = (1 << ib_port_attr->Lmc); - lmc_step = 1; - - if (0 != mca_btl_wv_component.max_lmc && - mca_btl_wv_component.max_lmc < lmc) { - lmc = mca_btl_wv_component.max_lmc; - } - - for(lid = ntohs(ib_port_attr->Lid); - lid < ntohs(ib_port_attr->Lid) + lmc; lid += lmc_step){ - for(i = 0; i < mca_btl_wv_component.btls_per_lid; i++){ - char param[40]; - - wv_btl = (mca_btl_wv_module_t *) malloc(sizeof(mca_btl_wv_module_t)); - if(NULL == wv_btl) { - BTL_ERROR(("Failed malloc: %s:%d", __FILE__, __LINE__)); - return OMPI_ERR_OUT_OF_RESOURCE; - } - memcpy(wv_btl, &mca_btl_wv_module, - sizeof(mca_btl_wv_module)); - memcpy(&wv_btl->ib_port_attr, ib_port_attr, - sizeof(WV_PORT_ATTRIBUTES)); - ib_selected = OBJ_NEW(mca_btl_base_selected_module_t); - ib_selected->btl_module = (mca_btl_base_module_t*) wv_btl; - wv_btl->device = device; - wv_btl->port_num = (uint8_t) port_num; - wv_btl->pkey_index = pkey_index; - wv_btl->lid = lid; - wv_btl->apm_port = 0; - wv_btl->src_path_bits = lid - ntohs(ib_port_attr->Lid); - wv_btl->port_info.subnet_id = subnet_id; - wv_btl->port_info.mtu = device->mtu; - wv_btl->port_info.lid = lid; - wv_btl->cpcs = NULL; - wv_btl->num_cpcs = 0; - - mca_btl_base_active_message_trigger[MCA_BTL_TAG_IB].cbfunc = btl_wv_control; - mca_btl_base_active_message_trigger[MCA_BTL_TAG_IB].cbdata = NULL; - - /* Check bandwidth configured for this device */ - sprintf(param, "bandwidth_%s", device->ib_dev->name); - wv_btl->super.btl_bandwidth = - param_register_int(param, wv_btl->super.btl_bandwidth); - - /* Check bandwidth configured for this device/port */ - sprintf(param, "bandwidth_%s:%d", device->ib_dev->name, - port_num); - wv_btl->super.btl_bandwidth = - param_register_int(param, wv_btl->super.btl_bandwidth); - - /* Check bandwidth configured for this device/port/LID */ - sprintf(param, "bandwidth_%s:%d:%d", - device->ib_dev->name, port_num, lid); - wv_btl->super.btl_bandwidth = - param_register_int(param, wv_btl->super.btl_bandwidth); - - /* Check latency configured for this device */ - sprintf(param, "latency_%s", device->ib_dev->name); - wv_btl->super.btl_latency = - param_register_int(param, wv_btl->super.btl_latency); - - /* Check latency configured for this device/port */ - sprintf(param, "latency_%s:%d", device->ib_dev->name, - port_num); - wv_btl->super.btl_latency = - param_register_int(param, wv_btl->super.btl_latency); - - /* Check latency configured for this device/port/LID */ - sprintf(param, "latency_%s:%d:%d", device->ib_dev->name, - port_num, lid); - wv_btl->super.btl_latency = - param_register_int(param, wv_btl->super.btl_latency); - - /* Auto-detect the port bandwidth */ - if (0 == wv_btl->super.btl_bandwidth) { - /* To calculate the bandwidth available on this port, - we have to look up the values corresponding to - port->active_speed and port->active_width. These - are enums corresponding to the IB spec. Overall - forumula is 80% of the reported speed (to get the - true link speed) times the number of links. */ - switch (ib_port_attr->ActiveSpeed) { - case 1: - /* 2.5Gbps * 0.8, in megabits */ - wv_btl->super.btl_bandwidth = 2000; - break; - case 2: - /* 5.0Gbps * 0.8, in megabits */ - wv_btl->super.btl_bandwidth = 4000; - break; - case 4: - /* 10.0Gbps * 0.8, in megabits */ - wv_btl->super.btl_bandwidth = 8000; - break; - default: - /* Who knows? Declare this port unreachable (do - *not* return ERR_VALUE_OF_OUT_OF_BOUNDS; that - is reserved for when we exceed the number of - allowable BTLs). */ - return OMPI_ERR_UNREACH; - } - switch (ib_port_attr->ActiveWidth) { - case 1: - /* 1x */ - /* unity */ - break; - case 2: - /* 4x */ - wv_btl->super.btl_bandwidth *= 4; - break; - case 4: - /* 8x */ - wv_btl->super.btl_bandwidth *= 8; - break; - case 8: - /* 12x */ - wv_btl->super.btl_bandwidth *= 12; - break; - default: - /* Who knows? Declare this port unreachable (do - *not* return ERR_VALUE_OF_OUT_OF_BOUNDS; that - is reserved for when we exceed the number of - allowable BTLs). */ - return OMPI_ERR_UNREACH; - } - } - opal_list_append(btl_list, (opal_list_item_t*) ib_selected); - opal_pointer_array_add(device->device_btls, (void*) wv_btl); - ++device->btls; - ++mca_btl_wv_component.ib_num_btls; - if (-1 != mca_btl_wv_component.ib_max_btls && - mca_btl_wv_component.ib_num_btls >= - mca_btl_wv_component.ib_max_btls) { - return OMPI_ERR_VALUE_OUT_OF_BOUNDS; - } - } - } - return OMPI_SUCCESS; -} - -static void device_construct(mca_btl_wv_device_t *device) -{ - device->ib_dev = NULL; - device->ib_dev_context = NULL; - device->ib_pd = NULL; - device->mpool = NULL; - device->btls = 0; - device->ib_cq[BTL_WV_HP_CQ] = NULL; - device->ib_cq[BTL_WV_LP_CQ] = NULL; - device->cq_size[BTL_WV_HP_CQ] = 0; - device->cq_size[BTL_WV_LP_CQ] = 0; - device->non_eager_rdma_endpoints = 0; - device->hp_cq_polls = mca_btl_wv_component.cq_poll_ratio; - device->eager_rdma_polls = mca_btl_wv_component.eager_rdma_poll_ratio; - device->pollme = true; - device->eager_rdma_buffers_count = 0; - device->eager_rdma_buffers = NULL; - device->qps = NULL; - - OBJ_CONSTRUCT(&device->device_lock, opal_mutex_t); - OBJ_CONSTRUCT(&device->send_free_control, ompi_free_list_t); - device->max_inline_data = 0; -} - -static void device_destruct(mca_btl_wv_device_t *device) -{ - int i; - struct wverbs_context *vcontext; - - if(device->eager_rdma_buffers) { - int i; - for(i = 0; i < device->eager_rdma_buffers_count; i++) - if(device->eager_rdma_buffers[i]) - OBJ_RELEASE(device->eager_rdma_buffers[i]); - free(device->eager_rdma_buffers); - } - - if (NULL != device->qps) { - for (i = 0; i < mca_btl_wv_component.num_qps; i++) { - OBJ_DESTRUCT(&device->qps[i].send_free); - OBJ_DESTRUCT(&device->qps[i].recv_free); - } - free(device->qps); - } - - OBJ_DESTRUCT(&device->send_free_control); - - /* Release CQs */ - if(device->ib_cq[BTL_WV_HP_CQ] != NULL) { - device->ib_cq[BTL_WV_HP_CQ]->handle->Release(); - free(device->ib_cq[BTL_WV_HP_CQ]); - } - - if(device->ib_cq[BTL_WV_LP_CQ] != NULL) { - device->ib_cq[BTL_WV_LP_CQ]->handle->Release(); - free(device->ib_cq[BTL_WV_LP_CQ]); - } - - if (OMPI_SUCCESS != mca_mpool_base_module_destroy(device->mpool)) { - BTL_VERBOSE(("Failed to release mpool")); - goto device_error; - } - device->ib_pd->handle->Release(); - free(device->ib_pd); - - OBJ_DESTRUCT(&device->device_lock); - - vcontext = CONTAINING_RECORD(device->ib_dev_context, struct wverbs_context, context); - vcontext->closing = 1; - device->ib_dev_context->device_if->Release(); - free(vcontext->port); - free(vcontext); - - BTL_VERBOSE(("device was successfully released")); - return; -device_error: - BTL_VERBOSE(("Failed to destroy device resources")); -} - -OBJ_CLASS_INSTANCE(mca_btl_wv_device_t, opal_object_t, device_construct, - device_destruct); - -static int prepare_device_for_use(mca_btl_wv_device_t *device) -{ - mca_btl_wv_frag_init_data_t *init_data; - int rc, qp, length; - - device->endpoints = OBJ_NEW(opal_pointer_array_t); - opal_pointer_array_init(device->endpoints, 10, INT_MAX, 10); - opal_pointer_array_add(&mca_btl_wv_component.devices, device); - if (mca_btl_wv_component.max_eager_rdma > 0 && - device->use_eager_rdma) { - device->eager_rdma_buffers = - (mca_btl_base_endpoint_t **) calloc(mca_btl_wv_component.max_eager_rdma * device->btls, - sizeof(mca_btl_wv_endpoint_t*)); - if(NULL == device->eager_rdma_buffers) { - BTL_ERROR(("Memory allocation fails")); - return OMPI_ERR_OUT_OF_RESOURCE; - } - } - - init_data = (mca_btl_wv_frag_init_data_t *) malloc(sizeof(mca_btl_wv_frag_init_data_t)); - length = sizeof(mca_btl_wv_header_t) + - sizeof(mca_btl_wv_footer_t) + - sizeof(mca_btl_wv_eager_rdma_header_t); - - init_data->order = MCA_BTL_NO_ORDER; - init_data->list = &device->send_free_control; - - rc = ompi_free_list_init_ex_new(&device->send_free_control, - sizeof(mca_btl_wv_send_control_frag_t), opal_cache_line_size, - OBJ_CLASS(mca_btl_wv_send_control_frag_t), length, - mca_btl_wv_component.buffer_alignment, - mca_btl_wv_component.ib_free_list_num, -1, - mca_btl_wv_component.ib_free_list_inc, - device->mpool, mca_btl_wv_frag_init, - init_data); - if (OMPI_SUCCESS != rc) { - /* If we're "out of memory", this usually means that we ran - out of registered memory, so show that error message */ - if (OMPI_ERR_OUT_OF_RESOURCE == rc || - OMPI_ERR_TEMP_OUT_OF_RESOURCE == rc) { - errno = ENOMEM; - mca_btl_wv_show_init_error(__FILE__, __LINE__, - "ompi_free_list_init_ex_new", - device->ib_dev->name); - } - return rc; - } - - /* setup all the qps */ - for(qp = 0; qp < mca_btl_wv_component.num_qps; qp++) { - init_data = (mca_btl_wv_frag_init_data_t *) malloc(sizeof(mca_btl_wv_frag_init_data_t)); - /* Initialize pool of send fragments */ - length = sizeof(mca_btl_wv_header_t) + - sizeof(mca_btl_wv_header_coalesced_t) + - sizeof(mca_btl_wv_control_header_t) + - sizeof(mca_btl_wv_footer_t) + - mca_btl_wv_component.qp_infos[qp].size; - - init_data->order = qp; - init_data->list = &device->qps[qp].send_free; - - rc = ompi_free_list_init_ex_new(init_data->list, - sizeof(mca_btl_wv_send_frag_t), opal_cache_line_size, - OBJ_CLASS(mca_btl_wv_send_frag_t), length, - mca_btl_wv_component.buffer_alignment, - mca_btl_wv_component.ib_free_list_num, - mca_btl_wv_component.ib_free_list_max, - mca_btl_wv_component.ib_free_list_inc, - device->mpool, mca_btl_wv_frag_init, - init_data); - if (OMPI_SUCCESS != rc) { - /* If we're "out of memory", this usually means that we - ran out of registered memory, so show that error - message */ - if (OMPI_ERR_OUT_OF_RESOURCE == rc || - OMPI_ERR_TEMP_OUT_OF_RESOURCE == rc) { - errno = ENOMEM; - mca_btl_wv_show_init_error(__FILE__, __LINE__, - "ompi_free_list_init_ex_new", - device->ib_dev->name); - } - return OMPI_ERROR; - } - - init_data = (mca_btl_wv_frag_init_data_t *) malloc(sizeof(mca_btl_wv_frag_init_data_t)); - length = sizeof(mca_btl_wv_header_t) + - sizeof(mca_btl_wv_header_coalesced_t) + - sizeof(mca_btl_wv_control_header_t) + - sizeof(mca_btl_wv_footer_t) + - mca_btl_wv_component.qp_infos[qp].size; - - init_data->order = qp; - init_data->list = &device->qps[qp].recv_free; - - if(OMPI_SUCCESS != ompi_free_list_init_ex_new(init_data->list, - sizeof(mca_btl_wv_recv_frag_t), opal_cache_line_size, - OBJ_CLASS(mca_btl_wv_recv_frag_t), - length, mca_btl_wv_component.buffer_alignment, - mca_btl_wv_component.ib_free_list_num, - mca_btl_wv_component.ib_free_list_max, - mca_btl_wv_component.ib_free_list_inc, - device->mpool, mca_btl_wv_frag_init, - init_data)) { - return OMPI_ERROR; - } - } - - return OMPI_SUCCESS; -} - -static int get_port_list(mca_btl_wv_device_t *device, int *allowed_ports) -{ - int i, j, k, num_ports = 0; - const char *dev_name; - char *name; - - dev_name = device->ib_dev->name; - - name = (char*) malloc(strlen(dev_name) + 4); - if (NULL == name) { - return 0; - } - - /* Assume that all ports are allowed. num_ports will be adjusted - below to reflect whether this is true or not. */ - for (i = 1; i <= device->ib_dev_attr.PhysPortCount; ++i) { - allowed_ports[num_ports++] = i; - } - num_ports = 0; - if (NULL != mca_btl_wv_component.if_include_list) { - /* If only the device name is given (eg. mtdevice0,mtdevice1) use all - ports */ - i = 0; - while (mca_btl_wv_component.if_include_list[i]) { - if (0 == strcmp(dev_name, - mca_btl_wv_component.if_include_list[i])) { - num_ports = device->ib_dev_attr.PhysPortCount; - goto done; - } - ++i; - } - /* Include only requested ports on the device */ - for (i = 1; i <= device->ib_dev_attr.PhysPortCount; ++i) { - sprintf(name,"%s:%d",dev_name,i); - for (j = 0; - NULL != mca_btl_wv_component.if_include_list[j]; ++j) { - if (0 == strcmp(name, - mca_btl_wv_component.if_include_list[j])) { - allowed_ports[num_ports++] = i; - break; - } - } - } - } else if (NULL != mca_btl_wv_component.if_exclude_list) { - /* If only the device name is given (eg. mtdevice0,mtdevice1) exclude - all ports */ - i = 0; - while (mca_btl_wv_component.if_exclude_list[i]) { - if (0 == strcmp(dev_name, - mca_btl_wv_component.if_exclude_list[i])) { - num_ports = 0; - goto done; - } - ++i; - } - /* Exclude the specified ports on this device */ - for (i = 1; i <= device->ib_dev_attr.PhysPortCount; ++i) { - sprintf(name,"%s:%d",dev_name,i); - for (j = 0; - NULL != mca_btl_wv_component.if_exclude_list[j]; ++j) { - if (0 == strcmp(name, - mca_btl_wv_component.if_exclude_list[j])) { - /* If found, set a sentinel value */ - j = -1; - break; - } - } - /* If we didn't find it, it's ok to include in the list */ - if (-1 != j) { - allowed_ports[num_ports++] = i; - } - } - } else { - num_ports = device->ib_dev_attr.PhysPortCount; - } - -done: - - /* Remove the following from the error-checking if_list: - - bare device name - - device name suffixed with port number */ - if (NULL != mca_btl_wv_component.if_list) { - for (i = 0; NULL != mca_btl_wv_component.if_list[i]; ++i) { - - /* Look for raw device name */ - if (0 == strcmp(mca_btl_wv_component.if_list[i], dev_name)) { - j = opal_argv_count(mca_btl_wv_component.if_list); - opal_argv_delete(&j, &(mca_btl_wv_component.if_list), - i, 1); - --i; - } - } - for (i = 1; i <= device->ib_dev_attr.PhysPortCount; ++i) { - sprintf(name, "%s:%d", dev_name, i); - for (j = 0; NULL != mca_btl_wv_component.if_list[j]; ++j) { - if (0 == strcmp(mca_btl_wv_component.if_list[j], name)) { - k = opal_argv_count(mca_btl_wv_component.if_list); - opal_argv_delete(&k, &(mca_btl_wv_component.if_list), - j, 1); - --j; - break; - } - } - } - } - free(name); - return num_ports; -} - -/* - * Prefer values that are already in the target - */ -static void merge_values(ompi_btl_wv_ini_values_t *target, - ompi_btl_wv_ini_values_t *src) -{ - if (!target->mtu_set && src->mtu_set) { - target->mtu = src->mtu; - target->mtu_set = true; - } - - if (!target->use_eager_rdma_set && src->use_eager_rdma_set) { - target->use_eager_rdma = src->use_eager_rdma; - target->use_eager_rdma_set = true; - } - - if (NULL == target->receive_queues && NULL != src->receive_queues) { - target->receive_queues = strdup(src->receive_queues); - } - - if (!target->max_inline_data_set && src->max_inline_data_set) { - target->max_inline_data = src->max_inline_data; - target->max_inline_data_set = true; - } -} - -static bool inline is_credit_message(const mca_btl_wv_recv_frag_t *frag) -{ - mca_btl_wv_control_header_t* chdr = - (mca_btl_wv_control_header_t *) to_base_frag(frag)->segment.base.seg_addr.pval; - return (MCA_BTL_TAG_BTL == frag->hdr->tag) && - (MCA_BTL_WV_CONTROL_CREDITS == chdr->type); -} - -static bool inline is_cts_message(const mca_btl_wv_recv_frag_t *frag) -{ - mca_btl_wv_control_header_t* chdr = - (mca_btl_wv_control_header_t *) to_base_frag(frag)->segment.base.seg_addr.pval; - return (MCA_BTL_TAG_BTL == frag->hdr->tag) && - (MCA_BTL_WV_CONTROL_CTS == chdr->type); -} - -static int32_t atoi_param(char *param, int32_t dflt) -{ - if (NULL == param || '\0' == param[0]) { - return dflt ? dflt : 1; - } - - return atoi(param); -} - -static void init_apm_port(mca_btl_wv_device_t *device, int port, uint16_t lid) -{ - int index; - struct mca_btl_wv_module_t *btl; - for(index = 0; index < device->btls; index++) { - btl = (mca_btl_wv_module_t *) opal_pointer_array_get_item(device->device_btls, index); - /* Ok, we already have btl for the fist port, - * second one will be used for APM */ - btl->apm_port = port; - btl->port_info.apm_lid = lid + btl->src_path_bits; - mca_btl_wv_component.apm_ports++; - BTL_VERBOSE(("APM-PORT: Setting alternative port - %d, lid - %d" - ,port ,lid)); - } -} - -static int setup_qps(void) -{ - char **queues, **params = NULL; - int num_pp_qps = 0, num_srq_qps = 0, qp = 0; - uint32_t max_qp_size, max_size_needed; - int32_t min_freelist_size = 0; - int smallest_pp_qp = 0, ret = OMPI_ERROR; - - queues = opal_argv_split(mca_btl_wv_component.receive_queues, ':'); - if (0 == opal_argv_count(queues)) { - opal_show_help("help-mpi-btl-wv.txt", - "no qps in receive_queues", true, - ompi_process_info.nodename, - mca_btl_wv_component.receive_queues); - ret = OMPI_ERROR; - goto error; - } - - while (queues[qp] != NULL) { - if (0 == strncmp("P,", queues[qp], 2)) { - num_pp_qps++; - if (smallest_pp_qp > qp) { - smallest_pp_qp = qp; - } - } else if (0 == strncmp("S,", queues[qp], 2)) { - num_srq_qps++; - }else { - opal_show_help("help-mpi-btl-wv.txt", - "invalid qp type in receive_queues", true, - ompi_process_info.nodename, - mca_btl_wv_component.receive_queues, - queues[qp]); - ret = OMPI_ERR_BAD_PARAM; - goto error; - } - qp++; - } - mca_btl_wv_component.num_pp_qps = num_pp_qps; - mca_btl_wv_component.num_srq_qps = num_srq_qps; - mca_btl_wv_component.num_qps = num_pp_qps + num_srq_qps; - - mca_btl_wv_component.qp_infos = (mca_btl_wv_qp_info_t*) - malloc(sizeof(mca_btl_wv_qp_info_t) * - mca_btl_wv_component.num_qps); - - qp = 0; -#define P(N) (((N) > count) ? NULL : params[(N)]) - while (queues[qp] != NULL) { - int count; - int32_t rd_low, rd_num; - params = opal_argv_split_with_empty(queues[qp], ','); - count = opal_argv_count(params); - - if ('P' == params[0][0]) { - int32_t rd_win, rd_rsv; - if (count < 3 || count > 6) { - opal_show_help("help-mpi-btl-wv.txt", - "invalid pp qp specification", true, - ompi_process_info.nodename, queues[qp]); - ret = OMPI_ERR_BAD_PARAM; - goto error; - } - mca_btl_wv_component.qp_infos[qp].type = MCA_BTL_WV_PP_QP; - mca_btl_wv_component.qp_infos[qp].size = atoi_param(P(1), 0); - rd_num = atoi_param(P(2), 256); - /* by default set rd_low to be 3/4 of rd_num */ - rd_low = atoi_param(P(3), rd_num - (rd_num / 4)); - rd_win = atoi_param(P(4), (rd_num - rd_low) * 2); - rd_rsv = atoi_param(P(5), (rd_num * 2) / rd_win); - - BTL_VERBOSE(("pp: rd_num is %d rd_low is %d rd_win %d rd_rsv %d", - rd_num, rd_low, rd_win, rd_rsv)); - - /* Calculate the smallest freelist size that can be allowed */ - if (rd_num + rd_rsv > min_freelist_size) { - min_freelist_size = rd_num + rd_rsv; - } - - mca_btl_wv_component.qp_infos[qp].u.pp_qp.rd_win = rd_win; - mca_btl_wv_component.qp_infos[qp].u.pp_qp.rd_rsv = rd_rsv; - if ((rd_num - rd_low) > rd_win) { - opal_show_help("help-mpi-btl-wv.txt", "non optimal rd_win", - true, rd_win, rd_num - rd_low); - } - } else { - int32_t sd_max, rd_init, srq_limit; - if (count < 3 || count > 7) { - opal_show_help("help-mpi-btl-wv.txt", - "invalid srq specification", true, - ompi_process_info.nodename, queues[qp]); - ret = OMPI_ERR_BAD_PARAM; - goto error; - } - mca_btl_wv_component.qp_infos[qp].type = MCA_BTL_WV_SRQ_QP; - mca_btl_wv_component.qp_infos[qp].size = atoi_param(P(1), 0); - rd_num = atoi_param(P(2), 256); - /* by default set rd_low to be 3/4 of rd_num */ - rd_low = atoi_param(P(3), rd_num - (rd_num / 4)); - sd_max = atoi_param(P(4), rd_low / 4); - /* rd_init is initial value for rd_curr_num of all SRQs, 1/4 of rd_num by default */ - rd_init = atoi_param(P(5), rd_num / 4); - /* by default set srq_limit to be 3/16 of rd_init (it's 1/4 of rd_low_local, - the value of rd_low_local we calculate in create_srq function) */ - srq_limit = atoi_param(P(6), (rd_init - (rd_init / 4)) / 4); - /* If we set srq_limit to zero, but size of SRQ greater than 1 => set it to be 1 */ - if((0 == srq_limit) && (1 < rd_num)) { - srq_limit = 1; - } - - BTL_VERBOSE(("srq: rd_num is %d rd_low is %d sd_max is %d rd_max is %d srq_limit is %d", - rd_num, rd_low, sd_max, rd_init, srq_limit)); - - /* Calculate the smallest freelist size that can be allowed */ - if (rd_num > min_freelist_size) { - min_freelist_size = rd_num; - } - - if (rd_num < rd_init) { - opal_show_help("help-mpi-btl-wv.txt", "rd_num must be >= rd_init", - true, ompi_process_info.nodename, queues[qp]); - ret = OMPI_ERR_BAD_PARAM; - goto error; - } - - if (rd_num < srq_limit) { - opal_show_help("help-mpi-btl-wv.txt", "srq_limit must be > rd_num", - true, ompi_process_info.nodename, queues[qp]); - ret = OMPI_ERR_BAD_PARAM; - goto error; - } - - mca_btl_wv_component.qp_infos[qp].u.srq_qp.sd_max = sd_max; - mca_btl_wv_component.qp_infos[qp].u.srq_qp.rd_init = rd_init; - mca_btl_wv_component.qp_infos[qp].u.srq_qp.srq_limit = srq_limit; - } - - if (rd_num <= rd_low) { - opal_show_help("help-mpi-btl-wv.txt", "rd_num must be > rd_low", - true, ompi_process_info.nodename, queues[qp]); - ret = OMPI_ERR_BAD_PARAM; - goto error; - } - mca_btl_wv_component.qp_infos[qp].rd_num = rd_num; - mca_btl_wv_component.qp_infos[qp].rd_low = rd_low; - opal_argv_free(params); - qp++; - } - params = NULL; - - /* Sanity check some sizes */ - - max_qp_size = mca_btl_wv_component.qp_infos[mca_btl_wv_component.num_qps - 1].size; - max_size_needed = (mca_btl_wv_module.super.btl_eager_limit > - mca_btl_wv_module.super.btl_max_send_size) ? - mca_btl_wv_module.super.btl_eager_limit : - mca_btl_wv_module.super.btl_max_send_size; - if (max_qp_size < max_size_needed) { - opal_show_help("help-mpi-btl-wv.txt", - "biggest qp size is too small", true, - ompi_process_info.nodename, max_qp_size, - max_size_needed); - ret = OMPI_ERR_BAD_PARAM; - goto error; - } else if (max_qp_size > max_size_needed) { - opal_show_help("help-mpi-btl-wv.txt", - "biggest qp size is too big", true, - ompi_process_info.nodename, max_qp_size, - max_size_needed); - } - - if (mca_btl_wv_component.ib_free_list_max > 0 && - min_freelist_size > mca_btl_wv_component.ib_free_list_max) { - opal_show_help("help-mpi-btl-wv.txt", "freelist too small", true, - ompi_process_info.nodename, - mca_btl_wv_component.ib_free_list_max, - min_freelist_size); - ret = OMPI_ERR_BAD_PARAM; - goto error; - } - - mca_btl_wv_component.rdma_qp = mca_btl_wv_component.num_qps - 1; - mca_btl_wv_component.credits_qp = smallest_pp_qp; - - ret = OMPI_SUCCESS; -error: - if (NULL != params) { - opal_argv_free(params); - } - - if (NULL != queues) { - opal_argv_free(queues); - } - - return ret; -} - -static int init_one_device(opal_list_t *btl_list, struct wv_device* ib_dev) -{ - struct mca_mpool_base_resources_t mpool_resources; - mca_btl_wv_device_t *device; - uint8_t i, k = 0; - int ret = -1, port_cnt; - ompi_btl_wv_ini_values_t values, default_values; - int *allowed_ports = NULL; - bool need_search; - struct wverbs_device *vdev; - struct wverbs_context *vcontext; - HRESULT hr; - - device = OBJ_NEW(mca_btl_wv_device_t); - if(NULL == device){ - BTL_ERROR(("Failed malloc: %s:%d", __FILE__, __LINE__)); - return OMPI_ERR_OUT_OF_RESOURCE; - } - - device->ib_dev = ib_dev; - - vdev = CONTAINING_RECORD(ib_dev, struct wverbs_device, device); - vcontext = (struct wverbs_context*)malloc(sizeof(struct wverbs_context)); - if (vcontext == NULL) { - return NULL; - } - - memcpy(&vcontext->device, vdev, sizeof(struct wverbs_device)); - vcontext->context.device = &vcontext->device.device; - vcontext->event_port = NULL; - vcontext->closing = 0; - - vcontext->port = (struct wverbs_port*)malloc(vdev->phys_port_cnt*sizeof(struct wverbs_port)); - - hr = prov->OpenDevice(vdev->guid, &vcontext->context.device_if); - if (FAILED(hr)) { - goto error; - } - - for (i = 0; i < vdev->phys_port_cnt; i++) { - vcontext->port[i].port_num = (uint8_t) i + 1; - vcontext->port[i].event_flag = 0; - vcontext->context.device_if->Notify(vcontext->port[i].port_num, - &vcontext->port[i].comp_entry.Overlap, - &vcontext->port[i].event_flag); - } - device->ib_dev_context = &vcontext->context; - - device->ib_pd = NULL; - device->device_btls = OBJ_NEW(opal_pointer_array_t); - if (OPAL_SUCCESS != opal_pointer_array_init(device->device_btls, 2, INT_MAX, 2)) { - BTL_ERROR(("Failed to initialize device_btls array: %s:%d", __FILE__, __LINE__)); - return OMPI_ERR_OUT_OF_RESOURCE; - } - - if(NULL == device->ib_dev_context){ - BTL_ERROR(("error obtaining device context for %s errno says %s", - device->ib_dev->name, strerror(errno))); - goto error; - } - - hr = device->ib_dev_context->device_if->Query(&device->ib_dev_attr); - if (FAILED(hr)) { - BTL_ERROR(("error obtaining device attributes for %s errno says %s", - device->ib_dev->name, strerror(errno))); - goto error; - } - - /* If mca_btl_if_include/exclude were specified, get usable ports */ - allowed_ports = (int*)malloc(device->ib_dev_attr.PhysPortCount * sizeof(int)); - port_cnt = get_port_list(device, allowed_ports); - if (0 == port_cnt) { - free(allowed_ports); - ret = OMPI_SUCCESS; - goto error; - } - - /* Load in vendor/part-specific device parameters. Note that even if - we don't find values for this vendor/part, "values" will be set - indicating that it does not have good values */ - ret = ompi_btl_wv_ini_query(device->ib_dev_attr.VendorId, - device->ib_dev_attr.VendorPartId, - &values); - if (OMPI_SUCCESS != ret && - OMPI_ERR_NOT_FOUND != ret) { - /* If we get a serious error, propagate it upwards */ - goto error; - } - if (OMPI_ERR_NOT_FOUND == ret) { - /* If we didn't find a matching device in the INI files, output a - warning that we're using default values (unless overridden - that we don't want to see these warnings) */ - if (mca_btl_wv_component.warn_no_device_params_found) { - opal_show_help("help-mpi-btl-wv.txt", - "no device params found", true, - ompi_process_info.nodename, - device->ib_dev->name, - device->ib_dev_attr.VendorId, - device->ib_dev_attr.VendorPartId); - } - } - /* Note that even if we don't find default values, "values" will - be set indicating that it does not have good values */ - ret = ompi_btl_wv_ini_query(0, 0, &default_values); - if (OMPI_SUCCESS != ret && - OMPI_ERR_NOT_FOUND != ret) { - /* If we get a serious error, propagate it upwards */ - goto error; - } - - /* If we did find values for this device (or in the defaults - section), handle them */ - merge_values(&values, &default_values); - if (values.mtu_set) { - switch (values.mtu) { - case 256: - device->mtu = WV_MTU_256; - break; - case 512: - device->mtu = WV_MTU_512; - break; - case 1024: - device->mtu = WV_MTU_1024; - break; - case 2048: - device->mtu = WV_MTU_2048; - break; - case 4096: - device->mtu = WV_MTU_4096; - break; - default: - BTL_ERROR(("invalid MTU value specified in INI file (%d); ignored", values.mtu)); - device->mtu = mca_btl_wv_component.ib_mtu; - break; - } - } else { - device->mtu = mca_btl_wv_component.ib_mtu; - } - - device->ib_pd = (struct wv_pd*)malloc(sizeof(wv_pd)); - hr = device->ib_dev_context->device_if->AllocateProtectionDomain(&device->ib_pd->handle); - device->ib_pd->context = device->ib_dev_context; - - if(NULL == device->ib_pd){ - BTL_ERROR(("error allocating protection domain for %s errno says %s", - device->ib_dev->name, strerror(errno))); - goto error; - } - - /* Figure out what the max_inline_data value should be for all - ports and QPs on this device */ - need_search = false; - if(-2 != mca_btl_wv_component.ib_max_inline_data) { - /* User has explicitly set btl_wv_max_inline_data MCA parameter - Per setup in _mca.c, we know that the MCA param value is guaranteed - to be >= -1 */ - if (-1 == mca_btl_wv_component.ib_max_inline_data) { - need_search = true; - } else { - device->max_inline_data = (uint32_t) - mca_btl_wv_component.ib_max_inline_data; - } - } else if (values.max_inline_data_set) { - if (-1 == values.max_inline_data) { - need_search = true; - } else if (values.max_inline_data >= 0) { - device->max_inline_data = (uint32_t) values.max_inline_data; - } else { - if(default_values.max_inline_data_set && - default_values.max_inline_data >= -1) { - BTL_ERROR(("Invalid max_inline_data value specified " - "in INI file (%d); using default value (%d)", - values.max_inline_data, - default_values.max_inline_data)); - device->max_inline_data = (uint32_t) - default_values.max_inline_data; - } else { - BTL_ERROR(("Invalid max_inline_data value specified " - "in INI file (%d)", values.max_inline_data)); - ret = OMPI_ERR_BAD_PARAM; - goto error; - } - } - } - /* Should we use RDMA for short / eager messages? First check MCA - param, then check INI file values. */ - if (mca_btl_wv_component.use_eager_rdma >= 0) { - device->use_eager_rdma = mca_btl_wv_component.use_eager_rdma; - } else if (values.use_eager_rdma_set) { - device->use_eager_rdma = values.use_eager_rdma; - } - - asprintf (&mpool_resources.pool_name, "verbs.%" PRIu64, device->ib_dev_attr.NodeGuid); - mpool_resources.reg_data = (void*)device; - mpool_resources.sizeof_reg = sizeof(mca_btl_wv_reg_t); - mpool_resources.register_mem = wv_reg_mr; - mpool_resources.deregister_mem = wv_dereg_mr; - device->mpool = - mca_mpool_base_module_create(mca_btl_wv_component.ib_mpool_name, - device, &mpool_resources); - if(NULL == device->mpool){ - /* Don't print an error message here -- we'll get one from - mpool_create anyway */ - goto error; - } - - ret = OMPI_SUCCESS; - for(k = 0; k < port_cnt; k++){ - WV_PORT_ATTRIBUTES ib_port_attr; - HRESULT hr; - i = allowed_ports[k]; - hr = device->ib_dev_context->device_if->QueryPort(i, &ib_port_attr); - if (FAILED(hr)) { - BTL_ERROR(("error getting port attributes for device %s " - "port number %d errno says %s", - device->ib_dev->name, i, strerror(errno))); - break; - } - if(WvPortActive == ib_port_attr.State) { - /* Select the lower of the HCA and port active speed. With QLogic - HCAs that are capable of 4K MTU we had an issue when connected - to switches with 2K MTU. This fix is valid for other IB vendors - as well. */ - if (wv_convert_mtu(ib_port_attr.ActiveMtu) < device->mtu){ - device->mtu = wv_convert_mtu(ib_port_attr.ActiveMtu); - } - if (mca_btl_wv_component.apm_ports && device->btls > 0) { - init_apm_port(device, i, ntohs(ib_port_attr.Lid)); - break; - } - if (0 == mca_btl_wv_component.ib_pkey_val) { - ret = init_one_port(btl_list, device, i, 0, &ib_port_attr); - } else { - uint16_t pkey,j; - for (j = 0; j < (uint16_t)device->ib_dev_attr.MaxPkeys; j++) { - { - HRESULT hr = 0; - hr = device->ib_dev_context->device_if->QueryPkey(i,(UINT16)j,&pkey); - if(FAILED(hr)) { - BTL_ERROR(("error getting pkey for index %d, device %s " - "port number %d errno says %s", - j, device->ib_dev->name, i, strerror(errno))); - } - } - pkey = ntohs(pkey) & MCA_BTL_IB_PKEY_MASK; - if(pkey == mca_btl_wv_component.ib_pkey_val){ - ret = init_one_port(btl_list, device, i, j, &ib_port_attr); - break; - } - } - } - if (OMPI_SUCCESS != ret) { - /* Out of bounds error indicates that we hit max btl number - * don't propagate the error to the caller */ - if (OMPI_ERR_VALUE_OUT_OF_BOUNDS == ret) { - ret = OMPI_SUCCESS; - } - break; - } - } - } - free(allowed_ports); - - /* If we made a BTL, check APM status and return. Otherwise, fall - through and destroy everything */ - if (device->btls > 0) { - /* if apm was enabled it should be > 1 */ - if (1 == mca_btl_wv_component.apm_ports) { - opal_show_help("help-mpi-btl-wv.txt", - "apm not enough ports", true); - mca_btl_wv_component.apm_ports = 0; - } - - /* Check to ensure that all devices used in this process have - compatible receive_queues values (we check elsewhere to see - if all devices used in other processes in this job have - compatible receive_queues values). - - Not only is the check complex, but the reasons behind what - it does (and does not do) are complex. Before explaining - the code below, here's some notes: - - 1. The wv BTL component only supports 1 value of the - receive_queues between all of its modules. - - --> This could be changed to allow every module to have - its own receive_queues. But that would be a big - deal; no one has time to code this up right now. - - 2. The receive_queues value can be specified either as an - MCA parameter or in the INI file. Specifying the value - as an MCA parameter overrides all INI file values - (meaning: that MCA param value will be used for all - wv BTL modules in the process). - - Effectively, the first device through init_one_device() - gets to decide what the receive_queues will be for the all - modules in this process. This is an unfortunate artifact - of the wv BTL startup sequence (see below for more - details). The first device will choose the receive_queues - value from: (in priority order): - - 1. If the btl_wv_receive_queues MCA param was - specified, use that. - 2. If this device has a receive_queues value specified in - the INI file, use that. - 3. Otherwise, use the default MCA param value for - btl_wv_receive_queues. - - If any successive device has a different value specified in - the INI file, we show_help and return up the stack that - this device failed. - - In the case that the user does not specify a - mca_btl_wv_receive_queues value, the short description - of what is allowed is that either a) no devices specify a - receive_queues value in the INI file (in which case we use - the default MCA param value), b) all devices specify the - same receive_queues value in the INI value, or c) some/all - devices specify the same receive_queues value in the INI - value as the default MCA param value. - - Let's take some sample cases to explain this more clearly... - - THESE ARE THE "GOOD" CASES - -------------------------- - - Case 1: no INI values - - MCA parameter: not specified - - default receive_queues: value A - - device 0: no receive_queues in INI file - - device 1: no receive_queues in INI file - - device 2: no receive_queues in INI file - --> use receive_queues value A with all devices - - Case 2: all INI values the same (same as default) - - MCA parameter: not specified - - default receive_queues: value A - - device 0: receive_queues value A in the INI file - - device 1: receive_queues value A in the INI file - - device 2: receive_queues value A in the INI file - --> use receive_queues value A with all devices - - Case 3: all INI values the same (but different than default) - - MCA parameter: not specified - - default receive_queues: value A - - device 0: receive_queues value B in the INI file - - device 1: receive_queues value B in the INI file - - device 2: receive_queues value B in the INI file - --> use receive_queues value B with all devices - - Case 4: some INI unspecified, but rest same as default - - MCA parameter: not specified - - default receive_queues: value A - - device 0: receive_queues value A in the INI file - - device 1: no receive_queues in INI file - - device 2: receive_queues value A in the INI file - --> use receive_queues value A with all devices - - Case 5: some INI unspecified (including device 0), but rest same as default - - MCA parameter: not specified - - default receive_queues: value A - - device 0: no receive_queues in INI file - - device 1: no receive_queues in INI file - - device 2: receive_queues value A in the INI file - --> use receive_queues value A with all devices - - Case 6: different default/INI values, but MCA param is specified - - MCA parameter: value D - - default receive_queues: value A - - device 0: no receive_queues in INI file - - device 1: receive_queues value B in INI file - - device 2: receive_queues value C in INI file - --> use receive_queues value D with all devices - - What this means is that this selection process is - unfortunately tied to the order of devices. :-( Device 0 - effectively sets what the receive_queues value will be for - that process. If any later device disagrees, that's - problematic and we have to error/abort. - - ALL REMAINING CASES WILL FAIL - ----------------------------- - - Case 7: one INI value (different than default) - - MCA parameter: not specified - - default receive_queues: value A - - device 0: receive_queues value B in INI file - - device 1: no receive_queues in INI file - - device 2: no receive_queues in INI file - --> Jeff thinks that it would be great to use - receive_queues value B with all devices. However, it - shares one of the problems cited in case 8, below. So - we need to fail this scenario; print an error and - abort. - - Case 8: one INI value, different than default - - MCA parameter: not specified - - default receive_queues: value A - - device 0: no receive_queues in INI file - - device 1: receive_queues value B in INI file - - device 2: no receive_queues in INI file - - --> Jeff thinks that it would be great to use - receive_queues value B with all devices. However, it - has (at least) 2 problems: - - 1. The check for local receive_queue compatibility is - done here in init_one_device(). By the time we call - init_one_device() for device 1, we have already - called init_one_device() for device 0, meaning that - device 0's QPs have already been created and setup - using the MCA parameter's default receive_queues - value. So if device 1 *changes* the - component.receive_queues value, then device 0 and - device 1 now have different receive_queue sets (more - specifically: the QPs setup for device 0 are now - effectively lost). This is Bad. - - It would be great if we didn't have this restriction - -- either by letting each module have its own - receive_queues value or by scanning all devices and - figuring out a final receive_queues value *before* - actually setting up any QPs. But that's not the - current flow of the code (patches would be greatly - appreciated here, of course!). Unfortunately, no - one has time to code this up right now, so we're - leaving this as explicitly documented for some - future implementer... - - 2. Conside a scenario with server 1 having HCA A/subnet - X, and server 2 having HCA B/subnet X and HCA - C/subnet Y. And let's assume: - - Server 1: - HCA A: no receive_queues in INI file - - Server 2: - HCA B: no receive_queues in INI file - HCA C: receive_queues specified in INI file - - A will therefore use the default receive_queues - value. B and C will use C's INI receive_queues. - But note that modex [currently] only sends around - vendor/part IDs for OpenFabrics devices -- not the - actual receive_queues value (it was felt that - including the final receive_queues string value in - the modex would dramatically increase the size of - the modex). So processes on server 1 will get the - vendor/part ID for HCA B, look it up in the INI - file, see that it has no receive_queues value - specified, and then assume that it uses the default - receive_queues value. Hence, procs on server 1 will - try to connect HCA A-->HCA B with the wrong - receive_queues value. Bad. Further, the error - won't be discovered by checks like this because A - won't check D's receive_queues because D is on a - different subnet. - - This could be fixed, of course; either by a) send - the final receive_queues value in the modex (perhaps - compressing or encoding it so that it can be much - shorter than the string -- the current vendor/part - ID stuff takes 8 bytes for each device), or b) - replicating the determination process of each host - in each process (i.e., procs on server 1 would see - both B and C, and use them both to figure out what - the "final" receive_queues value is for B). - Unfortunately, no one has time to code this up right - now, so we're leaving this as explicitly documented - for some future implementer... - - Because of both of these problems, this case is - problematic and must fail with a show_help error. - - Case 9: two devices with same INI value (different than default) - - MCA parameter: not specified - - default receive_queues: value A - - device 0: no receive_queues in INI file - - device 1: receive_queues value B in INI file - - device 2: receive_queues value B in INI file - --> per case 8, fail with a show_help message. - - Case 10: two devices with different INI values - - MCA parameter: not specified - - default receive_queues: value A - - device 0: no receive_queues in INI file - - device 1: receive_queues value B in INI file - - device 2: receive_queues value C in INI file - --> per case 8, fail with a show_help message. - - */ - - /* If the MCA param was specified, skip all the checks */ - if (BTL_WV_RQ_SOURCE_MCA == - mca_btl_wv_component.receive_queues_source) { - goto good; - } - - /* If we're the first device and we have a receive_queues - value from the INI file *that is different than the - already-existing default value*, then set the component to - use that. */ - if (0 == mca_btl_wv_component.devices_count) { - if (NULL != values.receive_queues && - 0 != strcmp(values.receive_queues, - mca_btl_wv_component.receive_queues)) { - if (NULL != mca_btl_wv_component.receive_queues) { - free(mca_btl_wv_component.receive_queues); - } - mca_btl_wv_component.receive_queues = - strdup(values.receive_queues); - mca_btl_wv_component.receive_queues_source = - BTL_WV_RQ_SOURCE_DEVICE_INI; - } - } - - /* If we're not the first device, then we have to conform to - either the default value if the first device didn't set - anything, or to whatever the first device decided. */ - else { - /* In all cases, if this device has a receive_queues value - in the INI, then it must agree with - component.receive_queues. */ - if (NULL != values.receive_queues) { - if (0 != strcmp(values.receive_queues, - mca_btl_wv_component.receive_queues)) { - opal_show_help("help-mpi-btl-wv.txt", - "locally conflicting receive_queues", true, - opal_install_dirs.pkgdatadir, - ompi_process_info.nodename, - receive_queues_device->ib_dev->name, - receive_queues_device->ib_dev_attr.VendorId, - receive_queues_device->ib_dev_attr.VendorPartId, - mca_btl_wv_component.receive_queues, - device->ib_dev->name, - device->ib_dev_attr.VendorId, - device->ib_dev_attr.VendorPartId, - values.receive_queues); - ret = OMPI_ERR_RESOURCE_BUSY; - goto error; - } - } - - /* If this device doesn't have an INI receive_queues - value, then if the component.receive_queues value came - from the default, we're ok. But if the - component.receive_queues value came from the 1st - device's INI file, we must error. */ - else if (BTL_WV_RQ_SOURCE_DEVICE_INI == - mca_btl_wv_component.receive_queues_source) { - opal_show_help("help-mpi-btl-wv.txt", - "locally conflicting receive_queues", true, - opal_install_dirs.pkgdatadir, - ompi_process_info.nodename, - receive_queues_device->ib_dev->name, - receive_queues_device->ib_dev_attr.VendorId, - receive_queues_device->ib_dev_attr.VendorPartId, - mca_btl_wv_component.receive_queues, - device->ib_dev->name, - device->ib_dev_attr.VendorId, - device->ib_dev_attr.VendorPartId, - mca_btl_wv_component.default_recv_qps); - ret = OMPI_ERR_RESOURCE_BUSY; - goto error; - } - } - - receive_queues_device = device; - - good: - mca_btl_wv_component.devices_count++; - return OMPI_SUCCESS; - } - -error: - if (device->mpool) { - mca_mpool_base_module_destroy(device->mpool); - } - if (device->ib_pd) { - device->ib_pd->handle->Release(); - free(device->ib_pd); - } - - if (OMPI_SUCCESS != ret) { - opal_show_help("help-mpi-btl-wv.txt", - "error in device init", true, - ompi_process_info.nodename, - device->ib_dev->name); - } - device->ib_dev_context->device_if->Release(); - OBJ_RELEASE(device); - return ret; -} - -static int finish_btl_init(mca_btl_wv_module_t *wv_btl) -{ - int qp; - wv_btl->num_peers = 0; - - /* Initialize module state */ - OBJ_CONSTRUCT(&wv_btl->ib_lock, opal_mutex_t); - - /* setup the qp structure */ - wv_btl->qps = (mca_btl_wv_module_qp_t*) - calloc(mca_btl_wv_component.num_qps, - sizeof(mca_btl_wv_module_qp_t)); - - /* setup all the qps */ - for (qp = 0; qp < mca_btl_wv_component.num_qps; qp++) { - if (!BTL_WV_QP_TYPE_PP(qp)) { - OBJ_CONSTRUCT(&wv_btl->qps[qp].u.srq_qp.pending_frags[0], - opal_list_t); - OBJ_CONSTRUCT(&wv_btl->qps[qp].u.srq_qp.pending_frags[1], - opal_list_t); - wv_btl->qps[qp].u.srq_qp.sd_credits = - mca_btl_wv_component.qp_infos[qp].u.srq_qp.sd_max; - wv_btl->qps[qp].u.srq_qp.srq = NULL; - } - } - - /* initialize the memory pool using the device */ - wv_btl->super.btl_mpool = wv_btl->device->mpool; - - wv_btl->eager_rdma_channels = 0; - - wv_btl->eager_rdma_frag_size = OPAL_ALIGN( - sizeof(mca_btl_wv_header_t) + - sizeof(mca_btl_wv_header_coalesced_t) + - sizeof(mca_btl_wv_control_header_t) + - sizeof(mca_btl_wv_footer_t) + - wv_btl->super.btl_eager_limit, - mca_btl_wv_component.buffer_alignment, size_t); - - return OMPI_SUCCESS; -} - -static struct wv_device **wv_get_device_list_compat(int *num_devs) -{ - struct wv_device **ib_devs; - WV_DEVICE_ATTRIBUTES attr; - struct wverbs_device *dev_array; - NET64 *guid; - SIZE_T size, cnt; - HRESULT hr; - - hr = WvGetObject(IID_IWVProvider,(LPVOID*)&prov); - if(FAILED(hr)) - goto err1; - cnt = 0; - size = sizeof(NET64); - while ((size / sizeof(NET64)) > cnt) { - if (cnt > 0) { - free(guid); - } - cnt = size / sizeof(NET64); - guid = (NET64*)malloc(cnt*sizeof(NET64)) ; - if (guid == NULL) { - goto err1; - } - hr = prov->QueryDeviceList(guid, &size); - if (FAILED(hr)) { - goto err2; - } - } - size /= sizeof(NET64); - dev_array = (struct wverbs_device*) malloc(size*sizeof(wverbs_device)); - ib_devs = (struct wv_device**)malloc((size + 1)*sizeof(wv_device)); - if (dev_array == NULL || ib_devs == NULL) { - goto err2; - } - for (cnt = 0; cnt < size; cnt++) { - ib_devs[cnt] = &dev_array[cnt].device; - hr = prov->QueryDevice(guid[cnt], &attr); - if (FAILED(hr)) { - goto err3; - } - sprintf(dev_array[cnt].device.name, "ib_device%d", cnt); - dev_array[cnt].device.node_type = WV_NODE_UNKNOWN; - dev_array[cnt].device.transport_type = (WV_DEVICE_TYPE) attr.DeviceType; - dev_array[cnt].guid = guid[cnt]; - dev_array[cnt].phys_port_cnt = attr.PhysPortCount; - } - ib_devs[cnt] = NULL; - *num_devs = (int) size; - return ib_devs; -err3: - free(ib_devs); -err2: - free(guid); -err1: - return NULL; -} - -static void wv_free_device_list_compat(struct wv_device **ib_devs) -{ - free(ib_devs); -} - -struct dev_distance { - struct wv_device *ib_dev; - int distance; -}; - -static int get_ib_dev_distance(struct ibv_device *dev) -{ - /* If we don't have hwloc, we'll default to a distance of 0, - because we have no way of measuring. */ - int distance = 0; - -#if OPAL_HAVE_HWLOC - int a, b, i; - hwloc_cpuset_t my_cpuset = NULL, ibv_cpuset = NULL; - hwloc_obj_t my_obj, ibv_obj, node_obj; - - /* Note that this struct is owned by hwloc; there's no need to - free it at the end of time */ - static const struct hwloc_distances_s *hwloc_distances = NULL; - - if (NULL == hwloc_distances) { - hwloc_distances = - hwloc_get_whole_distance_matrix_by_type(opal_hwloc_topology, - HWLOC_OBJ_NODE); - } - - /* If we got no info, just return 0 */ - if (NULL == hwloc_distances || NULL == hwloc_distances->latency) { - goto out; - } - - /* Next, find the NUMA node where this IBV device is located */ - ibv_cpuset = hwloc_bitmap_alloc(); - if (NULL == ibv_cpuset) { - goto out; - } - if (0 != hwloc_ibv_get_device_cpuset(opal_hwloc_topology, dev, ibv_cpuset)) { - goto out; - } - ibv_obj = hwloc_get_obj_covering_cpuset(opal_hwloc_topology, ibv_cpuset); - if (NULL == ibv_obj) { - goto out; - } - - /* If ibv_obj is a NUMA node or below, we're good. */ - switch (ibv_obj->type) { - case HWLOC_OBJ_NODE: - case HWLOC_OBJ_SOCKET: - case HWLOC_OBJ_CACHE: - case HWLOC_OBJ_CORE: - case HWLOC_OBJ_PU: - while (NULL != ibv_obj && ibv_obj->type != HWLOC_OBJ_NODE) { - ibv_obj = ibv_obj->parent; - } - break; - - default: - /* If it's above a NUMA node, then I don't know how to compute - the distance... */ - ibv_obj = NULL; - break; - } - - /* If we don't have an object for this ibv device, give up */ - if (NULL == ibv_obj) { - goto out; - } - - /* This function is only called if the process is bound, so let's - find out where we are bound to. For the moment, we only care - about the NUMA node to which we are bound. */ - my_cpuset = hwloc_bitmap_alloc(); - if (NULL == my_cpuset) { - goto out; - } - if (0 != hwloc_get_cpubind(opal_hwloc_topology, my_cpuset, 0)) { - hwloc_bitmap_free(my_cpuset); - goto out; - } - my_obj = hwloc_get_obj_covering_cpuset(opal_hwloc_topology, my_cpuset); - if (NULL == my_obj) { - goto out; - } - - /* If my_obj is a NUMA node or below, we're good. */ - switch (my_obj->type) { - case HWLOC_OBJ_NODE: - case HWLOC_OBJ_SOCKET: - case HWLOC_OBJ_CACHE: - case HWLOC_OBJ_CORE: - case HWLOC_OBJ_PU: - while (NULL != my_obj && my_obj->type != HWLOC_OBJ_NODE) { - my_obj = my_obj->parent; - } - if (NULL != my_obj) { - /* Distance may be asymetrical, so calculate both of them - and take the max */ - a = hwloc_distances->latency[my_obj->logical_index * - (ibv_obj->logical_index * - hwloc_distances->nbobjs)]; - b = hwloc_distances->latency[ibv_obj->logical_index * - (my_obj->logical_index * - hwloc_distances->nbobjs)]; - distance = (a > b) ? a : b; - } - break; - - default: - /* If the obj is above a NUMA node, then we're bound to more than - one NUMA node. Find the max distance. */ - i = 0; - for (node_obj = hwloc_get_obj_inside_cpuset_by_type(opal_hwloc_topology, - ibv_obj->cpuset, - HWLOC_OBJ_NODE, i); - NULL != node_obj; - node_obj = hwloc_get_obj_inside_cpuset_by_type(opal_hwloc_topology, - ibv_obj->cpuset, - HWLOC_OBJ_NODE, ++i)) { - - a = hwloc_distances->latency[node_obj->logical_index * - (ibv_obj->logical_index * - hwloc_distances->nbobjs)]; - b = hwloc_distances->latency[ibv_obj->logical_index * - (node_obj->logical_index * - hwloc_distances->nbobjs)]; - a = (a > b) ? a : b; - distance = (a > distance) ? a : distance; - } - break; - } - - out: - if (NULL != ibv_cpuset) { - hwloc_bitmap_free(ibv_cpuset); - } - if (NULL != my_cpuset) { - hwloc_bitmap_free(my_cpuset); - } -#endif - - return distance; -} - -static int compare_distance(const void *p1, const void *p2) -{ - const struct dev_distance *d1 = (const struct dev_distance *) p1; - const struct dev_distance *d2 = (const struct dev_distance *) p2; - - return d1->distance - d2->distance; -} - -static struct dev_distance * -sort_devs_by_distance(struct wv_device **ib_devs, int count) -{ - int i; - struct dev_distance *devs = (struct dev_distance *) malloc(count * sizeof(struct dev_distance)); - - /* - * if we have found more than one device, search for the shortest path. - * otherwise, just use the one we got - */ - if (1 == count) { - devs[0].ib_dev = ib_devs[0]; - devs[0].distance = 0; - - return devs; - } - - for (i = 0; i < count; i++) { - devs[i].ib_dev = ib_devs[i]; - if (ompi_rte_proc_is_bound) { - /* If this process is bound to one or more PUs, we can get - an accurate distance. */ - devs[i].distance = get_ib_dev_distance((ibv_device *)ib_devs[i]); - } else { - /* Since we're not bound, just assume that the device is - close. */ - devs[i].distance = 0; - } - } - - qsort(devs, count, sizeof(struct dev_distance), compare_distance); - - return devs; -} - - -/* - * IB component initialization: - * (1) read interface list from kernel and compare against component parameters - * then create a BTL instance for selected interfaces - * (2) setup IB listen socket for incoming connection attempts - * (3) register BTL parameters with the MCA - */ - -static mca_btl_base_module_t** -btl_wv_component_init(int *num_btl_modules, - bool enable_progress_threads, - bool enable_mpi_threads) -{ - struct wv_device **ib_devs; - mca_btl_base_module_t** btls; - int i, ret, num_devs, length; - opal_list_t btl_list; - mca_btl_wv_module_t * wv_btl; - mca_btl_base_selected_module_t* ib_selected; - opal_list_item_t* item; - mca_btl_wv_frag_init_data_t *init_data; - struct dev_distance *dev_sorted; - int distance; - int index, value; - bool found; - mca_base_param_source_t source; - int list_count = 0; - - /* initialization */ - *num_btl_modules = 0; - num_devs = 0; - - /* Read in INI files with device-specific parameters */ - if (OMPI_SUCCESS != (ret = ompi_btl_wv_ini_init())) { - goto no_btls; - } - - /* Init CPC components */ - if (OMPI_SUCCESS != (ret = ompi_btl_wv_connect_base_init())) { - goto no_btls; - } - /* If we are using ptmalloc2 and there are no posix threads - available, this will cause memory corruption. Refuse to run. - Right now, ptmalloc2 is the only memory manager that we have on - OS's that support OpenFabrics that provide both FREE and MUNMAP - support, so the following test is [currently] good enough... */ - value = opal_mem_hooks_support_level(); - /* If we have a memory manager available, and - mpi_leave_pinned==-1, then unless the user explicitly set - mpi_leave_pinned_pipeline==0, then set mpi_leave_pinned to 1. - - We have a memory manager if we have both FREE and MUNMAP - support */ - if ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) == - ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) & value)) { - ret = 0; - index = mca_base_param_find("mpi", NULL, "leave_pinned"); - if (index >= 0) { - if (OPAL_SUCCESS == mca_base_param_lookup_int(index, &value) && - -1 == value) { - ++ret; - } - } - index = mca_base_param_find("mpi", NULL, "leave_pinned_pipeline"); - if (index >= 0) { - if (OPAL_SUCCESS == mca_base_param_lookup_int(index, &value) && - OPAL_SUCCESS == mca_base_param_lookup_source(index, &source, - NULL)) { - if (0 == value && MCA_BASE_PARAM_SOURCE_DEFAULT == source) { - ++ret; - } - } - } - /* If we were good on both parameters, then set leave_pinned=1 */ - if (2 == ret) { - ompi_mpi_leave_pinned = 1; - ompi_mpi_leave_pinned_pipeline = 0; - } - } - index = mca_base_param_find("btl", "wv", "max_inline_data"); - if (index >= 0) { - if (OPAL_SUCCESS == mca_base_param_lookup_source(index, &source, - NULL)) { - if (-1 == mca_btl_wv_component.ib_max_inline_data && - MCA_BASE_PARAM_SOURCE_DEFAULT == source) { - /* If the user has not explicitly set this MCA parameter - use max_inline_data value specified in the - device-specific parameters INI file */ - mca_btl_wv_component.ib_max_inline_data = -2; - } - } - } - index = mca_base_param_find("btl","wv","flags"); - if (index >= 0) { - if (OPAL_SUCCESS == mca_base_param_lookup_int(index, &value)) { - if (value & MCA_BTL_FLAGS_GET) { - /* Until GET flow is fixed - we do not support GET - in wv btl. */ - BTL_ERROR(("WV btl does not support GET flag")); - } - } - } - OBJ_CONSTRUCT(&mca_btl_wv_component.send_free_coalesced, ompi_free_list_t); - OBJ_CONSTRUCT(&mca_btl_wv_component.send_user_free, ompi_free_list_t); - OBJ_CONSTRUCT(&mca_btl_wv_component.recv_user_free, ompi_free_list_t); - - init_data = (mca_btl_wv_frag_init_data_t *) malloc(sizeof(mca_btl_wv_frag_init_data_t)); - - init_data->order = mca_btl_wv_component.rdma_qp; - init_data->list = &mca_btl_wv_component.send_user_free; - - if (OMPI_SUCCESS != ompi_free_list_init_ex_new( - &mca_btl_wv_component.send_user_free, - sizeof(mca_btl_wv_put_frag_t), 2, - OBJ_CLASS(mca_btl_wv_put_frag_t), - 0, 0, - mca_btl_wv_component.ib_free_list_num, - mca_btl_wv_component.ib_free_list_max, - mca_btl_wv_component.ib_free_list_inc, - NULL, mca_btl_wv_frag_init, init_data)) { - goto no_btls; - } - - init_data = (mca_btl_wv_frag_init_data_t *) malloc(sizeof(mca_btl_wv_frag_init_data_t)); - - init_data->order = mca_btl_wv_component.rdma_qp; - init_data->list = &mca_btl_wv_component.recv_user_free; - - if(OMPI_SUCCESS != ompi_free_list_init_ex_new( - &mca_btl_wv_component.recv_user_free, - sizeof(mca_btl_wv_get_frag_t), 2, - OBJ_CLASS(mca_btl_wv_get_frag_t), - 0, 0, - mca_btl_wv_component.ib_free_list_num, - mca_btl_wv_component.ib_free_list_max, - mca_btl_wv_component.ib_free_list_inc, - NULL, mca_btl_wv_frag_init, init_data)) { - goto no_btls; - } - - init_data = (mca_btl_wv_frag_init_data_t *) malloc(sizeof(mca_btl_wv_frag_init_data_t)); - length = sizeof(mca_btl_wv_coalesced_frag_t); - - init_data->list = &mca_btl_wv_component.send_free_coalesced; - - if(OMPI_SUCCESS != ompi_free_list_init_ex( - &mca_btl_wv_component.send_free_coalesced, - length, 2, OBJ_CLASS(mca_btl_wv_coalesced_frag_t), - mca_btl_wv_component.ib_free_list_num, - mca_btl_wv_component.ib_free_list_max, - mca_btl_wv_component.ib_free_list_inc, - NULL, mca_btl_wv_frag_init, init_data)) { - goto no_btls; - } - - /* Parse the include and exclude lists, checking for errors */ - mca_btl_wv_component.if_include_list = - mca_btl_wv_component.if_exclude_list = - mca_btl_wv_component.if_list = NULL; - - if (NULL != mca_btl_wv_component.if_include) - list_count++; - if (NULL != mca_btl_wv_component.if_exclude) - list_count++; - if (NULL != mca_btl_wv_component.ipaddr_include) - list_count++; - if (NULL != mca_btl_wv_component.ipaddr_exclude) - list_count++; - - if (list_count > 1) { - opal_show_help("help-mpi-btl-wv.txt", - "specified include and exclude", true, - NULL == mca_btl_wv_component.if_include ? - "" : mca_btl_wv_component.if_include, - NULL == mca_btl_wv_component.if_exclude ? - "" : mca_btl_wv_component.if_exclude, - NULL == mca_btl_wv_component.ipaddr_include ? - "" :mca_btl_wv_component.ipaddr_include, - NULL == mca_btl_wv_component.ipaddr_exclude ? - "" :mca_btl_wv_component.ipaddr_exclude, - NULL); - goto no_btls; - } else if (NULL != mca_btl_wv_component.if_include) { - mca_btl_wv_component.if_include_list = - opal_argv_split(mca_btl_wv_component.if_include, ','); - mca_btl_wv_component.if_list = - opal_argv_copy(mca_btl_wv_component.if_include_list); - } else if (NULL != mca_btl_wv_component.if_exclude) { - mca_btl_wv_component.if_exclude_list = - opal_argv_split(mca_btl_wv_component.if_exclude, ','); - mca_btl_wv_component.if_list = - opal_argv_copy(mca_btl_wv_component.if_exclude_list); - } - - ib_devs = wv_get_device_list_compat(&num_devs); - - if(0 == num_devs || NULL == ib_devs) { - mca_btl_base_error_no_nics("OpenFabrics (wv)", "device"); - goto no_btls; - } - - dev_sorted = sort_devs_by_distance(ib_devs, num_devs); - - OBJ_CONSTRUCT(&btl_list, opal_list_t); - OBJ_CONSTRUCT(&mca_btl_wv_component.ib_lock, opal_mutex_t); - distance = dev_sorted[0].distance; - for (found = false, i = 0; - i < num_devs && (-1 == mca_btl_wv_component.ib_max_btls || - mca_btl_wv_component.ib_num_btls < - mca_btl_wv_component.ib_max_btls); i++) { - if (distance != dev_sorted[i].distance) { - break; - } - - found = true; - if (OMPI_SUCCESS != - (ret = init_one_device(&btl_list, dev_sorted[i].ib_dev))) { - free(dev_sorted); - goto no_btls; - } - } - free(dev_sorted); - if (!found) { - opal_show_help("help-mpi-btl-wv.txt", "no devices right type", - true, ompi_process_info.nodename, - ((BTL_WV_DT_IB == mca_btl_wv_component.device_type) ? - "InfiniBand" : - (BTL_WV_DT_IWARP == mca_btl_wv_component.device_type) ? - "iWARP" : "")); - goto no_btls; - } - - /* If we got back from checking all the devices and find that - there are still items in the component.if_list, that means that - they didn't exist. Show an appropriate warning if the warning - was not disabled. */ - - if (0 != opal_argv_count(mca_btl_wv_component.if_list) && - mca_btl_wv_component.warn_nonexistent_if) { - char *str = opal_argv_join(mca_btl_wv_component.if_list, ','); - opal_show_help("help-mpi-btl-wv.txt", "nonexistent port", - true, ompi_process_info.nodename, - ((NULL != mca_btl_wv_component.if_include) ? - "in" : "ex"), str); - free(str); - } - - if(0 == mca_btl_wv_component.ib_num_btls) { - opal_show_help("help-mpi-btl-wv.txt", - "no active ports found", true, ompi_process_info.nodename); - goto no_btls; - } - - /* Setup the BSRQ QP's based on the final value of - mca_btl_wv_component.receive_queues. */ - if (OMPI_SUCCESS != setup_qps()) { - goto no_btls; - } - - /* Allocate space for btl modules */ - mca_btl_wv_component.wv_btls = - (mca_btl_wv_module_t **) malloc(sizeof(mca_btl_wv_module_t*) * - mca_btl_wv_component.ib_num_btls); - if(NULL == mca_btl_wv_component.wv_btls) { - BTL_ERROR(("Failed malloc: %s:%d", __FILE__, __LINE__)); - goto no_btls; - } - btls = (struct mca_btl_base_module_t **) - malloc(mca_btl_wv_component.ib_num_btls * - sizeof(struct mca_btl_base_module_t*)); - if(NULL == btls) { - BTL_ERROR(("Failed malloc: %s:%d", __FILE__, __LINE__)); - goto no_btls; - } - - /* Copy the btl module structs into a contiguous array and fully - initialize them */ - i = 0; - while (NULL != (item = opal_list_remove_first(&btl_list))) { - mca_btl_wv_device_t *device; - int qp_index; - - ib_selected = (mca_btl_base_selected_module_t*)item; - wv_btl = (mca_btl_wv_module_t*)ib_selected->btl_module; - device = wv_btl->device; - - /* Search for a CPC that can handle this port */ - ret = ompi_btl_wv_connect_base_select_for_local_port(wv_btl); - /* If we get NOT_SUPPORTED, then no CPC was found for this - port. But that's not a fatal error -- just keep going; - let's see if we find any usable wv modules or not. */ - if (OMPI_ERR_NOT_SUPPORTED == ret) { - continue; - } else if (OMPI_SUCCESS != ret) { - /* All others *are* fatal. Note that we already did a - show_help in the lower layer */ - goto no_btls; - } - - if (mca_btl_wv_component.max_hw_msg_size > 0 && - mca_btl_wv_component.max_hw_msg_size > wv_btl->ib_port_attr.MaxMessageSize) { - BTL_ERROR(("max_hw_msg_size (%d) is larger than hw max message size (%d)", - mca_btl_wv_component.max_hw_msg_size, wv_btl->ib_port_attr.MaxMessageSize)); - } - - mca_btl_wv_component.wv_btls[i] = wv_btl; - OBJ_RELEASE(ib_selected); - btls[i] = &wv_btl->super; - if (finish_btl_init(wv_btl) != OMPI_SUCCESS) { - goto no_btls; - } - ++i; - - /* For each btl module that we made - find every - base device that doesn't have device->qps setup on it yet (remember - that some modules may share the same device, so when going through - to loop, we may hit a device that was already setup earlier in - the loop). - - We may to call for prepare_device_for_use() only after adding the btl - to mca_btl_wv_component.wv_btls, since the prepare_device_for_use - adds device to async thread that require access to - mca_btl_wv_component.wv_btls. - */ - - if (NULL == device->qps) { - /* Setup the device qps info */ - device->qps = (mca_btl_wv_device_qp_t*) - calloc(mca_btl_wv_component.num_qps, - sizeof(mca_btl_wv_device_qp_t)); - for (qp_index = 0; qp_index < mca_btl_wv_component.num_qps; qp_index++) { - OBJ_CONSTRUCT(&device->qps[qp_index].send_free, ompi_free_list_t); - OBJ_CONSTRUCT(&device->qps[qp_index].recv_free, ompi_free_list_t); - } - - /* Do finial init on device */ - ret = prepare_device_for_use(device); - if (OMPI_SUCCESS != ret) { - opal_show_help("help-mpi-btl-wv.txt", - "error in device init", true, - ompi_process_info.nodename, - device->ib_dev->name); - goto no_btls; - } - } - } - /* If we got nothing, then error out */ - if (0 == i) { - goto no_btls; - } - /* Otherwise reset to the number of wv modules that we - actually got */ - mca_btl_wv_component.ib_num_btls = i; - - btl_wv_modex_send(); - - *num_btl_modules = mca_btl_wv_component.ib_num_btls; - wv_free_device_list_compat(ib_devs); - if (NULL != mca_btl_wv_component.if_include_list) { - opal_argv_free(mca_btl_wv_component.if_include_list); - mca_btl_wv_component.if_include_list = NULL; - } - if (NULL != mca_btl_wv_component.if_exclude_list) { - opal_argv_free(mca_btl_wv_component.if_exclude_list); - mca_btl_wv_component.if_exclude_list = NULL; - } - - /* setup the fork warning message as we are sensitive - * to memory corruption issues when fork is called - */ - ompi_warn_fork(); - - return btls; - - no_btls: - mca_btl_wv_component.ib_num_btls = 0; - btl_wv_modex_send(); - return NULL; -} - -/* - * Progress the no_credits_pending_frags lists on all qp's - */ -static int progress_no_credits_pending_frags(mca_btl_base_endpoint_t *ep) -{ - int qp, pri, rc, len; - opal_list_item_t *frag; - - OPAL_THREAD_LOCK(&ep->endpoint_lock); - - /* Traverse all QPs and all priorities */ - for (qp = 0; qp < mca_btl_wv_component.num_qps; ++qp) { - for (pri = 0; pri < 2; ++pri) { - /* Note that entries in the no_credits_pending_frags list - may be eager RDMA or send fragments. So be sure to - check that we have at least 1 RDMA or send credit. - - This loop needs a little explaining. :-\ - - In the body of the loop, we call _endpoint_post_send(). - The frag will either be successfully sent, or it will - be [re]added to the no_credit_pending_frags list. So - if we keep trying to drain the no_credits_pending_frag - list, we could end up in an infinite loop. So instead, - we get the initial length of the list and ensure to run - through every entry at least once. This attempts to - send *every* frag once and catches the case where a - frag may be on the RDMA list, but because of - coalescing, is now too big for RDMA and defaults over - to sending -- but then we're out of send credits, so it - doesn't go. But if we *do* still have some RDMA - credits and there are RDMA frags on the list behind - this now-too-big frag, they'll get a chance to go. - - Specifically, the condition in this for loop is as follows: - - - len > 0: ensure to go through all entries in the list once - - the 2nd part of the conditional checks to see if we - have any credits at all. Specifically, do we have - any RDMA credits or any send credits, *or* are we on - an SRQ, in which case we define that we *always* have - credits (because the hardware will continually - retransmit for us). - */ - for (len = opal_list_get_size(&ep->qps[qp].no_credits_pending_frags[pri]); - len > 0 && - (ep->eager_rdma_remote.tokens > 0 || - ep->qps[qp].u.pp_qp.sd_credits > 0 || - !BTL_WV_QP_TYPE_PP(qp)); --len) { - frag = opal_list_remove_first(&ep->qps[qp].no_credits_pending_frags[pri]); - - /* If _endpoint_post_send() fails because of - RESOURCE_BUSY, then the frag was re-added to the - no_credits_pending list. Specifically: either the - frag was initially an RDMA frag, but there were no - RDMA credits so it fell through the trying to send, - but we had no send credits and therefore re-added - the frag to the no_credits list, or the frag was a - send frag initially (and the same sequence - occurred, starting at the send frag out-of-credits - scenario). In this case, just continue and try the - rest of the frags in the list. - - If it fails because of another error, return the - error upward. */ - rc = mca_btl_wv_endpoint_post_send(ep, to_send_frag(frag)); - if (OPAL_UNLIKELY(OMPI_SUCCESS != rc && - OMPI_ERR_RESOURCE_BUSY != rc)) { - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - return rc; - } - } - } - } - - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - return OMPI_SUCCESS; -} - -void mca_btl_wv_frag_progress_pending_put_get(mca_btl_base_endpoint_t *ep, - const int qp) -{ - mca_btl_wv_module_t* wv_btl = ep->endpoint_btl; - opal_list_item_t *frag; - size_t i, len = opal_list_get_size(&ep->pending_get_frags); - int rc; - for(i = 0; i < len && ep->qps[qp].qp->sd_wqe > 0 && ep->get_tokens > 0; i++) - { - OPAL_THREAD_LOCK(&ep->endpoint_lock); - frag = opal_list_remove_first(&(ep->pending_get_frags)); - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - if(NULL == frag) - break; - rc = mca_btl_wv_get((mca_btl_base_module_t *)wv_btl, ep, - &to_base_frag(frag)->base); - if(OMPI_ERR_OUT_OF_RESOURCE == rc) - break; - } - - len = opal_list_get_size(&ep->pending_put_frags); - for(i = 0; i < len && ep->qps[qp].qp->sd_wqe > 0; i++) { - OPAL_THREAD_LOCK(&ep->endpoint_lock); - frag = opal_list_remove_first(&(ep->pending_put_frags)); - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - if(NULL == frag) - break; - rc = mca_btl_wv_put((mca_btl_base_module_t *)wv_btl, ep, - &to_base_frag(frag)->base); - if(OMPI_ERR_OUT_OF_RESOURCE == rc) - break; - } -} - -static int btl_wv_handle_incoming(mca_btl_wv_module_t *wv_btl, - mca_btl_wv_endpoint_t *ep, - mca_btl_wv_recv_frag_t *frag, - size_t byte_len) -{ - mca_btl_base_descriptor_t *des = &to_base_frag(frag)->base; - mca_btl_wv_header_t *hdr = frag->hdr; - int rqp = to_base_frag(frag)->base.order, cqp; - uint16_t rcredits = 0, credits; - bool is_credit_msg; - - if(ep->nbo) { - BTL_WV_HEADER_NTOH(*hdr); - } - - /* advance the segment address past the header and subtract from the - * length.*/ - des->des_dst->seg_len = byte_len - sizeof(mca_btl_wv_header_t); - - if(OPAL_LIKELY(!(is_credit_msg = is_credit_message(frag)))) { - /* call registered callback */ - mca_btl_active_message_callback_t* reg; - reg = mca_btl_base_active_message_trigger + hdr->tag; - reg->cbfunc( &wv_btl->super, hdr->tag, des, reg->cbdata ); - if(MCA_BTL_WV_RDMA_FRAG(frag)) { - cqp = (hdr->credits >> 11) & 0x0f; - hdr->credits &= 0x87ff; - } else { - cqp = rqp; - } - if(BTL_WV_IS_RDMA_CREDITS(hdr->credits)) { - rcredits = BTL_WV_CREDITS(hdr->credits); - hdr->credits = 0; - } - } else { - mca_btl_wv_rdma_credits_header_t *chdr = - (mca_btl_wv_rdma_credits_header_t *) des->des_dst->seg_addr.pval; - if(ep->nbo) { - BTL_WV_RDMA_CREDITS_HEADER_NTOH(*chdr); - } - cqp = chdr->qpn; - rcredits = chdr->rdma_credits; - } - - credits = hdr->credits; - - if(hdr->cm_seen) - OPAL_THREAD_ADD32(&ep->qps[cqp].u.pp_qp.cm_sent, -hdr->cm_seen); - - /* Now return fragment. Don't touch hdr after this point! */ - if(MCA_BTL_WV_RDMA_FRAG(frag)) { - mca_btl_wv_eager_rdma_local_t *erl = &ep->eager_rdma_local; - OPAL_THREAD_LOCK(&erl->lock); - MCA_BTL_WV_RDMA_MAKE_REMOTE(frag->ftr); - while(erl->tail != erl->head) { - mca_btl_wv_recv_frag_t *tf; - tf = MCA_BTL_WV_GET_LOCAL_RDMA_FRAG(ep, erl->tail); - if(MCA_BTL_WV_RDMA_FRAG_LOCAL(tf)) - break; - OPAL_THREAD_ADD32(&erl->credits, 1); - MCA_BTL_WV_RDMA_NEXT_INDEX(erl->tail); - } - OPAL_THREAD_UNLOCK(&erl->lock); - } else { - if (is_cts_message(frag)) { - /* If this was a CTS, free it here (it was - malloc'ed+reg_mr'ed -- so it should *not* be - FRAG_RETURN'ed). */ - int rc = ompi_btl_wv_connect_base_free_cts(ep); - if (OMPI_SUCCESS != rc) { - return rc; - } - } else { - /* Otherwise, FRAG_RETURN it and repost if necessary */ - MCA_BTL_IB_FRAG_RETURN(frag); - if (BTL_WV_QP_TYPE_PP(rqp)) { - if (OPAL_UNLIKELY(is_credit_msg)) { - OPAL_THREAD_ADD32(&ep->qps[cqp].u.pp_qp.cm_received, 1); - } else { - OPAL_THREAD_ADD32(&ep->qps[rqp].u.pp_qp.rd_posted, -1); - } - mca_btl_wv_endpoint_post_rr(ep, cqp); - } else { - mca_btl_wv_module_t *btl = ep->endpoint_btl; - OPAL_THREAD_ADD32(&btl->qps[rqp].u.srq_qp.rd_posted, -1); - mca_btl_wv_post_srr(btl, rqp); - } - } - } - - assert((cqp != MCA_BTL_NO_ORDER && BTL_WV_QP_TYPE_PP(cqp)) || !credits); - - /* If we got any credits (RDMA or send), then try to progress all - the no_credits_pending_frags lists */ - if (rcredits > 0) { - OPAL_THREAD_ADD32(&ep->eager_rdma_remote.tokens, rcredits); - } - if (credits > 0) { - OPAL_THREAD_ADD32(&ep->qps[cqp].u.pp_qp.sd_credits, credits); - } - if (rcredits + credits > 0) { - int rc; - - if (OMPI_SUCCESS != - (rc = progress_no_credits_pending_frags(ep))) { - return rc; - } - } - - send_credits(ep, cqp); - - return OMPI_SUCCESS; -} - -static char* btl_wv_component_status_to_string(WV_WC_STATUS status) -{ - switch(status) { - case WvWcSuccess: - return "SUCCESS"; - break; - case WvWcLocalLengthError: - return "LOCAL LENGTH ERROR"; - break; - case WvWcLocalOpError: - return "LOCAL QP OPERATION ERROR"; - break; - case WvWcLocalProtectionError: - return "LOCAL PROTOCOL ERROR"; - break; - case WvWcFlushed: - return "WORK REQUEST FLUSHED ERROR"; - break; - case WvWcMwBindError: - return "MEMORY WINDOW BIND ERROR"; - break; - case WvWcBadResponse: - return "BAD RESPONSE ERROR"; - break; - case WvWcLocalAccessError: - return "LOCAL ACCESS ERROR"; - break; - case WvWcRemoteInvalidRequest: - return "INVALID REQUEST ERROR"; - break; - case WvWcRemoteAccessError: - return "REMOTE ACCESS ERROR"; - break; - case WvWcRemoteOpError: - return "REMOTE OPERATION ERROR"; - break; - case -2: - return "RETRY EXCEEDED ERROR"; - break; - case WvWcRnrRetryError: - return "RECEIVER NOT READY RETRY EXCEEDED ERROR"; - break; - case -5: - return "LOCAL RDD VIOLATION ERROR"; - break; - case -6: - return "INVALID READ REQUEST ERROR"; - break; - case -3: - return "REMOTE ABORT ERROR"; - break; - case -7: - return "INVALID EECN ERROR"; - break; - case -8: - return "INVALID EEC STATE ERROR"; - break; - case -1: - return "FATAL ERROR"; - break; - case WvWcTimeoutRetryError: - return "RESPONSE TIMEOUT ERROR"; - break; - case WvWcError: - return "GENERAL ERROR"; - break; - default: - return "STATUS UNDEFINED"; - break; - } -} - -static void -progress_pending_frags_wqe(mca_btl_base_endpoint_t *ep, const int qpn) -{ - int i; - opal_list_item_t *frag; - mca_btl_wv_qp_t *qp = ep->qps[qpn].qp; - - OPAL_THREAD_LOCK(&ep->endpoint_lock); - for(i = 0; i < 2; i++) { - while(qp->sd_wqe > 0) { - mca_btl_base_endpoint_t *tmp_ep; - frag = opal_list_remove_first(&ep->qps[qpn].no_wqe_pending_frags[i]); - if(NULL == frag) - break; - tmp_ep = to_com_frag(frag)->endpoint; - mca_btl_wv_endpoint_post_send(tmp_ep, to_send_frag(frag)); - } - } - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); -} - -static void progress_pending_frags_srq(mca_btl_wv_module_t* wv_btl, - const int qp) -{ - opal_list_item_t *frag; - int i; - - assert(BTL_WV_QP_TYPE_SRQ(qp)); - for(i = 0; i < 2; i++) { - while(wv_btl->qps[qp].u.srq_qp.sd_credits > 0) { - OPAL_THREAD_LOCK(&wv_btl->ib_lock); - frag = opal_list_remove_first( - &wv_btl->qps[qp].u.srq_qp.pending_frags[i]); - OPAL_THREAD_UNLOCK(&wv_btl->ib_lock); - - if(NULL == frag) - break; - - mca_btl_wv_endpoint_send(to_com_frag(frag)->endpoint, - to_send_frag(frag)); - } - } -} - -static char *cq_name[] = {"HP CQ", "LP CQ"}; -static void handle_wc(mca_btl_wv_device_t* device, const uint32_t cq, - WV_COMPLETION *wc) -{ - static int flush_err_printed[] = {0, 0}; - mca_btl_wv_com_frag_t* frag; - mca_btl_base_descriptor_t *des; - mca_btl_wv_endpoint_t* endpoint; - mca_btl_wv_module_t *wv_btl = NULL; - ompi_proc_t* remote_proc = NULL; - int qp, btl_ownership; - - des = (mca_btl_base_descriptor_t*)(uintptr_t)wc->WrId; - frag = to_com_frag(des); - - /* For receive fragments "order" contains QP idx the fragment was posted - * to. For send fragments "order" contains QP idx the fragment was send - * through */ - qp = des->order; - endpoint = frag->endpoint; - - if(endpoint) - wv_btl = endpoint->endpoint_btl; - - if(wc->Status != WvWcSuccess) { - OPAL_OUTPUT((-1, "Got WC: ERROR")); - goto error; - } - - /* Handle work completions */ - switch(wc->Opcode) { - case WvRdmaRead: - OPAL_OUTPUT((-1, "Got WC: RDMA_READ")); - OPAL_THREAD_ADD32(&endpoint->get_tokens, 1); - /* fall through */ - - case WvRdmaWrite: - case WvSend: - OPAL_OUTPUT((-1, "Got WC: RDMA_WRITE or SEND")); - if(wv_frag_type(des) == MCA_BTL_WV_FRAG_SEND) { - opal_list_item_t *i; - while((i = opal_list_remove_first(&to_send_frag(des)->coalesced_frags))) { - btl_ownership = (to_base_frag(i)->base.des_flags & MCA_BTL_DES_FLAGS_BTL_OWNERSHIP); -#if BTL_WV_FAILOVER_ENABLED - if (to_base_frag(i)->base.des_flags & MCA_BTL_DES_SEND_ALWAYS_CALLBACK) { -#endif - to_base_frag(i)->base.des_cbfunc(&wv_btl->super, endpoint, - &to_base_frag(i)->base, OMPI_SUCCESS); -#if BTL_WV_FAILOVER_ENABLED - } -#endif - if( btl_ownership ) { - mca_btl_wv_free(&wv_btl->super, &to_base_frag(i)->base); - } - } - } - /* Process a completed send/put/get */ - btl_ownership = (des->des_flags & MCA_BTL_DES_FLAGS_BTL_OWNERSHIP); - if (des->des_flags & MCA_BTL_DES_SEND_ALWAYS_CALLBACK) { - des->des_cbfunc(&wv_btl->super, endpoint, des,OMPI_SUCCESS); - } - if( btl_ownership ) { - mca_btl_wv_free(&wv_btl->super, des); - } - - /* return send wqe */ - qp_put_wqe(endpoint, qp); - - if(WvSend == wc->Opcode && !BTL_WV_QP_TYPE_PP(qp)) { - OPAL_THREAD_ADD32(&wv_btl->qps[qp].u.srq_qp.sd_credits, 1); - - /* new SRQ credit available. Try to progress pending frags*/ - progress_pending_frags_srq(wv_btl, qp); - } - /* new wqe or/and get token available. Try to progress pending frags */ - progress_pending_frags_wqe(endpoint, qp); - mca_btl_wv_frag_progress_pending_put_get(endpoint, qp); - break; - case WvReceive: - OPAL_OUTPUT((-1, "Got WC: RDMA_RECV, qp %d, src qp %d, WR ID %" PRIx64, - ((wv_qp *)wc->reserved)->qp_num, wc->SourceQPn, wc->WrId)); - - if(wc->Flags & WV_WC_IMMEDIATE) { - endpoint = (mca_btl_wv_endpoint_t*) - opal_pointer_array_get_item(device->endpoints, wc->ImmediateData); - frag->endpoint = endpoint; - wv_btl = endpoint->endpoint_btl; - } - - /* Process a RECV */ - if(btl_wv_handle_incoming(wv_btl, endpoint, to_recv_frag(frag), - wc->Length) != OMPI_SUCCESS) { - wv_btl->error_cb(&wv_btl->super, MCA_BTL_ERROR_FLAGS_FATAL, - NULL, NULL); - break; - } - - /* decide if it is time to setup an eager rdma channel */ - if(!endpoint->eager_rdma_local.base.pval && endpoint->use_eager_rdma && - wc->Length < mca_btl_wv_component.eager_limit && - wv_btl->eager_rdma_channels < - mca_btl_wv_component.max_eager_rdma && - OPAL_THREAD_ADD32(&endpoint->eager_recv_count, 1) == - mca_btl_wv_component.eager_rdma_threshold) { - mca_btl_wv_endpoint_connect_eager_rdma(endpoint); - } - break; - default: - BTL_ERROR(("Unhandled work completion opcode is %d", wc->Opcode)); - if(wv_btl) - wv_btl->error_cb(&wv_btl->super, MCA_BTL_ERROR_FLAGS_FATAL, - NULL, NULL); - break; - } - - return; - -error: - if(endpoint && endpoint->endpoint_proc && endpoint->endpoint_proc->proc_ompi) - remote_proc = endpoint->endpoint_proc->proc_ompi; - - if(WvWcFlushed != wc->Status || !flush_err_printed[cq]++) { - BTL_PEER_ERROR(remote_proc, ("error polling %s with status %s " - "status number %d for wr_id %" PRIx64 " opcode %d vendor error %d qp_idx %d", - cq_name[cq], btl_wv_component_status_to_string(wc->Status), - wc->Status, wc->WrId, - wc->Opcode, wc->VendorCode, qp)); - } - - if (WvWcRnrRetryError == wc->Status || - -2 == wc->Status) { - char *peer_hostname = - (NULL != endpoint->endpoint_proc->proc_ompi->proc_hostname) ? - endpoint->endpoint_proc->proc_ompi->proc_hostname : - ""; - const char *device_name = - (endpoint->qps[qp].qp->lcl_qp->context->device->name); - - if (WvWcRnrRetryError == wc->Status) { - opal_show_help("help-mpi-btl-wv.txt", - BTL_WV_QP_TYPE_PP(qp) ? - "pp rnr retry exceeded" : - "srq rnr retry exceeded", true, - ompi_process_info.nodename, device_name, - peer_hostname); - } else if (-2 == wc->Status) { - opal_show_help("help-mpi-btl-wv.txt", - "pp retry exceeded", true, - ompi_process_info.nodename, - device_name, peer_hostname); - } - } - -#if BTL_WV_FAILOVER_ENABLED - mca_btl_wv_handle_endpoint_error(wv_btl, des, qp, - remote_proc, endpoint); -#else - if(wv_btl) - wv_btl->error_cb(&wv_btl->super, MCA_BTL_ERROR_FLAGS_FATAL, - remote_proc, NULL); -#endif -} - -static int poll_device(mca_btl_wv_device_t* device, int count) -{ - int ne = 0, cq; - uint32_t hp_iter = 0; - WV_COMPLETION wc; - device->pollme = false; - for(cq = 0; cq < 2 && hp_iter < mca_btl_wv_component.cq_poll_progress;) - { - ne = (int)device->ib_cq[cq]->handle->Poll(&wc,1); - if(0 == ne) { - /* don't check low prio cq if there was something in high prio cq, - * but for each cq_poll_ratio hp cq polls poll lp cq once */ - if(count && device->hp_cq_polls) - break; - cq++; - device->hp_cq_polls = mca_btl_wv_component.cq_poll_ratio; - continue; - } - if(ne < 0) - goto error; - count++; - if(BTL_WV_HP_CQ == cq) { - device->pollme = true; - hp_iter++; - device->hp_cq_polls--; - } - handle_wc(device, cq, &wc); - } - - return count; -error: - BTL_ERROR(("error polling %s with %d errno says %s", cq_name[cq], ne, - strerror(errno))); - return count; -} - -static int progress_one_device(mca_btl_wv_device_t *device) -{ - int i, c, count = 0, ret; - mca_btl_wv_recv_frag_t* frag; - mca_btl_wv_endpoint_t* endpoint; - uint32_t non_eager_rdma_endpoints = 0; - c = device->eager_rdma_buffers_count; - non_eager_rdma_endpoints += (device->non_eager_rdma_endpoints + device->pollme); - for(i = 0; i < c; i++) { - endpoint = device->eager_rdma_buffers[i]; - if(!endpoint) - continue; - OPAL_THREAD_LOCK(&endpoint->eager_rdma_local.lock); - frag = MCA_BTL_WV_GET_LOCAL_RDMA_FRAG(endpoint, - endpoint->eager_rdma_local.head); - if(MCA_BTL_WV_RDMA_FRAG_LOCAL(frag)) { - uint32_t size; - mca_btl_wv_module_t *btl = endpoint->endpoint_btl; - if(endpoint->nbo) { - BTL_WV_FOOTER_NTOH(*frag->ftr); - } - size = MCA_BTL_WV_RDMA_FRAG_GET_SIZE(frag->ftr); -#if OPAL_ENABLE_DEBUG - if (frag->ftr->seq != endpoint->eager_rdma_local.seq) - BTL_ERROR(("Eager RDMA wrong SEQ: received %d expected %d", - frag->ftr->seq, - endpoint->eager_rdma_local.seq)); - endpoint->eager_rdma_local.seq++; -#endif - MCA_BTL_WV_RDMA_NEXT_INDEX(endpoint->eager_rdma_local.head); - OPAL_THREAD_UNLOCK(&endpoint->eager_rdma_local.lock); - frag->hdr = (mca_btl_wv_header_t*)(((char*)frag->ftr) - - size + sizeof(mca_btl_wv_footer_t)); - to_base_frag(frag)->segment.base.seg_addr.pval = - ((unsigned char* )frag->hdr) + sizeof(mca_btl_wv_header_t); - ret = btl_wv_handle_incoming(btl, to_com_frag(frag)->endpoint, - frag, size - sizeof(mca_btl_wv_footer_t)); - if (ret != OMPI_SUCCESS) { - btl->error_cb(&btl->super, MCA_BTL_ERROR_FLAGS_FATAL, NULL, NULL); - return 0; - } - count++; - } else - OPAL_THREAD_UNLOCK(&endpoint->eager_rdma_local.lock); - } - - device->eager_rdma_polls--; - - if(0 == count || non_eager_rdma_endpoints != 0 || !device->eager_rdma_polls) { - count += poll_device(device, count); - device->eager_rdma_polls = mca_btl_wv_component.eager_rdma_poll_ratio; - } - - return count; -} - -/* - * IB component progress. - */ -static int btl_wv_component_progress(void) -{ - int i; - int count = 0; - for(i = 0; i < mca_btl_wv_component.devices_count; i++) { - mca_btl_wv_device_t *device = - (mca_btl_wv_device_t *) opal_pointer_array_get_item(&mca_btl_wv_component.devices, i); - count += progress_one_device(device); - } - - return count; -} - -int mca_btl_wv_post_srr(mca_btl_wv_module_t* wv_btl, const int qp) -{ - int rd_low_local = wv_btl->qps[qp].u.srq_qp.rd_low_local; - int rd_curr_num = wv_btl->qps[qp].u.srq_qp.rd_curr_num; - int num_post, i,rc; - struct wv_recv_wr *wr = NULL; - HRESULT hr = 0; - assert(!BTL_WV_QP_TYPE_PP(qp)); - OPAL_THREAD_LOCK(&wv_btl->ib_lock); - if(wv_btl->qps[qp].u.srq_qp.rd_posted > rd_low_local) { - OPAL_THREAD_UNLOCK(&wv_btl->ib_lock); - return OMPI_SUCCESS; - } - num_post = rd_curr_num - wv_btl->qps[qp].u.srq_qp.rd_posted; - if (0 == num_post) { - OPAL_THREAD_UNLOCK(&wv_btl->ib_lock); - return OMPI_SUCCESS; - } - for(i = 0; i < num_post; i++) { - ompi_free_list_item_t* item; - OMPI_FREE_LIST_WAIT(&wv_btl->device->qps[qp].recv_free, item, rc); - to_base_frag(item)->base.order = qp; - to_com_frag(item)->endpoint = NULL; - wr = &to_recv_frag(item)->rd_desc; - hr = wv_btl->qps[qp].u.srq_qp.srq->handle->PostReceive(wr->wr_id, - wr->sg_list, wr->num_sge); - } - if(SUCCEEDED(hr)) { - struct wv_srq_attr srq_attr; - OPAL_THREAD_ADD32(&wv_btl->qps[qp].u.srq_qp.rd_posted, num_post); - if(true == wv_btl->qps[qp].u.srq_qp.srq_limit_event_flag) { - srq_attr.max_wr = wv_btl->qps[qp].u.srq_qp.rd_curr_num; - srq_attr.max_sge = 1; - srq_attr.srq_limit = mca_btl_wv_component.qp_infos[qp].u.srq_qp.srq_limit; - wv_btl->qps[qp].u.srq_qp.srq_limit_event_flag = false; - SIZE_T max_wr,max_sge,srq_limit; - hr = wv_btl->qps[qp].u.srq_qp.srq->handle->Query(&max_wr,&max_sge,&srq_limit); - hr = wv_btl->qps[qp].u.srq_qp.srq->handle->Modify(max_wr,srq_limit); - if(FAILED(hr)) { - OPAL_THREAD_UNLOCK(&wv_btl->ib_lock); - return OMPI_ERROR; - } - } - OPAL_THREAD_UNLOCK(&wv_btl->ib_lock); - return OMPI_SUCCESS; - } - OPAL_THREAD_UNLOCK(&wv_btl->ib_lock); - - return OMPI_ERROR; -} diff --git a/ompi/mca/btl/wv/btl_wv_def.h b/ompi/mca/btl/wv/btl_wv_def.h deleted file mode 100644 index 8473744009..0000000000 --- a/ompi/mca/btl/wv/btl_wv_def.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Structs for infiniband - */ -#ifndef BTL_WV_DEF_H -#define BTL_WV_DEF_H -#include -#include -#include - -typedef unsigned __int8 uint8_t; -typedef unsigned __int16 uint16_t; -typedef unsigned __int32 uint32_t; -typedef unsigned __int64 uint64_t; - -union wv_gid -{ - uint8_t raw[16]; - struct - { - uint64_t subnet_prefix; - uint64_t interface_id; - }global; -}; - -enum wv_node_type -{ - WV_NODE_UNKNOWN = -1, - WV_NODE_CA = 1, - WV_NODE_SWITCH, - WV_NODE_ROUTER, -}; - -struct wv_device -{ - enum wv_node_type node_type; - WV_DEVICE_TYPE transport_type; - char name[64]; -}; - -struct wv_context -{ - struct wv_device *device; - IWVDevice *device_if; - COMP_CHANNEL channel; -}; - -enum wv_mtu -{ - WV_MTU_256 = 1, - WV_MTU_512 = 2, - WV_MTU_1024 = 3, - WV_MTU_2048 = 4, - WV_MTU_4096 = 5 -}; - -struct wv_pd -{ - struct wv_context *context; - IWVProtectionDomain *handle; -}; - -struct wv_mr -{ - struct wv_context *context; - struct wv_pd *pd; - void *addr; - size_t length; - uint32_t lkey; - uint32_t rkey; -}; - -struct wv_srq_attr -{ - uint32_t max_wr; - uint32_t max_sge; - uint32_t srq_limit; -}; - -struct wv_srq_init_attr -{ - void *srq_context; - struct wv_srq_attr attr; -}; - -struct wv_recv_wr -{ - uint64_t wr_id; - struct wv_recv_wr *next; - WV_SGE *sg_list; - int num_sge; -}; - -struct wv_srq -{ - struct wv_context *context; - void *srq_context; - struct wv_pd *pd; - IWVSharedReceiveQueue *handle; -}; - -struct wv_qp -{ - struct wv_context *context; - void *qp_context; - struct wv_pd *pd; - struct wv_cq *send_cq; - struct wv_cq *recv_cq; - struct wv_srq *srq; - IWVQueuePair *handle; - union - { - IWVDatagramQueuePair *ud_handle; - IWVConnectQueuePair *conn_handle; - }; - uint32_t qp_num; - WV_QP_STATE state; - WV_QP_TYPE qp_type; -}; - -struct wv_comp_channel -{ - struct wv_context *context; - COMP_CHANNEL comp_channel; -}; - -struct wv_cq -{ - struct wv_context *context; - struct wv_comp_channel *channel; - void *cq_context; - IWVCompletionQueue *handle; - int cqe; - COMP_ENTRY comp_entry; - LONG volatile notify_cnt; - LONG volatile ack_cnt; -}; - -struct wverbs_device -{ - struct wv_device device; - uint64_t guid; - uint8_t phys_port_cnt; -}; - -struct wverbs_port -{ - COMP_ENTRY comp_entry; - DWORD event_flag; - uint8_t port_num; -}; - -struct wverbs_context -{ - struct wv_context context; - struct wverbs_device device; - uint8_t closing; - struct wverbs_port *port; - wverbs_port *event_port; -}; - -struct wv_ah -{ - IWVAddressHandle *handle; - ULONG_PTR key; -}; -#endif \ No newline at end of file diff --git a/ompi/mca/btl/wv/btl_wv_eager_rdma.h b/ompi/mca/btl/wv/btl_wv_eager_rdma.h deleted file mode 100644 index 253cf364d9..0000000000 --- a/ompi/mca/btl/wv/btl_wv_eager_rdma.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2006-2007 Voltaire All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef MCA_BTL_WV_EAGER_RDMA_BUF_H -#define MCA_BTL_WV_EAGER_RDMA_BUF_H - -#include "ompi_config.h" -#include "btl_wv.h" - -BEGIN_C_DECLS - -struct mca_btl_wv_eager_rdma_local_t { - ompi_ptr_t base; /**< buffer for RDMAing eager messages */ - mca_btl_wv_recv_frag_t *frags; - mca_btl_wv_reg_t *reg; - uint16_t head; /**< RDMA buffer to poll */ - uint16_t tail; /**< Needed for credit managment */ - int32_t credits; /**< number of RDMA credits */ - int32_t rd_win; -#if OPAL_ENABLE_DEBUG - uint32_t seq; -#endif - opal_mutex_t lock; /**< guard access to RDMA buffer */ - int32_t rd_low; -}; -typedef struct mca_btl_wv_eager_rdma_local_t mca_btl_wv_eager_rdma_local_t; - -struct mca_btl_wv_eager_rdma_remote_t { - ompi_ptr_t base; /**< address of remote buffer */ - uint32_t rkey; /**< RKey for accessing remote buffer */ - int32_t head; /**< RDMA buffer to post to */ - int32_t tokens; /**< number of rdam tokens */ -#if OPAL_ENABLE_DEBUG - uint32_t seq; -#endif -}; -typedef struct mca_btl_wv_eager_rdma_remote_t mca_btl_wv_eager_rdma_remote_t; - -#define MCA_BTL_WV_RDMA_FRAG(F) \ - (wv_frag_type(F) == MCA_BTL_WV_FRAG_EAGER_RDMA) - -#define EAGER_RDMA_BUFFER_REMOTE (0) -#define EAGER_RDMA_BUFFER_LOCAL (0xff) - -#ifdef WORDS_BIGENDIAN -#define MCA_BTL_WV_RDMA_FRAG_GET_SIZE(F) ((F)->u.size >> 8) -#define MCA_BTL_WV_RDMA_FRAG_SET_SIZE(F, S) \ - ((F)->u.size = (S) << 8) -#else -#define MCA_BTL_WV_RDMA_FRAG_GET_SIZE(F) ((F)->u.size & 0x00ffffff) -#define MCA_BTL_WV_RDMA_FRAG_SET_SIZE(F, S) \ - ((F)->u.size = (S) & 0x00ffffff) -#endif - -#define MCA_BTL_WV_RDMA_FRAG_LOCAL(F) \ - (((volatile uint8_t*)(F)->ftr->u.buf)[3] != EAGER_RDMA_BUFFER_REMOTE) - -#define MCA_BTL_WV_RDMA_FRAG_REMOTE(F) \ - (!MCA_BTL_WV_RDMA_FRAG_LOCAL(F)) - -#define MCA_BTL_WV_RDMA_MAKE_REMOTE(F) do { \ - ((volatile uint8_t*)(F)->u.buf)[3] = EAGER_RDMA_BUFFER_REMOTE; \ - }while (0) - -#define MCA_BTL_WV_RDMA_MAKE_LOCAL(F) do { \ - ((volatile uint8_t*)(F)->u.buf)[3] = EAGER_RDMA_BUFFER_LOCAL; \ - }while (0) - -#define MCA_BTL_WV_GET_LOCAL_RDMA_FRAG(E, I) \ - (&(E)->eager_rdma_local.frags[(I)]) - -#define MCA_BTL_WV_RDMA_NEXT_INDEX(I) do { \ - (I) = ((I) + 1); \ - if((I) == \ - mca_btl_wv_component.eager_rdma_num) \ - (I) = 0; \ - } while (0) -#define MCA_BTL_WV_RDMA_MOVE_INDEX(HEAD, OLD_HEAD) \ - do { \ - int32_t new_head; \ - do { \ - OLD_HEAD = HEAD; \ - new_head = OLD_HEAD + 1; \ - if(new_head == mca_btl_wv_component.eager_rdma_num) \ - new_head = 0; \ - } while(!OPAL_ATOMIC_CMPSET_32(&HEAD, OLD_HEAD, new_head)); \ - } while(0) - - -END_C_DECLS -#endif - diff --git a/ompi/mca/btl/wv/btl_wv_endpoint.c b/ompi/mca/btl/wv/btl_wv_endpoint.c deleted file mode 100644 index 1bb10f1ba9..0000000000 --- a/ompi/mca/btl/wv/btl_wv_endpoint.c +++ /dev/null @@ -1,943 +0,0 @@ -/* -*- Mode: C; c-basic-offset:4 ; -*- */ -/* - * 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) 2006-2009 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2006-2012 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2006-2007 Voltaire All rights reserved. - * Copyright (c) 2006-2009 Mellanox Technologies, Inc. All rights reserved. - * Copyright (c) 2010 IBM Corporation. All rights reserved. - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - -#include -#include -#include - -#include "opal_stdint.h" -#include "opal/util/output.h" - -#include "ompi/types.h" -#include "ompi/class/ompi_free_list.h" - -#include "btl_wv_endpoint.h" -#include "btl_wv_proc.h" -#include "connect/connect.h" - -static void mca_btl_wv_endpoint_construct(mca_btl_base_endpoint_t* endpoint); -static void mca_btl_wv_endpoint_destruct(mca_btl_base_endpoint_t* endpoint); - -static inline int acruire_wqe(mca_btl_wv_endpoint_t *ep, - mca_btl_wv_send_frag_t *frag) -{ - int qp = to_base_frag(frag)->base.order; - int prio = !(to_base_frag(frag)->base.des_flags & MCA_BTL_DES_FLAGS_PRIORITY); - - if(qp_get_wqe(ep, qp) < 0) { - qp_put_wqe(ep, qp); - opal_list_append(&ep->qps[qp].no_wqe_pending_frags[prio], - (opal_list_item_t *)frag); - return OMPI_ERR_OUT_OF_RESOURCE; - } - - return OMPI_SUCCESS; -} - -static int acquire_send_credit(mca_btl_wv_endpoint_t *endpoint, - mca_btl_wv_send_frag_t *frag) -{ - mca_btl_wv_module_t *wv_btl = endpoint->endpoint_btl; - int qp = to_base_frag(frag)->base.order; - int prio = !(to_base_frag(frag)->base.des_flags & MCA_BTL_DES_FLAGS_PRIORITY); - - if(BTL_WV_QP_TYPE_PP(qp)) { - if(OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.sd_credits, -1) < 0) { - OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.sd_credits, 1); - opal_list_append(&endpoint->qps[qp].no_credits_pending_frags[prio], - (opal_list_item_t *)frag); - return OMPI_ERR_OUT_OF_RESOURCE; - } - } else { - if(OPAL_THREAD_ADD32(&wv_btl->qps[qp].u.srq_qp.sd_credits, -1) < 0) - { - OPAL_THREAD_ADD32(&wv_btl->qps[qp].u.srq_qp.sd_credits, 1); - OPAL_THREAD_LOCK(&wv_btl->ib_lock); - opal_list_append(&wv_btl->qps[qp].u.srq_qp.pending_frags[prio], - (opal_list_item_t *)frag); - OPAL_THREAD_UNLOCK(&wv_btl->ib_lock); - return OMPI_ERR_OUT_OF_RESOURCE; - } - } - - return OMPI_SUCCESS; -} - -/* this function is called with endpoint->endpoint_lock held */ -int mca_btl_wv_endpoint_post_send(mca_btl_wv_endpoint_t *endpoint, - mca_btl_wv_send_frag_t *frag) -{ - mca_btl_wv_header_t *hdr = frag->hdr; - mca_btl_base_descriptor_t *des = &to_base_frag(frag)->base; - int qp, ib_rc; - int32_t cm_return; - bool do_rdma = false; - size_t eager_limit; - - if(OPAL_LIKELY(des->order == MCA_BTL_NO_ORDER)) - des->order = frag->qp_idx; - - qp = des->order; - - if(acruire_wqe(endpoint, frag) != OMPI_SUCCESS) - return OMPI_ERR_RESOURCE_BUSY; - - eager_limit = mca_btl_wv_component.eager_limit + - sizeof(mca_btl_wv_header_coalesced_t) + - sizeof(mca_btl_wv_control_header_t); - if(des->des_src->seg_len + frag->coalesced_length <= eager_limit && - (des->des_flags & MCA_BTL_DES_FLAGS_PRIORITY)) { - /* High priority frag. Try to send over eager RDMA */ - if(acquire_eager_rdma_send_credit(endpoint) == OMPI_SUCCESS) - do_rdma = true; - } - - if(!do_rdma && acquire_send_credit(endpoint, frag) != OMPI_SUCCESS) { - qp_put_wqe(endpoint, qp); - return OMPI_ERR_RESOURCE_BUSY; - } - - BTL_WV_GET_CREDITS(endpoint->eager_rdma_local.credits, hdr->credits); - if(hdr->credits) - hdr->credits |= BTL_WV_RDMA_CREDITS_FLAG; - - if(!do_rdma) { - if(BTL_WV_QP_TYPE_PP(qp) && 0 == hdr->credits) { - BTL_WV_GET_CREDITS(endpoint->qps[qp].u.pp_qp.rd_credits, hdr->credits); - } - } else { - hdr->credits |= (qp << 11); - } - - BTL_WV_GET_CREDITS(endpoint->qps[qp].u.pp_qp.cm_return, cm_return); - /* cm_seen is only 8 bytes, but cm_return is 32 bytes */ - if(cm_return > 255) { - hdr->cm_seen = 255; - cm_return -= 255; - OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.cm_return, cm_return); - } else { - hdr->cm_seen = cm_return; - } - - ib_rc = post_send(endpoint, frag, do_rdma); - - if(!ib_rc) - return OMPI_SUCCESS; - - if(endpoint->nbo) - BTL_WV_HEADER_NTOH(*hdr); - - if(BTL_WV_IS_RDMA_CREDITS(hdr->credits)) { - OPAL_THREAD_ADD32(&endpoint->eager_rdma_local.credits, - BTL_WV_CREDITS(hdr->credits)); - } - - qp_put_wqe(endpoint, qp); - - if(do_rdma) { - OPAL_THREAD_ADD32(&endpoint->eager_rdma_remote.tokens, 1); - } else { - if(BTL_WV_QP_TYPE_PP(qp)) { - OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.rd_credits, - hdr->credits); - OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.sd_credits, 1); - } else if BTL_WV_QP_TYPE_SRQ(qp){ - mca_btl_wv_module_t *wv_btl = endpoint->endpoint_btl; - OPAL_THREAD_ADD32(&wv_btl->qps[qp].u.srq_qp.sd_credits, 1); - } - } - BTL_ERROR(("error posting send request error %d: %s\n", - ib_rc, strerror(ib_rc))); - return OMPI_ERROR; -} - -OBJ_CLASS_INSTANCE(mca_btl_wv_endpoint_t, - opal_list_item_t, mca_btl_wv_endpoint_construct, - mca_btl_wv_endpoint_destruct); - -/* - * Initialize state of the endpoint instance. - * - */ -static mca_btl_wv_qp_t *endpoint_alloc_qp(void) -{ - mca_btl_wv_qp_t *qp = (mca_btl_wv_qp_t *) calloc(1, sizeof(mca_btl_wv_qp_t)); - if(!qp) { - BTL_ERROR(("Failed to allocate memory for qp")); - return NULL; - } - - OBJ_CONSTRUCT(&qp->lock, opal_mutex_t); - - return qp; -} - -static void -endpoint_init_qp_pp(mca_btl_wv_endpoint_qp_t *ep_qp, const int qp) -{ - mca_btl_wv_qp_info_t *qp_info = &mca_btl_wv_component.qp_infos[qp]; - ep_qp->qp = endpoint_alloc_qp(); - ep_qp->qp->users++; - - /* local credits are set here such that on initial posting - * of the receive buffers we end up with zero credits to return - * to our peer. The peer initializes his sd_credits to reflect this - * below. Note that this may be a problem for iWARP as the sender - * now has credits even if the receive buffers are not yet posted - */ - ep_qp->u.pp_qp.rd_credits = -qp_info->rd_num; - - ep_qp->u.pp_qp.rd_posted = 0; - ep_qp->u.pp_qp.cm_sent = 0; - ep_qp->u.pp_qp.cm_return = -qp_info->u.pp_qp.rd_rsv; - ep_qp->u.pp_qp.cm_received = qp_info->u.pp_qp.rd_rsv; - - /* initialize the local view of credits */ - ep_qp->u.pp_qp.sd_credits = qp_info->rd_num; - - /* number of available send WQEs */ - ep_qp->qp->sd_wqe = qp_info->rd_num; -} - -static void -endpoint_init_qp_srq(mca_btl_wv_endpoint_qp_t *ep_qp, const int qp) -{ - ep_qp->qp = endpoint_alloc_qp(); - ep_qp->qp->users++; - - /* number of available send WQEs */ - ep_qp->qp->sd_wqe = mca_btl_wv_component.qp_infos[qp].u.srq_qp.sd_max; -} - -static void endpoint_init_qp(mca_btl_base_endpoint_t *ep, const int qp) -{ - mca_btl_wv_endpoint_qp_t *ep_qp = &ep->qps[qp]; - - ep_qp->rd_credit_send_lock = 0; - ep_qp->credit_frag = NULL; - - OBJ_CONSTRUCT(&ep_qp->no_wqe_pending_frags[0], opal_list_t); - OBJ_CONSTRUCT(&ep_qp->no_wqe_pending_frags[1], opal_list_t); - - OBJ_CONSTRUCT(&ep_qp->no_credits_pending_frags[0], opal_list_t); - OBJ_CONSTRUCT(&ep_qp->no_credits_pending_frags[1], opal_list_t); - - switch(BTL_WV_QP_TYPE(qp)) { - case MCA_BTL_WV_PP_QP: - endpoint_init_qp_pp(ep_qp, qp); - break; - case MCA_BTL_WV_SRQ_QP: - endpoint_init_qp_srq(ep_qp, qp); - break; - default: - BTL_ERROR(("Wrong QP type")); - break; - } -} - -void mca_btl_wv_endpoint_init(mca_btl_wv_module_t *btl, - mca_btl_base_endpoint_t *ep, - ompi_btl_wv_connect_base_module_t *local_cpc, - mca_btl_wv_proc_modex_t *remote_proc_info, - ompi_btl_wv_connect_base_module_data_t *remote_cpc_data) -{ - int qp; - - ep->endpoint_btl = btl; - ep->use_eager_rdma = btl->device->use_eager_rdma & - mca_btl_wv_component.use_eager_rdma; - ep->subnet_id = btl->port_info.subnet_id; - ep->endpoint_local_cpc = local_cpc; - ep->endpoint_remote_cpc_data = remote_cpc_data; - - ep->rem_info.rem_lid = remote_proc_info->pm_port_info.lid; - ep->rem_info.rem_subnet_id = remote_proc_info->pm_port_info.subnet_id; - ep->rem_info.rem_mtu = remote_proc_info->pm_port_info.mtu; - opal_output(-1, "Got remote LID, subnet, MTU: %d, 0x%" PRIx64 ", %d", - ep->rem_info.rem_lid, - ep->rem_info.rem_subnet_id, - ep->rem_info.rem_mtu); - - ep->rem_info.rem_vendor_id = (remote_proc_info->pm_port_info).vendor_id; - ep->rem_info.rem_vendor_part_id = (remote_proc_info->pm_port_info).vendor_part_id; - - ep->rem_info.rem_transport_type = - (mca_btl_wv_transport_type_t) (remote_proc_info->pm_port_info).transport_type; - - for (qp = 0; qp < mca_btl_wv_component.num_qps; qp++) { - endpoint_init_qp(ep, qp); - } -} - -static void mca_btl_wv_endpoint_construct(mca_btl_base_endpoint_t* endpoint) -{ - /* setup qp structures */ - endpoint->qps = (mca_btl_wv_endpoint_qp_t*) - calloc(mca_btl_wv_component.num_qps, - sizeof(mca_btl_wv_endpoint_qp_t)); - endpoint->rem_info.rem_qps = (mca_btl_wv_rem_qp_info_t*) - calloc(mca_btl_wv_component.num_qps, - sizeof(mca_btl_wv_rem_qp_info_t)); - endpoint->rem_info.rem_srqs = NULL; - - endpoint->endpoint_btl = 0; - endpoint->endpoint_proc = 0; - endpoint->endpoint_local_cpc = NULL; - endpoint->endpoint_remote_cpc_data = NULL; - endpoint->endpoint_initiator = false; - endpoint->endpoint_tstamp = 0.0; - endpoint->endpoint_state = MCA_BTL_IB_CLOSED; - endpoint->endpoint_retries = 0; - OBJ_CONSTRUCT(&endpoint->endpoint_lock, opal_mutex_t); - OBJ_CONSTRUCT(&endpoint->pending_lazy_frags, opal_list_t); - OBJ_CONSTRUCT(&endpoint->pending_get_frags, opal_list_t); - OBJ_CONSTRUCT(&endpoint->pending_put_frags, opal_list_t); - - endpoint->get_tokens = mca_btl_wv_component.ib_qp_ous_rd_atom; - - /* initialize RDMA eager related parts */ - endpoint->eager_recv_count = 0; - memset(&endpoint->eager_rdma_remote, 0, - sizeof(mca_btl_wv_eager_rdma_remote_t)); - memset(&endpoint->eager_rdma_local, 0, - sizeof(mca_btl_wv_eager_rdma_local_t)); - OBJ_CONSTRUCT(&endpoint->eager_rdma_local.lock, opal_mutex_t); - - endpoint->rem_info.rem_lid = 0; - endpoint->rem_info.rem_subnet_id = 0; - endpoint->rem_info.rem_mtu = 0; - endpoint->nbo = false; - endpoint->use_eager_rdma = false; - endpoint->eager_rdma_remote.tokens = 0; - endpoint->eager_rdma_local.credits = 0; - endpoint->endpoint_cts_mr = NULL; - endpoint->endpoint_cts_frag.super.super.base.super.registration = NULL; - endpoint->endpoint_cts_frag.super.super.base.super.ptr = NULL; - endpoint->endpoint_posted_recvs = false; - endpoint->endpoint_cts_received = false; - endpoint->endpoint_cts_sent = false; -} - -/* - * Destroy a endpoint - * - */ - -static void mca_btl_wv_endpoint_destruct(mca_btl_base_endpoint_t* endpoint) -{ - bool pval_clean = false; - int qp; - - /* If the CPC has an endpoint_finalize function, call it */ - if (NULL != endpoint->endpoint_local_cpc->cbm_endpoint_finalize) { - endpoint->endpoint_local_cpc->cbm_endpoint_finalize(endpoint); - } - - /* Release CTS buffer */ - ompi_btl_wv_connect_base_free_cts(endpoint); - - /* Release memory resources */ - do { - /* Make sure that mca_btl_wv_endpoint_connect_eager_rdma () - * was not in "connect" or "bad" flow (failed to allocate memory) - * and changed the pointer back to NULL - */ - if(!opal_atomic_cmpset_ptr(&endpoint->eager_rdma_local.base.pval, NULL, - (void*)1)) { - if ((void*)1 != endpoint->eager_rdma_local.base.pval && - NULL != endpoint->eager_rdma_local.base.pval) { - endpoint->endpoint_btl->super.btl_mpool->mpool_free(endpoint->endpoint_btl->super.btl_mpool, - endpoint->eager_rdma_local.base.pval, - (mca_mpool_base_registration_t*)endpoint->eager_rdma_local.reg); - pval_clean=true; - } - } else { - pval_clean=true; - } - } while (!pval_clean); - - /* Close opened QPs if we have them*/ - for(qp = 0; qp < mca_btl_wv_component.num_qps; qp++) { - MCA_BTL_WV_CLEAN_PENDING_FRAGS(&endpoint->qps[qp].no_credits_pending_frags[0]); - MCA_BTL_WV_CLEAN_PENDING_FRAGS(&endpoint->qps[qp].no_credits_pending_frags[1]); - OBJ_DESTRUCT(&endpoint->qps[qp].no_credits_pending_frags[0]); - OBJ_DESTRUCT(&endpoint->qps[qp].no_credits_pending_frags[1]); - - MCA_BTL_WV_CLEAN_PENDING_FRAGS( - &endpoint->qps[qp].no_wqe_pending_frags[0]); - MCA_BTL_WV_CLEAN_PENDING_FRAGS( - &endpoint->qps[qp].no_wqe_pending_frags[1]); - OBJ_DESTRUCT(&endpoint->qps[qp].no_wqe_pending_frags[0]); - OBJ_DESTRUCT(&endpoint->qps[qp].no_wqe_pending_frags[1]); - - - if(--endpoint->qps[qp].qp->users != 0) - continue; - - if(endpoint->qps[qp].qp->lcl_qp != NULL) { - endpoint->qps[qp].qp->lcl_qp->handle->CancelOverlappedRequests(); - endpoint->qps[qp].qp->lcl_qp->conn_handle->Release(); - endpoint->qps[qp].qp->lcl_qp->handle->Release(); - free(endpoint->qps[qp].qp->lcl_qp); - } - free(endpoint->qps[qp].qp); - } - - /* free the qps */ - free(endpoint->qps); - endpoint->qps = NULL; - - OBJ_DESTRUCT(&endpoint->endpoint_lock); - /* Clean pending lists */ - MCA_BTL_WV_CLEAN_PENDING_FRAGS(&endpoint->pending_lazy_frags); - OBJ_DESTRUCT(&endpoint->pending_lazy_frags); - - MCA_BTL_WV_CLEAN_PENDING_FRAGS(&endpoint->pending_get_frags); - OBJ_DESTRUCT(&endpoint->pending_get_frags); - - MCA_BTL_WV_CLEAN_PENDING_FRAGS(&endpoint->pending_put_frags); - OBJ_DESTRUCT(&endpoint->pending_put_frags); -} - - -/* - * Called when the connect module has created all the qp's on an - * endpoint and needs to have some receive buffers posted. - */ -int mca_btl_wv_endpoint_post_recvs(mca_btl_wv_endpoint_t *endpoint) -{ - int qp; - - for (qp = 0; qp < mca_btl_wv_component.num_qps; ++qp) { - if (BTL_WV_QP_TYPE_PP(qp)) { - mca_btl_wv_endpoint_post_rr_nolock(endpoint, qp); - } else { - mca_btl_wv_post_srr(endpoint->endpoint_btl, qp); - } - } - - return OMPI_SUCCESS; -} - -static void cts_sent(mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* ep, - struct mca_btl_base_descriptor_t* des, - int status) -{ - /* Nothing to do/empty function (we can't pass in a NULL pointer - for the des_cbfunc) */ - OPAL_OUTPUT((-1, "CTS send to %s completed", - ep->endpoint_proc->proc_ompi->proc_hostname)); -} - -/* - * Send CTS control fragment - */ -void mca_btl_wv_endpoint_send_cts(mca_btl_wv_endpoint_t *endpoint) -{ - mca_btl_wv_send_control_frag_t *sc_frag; - mca_btl_base_descriptor_t *base_des; - mca_btl_wv_frag_t *wv_frag; - mca_btl_wv_com_frag_t *com_frag; - mca_btl_wv_control_header_t *ctl_hdr; - - OPAL_OUTPUT((-1, "SENDING CTS to %s on qp index %d (QP num %d)", - endpoint->endpoint_proc->proc_ompi->proc_hostname, - mca_btl_wv_component.credits_qp, - endpoint->qps[mca_btl_wv_component.credits_qp].qp->lcl_qp->qp_num)); - sc_frag = alloc_control_frag(endpoint->endpoint_btl); - if (OPAL_UNLIKELY(NULL == sc_frag)) { - BTL_ERROR(("Failed to allocate control buffer")); - mca_btl_wv_endpoint_invoke_error(endpoint); - return; - } - - /* I dislike using the "to_()" macros; I prefer using the - explicit member fields to ensure I get the types right. Since - this is not a performance-criticial part of the code, it's - ok. */ - com_frag = &(sc_frag->super.super); - wv_frag = &(com_frag->super); - base_des = &(wv_frag->base); - - base_des->des_cbfunc = cts_sent; - base_des->des_cbdata = NULL; - base_des->des_flags |= MCA_BTL_DES_FLAGS_PRIORITY|MCA_BTL_DES_SEND_ALWAYS_CALLBACK; - base_des->order = mca_btl_wv_component.credits_qp; - wv_frag->segment.base.seg_len = sizeof(mca_btl_wv_control_header_t); - com_frag->endpoint = endpoint; - - sc_frag->hdr->tag = MCA_BTL_TAG_BTL; - sc_frag->hdr->cm_seen = 0; - sc_frag->hdr->credits = 0; - - ctl_hdr = (mca_btl_wv_control_header_t*) - wv_frag->segment.base.seg_addr.pval; - ctl_hdr->type = MCA_BTL_WV_CONTROL_CTS; - - /* Send the fragment */ - OPAL_THREAD_LOCK(&endpoint->endpoint_lock); - if (OMPI_SUCCESS != mca_btl_wv_endpoint_post_send(endpoint, sc_frag)) { - BTL_ERROR(("Failed to post CTS send")); - mca_btl_wv_endpoint_invoke_error(endpoint); - } - endpoint->endpoint_cts_sent = true; - OPAL_THREAD_UNLOCK(&endpoint->endpoint_lock); -} - -/* - * Called when the CPC has established a connection on an endpoint - */ -void mca_btl_wv_endpoint_cpc_complete(mca_btl_wv_endpoint_t *endpoint) -{ - /* If the CPC uses the CTS protocol, then start it up */ - if (endpoint->endpoint_local_cpc->cbm_uses_cts) { - int transport_type_ib_p = 0; - /* Post our receives, which will make credit management happy - (i.e., rd_credits will be 0) */ - if (OMPI_SUCCESS != mca_btl_wv_endpoint_post_recvs(endpoint)) { - BTL_ERROR(("Failed to post receive buffers")); - mca_btl_wv_endpoint_invoke_error(endpoint); - return; - } - endpoint->endpoint_posted_recvs = true; - - /* If this is IB, send the CTS immediately. If this is iWARP, - then only send the CTS if this endpoint was the initiator - of the connection (the receiver will send its CTS when it - receives this side's CTS). Also send the CTS if we already - received the peer's CTS (e.g., if this process was slow to - call cpc_complete(). */ - OPAL_OUTPUT((-1, "cpc_complete to peer %s: is IB %d, initiatior %d, cts received: %d", - endpoint->endpoint_proc->proc_ompi->proc_hostname, - transport_type_ib_p, - endpoint->endpoint_initiator, - endpoint->endpoint_cts_received)); - if (transport_type_ib_p || - endpoint->endpoint_initiator || - endpoint->endpoint_cts_received) { - mca_btl_wv_endpoint_send_cts(endpoint); - - /* If we've already got the CTS from the other side, then - mark us as connected */ - if (endpoint->endpoint_cts_received) { - OPAL_OUTPUT((-1, "cpc_complete to %s -- already got CTS, so marking endpoint as complete", - endpoint->endpoint_proc->proc_ompi->proc_hostname)); - mca_btl_wv_endpoint_connected(endpoint); - } - } - - OPAL_OUTPUT((-1, "cpc_complete to %s -- done", - endpoint->endpoint_proc->proc_ompi->proc_hostname)); - return; - } - - /* Otherwise, just set the endpoint to "connected" */ - mca_btl_wv_endpoint_connected(endpoint); -} - -/* - * called when the connect module has completed setup of an endpoint - */ -void mca_btl_wv_endpoint_connected(mca_btl_wv_endpoint_t *endpoint) -{ - opal_list_item_t *frag_item; - mca_btl_wv_send_frag_t *frag; - bool master = false; - - opal_output(-1, "Now we are CONNECTED"); - endpoint->endpoint_state = MCA_BTL_IB_CONNECTED; - endpoint->endpoint_btl->device->non_eager_rdma_endpoints++; - - /* The connection is correctly setup. Now we can decrease the - event trigger. */ - opal_progress_event_users_decrement(); - - /* Process pending packet on the endpoint */ - /* While there are frags in the list, process them */ - while (!opal_list_is_empty(&(endpoint->pending_lazy_frags))) { - frag_item = opal_list_remove_first(&(endpoint->pending_lazy_frags)); - frag = to_send_frag(frag_item); - /* We need to post this one */ - - if(OMPI_SUCCESS != mca_btl_wv_endpoint_post_send(endpoint, frag)) - BTL_ERROR(("Error posting send")); - } - OPAL_THREAD_UNLOCK(&endpoint->endpoint_lock); - - /* if upper layer called put or get before connection moved to connected - * state then we restart them here */ - mca_btl_wv_frag_progress_pending_put_get(endpoint, - mca_btl_wv_component.rdma_qp); -} - -/* - * Attempt to send a fragment using a given endpoint. If the endpoint is not - * connected, queue the fragment and start the connection as required. - */ -int mca_btl_wv_endpoint_send(mca_btl_base_endpoint_t* ep, - mca_btl_wv_send_frag_t* frag) -{ - int rc; - - OPAL_THREAD_LOCK(&ep->endpoint_lock); - rc = check_endpoint_state(ep, &to_base_frag(frag)->base, - &ep->pending_lazy_frags); - - if(OPAL_LIKELY(OMPI_SUCCESS == rc)) { - rc = mca_btl_wv_endpoint_post_send(ep, frag); - } - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - if (OPAL_UNLIKELY(OMPI_ERR_RESOURCE_BUSY == rc)) { - rc = OMPI_SUCCESS; - } - - return rc; -} - -/** - * Return control fragment. - */ - -static void mca_btl_wv_endpoint_credits( - mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* ep, - struct mca_btl_base_descriptor_t* des, - int status) -{ - - int qp; - - mca_btl_wv_send_control_frag_t *frag = to_send_control_frag(des); - - qp = frag->qp_idx; - - /* we don't acquire a WQE for credit message - so decrement. - * Note: doing it for QP used for credit management */ - qp_get_wqe(ep, des->order); - - if(check_send_credits(ep, qp) || check_eager_rdma_credits(ep)) - mca_btl_wv_endpoint_send_credits(ep, qp); - else { - BTL_WV_CREDITS_SEND_UNLOCK(ep, qp); - /* check one more time if credits are available after unlock */ - send_credits(ep, qp); - } -} - -/** - * Return credits to peer - */ - -void mca_btl_wv_endpoint_send_credits(mca_btl_wv_endpoint_t* endpoint, - const int qp) -{ - mca_btl_wv_module_t* wv_btl = endpoint->endpoint_btl; - mca_btl_wv_send_control_frag_t* frag; - mca_btl_wv_rdma_credits_header_t *credits_hdr; - int rc; - bool do_rdma = false; - int32_t cm_return; - - frag = endpoint->qps[qp].credit_frag; - - if(OPAL_UNLIKELY(NULL == frag)) { - frag = alloc_control_frag(wv_btl); - frag->qp_idx = qp; - endpoint->qps[qp].credit_frag = frag; - /* set those once and forever */ - to_base_frag(frag)->base.order = mca_btl_wv_component.credits_qp; - to_base_frag(frag)->base.des_cbfunc = mca_btl_wv_endpoint_credits; - to_base_frag(frag)->base.des_cbdata = NULL; - to_base_frag(frag)->base.des_flags |= MCA_BTL_DES_SEND_ALWAYS_CALLBACK;; - to_com_frag(frag)->endpoint = endpoint; - frag->hdr->tag = MCA_BTL_TAG_BTL; - to_base_frag(frag)->segment.base.seg_len = - sizeof(mca_btl_wv_rdma_credits_header_t); - } - - assert(frag->qp_idx == qp); - credits_hdr = (mca_btl_wv_rdma_credits_header_t*) - to_base_frag(frag)->segment.base.seg_addr.pval; - if(OMPI_SUCCESS == acquire_eager_rdma_send_credit(endpoint)) { - do_rdma = true; - } else { - if(OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.cm_sent, 1) > - (mca_btl_wv_component.qp_infos[qp].u.pp_qp.rd_rsv - 1)) { - OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.cm_sent, -1); - BTL_WV_CREDITS_SEND_UNLOCK(endpoint, qp); - return; - } - } - - BTL_WV_GET_CREDITS(endpoint->qps[qp].u.pp_qp.rd_credits, frag->hdr->credits); - - frag->hdr->cm_seen = 0; - BTL_WV_GET_CREDITS(endpoint->qps[qp].u.pp_qp.cm_return, cm_return); - if(cm_return > 255) { - frag->hdr->cm_seen = 255; - cm_return -= 255; - OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.cm_return, cm_return); - } else { - frag->hdr->cm_seen = cm_return; - } - - BTL_WV_GET_CREDITS(endpoint->eager_rdma_local.credits, credits_hdr->rdma_credits); - credits_hdr->qpn = qp; - credits_hdr->control.type = MCA_BTL_WV_CONTROL_CREDITS; - - if(endpoint->nbo) - BTL_WV_RDMA_CREDITS_HEADER_HTON(*credits_hdr); - - if((rc = post_send(endpoint, frag, do_rdma)) == 0) - return; - - if(endpoint->nbo) { - BTL_WV_HEADER_NTOH(*frag->hdr); - BTL_WV_RDMA_CREDITS_HEADER_NTOH(*credits_hdr); - } - BTL_WV_CREDITS_SEND_UNLOCK(endpoint, qp); - OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.rd_credits, - frag->hdr->credits); - OPAL_THREAD_ADD32(&endpoint->eager_rdma_local.credits, - credits_hdr->rdma_credits); - if(do_rdma) - OPAL_THREAD_ADD32(&endpoint->eager_rdma_remote.tokens, 1); - else - OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.cm_sent, -1); - - BTL_ERROR(("error posting send request errno %d says %s", rc, - strerror(errno))); -} - -/* local callback function for completion of eager rdma connect */ -static void mca_btl_wv_endpoint_eager_rdma_connect_cb( - mca_btl_base_module_t* btl, - struct mca_btl_base_endpoint_t* endpoint, - struct mca_btl_base_descriptor_t* descriptor, - int status) -{ - mca_btl_wv_device_t *device = endpoint->endpoint_btl->device; - OPAL_THREAD_ADD32(&device->non_eager_rdma_endpoints, -1); - assert(device->non_eager_rdma_endpoints >= 0); - MCA_BTL_IB_FRAG_RETURN(descriptor); -} - -/* send the eager rdma connect message to the remote endpoint */ -static int mca_btl_wv_endpoint_send_eager_rdma( - mca_btl_base_endpoint_t* endpoint) -{ - mca_btl_wv_module_t* wv_btl = endpoint->endpoint_btl; - mca_btl_wv_eager_rdma_header_t *rdma_hdr; - mca_btl_wv_send_control_frag_t* frag; - int rc; - - frag = alloc_control_frag(wv_btl); - if(NULL == frag) { - return -1; - } - - to_base_frag(frag)->base.des_cbfunc = - mca_btl_wv_endpoint_eager_rdma_connect_cb; - to_base_frag(frag)->base.des_cbdata = NULL; - to_base_frag(frag)->base.des_flags |= MCA_BTL_DES_FLAGS_PRIORITY|MCA_BTL_DES_SEND_ALWAYS_CALLBACK; - to_base_frag(frag)->base.order = mca_btl_wv_component.credits_qp; - to_base_frag(frag)->segment.base.seg_len = - sizeof(mca_btl_wv_eager_rdma_header_t); - to_com_frag(frag)->endpoint = endpoint; - - frag->hdr->tag = MCA_BTL_TAG_BTL; - rdma_hdr = (mca_btl_wv_eager_rdma_header_t*)to_base_frag(frag)->segment.base.seg_addr.pval; - rdma_hdr->control.type = MCA_BTL_WV_CONTROL_RDMA; - rdma_hdr->rkey = endpoint->eager_rdma_local.reg->mr->rkey; - rdma_hdr->rdma_start.lval = ompi_ptr_ptol(endpoint->eager_rdma_local.base.pval); - BTL_VERBOSE(("sending rkey %" PRIu32 ", rdma_start.lval %" PRIx64 - ", pval %p, ival %" PRIu32 " type %d and sizeof(rdma_hdr) %d\n", - rdma_hdr->rkey, - rdma_hdr->rdma_start.lval, - rdma_hdr->rdma_start.pval, - rdma_hdr->rdma_start.ival, - rdma_hdr->control.type, - (int) sizeof(mca_btl_wv_eager_rdma_header_t) - )); - - if(endpoint->nbo) { - BTL_WV_EAGER_RDMA_CONTROL_HEADER_HTON((*rdma_hdr)); - - BTL_VERBOSE(("after HTON: sending rkey %" PRIu32 ", rdma_start.lval %" PRIx64 ", pval %p, ival %" PRIu32 "\n", - rdma_hdr->rkey, - rdma_hdr->rdma_start.lval, - rdma_hdr->rdma_start.pval, - rdma_hdr->rdma_start.ival - )); - } - rc = mca_btl_wv_endpoint_send(endpoint, frag); - if (OMPI_SUCCESS == rc || OMPI_ERR_RESOURCE_BUSY == rc) - return OMPI_SUCCESS; - - MCA_BTL_IB_FRAG_RETURN(frag); - BTL_ERROR(("Error sending RDMA buffer: %s", strerror(errno))); - return rc; -} - -/* Setup eager RDMA buffers and notify the remote endpoint*/ -void mca_btl_wv_endpoint_connect_eager_rdma( - mca_btl_wv_endpoint_t* endpoint) -{ - mca_btl_wv_module_t* wv_btl = endpoint->endpoint_btl; - char *buf; - mca_btl_wv_recv_frag_t *headers_buf; - int i; - - /* Set local rdma pointer to 1 temporarily so other threads will not try - * to enter the function */ - if(!opal_atomic_cmpset_ptr(&endpoint->eager_rdma_local.base.pval, NULL, - (void*)1)) - return; - - headers_buf = (mca_btl_wv_recv_frag_t*) - malloc(sizeof(mca_btl_wv_recv_frag_t) * - mca_btl_wv_component.eager_rdma_num); - - if(NULL == headers_buf) - goto unlock_rdma_local; - - buf = (char *) wv_btl->super.btl_mpool->mpool_alloc(wv_btl->super.btl_mpool, - wv_btl->eager_rdma_frag_size * - mca_btl_wv_component.eager_rdma_num, - mca_btl_wv_component.buffer_alignment, - MCA_MPOOL_FLAGS_CACHE_BYPASS, - (mca_mpool_base_registration_t**)&endpoint->eager_rdma_local.reg); - - if(!buf) - goto free_headers_buf; - - buf = buf + wv_btl->eager_rdma_frag_size - - sizeof(mca_btl_wv_footer_t) - wv_btl->super.btl_eager_limit - - sizeof(mca_btl_wv_header_t); - - for(i = 0; i < mca_btl_wv_component.eager_rdma_num; i++) { - ompi_free_list_item_t *item; - mca_btl_wv_recv_frag_t * frag; - mca_btl_wv_frag_init_data_t init_data; - - item = (ompi_free_list_item_t*)&headers_buf[i]; - item->registration = (mca_mpool_base_registration_t *)endpoint->eager_rdma_local.reg; - item->ptr = buf + i * wv_btl->eager_rdma_frag_size; - OBJ_CONSTRUCT(item, mca_btl_wv_recv_frag_t); - - init_data.order = mca_btl_wv_component.credits_qp; - init_data.list = NULL; - - mca_btl_wv_frag_init(item, &init_data); - frag = to_recv_frag(item); - to_base_frag(frag)->type = MCA_BTL_WV_FRAG_EAGER_RDMA; - to_com_frag(frag)->endpoint = endpoint; - frag->ftr = (mca_btl_wv_footer_t*) - ((char*)to_base_frag(frag)->segment.base.seg_addr.pval + - mca_btl_wv_component.eager_limit); - - MCA_BTL_WV_RDMA_MAKE_REMOTE(frag->ftr); - } - - endpoint->eager_rdma_local.frags = headers_buf; - - endpoint->eager_rdma_local.rd_win = - mca_btl_wv_component.eager_rdma_num >> 2; - endpoint->eager_rdma_local.rd_win = - endpoint->eager_rdma_local.rd_win?endpoint->eager_rdma_local.rd_win:1; - - /* set local rdma pointer to real value */ - opal_atomic_cmpset_ptr(&endpoint->eager_rdma_local.base.pval, (void*)1, - buf); - - if(mca_btl_wv_endpoint_send_eager_rdma(endpoint) == OMPI_SUCCESS) { - mca_btl_wv_device_t *device = endpoint->endpoint_btl->device; - mca_btl_wv_endpoint_t **p; - OBJ_RETAIN(endpoint); - assert(((opal_object_t*)endpoint)->obj_reference_count == 2); - do { - p = &device->eager_rdma_buffers[device->eager_rdma_buffers_count]; - } while(!opal_atomic_cmpset_ptr(p, NULL, endpoint)); - - OPAL_THREAD_ADD32(&wv_btl->eager_rdma_channels, 1); - /* from this point progress function starts to poll new buffer */ - OPAL_THREAD_ADD32(&device->eager_rdma_buffers_count, 1); - return; - } - - wv_btl->super.btl_mpool->mpool_free(wv_btl->super.btl_mpool, - buf, (mca_mpool_base_registration_t*)endpoint->eager_rdma_local.reg); -free_headers_buf: - free(headers_buf); -unlock_rdma_local: - /* set local rdma pointer back to zero. Will retry later */ - opal_atomic_cmpset_ptr(&endpoint->eager_rdma_local.base.pval, - endpoint->eager_rdma_local.base.pval, NULL); - endpoint->eager_rdma_local.frags = NULL; -} - -/* - * Invoke an error on the btl associated with an endpoint. If we - * don't have an endpoint, then just use the first one on the - * component list of BTLs. - */ -void *mca_btl_wv_endpoint_invoke_error(void *context) -{ - mca_btl_wv_endpoint_t *endpoint = (mca_btl_wv_endpoint_t*) context; - mca_btl_wv_module_t *btl = NULL; - - if (NULL == endpoint) { - int i; - for (i = 0; i < mca_btl_wv_component.ib_num_btls; ++i) { - if (NULL != mca_btl_wv_component.wv_btls[i] && - NULL != mca_btl_wv_component.wv_btls[i]->error_cb) { - btl = mca_btl_wv_component.wv_btls[i]; - break; - } - } - } else { - btl = endpoint->endpoint_btl; - } - - /* If we didn't find a BTL, then just bail :-( */ - if (NULL == btl || NULL == btl->error_cb) { - opal_show_help("help-mpi-btl-wv.txt", - "cannot raise btl error", true, - ompi_process_info.nodename, - __FILE__, __LINE__); - exit(1); - } - - /* Invoke the callback to the upper layer */ - btl->error_cb(&(btl->super), MCA_BTL_ERROR_FLAGS_FATAL, NULL, NULL); - - /* Will likely never get here */ - return NULL; -} diff --git a/ompi/mca/btl/wv/btl_wv_endpoint.h b/ompi/mca/btl/wv/btl_wv_endpoint.h deleted file mode 100644 index e9f8e4a44b..0000000000 --- a/ompi/mca/btl/wv/btl_wv_endpoint.h +++ /dev/null @@ -1,518 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2006 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-2009 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2006-2007 Voltaire All rights reserved. - * Copyright (c) 2007-2009 Mellanox Technologies. All rights reserved. - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef MCA_BTL_IB_ENDPOINT_H -#define MCA_BTL_IB_ENDPOINT_H - -#include "opal/class/opal_list.h" -#include "opal/mca/event/event.h" -#include "opal/util/output.h" -#include "ompi/mca/btl/btl.h" -#include "btl_wv.h" -#include "btl_wv_frag.h" -#include "btl_wv_eager_rdma.h" -#include -#include -#include "ompi/mca/btl/base/btl_base_error.h" -#include "connect/base.h" - -BEGIN_C_DECLS - -struct mca_btl_wv_frag_t; -struct mca_btl_wv_proc_modex_t; - -/** - * State of IB endpoint connection. - */ - -typedef enum { - /* Defines the state in which this BTL instance - * has started the process of connection */ - MCA_BTL_IB_CONNECTING, - - /* Waiting for ack from endpoint */ - MCA_BTL_IB_CONNECT_ACK, - - /*Waiting for final connection ACK from endpoint */ - MCA_BTL_IB_WAITING_ACK, - - /* Connected ... both sender & receiver have - * buffers associated with this connection */ - MCA_BTL_IB_CONNECTED, - - /* Connection is closed, there are no resources - * associated with this */ - MCA_BTL_IB_CLOSED, - - /* Maximum number of retries have been used. - * Report failure on send to upper layer */ - MCA_BTL_IB_FAILED -} mca_btl_wv_endpoint_state_t; - -typedef struct mca_btl_wv_rem_qp_info_t { - uint32_t rem_qp_num; - /* Remote QP number */ - uint32_t rem_psn; - /* Remote processes port sequence number */ -} mca_btl_wv_rem_qp_info_t; - -typedef struct mca_btl_wv_rem_srq_info_t { - /* Remote SRQ number */ - uint32_t rem_srq_num; -} mca_btl_wv_rem_srq_info_t; - -typedef struct mca_btl_wv_rem_info_t { - /* Local identifier of the remote process */ - uint16_t rem_lid; - /* subnet id of remote process */ - uint64_t rem_subnet_id; - /* MTU of remote process */ - uint32_t rem_mtu; - /* index of remote endpoint in endpoint array */ - uint32_t rem_index; - /* Remote QPs */ - mca_btl_wv_rem_qp_info_t *rem_qps; - /* Remote xrc_srq info, used only with XRC connections */ - mca_btl_wv_rem_srq_info_t *rem_srqs; - /* Vendor id of remote HCA */ - uint32_t rem_vendor_id; - /* Vendor part id of remote HCA */ - uint32_t rem_vendor_part_id; - /* Transport type of remote port */ - mca_btl_wv_transport_type_t rem_transport_type; -} mca_btl_wv_rem_info_t; - - -/** - * Agggregates all per peer qp info for an endpoint - */ -typedef struct mca_btl_wv_endpoint_pp_qp_t { - int32_t sd_credits; /**< this rank's view of the credits - * available for sending: - * this is the credits granted by the - * remote peer which has some relation to the - * number of receive buffers posted remotely - */ - int32_t rd_posted; /**< number of descriptors posted to the nic*/ - int32_t rd_credits; /**< number of credits to return to peer */ - int32_t cm_received; /**< Credit messages received */ - int32_t cm_return; /**< how may credits to return */ - int32_t cm_sent; /**< Outstanding number of credit messages */ -} mca_btl_wv_endpoint_pp_qp_t; - - -/** - * Aggregates all srq qp info for an endpoint - */ -typedef struct mca_btl_wv_endpoint_srq_qp_t { - int32_t dummy; -} mca_btl_wv_endpoint_srq_qp_t; - -typedef struct mca_btl_wv_qp_t { - struct wv_qp *lcl_qp; - uint32_t lcl_psn; - int32_t sd_wqe; /**< number of available send wqe entries */ - int users; - opal_mutex_t lock; -} mca_btl_wv_qp_t; - -typedef struct mca_btl_wv_endpoint_qp_t { - mca_btl_wv_qp_t *qp; - opal_list_t no_credits_pending_frags[2]; /**< put fragment here if there is no credits - available */ - opal_list_t no_wqe_pending_frags[2]; /**< put fragments here if there is no wqe - available */ - int32_t rd_credit_send_lock; /**< Lock credit send fragment */ - mca_btl_wv_send_control_frag_t *credit_frag; - size_t ib_inline_max; /**< max size of inline send*/ - union { - mca_btl_wv_endpoint_srq_qp_t srq_qp; - mca_btl_wv_endpoint_pp_qp_t pp_qp; - } u; -} mca_btl_wv_endpoint_qp_t; - -/** - * An abstraction that represents a connection to a endpoint process. - * An instance of mca_btl_base_endpoint_t is associated w/ each process - * and BTL pair at startup. However, connections to the endpoint - * are established dynamically on an as-needed basis: - */ - -struct mca_btl_base_endpoint_t { - opal_list_item_t super; - - /** BTL module that created this connection */ - struct mca_btl_wv_module_t* endpoint_btl; - - /** proc structure corresponding to endpoint */ - struct mca_btl_wv_proc_t* endpoint_proc; - - /** local CPC to connect to this endpoint */ - ompi_btl_wv_connect_base_module_t *endpoint_local_cpc; - - /** hook for local CPC to hang endpoint-specific data */ - void *endpoint_local_cpc_data; - - /** If endpoint_local_cpc->cbm_uses_cts is true and this endpoint - is iWARP, then endpoint_initiator must be true on the side - that actually initiates the QP, false on the other side. This - bool is used to know which way to send the first CTS - message. */ - bool endpoint_initiator; - - /** pointer to remote proc's CPC data (essentially its CPC modex - message) */ - ompi_btl_wv_connect_base_module_data_t *endpoint_remote_cpc_data; - - /** current state of the connection */ - mca_btl_wv_endpoint_state_t endpoint_state; - - /** number of connection retries attempted */ - size_t endpoint_retries; - - /** timestamp of when the first connection was attempted */ - double endpoint_tstamp; - - /** lock for concurrent access to endpoint state */ - opal_mutex_t endpoint_lock; - - /** list of pending frags due to lazy connection establishment - for this endpotint */ - opal_list_t pending_lazy_frags; - - mca_btl_wv_endpoint_qp_t *qps; - - /** list of pending rget ops */ - opal_list_t pending_get_frags; - /** list of pending rput ops */ - opal_list_t pending_put_frags; - - /** number of available get tokens */ - int32_t get_tokens; - - /** subnet id of this endpoint*/ - uint64_t subnet_id; - - /** number of eager received */ - int32_t eager_recv_count; - /** info about remote RDMA buffer */ - mca_btl_wv_eager_rdma_remote_t eager_rdma_remote; - /** info about local RDMA buffer */ - mca_btl_wv_eager_rdma_local_t eager_rdma_local; - /** index of the endpoint in endpoints array */ - int32_t index; - - /** does the endpoint require network byte ordering? */ - bool nbo; - /** use eager rdma for this peer? */ - bool use_eager_rdma; - - /** information about the remote port */ - mca_btl_wv_rem_info_t rem_info; - - /** Frag for initial wireup CTS protocol; will be NULL if CPC - indicates that it does not want to use CTS */ - mca_btl_wv_recv_frag_t endpoint_cts_frag; - /** Memory registration info for the CTS frag */ - struct wv_mr *endpoint_cts_mr; - - /** Whether we've posted receives on this EP or not (only used in - CTS protocol) */ - bool endpoint_posted_recvs; - - /** Whether we've received the CTS from the peer or not (only used - in CTS protocol) */ - bool endpoint_cts_received; - - /** Whether we've send out CTS to the peer or not (only used in - CTS protocol) */ - bool endpoint_cts_sent; -}; - -typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t; -typedef mca_btl_base_endpoint_t mca_btl_wv_endpoint_t; - -OBJ_CLASS_DECLARATION(mca_btl_wv_endpoint_t); - -static inline int32_t qp_get_wqe(mca_btl_wv_endpoint_t *ep, const int qp) -{ - return OPAL_THREAD_ADD32(&ep->qps[qp].qp->sd_wqe, -1); -} - -static inline int32_t qp_put_wqe(mca_btl_wv_endpoint_t *ep, const int qp) -{ - return OPAL_THREAD_ADD32(&ep->qps[qp].qp->sd_wqe, 1); -} - -int mca_btl_wv_endpoint_send(mca_btl_base_endpoint_t*, - mca_btl_wv_send_frag_t*); -int mca_btl_wv_endpoint_post_send(mca_btl_wv_endpoint_t*, - mca_btl_wv_send_frag_t*); -void mca_btl_wv_endpoint_send_credits(mca_btl_base_endpoint_t*, const int); -void mca_btl_wv_endpoint_connect_eager_rdma(mca_btl_wv_endpoint_t*); -int mca_btl_wv_endpoint_post_recvs(mca_btl_wv_endpoint_t*); -void mca_btl_wv_endpoint_send_cts(mca_btl_wv_endpoint_t *endpoint); -void mca_btl_wv_endpoint_cpc_complete(mca_btl_wv_endpoint_t*); -void mca_btl_wv_endpoint_connected(mca_btl_wv_endpoint_t*); -void mca_btl_wv_endpoint_init(mca_btl_wv_module_t*, - mca_btl_base_endpoint_t*, - ompi_btl_wv_connect_base_module_t *local_cpc, - struct mca_btl_wv_proc_modex_t *remote_proc_info, - ompi_btl_wv_connect_base_module_data_t *remote_cpc_data); - -/* - * Invoke an error on the btl associated with an endpoint. If we - * don't have an endpoint, then just use the first one on the - * component list of BTLs. - */ -void *mca_btl_wv_endpoint_invoke_error(void *endpoint); - -static inline int post_recvs(mca_btl_base_endpoint_t *ep, const int qp, - const int num_post) -{ - int i; - struct wv_recv_wr *wr = NULL; - mca_btl_wv_module_t *wv_btl = ep->endpoint_btl; - HRESULT hr = 0; - if(0 == num_post) - return OMPI_SUCCESS; - for(i = 0; i < num_post; i++) { - int rc; - ompi_free_list_item_t* item; - OMPI_FREE_LIST_WAIT(&wv_btl->device->qps[qp].recv_free, item, rc); - to_base_frag(item)->base.order = qp; - to_com_frag(item)->endpoint = ep; - wr = &to_recv_frag(item)->rd_desc; - hr = ep->qps[qp].qp->lcl_qp->handle->PostReceive(wr->wr_id,wr->sg_list, - wr->num_sge); - } - if(SUCCEEDED(hr)) { - return OMPI_SUCCESS; - }else { - BTL_ERROR(("posting receive on qp %d", qp)); - return OMPI_ERROR; - } -} - -static inline int mca_btl_wv_endpoint_post_rr_nolock( - mca_btl_base_endpoint_t *ep, const int qp) -{ - int rd_rsv = mca_btl_wv_component.qp_infos[qp].u.pp_qp.rd_rsv; - int rd_num = mca_btl_wv_component.qp_infos[qp].rd_num; - int rd_low = mca_btl_wv_component.qp_infos[qp].rd_low; - int cqp = mca_btl_wv_component.credits_qp, rc; - int cm_received = 0, num_post = 0; - - assert(BTL_WV_QP_TYPE_PP(qp)); - - if(ep->qps[qp].u.pp_qp.rd_posted <= rd_low) - num_post = rd_num - ep->qps[qp].u.pp_qp.rd_posted; - - assert(num_post >= 0); - - if(ep->qps[qp].u.pp_qp.cm_received >= (rd_rsv >> 2)) - cm_received = ep->qps[qp].u.pp_qp.cm_received; - - if((rc = post_recvs(ep, qp, num_post)) != OMPI_SUCCESS) { - return rc; - } - OPAL_THREAD_ADD32(&ep->qps[qp].u.pp_qp.rd_posted, num_post); - OPAL_THREAD_ADD32(&ep->qps[qp].u.pp_qp.rd_credits, num_post); - - /* post buffers for credit management on credit management qp */ - if((rc = post_recvs(ep, cqp, cm_received)) != OMPI_SUCCESS) { - return rc; - } - OPAL_THREAD_ADD32(&ep->qps[qp].u.pp_qp.cm_return, cm_received); - OPAL_THREAD_ADD32(&ep->qps[qp].u.pp_qp.cm_received, -cm_received); - - assert(ep->qps[qp].u.pp_qp.rd_credits <= rd_num && - ep->qps[qp].u.pp_qp.rd_credits >= 0); - - return OMPI_SUCCESS; -} - -static inline int mca_btl_wv_endpoint_post_rr( - mca_btl_base_endpoint_t *ep, const int qp) -{ - int ret; - OPAL_THREAD_LOCK(&ep->endpoint_lock); - ret = mca_btl_wv_endpoint_post_rr_nolock(ep, qp); - OPAL_THREAD_UNLOCK(&ep->endpoint_lock); - return ret; -} - -#define BTL_WV_CREDITS_SEND_TRYLOCK(E, Q) \ - OPAL_ATOMIC_CMPSET_32(&(E)->qps[(Q)].rd_credit_send_lock, 0, 1) -#define BTL_WV_CREDITS_SEND_UNLOCK(E, Q) \ - OPAL_ATOMIC_CMPSET_32(&(E)->qps[(Q)].rd_credit_send_lock, 1, 0) -#define BTL_WV_GET_CREDITS(FROM, TO) \ - do { \ - TO = FROM; \ - } while(0 == OPAL_ATOMIC_CMPSET_32(&FROM, TO, 0)) - - -static inline bool check_eager_rdma_credits(const mca_btl_wv_endpoint_t *ep) -{ - return (ep->eager_rdma_local.credits > ep->eager_rdma_local.rd_win) ? true : - false; -} - -static inline bool -check_send_credits(const mca_btl_wv_endpoint_t *ep, const int qp) -{ - - if(!BTL_WV_QP_TYPE_PP(qp)) - return false; - - return (ep->qps[qp].u.pp_qp.rd_credits >= - mca_btl_wv_component.qp_infos[qp].u.pp_qp.rd_win) ? true : false; -} - -static inline void send_credits(mca_btl_wv_endpoint_t *ep, int qp) -{ - if(BTL_WV_QP_TYPE_PP(qp)) { - if(check_send_credits(ep, qp)) - goto try_send; - } else { - qp = mca_btl_wv_component.credits_qp; - } - - if(!check_eager_rdma_credits(ep)) - return; - -try_send: - if(BTL_WV_CREDITS_SEND_TRYLOCK(ep, qp)) - mca_btl_wv_endpoint_send_credits(ep, qp); -} - -static inline int check_endpoint_state(mca_btl_wv_endpoint_t *ep, - mca_btl_base_descriptor_t *des, opal_list_t *pending_list) -{ - int rc = OMPI_ERR_RESOURCE_BUSY; - - switch(ep->endpoint_state) { - case MCA_BTL_IB_CLOSED: - rc = ep->endpoint_local_cpc->cbm_start_connect(ep->endpoint_local_cpc, ep); - if (OMPI_SUCCESS == rc) { - rc = OMPI_ERR_RESOURCE_BUSY; - } - /* - * As long as we expect a message from the peer (in order - * to setup the connection) let the event engine pool the - * OOB events. Note: we increment it once peer active - * connection. - */ - opal_progress_event_users_increment(); - /* fall through */ - default: - opal_list_append(pending_list, (opal_list_item_t *)des); - break; - case MCA_BTL_IB_FAILED: - rc = OMPI_ERR_UNREACH; - break; - case MCA_BTL_IB_CONNECTED: - rc = OMPI_SUCCESS; - break; - } - - return rc; -} - -static inline __opal_attribute_always_inline__ int -ib_send_flags(uint32_t size, mca_btl_wv_endpoint_qp_t *qp) -{ - return WV_SEND_SIGNALED | - ((size <= qp->ib_inline_max) ? WV_SEND_INLINE : 0); -} - -static inline int -acquire_eager_rdma_send_credit(mca_btl_wv_endpoint_t *endpoint) -{ - if(OPAL_THREAD_ADD32(&endpoint->eager_rdma_remote.tokens, -1) < 0) { - OPAL_THREAD_ADD32(&endpoint->eager_rdma_remote.tokens, 1); - return OMPI_ERR_OUT_OF_RESOURCE; - } - - return OMPI_SUCCESS; -} - -#define ntohll(x) (((_int64)(ntohl((int)((x << 32) >> 32))) << 32)|(unsigned int)ntohl(((int)(x >> 32)))) -#define htonll(x) ntohll(x) - -static inline int post_send(mca_btl_wv_endpoint_t *ep, - mca_btl_wv_send_frag_t *frag, const bool rdma) -{ - mca_btl_wv_module_t *wv_btl = ep->endpoint_btl; - mca_btl_base_segment_t *seg = (mca_btl_base_segment_t *) &to_base_frag(frag)->segment; - WV_SGE *sg = &to_com_frag(frag)->sg_entry; - WV_SEND_REQUEST *sr_desc = &to_out_frag(frag)->sr_desc; - WV_SEND_REQUEST *bad_wr; - HRESULT hr = 0; - int qp = to_base_frag(frag)->base.order; - sg->Length = seg->seg_len + sizeof(mca_btl_wv_header_t) + - (rdma ? sizeof(mca_btl_wv_footer_t) : 0) + frag->coalesced_length; - sr_desc->Flags = ib_send_flags(sg->Length, &(ep->qps[qp])); - if(ep->nbo) - BTL_WV_HEADER_HTON(*frag->hdr); - if(rdma) { - int32_t head; - mca_btl_wv_footer_t* ftr = - (mca_btl_wv_footer_t*)(((char*)frag->hdr) + sg->Length - - sizeof(mca_btl_wv_footer_t)); - sr_desc->Opcode = WvRdmaWrite; - MCA_BTL_WV_RDMA_FRAG_SET_SIZE(ftr, sg->Length); - MCA_BTL_WV_RDMA_MAKE_LOCAL(ftr); - if(ep->nbo) - BTL_WV_FOOTER_HTON(*ftr); - sr_desc->Wr.Rdma.Rkey = htonl(ep->eager_rdma_remote.rkey); - MCA_BTL_WV_RDMA_MOVE_INDEX(ep->eager_rdma_remote.head, head); - sr_desc->Wr.Rdma.RemoteAddress = - ep->eager_rdma_remote.base.lval + - head * wv_btl->eager_rdma_frag_size + - sizeof(mca_btl_wv_header_t) + - mca_btl_wv_component.eager_limit + - sizeof(mca_btl_wv_footer_t); - sr_desc->Wr.Rdma.RemoteAddress = htonll(sr_desc->Wr.Rdma.RemoteAddress - sg->Length); - } else { - if(BTL_WV_QP_TYPE_PP(qp)) { - sr_desc->Opcode = WvSend; - } else { - sr_desc->Opcode = WvSend; - sr_desc->Flags |= WV_SEND_IMMEDIATE; - sr_desc->ImmediateData = ep->rem_info.rem_index; - } - } - assert(sg->pAddress == (void*)(uintptr_t)frag->hdr); - hr = ep->qps[qp].qp->lcl_qp->handle->PostSend(sr_desc, - (WV_SEND_REQUEST**)&bad_wr); - if(SUCCEEDED(hr)) - return 0; - else - return 1; -} - -END_C_DECLS - -#endif diff --git a/ompi/mca/btl/wv/btl_wv_frag.c b/ompi/mca/btl/wv/btl_wv_frag.c deleted file mode 100644 index 0fb76ed7ee..0000000000 --- a/ompi/mca/btl/wv/btl_wv_frag.c +++ /dev/null @@ -1,219 +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) 2006-2007 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2006-2007 Voltaire All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "btl_wv.h" -#include "btl_wv_frag.h" -#include "btl_wv_eager_rdma.h" - -void mca_btl_wv_frag_init(ompi_free_list_item_t* item, void* ctx) -{ - mca_btl_wv_frag_init_data_t* init_data = (mca_btl_wv_frag_init_data_t *) ctx; - mca_btl_wv_frag_t *frag = to_base_frag(item); - - if(MCA_BTL_WV_FRAG_RECV == frag->type) { - to_recv_frag(frag)->qp_idx = init_data->order; - to_com_frag(frag)->sg_entry.Length = - mca_btl_wv_component.qp_infos[init_data->order].size + - sizeof(mca_btl_wv_header_t) + - sizeof(mca_btl_wv_header_coalesced_t) + - sizeof(mca_btl_wv_control_header_t); - } - - if(MCA_BTL_WV_FRAG_SEND == frag->type) - to_send_frag(frag)->qp_idx = init_data->order; - - frag->list = init_data->list; -} - -static void base_constructor(mca_btl_wv_frag_t *frag) -{ - frag->base.order = MCA_BTL_NO_ORDER; -} - -static void com_constructor(mca_btl_wv_com_frag_t *frag) -{ - mca_btl_wv_frag_t *base_frag = to_base_frag(frag); - mca_btl_wv_reg_t* reg = - (mca_btl_wv_reg_t*)base_frag->base.super.registration; - - frag->registration = reg; - - if(reg) { - frag->sg_entry.Lkey = reg->mr->lkey; - base_frag->segment.key = reg->mr->lkey; - } -} - -static void out_constructor(mca_btl_wv_out_frag_t *frag) -{ - mca_btl_wv_frag_t *base_frag = to_base_frag(frag); - - base_frag->base.des_src = (mca_btl_base_segment_t *) &base_frag->segment; - base_frag->base.des_src_cnt = 1; - base_frag->base.des_dst = NULL; - base_frag->base.des_dst_cnt = 0; - - frag->sr_desc.WrId = (uint64_t)(uintptr_t)frag; - frag->sr_desc.pSgl = (WV_SGE*)&to_com_frag(frag)->sg_entry; - frag->sr_desc.nSge = 1; - frag->sr_desc.Opcode = WvSend; - frag->sr_desc.Flags = WV_SEND_SIGNALED; - frag->sr_desc.pNext = NULL; -} - -static void in_constructor(mca_btl_wv_in_frag_t *frag) -{ - mca_btl_wv_frag_t *base_frag = to_base_frag(frag); - - base_frag->base.des_dst = (mca_btl_base_segment_t *) &base_frag->segment; - base_frag->base.des_dst_cnt = 1; - base_frag->base.des_src = NULL; - base_frag->base.des_src_cnt = 0; -} - -static void send_constructor(mca_btl_wv_send_frag_t *frag) -{ - mca_btl_wv_frag_t *base_frag = to_base_frag(frag); - - base_frag->type = MCA_BTL_WV_FRAG_SEND; - - frag->chdr = (mca_btl_wv_header_t*)base_frag->base.super.ptr; - frag->hdr = (mca_btl_wv_header_t*) - (((unsigned char*)base_frag->base.super.ptr) + - sizeof(mca_btl_wv_header_coalesced_t) + - sizeof(mca_btl_wv_control_header_t)); - base_frag->segment.base.seg_addr.pval = frag->hdr + 1; - to_com_frag(frag)->sg_entry.pAddress = (void*)(uintptr_t)frag->hdr; - frag->coalesced_length = 0; - OBJ_CONSTRUCT(&frag->coalesced_frags, opal_list_t); -} - -static void recv_constructor(mca_btl_wv_recv_frag_t *frag) -{ - mca_btl_wv_frag_t *base_frag = to_base_frag(frag); - - base_frag->type = MCA_BTL_WV_FRAG_RECV; - - frag->hdr = (mca_btl_wv_header_t*)base_frag->base.super.ptr; - base_frag->segment.base.seg_addr.pval = - ((unsigned char* )frag->hdr) + sizeof(mca_btl_wv_header_t); - to_com_frag(frag)->sg_entry.pAddress = (void*)(uintptr_t)frag->hdr; - - frag->rd_desc.wr_id = (uint64_t)(uintptr_t)frag; - frag->rd_desc.sg_list = (WV_SGE*)&to_com_frag(frag)->sg_entry; - frag->rd_desc.num_sge = 1; - frag->rd_desc.next = NULL; -} - -static void send_control_constructor(mca_btl_wv_send_control_frag_t *frag) -{ - to_base_frag(frag)->type = MCA_BTL_WV_FRAG_CONTROL; -} - -static void put_constructor(mca_btl_wv_put_frag_t *frag) -{ - to_base_frag(frag)->type = MCA_BTL_WV_FRAG_SEND_USER; - to_out_frag(frag)->sr_desc.Opcode = WvRdmaWrite; -} - -static void get_constructor(mca_btl_wv_get_frag_t *frag) -{ - to_base_frag(frag)->type = MCA_BTL_WV_FRAG_RECV_USER; - - frag->sr_desc.WrId = (uint64_t)(uintptr_t)frag; - frag->sr_desc.pSgl = (WV_SGE*)&to_com_frag(frag)->sg_entry; - frag->sr_desc.nSge = 1; - frag->sr_desc.Opcode = WvRdmaRead; - frag->sr_desc.Flags = WV_SEND_SIGNALED; - frag->sr_desc.pNext = NULL; -} - -static void coalesced_constructor(mca_btl_wv_coalesced_frag_t *frag) -{ - mca_btl_wv_frag_t *base_frag = to_base_frag(frag); - - base_frag->type = MCA_BTL_WV_FRAG_COALESCED; - - base_frag->base.des_src = (mca_btl_base_segment_t *) &base_frag->segment; - base_frag->base.des_src_cnt = 1; - base_frag->base.des_dst = NULL; - base_frag->base.des_dst_cnt = 0; -} - -OBJ_CLASS_INSTANCE( - mca_btl_wv_frag_t, - mca_btl_base_descriptor_t, - base_constructor, - NULL); - -OBJ_CLASS_INSTANCE( - mca_btl_wv_com_frag_t, - mca_btl_wv_frag_t, - com_constructor, - NULL); - -OBJ_CLASS_INSTANCE( - mca_btl_wv_out_frag_t, - mca_btl_wv_com_frag_t, - out_constructor, - NULL); - -OBJ_CLASS_INSTANCE( - mca_btl_wv_in_frag_t, - mca_btl_wv_com_frag_t, - in_constructor, - NULL); - -OBJ_CLASS_INSTANCE( - mca_btl_wv_send_frag_t, - mca_btl_wv_out_frag_t, - send_constructor, - NULL); - -OBJ_CLASS_INSTANCE( - mca_btl_wv_recv_frag_t, - mca_btl_wv_in_frag_t, - recv_constructor, - NULL); - -OBJ_CLASS_INSTANCE( - mca_btl_wv_send_control_frag_t, - mca_btl_wv_send_frag_t, - send_control_constructor, - NULL); - -OBJ_CLASS_INSTANCE( - mca_btl_wv_put_frag_t, - mca_btl_wv_out_frag_t, - put_constructor, - NULL); - -OBJ_CLASS_INSTANCE( - mca_btl_wv_get_frag_t, - mca_btl_wv_in_frag_t, - get_constructor, - NULL); - -OBJ_CLASS_INSTANCE( - mca_btl_wv_coalesced_frag_t, - mca_btl_wv_frag_t, - coalesced_constructor, - NULL); diff --git a/ompi/mca/btl/wv/btl_wv_frag.h b/ompi/mca/btl/wv/btl_wv_frag.h deleted file mode 100644 index d99cde8d1d..0000000000 --- a/ompi/mca/btl/wv/btl_wv_frag.h +++ /dev/null @@ -1,384 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2006 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 IBM Corporation. All rights reserved. - * Copyright (c) 2006-2009 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2006-2007 Voltaire All rights reserved. - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef MCA_BTL_IB_FRAG_H -#define MCA_BTL_IB_FRAG_H - -#include "ompi_config.h" -#include "ompi/mca/btl/btl.h" - -BEGIN_C_DECLS - -struct mca_btl_wv_reg_t; - -struct mca_btl_wv_header_t { - mca_btl_base_tag_t tag; - uint8_t cm_seen; - uint16_t credits; -}; -typedef struct mca_btl_wv_header_t mca_btl_wv_header_t; -#define BTL_WV_RDMA_CREDITS_FLAG (1<<15) -#define BTL_WV_IS_RDMA_CREDITS(I) ((I)&BTL_WV_RDMA_CREDITS_FLAG) -#define BTL_WV_CREDITS(I) ((I)&~BTL_WV_RDMA_CREDITS_FLAG) - -#define BTL_WV_HEADER_HTON(h) \ -do { \ - (h).credits = htons((h).credits); \ -} while (0) - -#define BTL_WV_HEADER_NTOH(h) \ -do { \ - (h).credits = ntohs((h).credits); \ -} while (0) - -typedef struct mca_btl_wv_header_coalesced_t { - mca_btl_base_tag_t tag; - uint32_t size; - uint32_t alloc_size; -} mca_btl_wv_header_coalesced_t; - -#define BTL_WV_HEADER_COALESCED_NTOH(h) \ - do { \ - (h).size = ntohl((h).size); \ - (h).alloc_size = ntohl((h).alloc_size); \ - } while(0) - -#define BTL_WV_HEADER_COALESCED_HTON(h) \ - do { \ - (h).size = htonl((h).size); \ - (h).alloc_size = htonl((h).alloc_size); \ - } while(0) - -struct mca_btl_wv_footer_t { -#if OPAL_ENABLE_DEBUG - uint32_t seq; -#endif - union { - uint32_t size; - uint8_t buf[4]; - } u; -}; -typedef struct mca_btl_wv_footer_t mca_btl_wv_footer_t; - -#ifdef WORDS_BIGENDIAN -#define MCA_BTL_WV_FTR_SIZE_REVERSE(ftr) -#else -#define MCA_BTL_WV_FTR_SIZE_REVERSE(ftr) \ - do { \ - uint8_t tmp = (ftr).u.buf[0]; \ - (ftr).u.buf[0]=(ftr).u.buf[2]; \ - (ftr).u.buf[2]=tmp; \ - } while (0) -#endif - -#if OPAL_ENABLE_DEBUG -#define BTL_WV_FOOTER_SEQ_HTON(h) ((h).seq = htonl((h).seq)) -#define BTL_WV_FOOTER_SEQ_NTOH(h) ((h).seq = ntohl((h).seq)) -#else -#define BTL_WV_FOOTER_SEQ_HTON(h) -#define BTL_WV_FOOTER_SEQ_NTOH(h) -#endif - -#define BTL_WV_FOOTER_HTON(h) \ - do { \ - BTL_WV_FOOTER_SEQ_HTON(h); \ - MCA_BTL_WV_FTR_SIZE_REVERSE(h); \ - } while (0) - -#define BTL_WV_FOOTER_NTOH(h) \ - do { \ - BTL_WV_FOOTER_SEQ_NTOH(h); \ - MCA_BTL_WV_FTR_SIZE_REVERSE(h); \ - } while (0) - -#define MCA_BTL_WV_CONTROL_CREDITS 0 -#define MCA_BTL_WV_CONTROL_RDMA 1 -#define MCA_BTL_WV_CONTROL_COALESCED 2 -#define MCA_BTL_WV_CONTROL_CTS 3 -#if BTL_WV_FAILOVER_ENABLED -#define MCA_BTL_WV_CONTROL_EP_BROKEN 4 -#define MCA_BTL_WV_CONTROL_EP_EAGER_RDMA_ERROR 5 -#endif - -struct mca_btl_wv_control_header_t { - uint8_t type; -#if OMPI_WV_PAD_HDR - uint8_t padding[15]; -#endif -}; -typedef struct mca_btl_wv_control_header_t mca_btl_wv_control_header_t; - -struct mca_btl_wv_eager_rdma_header_t { - mca_btl_wv_control_header_t control; - uint8_t padding[3]; - uint32_t rkey; - ompi_ptr_t rdma_start; -}; -typedef struct mca_btl_wv_eager_rdma_header_t mca_btl_wv_eager_rdma_header_t; - -#define BTL_WV_EAGER_RDMA_CONTROL_HEADER_HTON(h) \ - do { \ - (h).rkey = htonl((h).rkey); \ - (h).rdma_start.lval = hton64((h).rdma_start.lval); \ - } while (0) - -#define BTL_WV_EAGER_RDMA_CONTROL_HEADER_NTOH(h) \ - do { \ - (h).rkey = ntohl((h).rkey); \ - (h).rdma_start.lval = ntoh64((h).rdma_start.lval); \ - } while (0) - - -struct mca_btl_wv_rdma_credits_header_t { - mca_btl_wv_control_header_t control; - uint8_t qpn; - uint16_t rdma_credits; -}; -typedef struct mca_btl_wv_rdma_credits_header_t mca_btl_wv_rdma_credits_header_t; - -#define BTL_WV_RDMA_CREDITS_HEADER_HTON(h) \ -do { \ - (h).rdma_credits = htons((h).rdma_credits); \ -} while (0) - -#define BTL_WV_RDMA_CREDITS_HEADER_NTOH(h) \ -do { \ - (h).rdma_credits = ntohs((h).rdma_credits); \ -} while (0) - -#if BTL_WV_FAILOVER_ENABLED -struct mca_btl_wv_broken_connection_header_t { - mca_btl_wv_control_header_t control; - uint8_t padding[3]; - uint32_t lid; - uint64_t subnet_id; - uint32_t vpid; - uint32_t index; /* for eager RDMA only */ -}; -typedef struct mca_btl_wv_broken_connection_header_t mca_btl_wv_broken_connection_header_t; - -#define BTL_WV_BROKEN_CONNECTION_HEADER_HTON(h) \ - do { \ - (h).lid = htonl((h).lid); \ - (h).subnet_id = hton64((h).subnet_id); \ - (h).vpid = htonl((h).vpid); \ - (h).index = htonl((h).index); \ - } while (0) - -#define BTL_WV_BROKEN_CONNECTION_HEADER_NTOH(h) \ - do { \ - (h).lid = ntohl((h).lid); \ - (h).subnet_id = ntoh64((h).subnet_id); \ - (h).vpid = ntohl((h).vpid); \ - (h).index = ntohl((h).index); \ - } while (0) -#endif -enum mca_btl_wv_frag_type_t { - MCA_BTL_WV_FRAG_RECV, - MCA_BTL_WV_FRAG_RECV_USER, - MCA_BTL_WV_FRAG_SEND, - MCA_BTL_WV_FRAG_SEND_USER, - MCA_BTL_WV_FRAG_EAGER_RDMA, - MCA_BTL_WV_FRAG_CONTROL, - MCA_BTL_WV_FRAG_COALESCED -}; -typedef enum mca_btl_wv_frag_type_t mca_btl_wv_frag_type_t; - -#define wv_frag_type(f) (to_base_frag(f)->type) -/** - * WV fragment derived type. - */ - -typedef struct mca_btl_wv_segment_t { - mca_btl_base_segment_t base; - uint32_t key; -} mca_btl_openib_segment_t; - -/* base wv frag */ -typedef struct mca_btl_wv_frag_t { - mca_btl_base_descriptor_t base; - mca_btl_wv_segment_t segment; - mca_btl_wv_frag_type_t type; - ompi_free_list_t* list; -} mca_btl_wv_frag_t; -OBJ_CLASS_DECLARATION(mca_btl_wv_frag_t); - -#define to_base_frag(f) ((mca_btl_wv_frag_t*)(f)) - -/* frag used for communication */ -typedef struct mca_btl_wv_com_frag_t { - mca_btl_wv_frag_t super; - WV_SGE sg_entry; - struct mca_btl_wv_reg_t *registration; - struct mca_btl_base_endpoint_t *endpoint; -} mca_btl_wv_com_frag_t; -OBJ_CLASS_DECLARATION(mca_btl_wv_com_frag_t); - -#define to_com_frag(f) ((mca_btl_wv_com_frag_t*)(f)) - -typedef struct mca_btl_wv_out_frag_t { - mca_btl_wv_com_frag_t super; - WV_SEND_REQUEST sr_desc; -} mca_btl_wv_out_frag_t; -OBJ_CLASS_DECLARATION(mca_btl_wv_out_frag_t); - -#define to_out_frag(f) ((mca_btl_wv_out_frag_t*)(f)) - -typedef struct mca_btl_wv_com_frag_t mca_btl_wv_in_frag_t; -OBJ_CLASS_DECLARATION(mca_btl_wv_in_frag_t); - -#define to_in_frag(f) ((mca_btl_wv_in_frag_t*)(f)) - -typedef struct mca_btl_wv_send_frag_t { - mca_btl_wv_out_frag_t super; - mca_btl_wv_header_t *hdr, *chdr; - mca_btl_wv_footer_t *ftr; - uint8_t qp_idx; - uint32_t coalesced_length; - opal_list_t coalesced_frags; -} mca_btl_wv_send_frag_t; -OBJ_CLASS_DECLARATION(mca_btl_wv_send_frag_t); - -#define to_send_frag(f) ((mca_btl_wv_send_frag_t*)(f)) - -typedef struct mca_btl_wv_recv_frag_t { - mca_btl_wv_in_frag_t super; - mca_btl_wv_header_t *hdr; - mca_btl_wv_footer_t *ftr; - struct wv_recv_wr rd_desc; - uint8_t qp_idx; -} mca_btl_wv_recv_frag_t; -OBJ_CLASS_DECLARATION(mca_btl_wv_recv_frag_t); - -#define to_recv_frag(f) ((mca_btl_wv_recv_frag_t*)(f)) - -typedef struct mca_btl_wv_out_frag_t mca_btl_wv_put_frag_t; -OBJ_CLASS_DECLARATION(mca_btl_wv_put_frag_t); - -#define to_put_frag(f) ((mca_btl_wv_put_frag_t*)(f)) - -typedef struct mca_btl_wv_get_frag_t { - mca_btl_wv_in_frag_t super; - WV_SEND_REQUEST sr_desc; -} mca_btl_wv_get_frag_t; -OBJ_CLASS_DECLARATION(mca_btl_wv_get_frag_t); - -#define to_get_frag(f) ((mca_btl_wv_get_frag_t*)(f)) - -typedef struct mca_btl_wv_send_frag_t mca_btl_wv_send_control_frag_t; -OBJ_CLASS_DECLARATION(mca_btl_wv_send_control_frag_t); - -#define to_send_control_frag(f) ((mca_btl_wv_send_control_frag_t*)(f)) - -typedef struct mca_btl_wv_coalesced_frag_t { - mca_btl_wv_frag_t super; - mca_btl_wv_send_frag_t *send_frag; - mca_btl_wv_header_coalesced_t *hdr; -} mca_btl_wv_coalesced_frag_t; -OBJ_CLASS_DECLARATION(mca_btl_wv_coalesced_frag_t); - -#define to_coalesced_frag(f) ((mca_btl_wv_coalesced_frag_t*)(f)) - -/* - * Allocate an IB send descriptor - * - */ - -static inline mca_btl_wv_send_control_frag_t * -alloc_control_frag(mca_btl_wv_module_t *btl) -{ - int rc; - ompi_free_list_item_t *item; - - OMPI_FREE_LIST_WAIT(&btl->device->send_free_control, item, rc); - - return to_send_control_frag(item); -} - -static inline uint8_t frag_size_to_order(mca_btl_wv_module_t* btl, - size_t size) -{ - int qp; - for(qp = 0; qp < mca_btl_wv_component.num_qps; qp++) - if(mca_btl_wv_component.qp_infos[qp].size >= size) - return qp; - - return MCA_BTL_NO_ORDER; -} - -static inline mca_btl_wv_com_frag_t *alloc_send_user_frag(void) -{ - int rc; - ompi_free_list_item_t *item; - - OMPI_FREE_LIST_GET(&mca_btl_wv_component.send_user_free, item, rc); - - return to_com_frag(item); -} - -static inline mca_btl_wv_com_frag_t *alloc_recv_user_frag(void) -{ - int rc; - ompi_free_list_item_t *item; - - OMPI_FREE_LIST_GET(&mca_btl_wv_component.recv_user_free, item, rc); - - return to_com_frag(item); -} - -static inline mca_btl_wv_coalesced_frag_t *alloc_coalesced_frag(void) -{ - int rc; - ompi_free_list_item_t *item; - - OMPI_FREE_LIST_GET(&mca_btl_wv_component.send_free_coalesced, item, rc); - - return to_coalesced_frag(item); -} - -#define MCA_BTL_IB_FRAG_RETURN(frag) \ - do { \ - OMPI_FREE_LIST_RETURN(to_base_frag(frag)->list, \ - (ompi_free_list_item_t*)(frag)); \ - } while(0); - -#define MCA_BTL_WV_CLEAN_PENDING_FRAGS(list) \ - while(!opal_list_is_empty(list)){ \ - opal_list_item_t *frag_item; \ - frag_item = opal_list_remove_first(list); \ - MCA_BTL_IB_FRAG_RETURN(frag_item); \ - } \ - -struct mca_btl_wv_module_t; - -struct mca_btl_wv_frag_init_data_t { - uint8_t order; - ompi_free_list_t* list; -}; -typedef struct mca_btl_wv_frag_init_data_t mca_btl_wv_frag_init_data_t; - -void mca_btl_wv_frag_init(ompi_free_list_item_t* item, void* ctx); - - -END_C_DECLS -#endif diff --git a/ompi/mca/btl/wv/btl_wv_ini.c b/ompi/mca/btl/wv/btl_wv_ini.c deleted file mode 100644 index 6a0b01bc53..0000000000 --- a/ompi/mca/btl/wv/btl_wv_ini.c +++ /dev/null @@ -1,694 +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) 2006-2009 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2008 Mellanox Technologies. All rights reserved. - * Copyright (c) 2012 Los Alamos National Security, LLC. All rights - * reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - -#include -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#include "opal/mca/base/mca_base_param.h" - -#include "btl_wv.h" -#include "btl_wv_lex.h" -#include "btl_wv_ini.h" - -static const char *ini_filename = NULL; -static bool initialized = false; -static opal_list_t devices; -static char *key_buffer = NULL; -static size_t key_buffer_len = 0; - - -/* - * Struct to hold the section name, vendor ID, and list of vendor part - * ID's and a corresponding set of values (parsed from an INI file). - */ -typedef struct parsed_section_values_t { - char *name; - - uint32_t *vendor_ids; - int vendor_ids_len; - - uint32_t *vendor_part_ids; - int vendor_part_ids_len; - - ompi_btl_wv_ini_values_t values; -} parsed_section_values_t; - -/* - * Struct to hold the final values. Different from above in a few ways: - * - * - The vendor and part IDs will always be set properly - * - There will only be one part ID (i.e., the above struct is - * exploded into multiple of these for each of searching) - * - There is a super of opal_list_item_t so that we can have a list - * of these - */ -typedef struct wv_device_values_t { - opal_list_item_t super; - - char *section_name; - uint32_t vendor_id; - uint32_t vendor_part_id; - - ompi_btl_wv_ini_values_t values; -} wv_device_values_t; - -static void device_values_constructor(wv_device_values_t *s); -static void device_values_destructor(wv_device_values_t *s); - -OBJ_CLASS_INSTANCE(wv_device_values_t, - opal_list_item_t, - device_values_constructor, - device_values_destructor); - - -/* - * Local functions - */ -static int parse_file(char *filename); -static int parse_line(parsed_section_values_t *item); -static void reset_section(bool had_previous_value, parsed_section_values_t *s); -static void reset_values(ompi_btl_wv_ini_values_t *v); -static int save_section(parsed_section_values_t *s); -static inline void show_help(const char *topic); - - -/* - * Read the INI files for device-specific values and save them in - * internal data structures for later lookup. - */ -int ompi_btl_wv_ini_init(void) -{ - int ret = OMPI_ERR_NOT_FOUND; - char *colon; - - char separator = ';'; - - OBJ_CONSTRUCT(&devices, opal_list_t); - - colon = strchr(mca_btl_wv_component.device_params_file_names, separator); - if (NULL == colon) { - /* If we've only got 1 file (i.e., no colons found), parse it - and be done */ - ret = parse_file(mca_btl_wv_component.device_params_file_names); - } else { - /* Otherwise, loop over all the files and parse them */ - char *orig = strdup(mca_btl_wv_component.device_params_file_names); - char *str = orig; - - while (NULL != (colon = strchr(str, ':'))) { - *colon = '\0'; - ret = parse_file(str); - /* Note that NOT_FOUND and SUCCESS are not fatal errors - and we keep going. Other errors are treated as - fatal */ - if (OMPI_ERR_NOT_FOUND != ret && OMPI_SUCCESS != ret) { - break; - } - str = colon + 1; - } - /* Parse the last file if we didn't have a fatal error above */ - if (OMPI_ERR_NOT_FOUND != ret && OMPI_SUCCESS != ret) { - ret = parse_file(str); - } - - /* All done */ - free(orig); - } - - /* Return SUCCESS unless we got a fatal error */ - - initialized = true; - return (OMPI_SUCCESS == ret || OMPI_ERR_NOT_FOUND == ret) ? - OMPI_SUCCESS : ret; -} - - -/* - * The component found a device and is querying to see if an INI file - * specified any parameters for it. - */ -int ompi_btl_wv_ini_query(uint32_t vendor_id, uint32_t vendor_part_id, - ompi_btl_wv_ini_values_t *values) -{ - int ret; - wv_device_values_t *h; - opal_list_item_t *item; - - if (!initialized) { - if (OMPI_SUCCESS != (ret = ompi_btl_wv_ini_init())) { - return ret; - } - } - - if (mca_btl_wv_component.verbose) { - BTL_OUTPUT(("Querying INI files for vendor 0x%04x, part ID %d", - vendor_id, vendor_part_id)); - } - - reset_values(values); - - /* Iterate over all the saved devices */ - for (item = opal_list_get_first(&devices); - item != opal_list_get_end(&devices); - item = opal_list_get_next(item)) { - h = (wv_device_values_t*) item; - if (vendor_id == h->vendor_id && - vendor_part_id == h->vendor_part_id) { - /* Found it! */ - /* NOTE: There is a bug in the PGI 6.2 series that causes - the compiler to choke when copying structs containing - bool members by value. So do a memcpy here instead. */ - memcpy(values, &h->values, sizeof(h->values)); - if (mca_btl_wv_component.verbose) { - BTL_OUTPUT(("Found corresponding INI values: %s", - h->section_name)); - } - return OMPI_SUCCESS; - } - } - - /* If we fall through to here, we didn't find it */ - if (mca_btl_wv_component.verbose) { - BTL_OUTPUT(("Did not find corresponding INI values")); - } - return OMPI_ERR_NOT_FOUND; -} - - -/* - * The component is shutting down; release all internal state - */ -int ompi_btl_wv_ini_finalize(void) -{ - opal_list_item_t *item; - - if (initialized) { - for (item = opal_list_remove_first(&devices); - NULL != item; - item = opal_list_remove_first(&devices)) { - OBJ_RELEASE(item); - } - OBJ_DESTRUCT(&devices); - initialized = true; - } - - return OMPI_SUCCESS; -} - -/**************************************************************************/ - -/* - * Parse a single file - */ -static int parse_file(char *filename) -{ - int val; - int ret = OMPI_SUCCESS; - bool showed_no_section_warning = false; - bool showed_unexpected_tokens_warning = false; - parsed_section_values_t section; - - reset_section(false, §ion); - - /* Open the file */ - ini_filename = filename; - btl_wv_ini_yyin = fopen(filename, "r"); - if (NULL == btl_wv_ini_yyin) { - opal_show_help("help-mpi-btl-wv.txt", "ini file:file not found", - true, filename); - ret = OMPI_ERR_NOT_FOUND; - goto cleanup; - } - - /* Do the parsing */ - btl_wv_ini_parse_done = false; - btl_wv_ini_yynewlines = 1; - btl_wv_ini_init_buffer(btl_wv_ini_yyin); - while (!btl_wv_ini_parse_done) { - val = btl_wv_ini_yylex(); - switch (val) { - case BTL_WV_INI_PARSE_DONE: - /* This will also set btl_wv_ini_parse_done to true, so just - break here */ - break; - - case BTL_WV_INI_PARSE_NEWLINE: - /* blank line! ignore it */ - break; - - case BTL_WV_INI_PARSE_SECTION: - /* We're starting a new section; if we have previously - parsed a section, go see if we can use its values. */ - save_section(§ion); - - reset_section(true, §ion); - section.name = strdup(btl_wv_ini_yytext); - break; - - case BTL_WV_INI_PARSE_SINGLE_WORD: - if (NULL == section.name) { - /* Warn that there is no current section, and ignore - this parameter */ - if (!showed_no_section_warning) { - show_help("ini file:not in a section"); - showed_no_section_warning = true; - } - /* Parse it and then dump it */ - parse_line(§ion); - reset_section(true, §ion); - } else { - parse_line(§ion); - } - break; - - default: - /* anything else is an error */ - if (!showed_unexpected_tokens_warning) { - show_help("ini file:unexpected token"); - showed_unexpected_tokens_warning = true; - } - break; - } - } - save_section(§ion); - fclose(btl_wv_ini_yyin); - btl_wv_ini_yylex_destroy (); - -cleanup: - reset_section(true, §ion); - if (NULL != key_buffer) { - free(key_buffer); - key_buffer = NULL; - key_buffer_len = 0; - } - return ret; -} - - -/* - * Parse a single line in the INI file - */ -static int parse_line(parsed_section_values_t *sv) -{ - int val, ret = OMPI_SUCCESS; - char *value = NULL; - bool showed_unknown_field_warning = false; - - /* Save the name name */ - if (key_buffer_len < strlen(btl_wv_ini_yytext) + 1) { - char *tmp; - key_buffer_len = strlen(btl_wv_ini_yytext) + 1; - tmp = (char *) realloc(key_buffer, key_buffer_len); - if (NULL == tmp) { - free(key_buffer); - key_buffer_len = 0; - key_buffer = NULL; - return OMPI_ERR_TEMP_OUT_OF_RESOURCE; - } - key_buffer = tmp; - } - strncpy(key_buffer, btl_wv_ini_yytext, key_buffer_len); - - /* The first thing we have to see is an "=" */ - val = btl_wv_ini_yylex(); - if (btl_wv_ini_parse_done || BTL_WV_INI_PARSE_EQUAL != val) { - show_help("ini file:expected equals"); - return OMPI_ERROR; - } - - /* Next we get the value */ - val = btl_wv_ini_yylex(); - if (BTL_WV_INI_PARSE_SINGLE_WORD == val || - BTL_WV_INI_PARSE_VALUE == val) { - value = strdup(btl_wv_ini_yytext); - - /* Now we need to see the newline */ - val = btl_wv_ini_yylex(); - if (BTL_WV_INI_PARSE_NEWLINE != val && - BTL_WV_INI_PARSE_DONE != val) { - show_help("ini file:expected newline"); - free(value); - return OMPI_ERROR; - } - } - - /* If we did not get EOL or EOF, something is wrong */ - else if (BTL_WV_INI_PARSE_DONE != val && - BTL_WV_INI_PARSE_NEWLINE != val) { - show_help("ini file:expected newline"); - return OMPI_ERROR; - } - - /* Ok, we got a good parse. Now figure out what it is and save - the value. Note that the flex already took care of trimming - all whitespace at the beginning and ending of the value. */ - - if (0 == strcasecmp(key_buffer, "vendor_id")) { - if (OMPI_SUCCESS != (ret = ompi_btl_wv_ini_intify_list(value, &sv->vendor_ids, - &sv->vendor_ids_len))) { - return ret; - } - } - - else if (0 == strcasecmp(key_buffer, "vendor_part_id")) { - if (OMPI_SUCCESS != (ret = ompi_btl_wv_ini_intify_list(value, &sv->vendor_part_ids, - &sv->vendor_part_ids_len))) { - return ret; - } - } - - else if (0 == strcasecmp(key_buffer, "mtu")) { - /* Single value */ - sv->values.mtu = (uint32_t) ompi_btl_wv_ini_intify(value); - sv->values.mtu_set = true; - } - - else if (0 == strcasecmp(key_buffer, "use_eager_rdma")) { - /* Single value */ - sv->values.use_eager_rdma = (uint32_t) ompi_btl_wv_ini_intify(value); - sv->values.use_eager_rdma_set = true; - } - - else if (0 == strcasecmp(key_buffer, "receive_queues")) { - /* Single value (already strdup'ed) */ - sv->values.receive_queues = value; - value = NULL; - } - - else if (0 == strcasecmp(key_buffer, "max_inline_data")) { - /* Single value */ - sv->values.max_inline_data = (int32_t) ompi_btl_wv_ini_intify(value); - sv->values.max_inline_data_set = true; - } - - else if (0 == strcasecmp(key_buffer, "rdmacm_reject_causes_connect_error")) { - /* Single value */ - sv->values.rdmacm_reject_causes_connect_error = - (bool) ompi_btl_wv_ini_intify(value); - sv->values.rdmacm_reject_causes_connect_error_set = true; - } - - else { - /* Have no idea what this parameter is. Not an error -- just - ignore it */ - if (!showed_unknown_field_warning) { - opal_show_help("help-mpi-btl-wv.txt", - "ini file:unknown field", true, - ini_filename, btl_wv_ini_yynewlines, - key_buffer); - showed_unknown_field_warning = true; - } - } - - /* All done */ - - if (NULL != value) { - free(value); - } - return ret; -} - - -/* - * Construct an wv_device_values_t and set all of its values to known states - */ -static void device_values_constructor(wv_device_values_t *s) -{ - s->section_name = NULL; - s->vendor_id = 0; - s->vendor_part_id = 0; - reset_values(&s->values); -} - - -/* - * Destruct an wv_device_values_t and free any memory that it has - */ -static void device_values_destructor(wv_device_values_t *s) -{ - if (NULL != s->section_name) { - free(s->section_name); - } - if (NULL != s->values.receive_queues) { - free(s->values.receive_queues); - } -} - - -/* - * Reset a parsed section; free any memory that it may have had - */ -static void reset_section(bool had_previous_value, parsed_section_values_t *s) -{ - if (had_previous_value) { - if (NULL != s->name) { - free(s->name); - } - if (NULL != s->vendor_ids) { - free(s->vendor_ids); - } - if (NULL != s->vendor_part_ids) { - free(s->vendor_part_ids); - } - } - - s->name = NULL; - s->vendor_ids = NULL; - s->vendor_ids_len = 0; - s->vendor_part_ids = NULL; - s->vendor_part_ids_len = 0; - - reset_values(&s->values); -} - - -/* - * Reset the values to known states - */ -static void reset_values(ompi_btl_wv_ini_values_t *v) -{ - v->mtu = 0; - v->mtu_set = false; - - v->use_eager_rdma = 0; - v->use_eager_rdma_set = false; - - v->receive_queues = NULL; - - v->max_inline_data = 0; - v->max_inline_data_set = false; - - v->rdmacm_reject_causes_connect_error = false; - v->rdmacm_reject_causes_connect_error_set = false; -} - - -/* - * If we have a valid section, see if we have a matching section - * somewhere (i.e., same vendor ID and vendor part ID). If we do, - * update the values. If not, save the values in a new instance and - * add it to the list. - */ -static int save_section(parsed_section_values_t *s) -{ - int i, j; - opal_list_item_t *item; - wv_device_values_t *h; - bool found; - - /* Is the parsed section valid? */ - if (NULL == s->name || 0 == s->vendor_ids_len || - 0 == s->vendor_part_ids_len) { - return OMPI_ERR_BAD_PARAM; - } - - /* Iterate over each of the vendor/part IDs in the parsed - values */ - for (i = 0; i < s->vendor_ids_len; ++i) { - for (j = 0; j < s->vendor_part_ids_len; ++j) { - found = false; - - /* Iterate over all the saved devices */ - for (item = opal_list_get_first(&devices); - item != opal_list_get_end(&devices); - item = opal_list_get_next(item)) { - h = (wv_device_values_t*) item; - if (s->vendor_ids[i] == h->vendor_id && - s->vendor_part_ids[j] == h->vendor_part_id) { - /* Found a match. Update any newly-set values. */ - if (s->values.mtu_set) { - h->values.mtu = s->values.mtu; - h->values.mtu_set = true; - } - - if (s->values.use_eager_rdma_set) { - h->values.use_eager_rdma = s->values.use_eager_rdma; - h->values.use_eager_rdma_set = true; - } - - if (NULL != s->values.receive_queues) { - h->values.receive_queues = - strdup(s->values.receive_queues); - } - - if (s->values.max_inline_data_set) { - h->values.max_inline_data = s->values.max_inline_data; - h->values.max_inline_data_set = true; - } - - if (s->values.rdmacm_reject_causes_connect_error_set) { - h->values.rdmacm_reject_causes_connect_error = - s->values.rdmacm_reject_causes_connect_error; - h->values.rdmacm_reject_causes_connect_error_set = - true; - } - - found = true; - break; - } - } - - /* Did we find/update it in the exising list? If not, - create a new one. */ - if (!found) { - h = OBJ_NEW(wv_device_values_t); - h->section_name = strdup(s->name); - h->vendor_id = s->vendor_ids[i]; - h->vendor_part_id = s->vendor_part_ids[j]; - /* NOTE: There is a bug in the PGI 6.2 series that - causes the compiler to choke when copying structs - containing bool members by value. So do a memcpy - here instead. */ - memcpy(&h->values, &s->values, sizeof(s->values)); - /* Need to strdup the string, though */ - if (NULL != h->values.receive_queues) { - h->values.receive_queues = strdup(s->values.receive_queues); - } - opal_list_append(&devices, &h->super); - } - } - } - - /* All done */ - - return OMPI_SUCCESS; -} - - -/* - * Do string-to-integer conversion, for both hex and decimal numbers - */ -int ompi_btl_wv_ini_intify(char *str) -{ - while (isspace(*str)) { - ++str; - } - - /* If it's hex, use sscanf() */ - if (strlen(str) > 3 && 0 == strncasecmp("0x", str, 2)) { - unsigned int i; - sscanf(str, "%X", &i); - return (int) i; - } - - /* Nope -- just decimal, so use atoi() */ - return atoi(str); -} - - -/* - * Take a comma-delimited list and infity them all - */ -int ompi_btl_wv_ini_intify_list(char *value, uint32_t **values, int *len) -{ - char *comma; - char *str = value; - - *len = 0; - - /* Comma-delimited list of values */ - comma = strchr(str, ','); - if (NULL == comma) { - /* If we only got one value (i.e., no comma found), then - just make an array of one value and save it */ - *values = (uint32_t *) malloc(sizeof(uint32_t)); - if (NULL == *values) { - return OMPI_ERR_OUT_OF_RESOURCE; - } - *values[0] = (uint32_t) ompi_btl_wv_ini_intify(str); - *len = 1; - } else { - int newsize = 1; - - /* Count how many values there are and allocate enough space - for them */ - while (NULL != comma) { - ++newsize; - str = comma + 1; - comma = strchr(str, ','); - } - *values = (uint32_t *) malloc(sizeof(uint32_t) * newsize); - if (NULL == *values) { - return OMPI_ERR_OUT_OF_RESOURCE; - } - - /* Iterate over the values and save them */ - str = value; - comma = strchr(str, ','); - do { - *comma = '\0'; - (*values)[*len] = (uint32_t) ompi_btl_wv_ini_intify(str); - ++(*len); - str = comma + 1; - comma = strchr(str, ','); - } while (NULL != comma); - /* Get the last value (i.e., the value after the last - comma, because it won't have been snarfed in the - loop) */ - (*values)[*len] = (uint32_t) ompi_btl_wv_ini_intify(str); - ++(*len); - } - - return OMPI_SUCCESS; -} - -/* - * Trival helper function - */ -static inline void show_help(const char *topic) -{ - char *save = btl_wv_ini_yytext; - if (0 == strcmp("\n", btl_wv_ini_yytext)) { - btl_wv_ini_yytext = ""; - } - opal_show_help("help-mpi-btl-wv.txt", topic, true, - ini_filename, btl_wv_ini_yynewlines, - btl_wv_ini_yytext); - btl_wv_ini_yytext = save; -} diff --git a/ompi/mca/btl/wv/btl_wv_ini.h b/ompi/mca/btl/wv/btl_wv_ini.h deleted file mode 100644 index 56adbd8311..0000000000 --- a/ompi/mca/btl/wv/btl_wv_ini.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2008 Mellanox Technologies. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - * @file - */ - -#ifndef MCA_PTL_IB_PARAMS_H -#define MCA_PTL_IB_PARAMS_H - -#include "btl_wv.h" - - -/* - * Struct to hold the settable values that may be specified in the INI - * file - */ -typedef struct ompi_btl_wv_ini_values_t { - uint32_t mtu; - bool mtu_set; - - uint32_t use_eager_rdma; - bool use_eager_rdma_set; - - char *receive_queues; - - int32_t max_inline_data; - bool max_inline_data_set; - - bool rdmacm_reject_causes_connect_error; - bool rdmacm_reject_causes_connect_error_set; -} ompi_btl_wv_ini_values_t; - - -BEGIN_C_DECLS - - /** - * Read in the INI files containing device params - */ - int ompi_btl_wv_ini_init(void); - - /** - * Query the read-in params for a given device - */ - int ompi_btl_wv_ini_query(uint32_t vendor_id, - uint32_t vendor_part_id, - ompi_btl_wv_ini_values_t *values); - - /** - * Shut down / release all internal state - */ - int ompi_btl_wv_ini_finalize(void); - - /** - * string to int convertors with dec/hex autodetection - */ - int ompi_btl_wv_ini_intify(char *string); - int ompi_btl_wv_ini_intify_list(char *str, uint32_t **values, int *len); - -END_C_DECLS - -#endif diff --git a/ompi/mca/btl/wv/btl_wv_lex.h b/ompi/mca/btl/wv/btl_wv_lex.h deleted file mode 100644 index b4112dbbba..0000000000 --- a/ompi/mca/btl/wv/btl_wv_lex.h +++ /dev/null @@ -1,75 +0,0 @@ -/* -*- C -*- - * - * 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 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef BTL_WV_INI_LEX_H_ -#define BTL_WV_INI_LEX_H_ - -#include "opal_config.h" - -#ifdef malloc -#undef malloc -#endif -#ifdef realloc -#undef realloc -#endif -#ifdef free -#undef free -#endif - -#include - -extern FILE *btl_wv_ini_yyin; -extern char *btl_wv_ini_yytext; - -BEGIN_C_DECLS - -int btl_wv_ini_yylex(void); -int btl_wv_ini_init_buffer(FILE *file); -int btl_wv_ini_yylex_destroy(void); - -extern bool btl_wv_ini_parse_done; -extern int btl_wv_ini_yynewlines; - -/* - * Make lex-generated files not issue compiler warnings - */ -#define YY_STACK_USED 0 -#define YY_ALWAYS_INTERACTIVE 0 -#define YY_NEVER_INTERACTIVE 0 -#define YY_MAIN 0 -#define YY_NO_UNPUT 1 -#define YY_SKIP_YYWRAP 1 - -enum { - BTL_WV_INI_PARSE_DONE, - BTL_WV_INI_PARSE_ERROR, - - BTL_WV_INI_PARSE_NEWLINE, - BTL_WV_INI_PARSE_SECTION, - BTL_WV_INI_PARSE_EQUAL, - BTL_WV_INI_PARSE_SINGLE_WORD, - BTL_WV_INI_PARSE_VALUE, - - BTL_WV_INI_PARSE_MAX -}; - -END_C_DECLS - -#endif diff --git a/ompi/mca/btl/wv/btl_wv_lex.l b/ompi/mca/btl/wv/btl_wv_lex.l deleted file mode 100644 index d58c92410b..0000000000 --- a/ompi/mca/btl/wv/btl_wv_lex.l +++ /dev/null @@ -1,123 +0,0 @@ -%{ /* -*- C -*- */ -/* - * 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 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "opal_config.h" - -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -#include "btl_wv_lex.h" - -BEGIN_C_DECLS - -/* - * local functions - */ -static int btl_wv_ini_yywrap(void); - -END_C_DECLS - -/* - * global variables - */ -int btl_wv_ini_yynewlines = 1; -bool btl_wv_ini_parse_done = false; -char *btl_wv_ini_string = NULL; - -%} - -WHITE [\f\t\v ] -CHAR [A-Za-z0-9_\-\.] -NAME_CHAR [A-Za-z0-9_\-\.\\\/] - -%x comment -%x section_name -%x section_end -%x value - -%% - -{WHITE}*\n { ++btl_wv_ini_yynewlines; - return BTL_WV_INI_PARSE_NEWLINE; } -#.*\n { ++btl_wv_ini_yynewlines; - return BTL_WV_INI_PARSE_NEWLINE; } -"//".*\n { ++btl_wv_ini_yynewlines; - return BTL_WV_INI_PARSE_NEWLINE; } - -"/*" { BEGIN(comment); - return BTL_WV_INI_PARSE_NEWLINE; } -[^*\n]* ; /* Eat up non '*'s */ -"*"+[^*/\n]* ; /* Eat '*'s not followed by a '/' */ -\n { ++btl_wv_ini_yynewlines; - return BTL_WV_INI_PARSE_NEWLINE; } -"*"+"/" { BEGIN(INITIAL); /* Done with block comment */ - return BTL_WV_INI_PARSE_NEWLINE; } - -{WHITE}*\[{WHITE}* { BEGIN(section_name); } -({NAME_CHAR}|{WHITE})*{NAME_CHAR}/{WHITE}*\] { - BEGIN(section_end); - return BTL_WV_INI_PARSE_SECTION; } -\n { ++btl_wv_ini_yynewlines; - return BTL_WV_INI_PARSE_ERROR; } -. { return BTL_WV_INI_PARSE_ERROR; } -{WHITE}*\]{WHITE}*\n { BEGIN(INITIAL); - ++btl_wv_ini_yynewlines; - return BTL_WV_INI_PARSE_NEWLINE; } - -{WHITE}*"="{WHITE}* { BEGIN(value); - return BTL_WV_INI_PARSE_EQUAL; } -{WHITE}+ ; /* whitespace */ -{CHAR}+ { return BTL_WV_INI_PARSE_SINGLE_WORD; } - -{WHITE}*\n { BEGIN(INITIAL); - ++btl_wv_ini_yynewlines; - return BTL_WV_INI_PARSE_NEWLINE; } -[^\n]*[^\t \n]/[\t ]* { - return BTL_WV_INI_PARSE_VALUE; } - -. { return BTL_WV_INI_PARSE_ERROR; } - -%% - -static int btl_wv_ini_yywrap(void) -{ - btl_wv_ini_parse_done = true; - return 1; -} - - -/* - * Ensure that we have a valid yybuffer to use. Specifically, if this - * scanner is invoked a second time, finish_parsing() (above) will - * have been executed, and the current buffer will have been freed. - * Flex doesn't recognize this fact because as far as it's concerned, - * its internal state was already initialized, so it thinks it should - * have a valid buffer. Hence, here we ensure to give it a valid - * buffer. - */ -int btl_wv_ini_init_buffer(FILE *file) -{ - YY_BUFFER_STATE buf = yy_create_buffer(file, YY_BUF_SIZE); - yy_switch_to_buffer(buf); - - return 0; -} diff --git a/ompi/mca/btl/wv/btl_wv_mca.c b/ompi/mca/btl/wv/btl_wv_mca.c deleted file mode 100644 index 66d0f15cda..0000000000 --- a/ompi/mca/btl/wv/btl_wv_mca.c +++ /dev/null @@ -1,530 +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) 2006-2008 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2006-2009 Mellanox Technologies. All rights reserved. - * Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2006-2007 Voltaire All rights reserved. - * Copyright (c) 2009-2010 Oracle and/or its affiliates. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - -#include - -#include "opal/util/bit_ops.h" -#include "opal/mca/installdirs/installdirs.h" -#include "opal/util/output.h" -#include "opal/mca/base/mca_base_param.h" -#include "btl_wv.h" -#include "btl_wv_mca.h" -#include "btl_wv_ini.h" -#include "connect/base.h" - -/* - * Local flags - */ -enum { - REGINT_NEG_ONE_OK = 0x01, - REGINT_GE_ZERO = 0x02, - REGINT_GE_ONE = 0x04, - REGINT_NONZERO = 0x08, - - REGINT_MAX = 0x88 -}; - - -enum { - REGSTR_EMPTY_OK = 0x01, - - REGSTR_MAX = 0x88 -}; - - -/* - * utility routine for string parameter registration - */ -static int reg_string(const char* param_name, - const char* deprecated_param_name, - const char* param_desc, - const char* default_value, char **out_value, - int flags) -{ - int index; - char *value; - index = mca_base_param_reg_string(&mca_btl_wv_component.super.btl_version, - param_name, param_desc, false, false, - default_value, &value); - if (NULL != deprecated_param_name) { - mca_base_param_reg_syn(index, - &mca_btl_wv_component.super.btl_version, - deprecated_param_name, true); - } - mca_base_param_lookup_string(index, &value); - - if (0 != (flags & REGSTR_EMPTY_OK) && 0 == strlen(value)) { - opal_output(0, "Bad parameter value for parameter \"%s\"", - param_name); - return OMPI_ERR_BAD_PARAM; - } - *out_value = value; - return OMPI_SUCCESS; -} - - -/* - * utility routine for integer parameter registration - */ -static int reg_int(const char* param_name, - const char* deprecated_param_name, - const char* param_desc, - int default_value, int *out_value, int flags) -{ - int index, value; - index = mca_base_param_reg_int(&mca_btl_wv_component.super.btl_version, - param_name, param_desc, false, false, - default_value, NULL); - if (NULL != deprecated_param_name) { - mca_base_param_reg_syn(index, - &mca_btl_wv_component.super.btl_version, - deprecated_param_name, true); - } - mca_base_param_lookup_int(index, &value); - - if (0 != (flags & REGINT_NEG_ONE_OK) && -1 == value) { - *out_value = value; - return OMPI_SUCCESS; - } - if ((0 != (flags & REGINT_GE_ZERO) && value < 0) || - (0 != (flags & REGINT_GE_ONE) && value < 1) || - (0 != (flags & REGINT_NONZERO) && 0 == value)) { - opal_output(0, "Bad parameter value for parameter \"%s\"", - param_name); - return OMPI_ERR_BAD_PARAM; - } - *out_value = value; - return OMPI_SUCCESS; -} - -/* - * Register and check all MCA parameters - */ -int btl_wv_register_mca_params(void) -{ - char default_qps[100]; - uint32_t mid_qp_size; - int i; - char *msg, *str, *pkey; - int ival, ival2, ret, tmp; - - ret = OMPI_SUCCESS; -#define CHECK(expr) do {\ - tmp = (expr); \ - if (OMPI_SUCCESS != tmp) ret = tmp; \ - } while (0) - - /* register wv component parameters */ - CHECK(reg_int("verbose", NULL, - "Output some verbose wv BTL information " - "(0 = no output, nonzero = output)", 0, &ival, 0)); - mca_btl_wv_component.verbose = (0 != ival); - - CHECK(reg_int("warn_no_device_params_found", - "warn_no_hca_params_found", - "Warn when no device-specific parameters are found in the INI file specified by the btl_wv_device_param_files MCA parameter " - "(0 = do not warn; any other value = warn)", - 1, &ival, 0)); - mca_btl_wv_component.warn_no_device_params_found = (0 != ival); - CHECK(reg_int("warn_default_gid_prefix", NULL, - "Warn when there is more than one active ports and at least one of them connected to the network with only default GID prefix configured " - "(0 = do not warn; any other value = warn)", - 1, &ival, 0)); - mca_btl_wv_component.warn_default_gid_prefix = (0 != ival); - CHECK(reg_int("warn_nonexistent_if", NULL, - "Warn if non-existent devices and/or ports are specified in the btl_wv_if_[in|ex]clude MCA parameters " - "(0 = do not warn; any other value = warn)", - 1, &ival, 0)); - mca_btl_wv_component.warn_nonexistent_if = (0 != ival); - ival2 = 0; - CHECK(reg_int("want_fork_support", NULL, - "Whether fork support is desired or not " - "(negative = try to enable fork support, but continue even if it is not available, 0 = do not enable fork support, positive = try to enable fork support and fail if it is not available)", - ival2, &ival, 0)); - if (0 != ival) { - opal_show_help("help-mpi-btl-wv.txt", - "ib_fork requested but not supported", true, - ompi_process_info.nodename); - return OMPI_ERROR; - } - - asprintf(&str, "%s/mca-btl-wv-device-params.ini", - opal_install_dirs.pkgdatadir); - if (NULL == str) { - return OMPI_ERR_OUT_OF_RESOURCE; - } - CHECK(reg_string("device_param_files", "hca_param_files", - "Colon-delimited list of INI-style files that contain device vendor/part-specific parameters (use semicolon for Windows)", - str, &mca_btl_wv_component.device_params_file_names, - 0)); - free(str); - - CHECK(reg_string("device_type", NULL, - "Specify to only use IB or iWARP network adapters " - "(infiniband = only use InfiniBand HCAs; iwarp = only use iWARP NICs; all = use any available adapters)", - "all", &str, 0)); - if (0 == strcasecmp(str, "ib") || - 0 == strcasecmp(str, "infiniband")) { - mca_btl_wv_component.device_type = BTL_WV_DT_IB; - } else if (0 == strcasecmp(str, "iw") || - 0 == strcasecmp(str, "iwarp")) { - mca_btl_wv_component.device_type = BTL_WV_DT_IWARP; - } else if (0 == strcasecmp(str, "all")) { - mca_btl_wv_component.device_type = BTL_WV_DT_ALL; - } else { - opal_show_help("help-mpi-btl-wv.txt", - "ib_fork requested but not supported", true, - ompi_process_info.nodename); - return OMPI_ERROR; - } - free(str); - - CHECK(reg_int("max_btls", NULL, - "Maximum number of device ports to use " - "(-1 = use all available, otherwise must be >= 1)", - -1, &mca_btl_wv_component.ib_max_btls, - REGINT_NEG_ONE_OK | REGINT_GE_ONE)); - CHECK(reg_int("free_list_num", NULL, - "Initial size of free lists " - "(must be >= 1)", - 8, &mca_btl_wv_component.ib_free_list_num, - REGINT_GE_ONE)); - CHECK(reg_int("free_list_max", NULL, - "Maximum size of free lists " - "(-1 = infinite, otherwise must be >= 0)", - -1, &mca_btl_wv_component.ib_free_list_max, - REGINT_NEG_ONE_OK | REGINT_GE_ONE)); - CHECK(reg_int("free_list_inc", NULL, - "Increment size of free lists " - "(must be >= 1)", - 32, &mca_btl_wv_component.ib_free_list_inc, - REGINT_GE_ONE)); - CHECK(reg_string("mpool", NULL, - "Name of the memory pool to be used (it is unlikely that you will ever want to change this)", - "grdma", &mca_btl_wv_component.ib_mpool_name, - 0)); - CHECK(reg_int("reg_mru_len", NULL, - "Length of the registration cache most recently used list " - "(must be >= 1)", - 16, (int*) &mca_btl_wv_component.reg_mru_len, - REGINT_GE_ONE)); - - CHECK(reg_int("cq_size", "ib_cq_size", - "Size of the OpenFabrics completion " - "queue (will automatically be set to a minimum of " - "(2 * number_of_peers * btl_wv_rd_num))", - 1000, &ival, REGINT_GE_ONE)); - mca_btl_wv_component.ib_cq_size[BTL_WV_LP_CQ] = - mca_btl_wv_component.ib_cq_size[BTL_WV_HP_CQ] = (uint32_t) ival; - - CHECK(reg_int("max_inline_data", "ib_max_inline_data", - "Maximum size of inline data segment " - "(-1 = run-time probe to discover max value, otherwise must be >= 0). " - "If not explicitly set, use max_inline_data from " - "the INI file containing device-specific parameters", - -1, &ival, REGINT_NEG_ONE_OK | REGINT_GE_ZERO)); - mca_btl_wv_component.ib_max_inline_data = (int32_t) ival; - - CHECK(reg_string("pkey", "ib_pkey_val", - "OpenFabrics partition key (pkey) value. " - "Unsigned integer decimal or hex values are allowed (e.g., \"3\" or \"0x3f\") and will be masked against the maximum allowable IB partition key value (0x7fff)", - "0", &pkey, 0)); - mca_btl_wv_component.ib_pkey_val = - ompi_btl_wv_ini_intify(pkey) & MCA_BTL_IB_PKEY_MASK; - free(pkey); - - CHECK(reg_int("psn", "ib_psn", - "OpenFabrics packet sequence starting number " - "(must be >= 0)", - 0, &ival, REGINT_GE_ZERO)); - mca_btl_wv_component.ib_psn = (uint32_t) ival; - - CHECK(reg_int("ib_qp_ous_rd_atom", NULL, - "InfiniBand outstanding atomic reads " - "(must be >= 0)", - 4, &ival, REGINT_GE_ZERO)); - mca_btl_wv_component.ib_qp_ous_rd_atom = (uint32_t) ival; - - asprintf(&msg, "OpenFabrics MTU, in bytes (if not specified in INI files). Valid values are: %d=256 bytes, %d=512 bytes, %d=1024 bytes, %d=2048 bytes, %d=4096 bytes", - WV_MTU_256, - WV_MTU_512, - WV_MTU_1024, - WV_MTU_2048, - WV_MTU_4096); - if (NULL == msg) { - /* Don't try to recover from this */ - return OMPI_ERR_OUT_OF_RESOURCE; - } - CHECK(reg_int("mtu", "ib_mtu", msg, WV_MTU_1024, &ival, 0)); - free(msg); - if (ival < WV_MTU_1024 || ival > WV_MTU_4096) { - opal_show_help("help-mpi-btl-wv.txt", "invalid mca param value", - true, "invalid value for btl_wv_ib_mtu", - "btl_wv_ib_mtu reset to 1024"); - mca_btl_wv_component.ib_mtu = WV_MTU_1024; - } else { - mca_btl_wv_component.ib_mtu = (uint32_t) ival; - } - - CHECK(reg_int("ib_min_rnr_timer", NULL, "InfiniBand minimum " - "\"receiver not ready\" timer, in seconds " - "(must be >= 0 and <= 31)", - 25, &ival, 0)); - if (ival > 31) { - opal_show_help("help-mpi-btl-wv.txt", "invalid mca param value", - true, "btl_wv_ib_min_rnr_timer > 31", - "btl_wv_ib_min_rnr_timer reset to 31"); - ival = 31; - } else if (ival < 0){ - opal_show_help("help-mpi-btl-wv.txt", "invalid mca param value", - true, "btl_wv_ib_min_rnr_timer < 0", - "btl_wv_ib_min_rnr_timer reset to 0"); - ival = 0; - } - mca_btl_wv_component.ib_min_rnr_timer = (uint32_t) ival; - - CHECK(reg_int("ib_timeout", NULL, - "InfiniBand transmit timeout, plugged into formula: 4.096 microseconds * (2^btl_wv_ib_timeout) " - "(must be >= 0 and <= 31)", - 20, &ival, 0)); - if (ival > 31) { - opal_show_help("help-mpi-btl-wv.txt", "invalid mca param value", - true, "btl_wv_ib_timeout > 31", - "btl_wv_ib_timeout reset to 31"); - ival = 31; - } else if (ival < 0) { - opal_show_help("help-mpi-btl-wv.txt", "invalid mca param value", - true, "btl_wv_ib_timeout < 0", - "btl_wv_ib_timeout reset to 0"); - ival = 0; - } - mca_btl_wv_component.ib_timeout = (uint32_t) ival; - - CHECK(reg_int("ib_retry_count", NULL, - "InfiniBand transmit retry count " - "(must be >= 0 and <= 7)", - 7, &ival, 0)); - if (ival > 7) { - opal_show_help("help-mpi-btl-wv.txt", "invalid mca param value", - true, "btl_wv_ib_retry_count > 7", - "btl_wv_ib_retry_count reset to 7"); - ival = 7; - } else if (ival < 0) { - opal_show_help("help-mpi-btl-wv.txt", "invalid mca param value", - true, "btl_wv_ib_retry_count < 0", - "btl_wv_ib_retry_count reset to 0"); - ival = 0; - } - mca_btl_wv_component.ib_retry_count = (uint32_t) ival; - - CHECK(reg_int("ib_rnr_retry", NULL, - "InfiniBand \"receiver not ready\" " - "retry count; applies *only* to SRQ/XRC queues. PP queues " - "use RNR retry values of 0 because Open MPI performs " - "software flow control to guarantee that RNRs never occur " - "(must be >= 0 and <= 7; 7 = \"infinite\")", - 7, &ival, 0)); - if (ival > 7) { - opal_show_help("help-mpi-btl-wv.txt", "invalid mca param value", - true, "btl_wv_ib_rnr_retry > 7", - "btl_wv_ib_rnr_retry reset to 7"); - ival = 7; - } else if (ival < 0) { - opal_show_help("help-mpi-btl-wv.txt", "invalid mca param value", - true, "btl_wv_ib_rnr_retry < 0", - "btl_wv_ib_rnr_retry reset to 0"); - ival = 0; - } - mca_btl_wv_component.ib_rnr_retry = (uint32_t) ival; - - CHECK(reg_int("ib_service_level", NULL, "InfiniBand service level " - "(must be >= 0 and <= 15)", - 0, &ival, 0)); - if (ival > 15) { - opal_show_help("help-mpi-btl-wv.txt", "invalid mca param value", - true, "btl_wv_ib_service_level > 15", - "btl_wv_ib_service_level reset to 15"); - ival = 15; - } else if (ival < 0) { - opal_show_help("help-mpi-btl-wv.txt", "invalid mca param value", - true, "btl_wv_ib_service_level < 0", - "btl_wv_ib_service_level reset to 0"); - ival = 0; - } - mca_btl_wv_component.ib_service_level = (uint32_t) ival; - - CHECK(reg_int("ib_path_rec_service_level", NULL, "Enable getting InfiniBand service level from PathRecord " - "(must be >= 0, 0 = disabled, positive = try to get the service level from PathRecord)", - 0, &ival, REGINT_GE_ZERO)); - mca_btl_wv_component.ib_path_rec_service_level = (uint32_t) ival; - - CHECK(reg_int("use_eager_rdma", NULL, "Use RDMA for eager messages " - "(-1 = use device default, 0 = do not use eager RDMA, " - "1 = use eager RDMA)", - -1, &ival, 0)); - mca_btl_wv_component.use_eager_rdma = (int32_t) ival; - - CHECK(reg_int("eager_rdma_threshold", NULL, - "Use RDMA for short messages after this number of " - "messages are received from a given peer " - "(must be >= 1)", - 16, &ival, REGINT_GE_ONE)); - mca_btl_wv_component.eager_rdma_threshold = (int32_t) ival; - - CHECK(reg_int("max_eager_rdma", NULL, "Maximum number of peers allowed to use " - "RDMA for short messages (RDMA is used for all long " - "messages, except if explicitly disabled, such as " - "with the \"dr\" pml) " - "(must be >= 0)", - 16, &ival, REGINT_GE_ZERO)); - mca_btl_wv_component.max_eager_rdma = (int32_t) ival; - - CHECK(reg_int("eager_rdma_num", NULL, "Number of RDMA buffers to allocate " - "for small messages " - "(must be >= 1)", - 16, &ival, REGINT_GE_ONE)); - mca_btl_wv_component.eager_rdma_num = (int32_t) (ival + 1); - - CHECK(reg_int("btls_per_lid", NULL, "Number of BTLs to create for each " - "InfiniBand LID " - "(must be >= 1)", - 1, &ival, REGINT_GE_ONE)); - mca_btl_wv_component.btls_per_lid = (uint32_t) ival; - - CHECK(reg_int("max_lmc", NULL, "Maximum number of LIDs to use for each device port " - "(must be >= 0, where 0 = use all available)", - 0, &ival, REGINT_GE_ZERO)); - mca_btl_wv_component.max_lmc = (uint32_t) ival; - - mca_btl_wv_component.enable_srq_resize = 0; - - CHECK(reg_int("buffer_alignment", NULL, - "Preferred communication buffer alignment, in bytes " - "(must be > 0 and power of two)", - 64, &ival, REGINT_GE_ZERO)); - if(ival <= 1 || (ival & (ival - 1))) { - opal_show_help("help-mpi-btl-wv.txt", "wrong buffer alignment", - true, ival, ompi_process_info.nodename, 64); - mca_btl_wv_component.buffer_alignment = 64; - } else { - mca_btl_wv_component.buffer_alignment = (uint32_t) ival; - } - - CHECK(reg_int("use_message_coalescing", NULL, - "If nonzero, use message coalescing", 1, &ival, 0)); - mca_btl_wv_component.use_message_coalescing = (0 != ival); - - CHECK(reg_int("cq_poll_ratio", NULL, - "How often to poll high priority CQ versus low priority CQ", - 100, &ival, REGINT_GE_ONE)); - mca_btl_wv_component.cq_poll_ratio = (uint32_t)ival; - CHECK(reg_int("eager_rdma_poll_ratio", NULL, - "How often to poll eager RDMA channel versus CQ", - 100, &ival, REGINT_GE_ONE)); - mca_btl_wv_component.eager_rdma_poll_ratio = (uint32_t)ival; - CHECK(reg_int("hp_cq_poll_per_progress", NULL, - "Max number of completion events to process for each call " - "of BTL progress engine", - 10, &ival, REGINT_GE_ONE)); - mca_btl_wv_component.cq_poll_progress = (uint32_t)ival; - - mca_btl_wv_module.super.btl_exclusivity = MCA_BTL_EXCLUSIVITY_DEFAULT; - - mca_btl_wv_module.super.btl_eager_limit = 12 * 1024; - mca_btl_wv_module.super.btl_rndv_eager_limit = 12 * 1024; - mca_btl_wv_module.super.btl_max_send_size = 64 * 1024; - mca_btl_wv_module.super.btl_rdma_pipeline_send_length = 1024 * 1024; - mca_btl_wv_module.super.btl_rdma_pipeline_frag_size = 1024 * 1024; - mca_btl_wv_module.super.btl_min_rdma_pipeline_size = 256 * 1024; - mca_btl_wv_module.super.btl_flags = MCA_BTL_FLAGS_PUT | - MCA_BTL_FLAGS_NEED_ACK | MCA_BTL_FLAGS_NEED_CSUM | MCA_BTL_FLAGS_HETEROGENEOUS_RDMA; -#if BTL_WV_FAILOVER_ENABLED - mca_btl_wv_module.super.btl_flags |= MCA_BTL_FLAGS_FAILOVER_SUPPORT; -#endif - mca_btl_wv_module.super.btl_bandwidth = 800; - mca_btl_wv_module.super.btl_latency = 10; - CHECK(mca_btl_base_param_register( - &mca_btl_wv_component.super.btl_version, - &mca_btl_wv_module.super)); - - /* setup all the qp stuff */ - /* round mid_qp_size to smallest power of two */ - mid_qp_size = opal_next_poweroftwo (mca_btl_wv_module.super.btl_eager_limit / 4) >> 1; - - /* mid_qp_size = MAX (mid_qp_size, 1024); ?! */ - if(mid_qp_size <= 128) { - mid_qp_size = 1024; - } - - snprintf(default_qps, 100, - "P,128,256,192,128:S,%u,256,128,32:S,%u,256,128,32:S,%u,256,128,32", - mid_qp_size, - (uint32_t)mca_btl_wv_module.super.btl_eager_limit, - (uint32_t)mca_btl_wv_module.super.btl_max_send_size); - - mca_btl_wv_component.default_recv_qps = strdup(default_qps); - if(NULL == mca_btl_wv_component.default_recv_qps) { - BTL_ERROR(("Unable to allocate memory for default receive queues string.\n")); - return OMPI_ERROR; - } - - CHECK(reg_string("receive_queues", NULL, - "Colon-delimited, comma-delimited list of receive queues: P,4096,8,6,4:P,32768,8,6,4", - default_qps, &mca_btl_wv_component.receive_queues, - 0)); - mca_btl_wv_component.receive_queues_source = - (0 == strcmp(default_qps, - mca_btl_wv_component.receive_queues)) ? - BTL_WV_RQ_SOURCE_DEFAULT : BTL_WV_RQ_SOURCE_MCA; - - CHECK(reg_string("if_include", NULL, - "Comma-delimited list of devices/ports to be used (e.g. \"mthca0,mthca1:2\"; empty value means to use all ports found). Mutually exclusive with btl_wv_if_exclude.", - NULL, &mca_btl_wv_component.if_include, - 0)); - - CHECK(reg_string("if_exclude", NULL, - "Comma-delimited list of device/ports to be excluded (empty value means to not exclude any ports). Mutually exclusive with btl_wv_if_include.", - NULL, &mca_btl_wv_component.if_exclude, - 0)); - - CHECK(reg_string("ipaddr_include", NULL, - "Comma-delimited list of IP Addresses to be used (e.g. \"192.168.1.0/24\"). Mutually exclusive with btl_wv_ipaddr_exclude.", - NULL, &mca_btl_wv_component.ipaddr_include, - 0)); - - CHECK(reg_string("ipaddr_exclude", NULL, - "Comma-delimited list of IP Addresses to be excluded (e.g. \"192.168.1.0/24\"). Mutually exclusive with btl_wv_ipaddr_include.", - NULL, &mca_btl_wv_component.ipaddr_exclude, - 0)); - - /* Register any MCA params for the connect pseudo-components */ - if (OMPI_SUCCESS == ret) { - ret = ompi_btl_wv_connect_base_register(); - } - - return ret; -} - diff --git a/ompi/mca/btl/wv/btl_wv_mca.h b/ompi/mca/btl/wv/btl_wv_mca.h deleted file mode 100644 index 54580bb8a4..0000000000 --- a/ompi/mca/btl/wv/btl_wv_mca.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (c) 2006 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef MCA_BTL_IB_MCA_H -#define MCA_BTL_IB_MCA_H - -BEGIN_C_DECLS - - /** - * Function to register MCA params and check for sane values - */ - int btl_wv_register_mca_params(void); - -END_C_DECLS -#endif diff --git a/ompi/mca/btl/wv/btl_wv_proc.c b/ompi/mca/btl/wv/btl_wv_proc.c deleted file mode 100644 index f0b47d6d9e..0000000000 --- a/ompi/mca/btl/wv/btl_wv_proc.c +++ /dev/null @@ -1,318 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2008 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-2008 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2006-2007 Voltaire All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - -#include "opal/util/arch.h" - -#include "ompi/runtime/ompi_module_exchange.h" - -#include "btl_wv.h" -#include "btl_wv_proc.h" -#include "connect/base.h" -#include "connect/connect.h" - -static void mca_btl_wv_proc_construct(mca_btl_wv_proc_t* proc); -static void mca_btl_wv_proc_destruct(mca_btl_wv_proc_t* proc); - -OBJ_CLASS_INSTANCE(mca_btl_wv_proc_t, - opal_list_item_t, mca_btl_wv_proc_construct, - mca_btl_wv_proc_destruct); - -void mca_btl_wv_proc_construct(mca_btl_wv_proc_t* ib_proc) -{ - ib_proc->proc_ompi = 0; - ib_proc->proc_ports = NULL; - ib_proc->proc_port_count = 0; - ib_proc->proc_endpoints = 0; - ib_proc->proc_endpoint_count = 0; - OBJ_CONSTRUCT(&ib_proc->proc_lock, opal_mutex_t); - /* add to list of all proc instance */ - OPAL_THREAD_LOCK(&mca_btl_wv_component.ib_lock); - opal_list_append(&mca_btl_wv_component.ib_procs, &ib_proc->super); - OPAL_THREAD_UNLOCK(&mca_btl_wv_component.ib_lock); -} - -/* - * Cleanup ib proc instance - */ - -void mca_btl_wv_proc_destruct(mca_btl_wv_proc_t* ib_proc) -{ - /* remove from list of all proc instances */ - OPAL_THREAD_LOCK(&mca_btl_wv_component.ib_lock); - opal_list_remove_item(&mca_btl_wv_component.ib_procs, &ib_proc->super); - OPAL_THREAD_UNLOCK(&mca_btl_wv_component.ib_lock); - - /* release resources */ - if(NULL != ib_proc->proc_endpoints) { - free(ib_proc->proc_endpoints); - } - if (NULL != ib_proc->proc_ports) { - int i, j; - for (i = 0; i < ib_proc->proc_port_count; ++i) { - for (j = 0; j < ib_proc->proc_ports[i].pm_cpc_data_count; ++j) { - if (NULL != ib_proc->proc_ports[i].pm_cpc_data[j].cbm_modex_message) { - free(ib_proc->proc_ports[i].pm_cpc_data[j].cbm_modex_message); - } - } - } - free(ib_proc->proc_ports); - } - OBJ_DESTRUCT(&ib_proc->proc_lock); -} - - -/* - * Look for an existing IB process instances based on the associated - * ompi_proc_t instance. - */ -static mca_btl_wv_proc_t* mca_btl_wv_proc_lookup_ompi(ompi_proc_t* ompi_proc) -{ - mca_btl_wv_proc_t* ib_proc; - - OPAL_THREAD_LOCK(&mca_btl_wv_component.ib_lock); - - for(ib_proc = (mca_btl_wv_proc_t*) - opal_list_get_first(&mca_btl_wv_component.ib_procs); - ib_proc != (mca_btl_wv_proc_t*) - opal_list_get_end(&mca_btl_wv_component.ib_procs); - ib_proc = (mca_btl_wv_proc_t*)opal_list_get_next(ib_proc)) { - if(ib_proc->proc_ompi == ompi_proc) { - OPAL_THREAD_UNLOCK(&mca_btl_wv_component.ib_lock); - return ib_proc; - } - } - OPAL_THREAD_UNLOCK(&mca_btl_wv_component.ib_lock); - return NULL; -} - -static void inline unpack8(char **src, uint8_t *value) -{ - /* Copy one character */ - *value = (uint8_t) **src; - /* Most the src ahead one */ - ++*src; -} - -/* - * Create a IB process structure. There is a one-to-one correspondence - * between a ompi_proc_t and a mca_btl_wv_proc_t instance. We - * cache additional data (specifically the list of - * mca_btl_wv_endpoint_t instances, and published addresses) - * associated w/ a given destination on this datastructure. - */ - -mca_btl_wv_proc_t* mca_btl_wv_proc_create(ompi_proc_t* ompi_proc) -{ - mca_btl_wv_proc_t* module_proc = NULL; - size_t msg_size; - uint32_t size; - int rc, i, j; - void *message; - char *offset; - int modex_message_size; - mca_btl_wv_modex_message_t dummy; - - /* Check if we have already created a IB proc - * structure for this ompi process */ - module_proc = mca_btl_wv_proc_lookup_ompi(ompi_proc); - if (NULL != module_proc) { - /* Gotcha! */ - return module_proc; - } - - /* Oops! First time, gotta create a new IB proc - * out of the ompi_proc ... */ - module_proc = OBJ_NEW(mca_btl_wv_proc_t); - /* Initialize number of peer */ - module_proc->proc_endpoint_count = 0; - module_proc->proc_ompi = ompi_proc; - - /* build a unique identifier (of arbitrary - * size) to represent the proc */ - module_proc->proc_guid = ompi_proc->proc_name; - - /* query for the peer address info */ - rc = ompi_modex_recv(&mca_btl_wv_component.super.btl_version, - ompi_proc, - &message, - &msg_size); - if (OMPI_SUCCESS != rc) { - BTL_ERROR(("[%s:%d] ompi_modex_recv failed for peer %s", - __FILE__, __LINE__, - OMPI_NAME_PRINT(&ompi_proc->proc_name))); - OBJ_RELEASE(module_proc); - return NULL; - } - if (0 == msg_size) { - return NULL; - } - - /* Message was packed in btl_wv_component.c; the format is - listed in a comment in that file */ - modex_message_size = ((char *) &(dummy.end)) - ((char*) &dummy); - - /* Unpack the number of modules in the message */ - offset = (char *) message; - unpack8(&offset, &(module_proc->proc_port_count)); - BTL_VERBOSE(("unpack: %d btls", module_proc->proc_port_count)); - if (module_proc->proc_port_count > 0) { - module_proc->proc_ports = (mca_btl_wv_proc_modex_t *) - malloc(sizeof(mca_btl_wv_proc_modex_t) * - module_proc->proc_port_count); - } else { - module_proc->proc_ports = NULL; - } - - /* Loop over unpacking all the ports */ - for (i = 0; i < module_proc->proc_port_count; i++) { - - /* Unpack the modex comment message struct */ - size = modex_message_size; - memcpy(&(module_proc->proc_ports[i].pm_port_info), offset, size); -#if !defined(WORDS_BIGENDIAN) && OPAL_ENABLE_HETEROGENEOUS_SUPPORT - MCA_BTL_WV_MODEX_MSG_NTOH(module_proc->proc_ports[i].pm_port_info); -#endif - offset += size; - BTL_VERBOSE(("unpacked btl %d: modex message, offset now %d", - i, (int)(offset-((char*)message)))); - - /* Unpack the number of CPCs that follow */ - unpack8(&offset, &(module_proc->proc_ports[i].pm_cpc_data_count)); - BTL_VERBOSE(("unpacked btl %d: number of cpcs to follow %d (offset now %d)", - i, module_proc->proc_ports[i].pm_cpc_data_count, - (int)(offset-((char*)message)))); - module_proc->proc_ports[i].pm_cpc_data = (ompi_btl_wv_connect_base_module_data_t *) - calloc(module_proc->proc_ports[i].pm_cpc_data_count, - sizeof(ompi_btl_wv_connect_base_module_data_t)); - if (NULL == module_proc->proc_ports[i].pm_cpc_data) { - return NULL; - } - - /* Unpack the CPCs */ - for (j = 0; j < module_proc->proc_ports[i].pm_cpc_data_count; ++j) { - uint8_t u8; - ompi_btl_wv_connect_base_module_data_t *cpcd; - cpcd = module_proc->proc_ports[i].pm_cpc_data + j; - unpack8(&offset, &u8); - BTL_VERBOSE(("unpacked btl %d: cpc %d: index %d (offset now %d)", - i, j, u8, (int)(offset-(char*)message))); - cpcd->cbm_component = - ompi_btl_wv_connect_base_get_cpc_byindex(u8); - BTL_VERBOSE(("unpacked btl %d: cpc %d: component %s", - i, j, cpcd->cbm_component->cbc_name)); - - unpack8(&offset, &cpcd->cbm_priority); - unpack8(&offset, &cpcd->cbm_modex_message_len); - BTL_VERBOSE(("unpacked btl %d: cpc %d: priority %d, msg len %d (offset now %d)", - i, j, cpcd->cbm_priority, - cpcd->cbm_modex_message_len, - (int)(offset-(char*)message))); - if (cpcd->cbm_modex_message_len > 0) { - cpcd->cbm_modex_message = malloc(cpcd->cbm_modex_message_len); - if (NULL == cpcd->cbm_modex_message) { - BTL_ERROR(("Failed to malloc")); - return NULL; - } - memcpy(cpcd->cbm_modex_message, offset, - cpcd->cbm_modex_message_len); - offset += cpcd->cbm_modex_message_len; - BTL_VERBOSE(("unpacked btl %d: cpc %d: blob unpacked %d %x (offset now %d)", - i, j, - ((uint32_t*)cpcd->cbm_modex_message)[0], - ((uint32_t*)cpcd->cbm_modex_message)[1], - (int)(offset-((char*)message)))); - } - } - } - - if (0 == module_proc->proc_port_count) { - module_proc->proc_endpoints = NULL; - } else { - module_proc->proc_endpoints = (mca_btl_base_endpoint_t**) - malloc(module_proc->proc_port_count * - sizeof(mca_btl_base_endpoint_t*)); - } - if (NULL == module_proc->proc_endpoints) { - OBJ_RELEASE(module_proc); - return NULL; - } - - BTL_VERBOSE(("unpacking done!")); - return module_proc; -} - -int mca_btl_wv_proc_remove(ompi_proc_t *proc, - mca_btl_base_endpoint_t *endpoint) -{ - size_t i; - mca_btl_wv_proc_t* ib_proc = NULL; - - /* Remove endpoint from the wv BTL version of the proc as - well */ - ib_proc = mca_btl_wv_proc_lookup_ompi(proc); - if (NULL != ib_proc) { - for (i = 0; i < ib_proc->proc_endpoint_count; ++i) { - if (ib_proc->proc_endpoints[i] == endpoint) { - ib_proc->proc_endpoints[i] = NULL; - if (i == ib_proc->proc_endpoint_count - 1) { - --ib_proc->proc_endpoint_count; - } - return OMPI_SUCCESS; - } - } - } - - return OMPI_ERR_NOT_FOUND; -} - -/* - * Note that this routine must be called with the lock on the process - * already held. Insert a btl instance into the proc array and assign - * it an address. - */ -int mca_btl_wv_proc_insert(mca_btl_wv_proc_t* module_proc, - mca_btl_base_endpoint_t* module_endpoint) -{ - /* insert into endpoint array */ - - -#ifndef WORDS_BIGENDIAN - /* if we are little endian and our peer is not so lucky, then we - need to put all information sent to him in big endian (aka - Network Byte Order) and expect all information received to - be in NBO. Since big endian machines always send and receive - in NBO, we don't care so much about that case. */ - if (module_proc->proc_ompi->proc_arch & OPAL_ARCH_ISBIGENDIAN) { - module_endpoint->nbo = true; - } -#endif - - /* only allow eager rdma if the peers agree on the size of a long */ - if((module_proc->proc_ompi->proc_arch & OPAL_ARCH_LONGISxx) != - (ompi_proc_local()->proc_arch & OPAL_ARCH_LONGISxx)) { - module_endpoint->use_eager_rdma = false; - } - - module_endpoint->endpoint_proc = module_proc; - module_proc->proc_endpoints[module_proc->proc_endpoint_count++] = module_endpoint; - return OMPI_SUCCESS; -} diff --git a/ompi/mca/btl/wv/btl_wv_proc.h b/ompi/mca/btl/wv/btl_wv_proc.h deleted file mode 100644 index c692b4ad8a..0000000000 --- a/ompi/mca/btl/wv/btl_wv_proc.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2006 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-2007 Voltaire All rights reserved. - * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef MCA_BTL_IB_PROC_H -#define MCA_BTL_IB_PROC_H - -#include "opal/class/opal_object.h" -#include "ompi/proc/proc.h" -#include "btl_wv.h" -#include "btl_wv_endpoint.h" - -BEGIN_C_DECLS - -/* Must forward reference this to avoid include file loop */ -struct ompi_btl_wv_connect_base_module_data_t; - -/** - * Data received from the modex. For each wv BTL module/port in - * the peer, we'll receive two things: - * - * 1. Data about the peer's port - * 2. An array of CPCs that the peer has available on that port, each - * of which has its own meta data - * - * Hence, these two items need to be bundled together; - */ -typedef struct mca_btl_wv_proc_modex_t { - /** Information about the peer's port */ - mca_btl_wv_modex_message_t pm_port_info; - - /** Array of the peer's CPCs available on this port */ - ompi_btl_wv_connect_base_module_data_t *pm_cpc_data; - - /** Length of the pm_cpc_data array */ - uint8_t pm_cpc_data_count; -} mca_btl_wv_proc_modex_t; - -/** - * Represents the state of a remote process and the set of addresses - * that it exports. Also cache an instance of mca_btl_base_endpoint_t for - * each - * BTL instance that attempts to open a connection to the process. - */ -struct mca_btl_wv_proc_t { - /** allow proc to be placed on a list */ - opal_list_item_t super; - - /** pointer to corresponding ompi_proc_t */ - ompi_proc_t *proc_ompi; - - /** globally unique identifier for the process */ - ompi_process_name_t proc_guid; - - /** modex messages from this proc; one for each port in the peer */ - mca_btl_wv_proc_modex_t *proc_ports; - - /** length of proc_ports array */ - uint8_t proc_port_count; - - /** array of endpoints that have been created to access this proc */ - struct mca_btl_base_endpoint_t **proc_endpoints; - - /** number of endpoints (length of proc_endpoints array) */ - size_t proc_endpoint_count; - - /** lock to protect against concurrent access to proc state */ - opal_mutex_t proc_lock; -}; -typedef struct mca_btl_wv_proc_t mca_btl_wv_proc_t; - -OBJ_CLASS_DECLARATION(mca_btl_wv_proc_t); - -mca_btl_wv_proc_t* mca_btl_wv_proc_create(ompi_proc_t* ompi_proc); -int mca_btl_wv_proc_insert(mca_btl_wv_proc_t*, mca_btl_base_endpoint_t*); -int mca_btl_wv_proc_remove(ompi_proc_t* proc, - mca_btl_base_endpoint_t* module_endpoint); - -END_C_DECLS - -#endif diff --git a/ompi/mca/btl/wv/configure.m4 b/ompi/mca/btl/wv/configure.m4 deleted file mode 100644 index 60fff55f5d..0000000000 --- a/ompi/mca/btl/wv/configure.m4 +++ /dev/null @@ -1,20 +0,0 @@ -# -*- shell-script -*- -# -# Copyright (c) 2011 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# MCA_btl_wv_CONFIG([action-if-can-compile], -# [action-if-cant-compile]) -# ------------------------------------------------ -AC_DEFUN([MCA_ompi_btl_wv_CONFIG],[ - AC_CONFIG_FILES([ompi/mca/btl/wv/Makefile]) - - # AFAIK, cmake will only ever be used to build this component, so - # the autogen version can always simply fail. - $2 -])dnl diff --git a/ompi/mca/btl/wv/connect/base.h b/ompi/mca/btl/wv/connect/base.h deleted file mode 100644 index a663c1c5fc..0000000000 --- a/ompi/mca/btl/wv/connect/base.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2009 Mellanox Technologies. All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - - -#ifndef BTL_WV_CONNECT_BASE_H -#define BTL_WV_CONNECT_BASE_H - -#include "connect/connect.h" - -#ifdef OMPI_HAVE_RDMAOE -#define BTL_WV_CONNECT_BASE_CHECK_IF_NOT_IB(btl) \ - (((IBV_TRANSPORT_IB != ((btl)->device->ib_dev->transport_type)) || \ - (IBV_LINK_LAYER_ETHERNET == ((btl)->ib_port_attr.link_layer))) ? \ - true : false) -#else -#define BTL_WV_CONNECT_BASE_CHECK_IF_NOT_IB(btl) \ - ((WV_TRANSPORT_IB != ((btl)->device->ib_dev->transport_type)) ? \ - true : false) -#endif - -BEGIN_C_DECLS - -/* - * Forward declaration to resolve circular dependency - */ -struct mca_btl_base_endpoint_t; - -/* - * Open function - */ -int ompi_btl_wv_connect_base_register(void); - -/* - * Component-wide CPC init - */ -int ompi_btl_wv_connect_base_init(void); - -/* - * Query CPCs to see if they want to run on a specific module - */ -int ompi_btl_wv_connect_base_select_for_local_port - (mca_btl_wv_module_t *btl); - -/* - * Forward reference to avoid an include file loop - */ -struct mca_btl_wv_proc_modex_t; - -/* - * Select function - */ -int ompi_btl_wv_connect_base_find_match - (mca_btl_wv_module_t *btl, - struct mca_btl_wv_proc_modex_t *peer_port, - ompi_btl_wv_connect_base_module_t **local_cpc, - ompi_btl_wv_connect_base_module_data_t **remote_cpc_data); - -/* - * Find a CPC's index so that we can send it in the modex - */ -int ompi_btl_wv_connect_base_get_cpc_index - (ompi_btl_wv_connect_base_component_t *cpc); - -/* - * Lookup a CPC by its index (received from the modex) - */ -ompi_btl_wv_connect_base_component_t * - ompi_btl_wv_connect_base_get_cpc_byindex(uint8_t index); - -/* - * Allocate a CTS frag - */ -int ompi_btl_wv_connect_base_alloc_cts( - struct mca_btl_base_endpoint_t *endpoint); - -/* - * Free a CTS frag - */ -int ompi_btl_wv_connect_base_free_cts( - struct mca_btl_base_endpoint_t *endpoint); - -/* - * Start a new connection to an endpoint - */ -int ompi_btl_wv_connect_base_start( - ompi_btl_wv_connect_base_module_t *cpc, - struct mca_btl_base_endpoint_t *endpoint); - - -/* - * Component-wide CPC finalize - */ -void ompi_btl_wv_connect_base_finalize(void); - -END_C_DECLS - -#endif diff --git a/ompi/mca/btl/wv/connect/btl_wv_connect_base.c b/ompi/mca/btl/wv/connect/btl_wv_connect_base.c deleted file mode 100644 index 14a7761ad3..0000000000 --- a/ompi/mca/btl/wv/connect/btl_wv_connect_base.c +++ /dev/null @@ -1,488 +0,0 @@ -/* - * Copyright (c) 2007-2009 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2007 Mellanox Technologies, Inc. All rights reserved. - * Copyright (c) 2012 Los Alamos National Security, LLC. All rights - * reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" - -#include "btl_wv.h" -#include "btl_wv_proc.h" -#include "connect/base.h" -#include "connect/btl_wv_connect_oob.h" - -#include "opal/util/argv.h" -#include "opal/util/output.h" - -/* - * Array of all possible connection functions - */ -static ompi_btl_wv_connect_base_component_t *all[] = { - &ompi_btl_wv_connect_oob, - - NULL -}; -static ompi_btl_wv_connect_base_component_t **available = NULL; -static int num_available = 0; - -/* - * Register MCA parameters - */ -int ompi_btl_wv_connect_base_register(void) -{ - int i, j, save; - char **temp = NULL, *string = NULL, *all_cpc_names = NULL; - char *cpc_include = NULL, *cpc_exclude = NULL; - - /* Make an MCA parameter to select which connect module to use */ - for (i = 0; NULL != all[i]; ++i) { - opal_argv_append_nosize(&temp, all[i]->cbc_name); - } - all_cpc_names = opal_argv_join(temp, ','); - opal_argv_free(temp); - asprintf(&string, - "Method used to select OpenFabrics connections (valid values: %s)", - all_cpc_names); - - mca_base_param_reg_string(&mca_btl_wv_component.super.btl_version, - "cpc_include", string, false, false, - NULL, &cpc_include); - free(string); - - asprintf(&string, - "Method used to exclude OpenFabrics connections (valid values: %s)", - all_cpc_names); - - mca_base_param_reg_string(&mca_btl_wv_component.super.btl_version, - "cpc_exclude", string, false, false, - NULL, &cpc_exclude); - free(string); - - /* Parse the if_[in|ex]clude paramters to come up with a list of - CPCs that are available */ - available = (ompi_btl_wv_connect_base_component_t **) calloc(1, sizeof(all)); - - /* If we have an "include" list, then find all those CPCs and put - them in available[] */ - if (NULL != cpc_include) { - mca_btl_wv_component.cpc_explicitly_defined = true; - temp = opal_argv_split(cpc_include, ','); - for (save = j = 0; NULL != temp[j]; ++j) { - for (i = 0; NULL != all[i]; ++i) { - if (0 == strcmp(temp[j], all[i]->cbc_name)) { - opal_output(-1, "include: saving %s", all[i]->cbc_name); - available[save++] = all[i]; - ++num_available; - break; - } - } - if (NULL == all[i]) { - opal_show_help("help-mpi-btl-wv-cpc-base.txt", - "cpc name not found", true, - "include", ompi_process_info.nodename, - "include", cpc_include, temp[j], - all_cpc_names); - opal_argv_free(temp); - free(all_cpc_names); - return OMPI_ERR_NOT_FOUND; - } - } - opal_argv_free(temp); - } - - /* Otherwise, if we have an "exclude" list, take all the CPCs that - are not in that list and put them in available[] */ - else if (NULL != cpc_exclude) { - mca_btl_wv_component.cpc_explicitly_defined = true; - temp = opal_argv_split(cpc_exclude, ','); - /* First: error check -- ensure that all the names are valid */ - for (j = 0; NULL != temp[j]; ++j) { - for (i = 0; NULL != all[i]; ++i) { - if (0 == strcmp(temp[j], all[i]->cbc_name)) { - break; - } - } - if (NULL == all[i]) { - opal_show_help("help-mpi-btl-wv-cpc-base.txt", - "cpc name not found", true, - "exclude", ompi_process_info.nodename, - "exclude", cpc_exclude, temp[j], - all_cpc_names); - opal_argv_free(temp); - free(all_cpc_names); - return OMPI_ERR_NOT_FOUND; - } - } - - /* Now do the exclude */ - for (save = i = 0; NULL != all[i]; ++i) { - for (j = 0; NULL != temp[j]; ++j) { - if (0 == strcmp(temp[j], all[i]->cbc_name)) { - break; - } - } - if (NULL == temp[j]) { - opal_output(-1, "exclude: saving %s", all[i]->cbc_name); - available[save++] = all[i]; - ++num_available; - } - } - opal_argv_free(temp); - } - - /* If there's no include/exclude list, copy all[] into available[] */ - else { - opal_output(-1, "no include or exclude: saving all"); - memcpy(available, all, sizeof(all)); - num_available = (sizeof(all) / - sizeof(ompi_btl_wv_connect_base_module_t *)) - 1; - } - - /* Call the register function on all the CPCs so that they may - setup any MCA params specific to the connection type */ - for (i = 0; NULL != available[i]; ++i) { - if (NULL != available[i]->cbc_register) { - available[i]->cbc_register(); - } - } - - return OMPI_SUCCESS; -} - -/* - * Called once during wv BTL component initialization to allow CPC - * components to initialize. - */ -int ompi_btl_wv_connect_base_init(void) -{ - int i, rc; - - /* Call each available CPC component's open function, if it has - one. If the CPC component open function returns OMPI_SUCCESS, - keep it. If it returns ERR_NOT_SUPPORTED, remove it from the - available[] array. If it returns something else, return that - error upward. */ - for (i = num_available = 0; NULL != available[i]; ++i) { - if (NULL == available[i]->cbc_init) { - available[num_available++] = available[i]; - opal_output(-1, "found available cpc (NULL init): %s", - all[i]->cbc_name); - continue; - } - - rc = available[i]->cbc_init(); - if (OMPI_SUCCESS == rc) { - available[num_available++] = available[i]; - opal_output(-1, "found available cpc (SUCCESS init): %s", - all[i]->cbc_name); - continue; - } else if (OMPI_ERR_NOT_SUPPORTED == rc) { - continue; - } else { - return rc; - } - } - available[num_available] = NULL; - - return (num_available > 0) ? OMPI_SUCCESS : OMPI_ERR_NOT_AVAILABLE; -} - - -/* - * Find all the CPCs that are eligible for a single local port (i.e., - * wv module). - */ -int ompi_btl_wv_connect_base_select_for_local_port(mca_btl_wv_module_t *btl) -{ - char *msg = NULL; - int i, rc, cpc_index, len; - ompi_btl_wv_connect_base_module_t **cpcs; - - cpcs = (ompi_btl_wv_connect_base_module_t **) calloc(num_available, - sizeof(ompi_btl_wv_connect_base_module_t *)); - if (NULL == cpcs) { - return OMPI_ERR_OUT_OF_RESOURCE; - } - - /* Go through all available CPCs and query them to see if they - want to run on this module. If they do, save them to a running - array. */ - for (len = 1, i = 0; NULL != available[i]; ++i) { - len += strlen(available[i]->cbc_name) + 2; - } - msg = (char *) malloc(len); - if (NULL == msg) { - return OMPI_ERR_OUT_OF_RESOURCE; - } - msg[0] = '\0'; - for (cpc_index = i = 0; NULL != available[i]; ++i) { - if (i > 0) { - strcat(msg, ", "); - } - strcat(msg, available[i]->cbc_name); - - rc = available[i]->cbc_query(btl, &cpcs[cpc_index]); - if (OMPI_ERR_NOT_SUPPORTED == rc || - OMPI_ERR_UNREACH == rc) { - continue; - } else if (OMPI_SUCCESS != rc) { - free(cpcs); - free(msg); - return rc; - } - opal_output(-1, "match cpc for local port: %s", - available[i]->cbc_name); - - /* If the CPC wants to use the CTS protocol, check to ensure - that QP 0 is PP; if it's not, we can't use this CPC (or the - CTS protocol) */ - if (cpcs[cpc_index]->cbm_uses_cts && - !BTL_WV_QP_TYPE_PP(0)) { - BTL_VERBOSE(("this CPC only supports when the first btl_wv_receive_queues QP is a PP QP")); - continue; - } - - /* This CPC has indicated that it wants to run on this wv - BTL module. Woo hoo! */ - ++cpc_index; - } - - /* If we got an empty array, then no CPCs were eligible. Doh! */ - if (0 == cpc_index) { - opal_show_help("help-mpi-btl-wv-cpc-base.txt", - "no cpcs for port", true, - ompi_process_info.nodename, - btl->device->ib_dev->name, - btl->port_num, msg); - free(cpcs); - free(msg); - return OMPI_ERR_NOT_SUPPORTED; - } - free(msg); - - /* We got at least one eligible CPC; save the array into the - module's port_info */ - btl->cpcs = cpcs; - btl->num_cpcs = cpc_index; - - return OMPI_SUCCESS; -} - -/* - * This function is invoked when determining whether we have a CPC in - * common with a specific remote port. We already know that the - * subnet ID is the same between a specific local port and the target - * remote port; now we need to know if we can find a CPC in common - * between the two. - * - * If yes, be sure to find the *same* CPC on both sides. We know - * which CPCs are available on each side, and we know the priorities - * that were assigned on both sides. So find a CPC that is common to - * both sides and has the highest overall priority (between both - * sides). - * - * Return the matching CPC, or NULL if not found. - */ -int -ompi_btl_wv_connect_base_find_match(mca_btl_wv_module_t *btl, - mca_btl_wv_proc_modex_t *peer_port, - ompi_btl_wv_connect_base_module_t **ret_local_cpc, - ompi_btl_wv_connect_base_module_data_t **ret_remote_cpc_data) -{ - int i, j, max = -1; - ompi_btl_wv_connect_base_module_t *local_cpc, *local_selected = NULL; - ompi_btl_wv_connect_base_module_data_t *local_cpcd, *remote_cpcd, - *remote_selected = NULL; - - /* Iterate over all the CPCs on the local module */ - for (i = 0; i < btl->num_cpcs; ++i) { - local_cpc = btl->cpcs[i]; - local_cpcd = &(local_cpc->data); - - /* Iterate over all the CPCs on the remote port */ - for (j = 0; j < peer_port->pm_cpc_data_count; ++j) { - remote_cpcd = &(peer_port->pm_cpc_data[j]); - - /* Are the components the same? */ - if (local_cpcd->cbm_component == remote_cpcd->cbm_component) { - /* If so, update the max priority found so far */ - if (max < local_cpcd->cbm_priority) { - max = local_cpcd->cbm_priority; - local_selected = local_cpc; - remote_selected = remote_cpcd; - } - if (max < remote_cpcd->cbm_priority) { - max = remote_cpcd->cbm_priority; - local_selected = local_cpc; - remote_selected = remote_cpcd; - } - } - } - } - - /* All done! */ - if (NULL != local_selected) { - *ret_local_cpc = local_selected; - *ret_remote_cpc_data = remote_selected; - opal_output(-1, "find_match: found match!"); - return OMPI_SUCCESS; - } else { - opal_output(-1, "find_match: did NOT find match!"); - return OMPI_ERR_NOT_FOUND; - } -} - -/* - * Lookup a CPC component's index in the all[] array so that we can - * send it int the modex - */ -int ompi_btl_wv_connect_base_get_cpc_index(ompi_btl_wv_connect_base_component_t *cpc) -{ - int i; - for (i = 0; NULL != all[i]; ++i) { - if (all[i] == cpc) { - return i; - } - } - - /* Not found */ - return -1; -} - -/* - * Lookup a CPC by its index (received from the modex) - */ -ompi_btl_wv_connect_base_component_t * -ompi_btl_wv_connect_base_get_cpc_byindex(uint8_t index) -{ - return (index >= (sizeof(all) / - sizeof(ompi_btl_wv_connect_base_module_t *))) ? - NULL : all[index]; -} - -int ompi_btl_wv_connect_base_alloc_cts(mca_btl_base_endpoint_t *endpoint) -{ - ompi_free_list_item_t *fli; - struct wv_mr *mr; - HRESULT hr; - - int length = sizeof(mca_btl_wv_header_t) + - sizeof(mca_btl_wv_header_coalesced_t) + - sizeof(mca_btl_wv_control_header_t) + - sizeof(mca_btl_wv_footer_t) + - mca_btl_wv_component.qp_infos[mca_btl_wv_component.credits_qp].size; - - /* Explicitly don't use the mpool registration */ - fli = &(endpoint->endpoint_cts_frag.super.super.base.super); - fli->registration = NULL; - fli->ptr = malloc(length); - if (NULL == fli->ptr) { - BTL_ERROR(("malloc failed")); - return OMPI_ERR_OUT_OF_RESOURCE; - } - - mr = (struct wv_mr*)malloc(sizeof(wv_mr)); - mr->context = endpoint->endpoint_btl->device->ib_pd->context; - mr->pd = endpoint->endpoint_btl->device->ib_pd; - mr->addr = fli->ptr; - hr = endpoint->endpoint_btl->device->ib_pd->handle->RegisterMemory(fli->ptr,length, - WV_ACCESS_LOCAL_WRITE|WV_ACCESS_REMOTE_WRITE|WV_ACCESS_REMOTE_READ, - NULL,(WV_MEMORY_KEYS*)&mr->lkey); - mr->rkey = ntohl(mr->rkey); - - endpoint->endpoint_cts_mr = mr; - - OPAL_OUTPUT((-1, "registered memory %p, length %d", fli->ptr, length)); - if (NULL == endpoint->endpoint_cts_mr) { - free(fli->ptr); - BTL_ERROR(("Failed to reg mr!")); - return OMPI_ERR_OUT_OF_RESOURCE; - } - /* NOTE: We do not need to register this memory with the - opal_memory subsystem, because this is OMPI-controlled memory - -- we do not need to worry about this memory being freed out - from underneath us. */ - - /* Copy the lkey where it needs to go */ - endpoint->endpoint_cts_frag.super.sg_entry.Lkey = - endpoint->endpoint_cts_frag.super.super.segment.key = - endpoint->endpoint_cts_mr->lkey; - endpoint->endpoint_cts_frag.super.sg_entry.Length = length; - - /* Construct the rest of the recv_frag_t */ - OBJ_CONSTRUCT(&(endpoint->endpoint_cts_frag), mca_btl_wv_recv_frag_t); - endpoint->endpoint_cts_frag.super.super.base.order = - mca_btl_wv_component.credits_qp; - endpoint->endpoint_cts_frag.super.endpoint = endpoint; - OPAL_OUTPUT((-1, "Got a CTS frag for peer %s, addr %p, length %d, lkey %d", - endpoint->endpoint_proc->proc_ompi->proc_hostname, - (void*) endpoint->endpoint_cts_frag.super.sg_entry.pAddress, - endpoint->endpoint_cts_frag.super.sg_entry.Length, - endpoint->endpoint_cts_frag.super.sg_entry.Lkey)); - - return OMPI_SUCCESS; -} - -int ompi_btl_wv_connect_base_free_cts(mca_btl_base_endpoint_t *endpoint) -{ - /* NOTE: We don't need to deregister this memory with opal_memory - because it was not registered there in the first place (see - comment above, near call to ibv_reg_mr). */ - if (NULL != endpoint->endpoint_cts_mr) { - if(SUCCEEDED(endpoint->endpoint_cts_mr->pd->handle->DeregisterMemory(endpoint->endpoint_cts_mr->lkey,NULL))) - free(endpoint->endpoint_cts_mr); - endpoint->endpoint_cts_mr = NULL; - } - if (NULL != endpoint->endpoint_cts_frag.super.super.base.super.ptr) { - free(endpoint->endpoint_cts_frag.super.super.base.super.ptr); - endpoint->endpoint_cts_frag.super.super.base.super.ptr = NULL; - OPAL_OUTPUT((-1, "Freeing CTS frag")); - } - - return OMPI_SUCCESS; -} - -/* - * Called to start a connection - */ -int ompi_btl_wv_connect_base_start( - ompi_btl_wv_connect_base_module_t *cpc, - mca_btl_base_endpoint_t *endpoint) -{ - /* If the CPC uses the CTS protocol, provide a frag buffer for the - CPC to post. Must allocate these frags up here in the main - thread because the FREE_LIST_WAIT is not thread safe. */ - if (cpc->cbm_uses_cts) { - int rc; - rc = ompi_btl_wv_connect_base_alloc_cts(endpoint); - if (OMPI_SUCCESS != rc) { - return rc; - } - } - - return cpc->cbm_start_connect(cpc, endpoint); -} - -/* - * Called during wv btl component close - */ -void ompi_btl_wv_connect_base_finalize(void) -{ - int i; - - if (NULL != available) { - for (i = 0; NULL != available[i]; ++i) { - if (NULL != available[i]->cbc_finalize) { - available[i]->cbc_finalize(); - } - } - free(available); - available = NULL; - } -} diff --git a/ompi/mca/btl/wv/connect/btl_wv_connect_empty.c b/ompi/mca/btl/wv/connect/btl_wv_connect_empty.c deleted file mode 100644 index 2bafbfc1b6..0000000000 --- a/ompi/mca/btl/wv/connect/btl_wv_connect_empty.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "ompi_config.h" - -#include "btl_wv.h" -#include "btl_wv_endpoint.h" -#include "connect/connect.h" - -static void empty_component_register(void); -static int empty_component_init(void); -static int empty_component_query(mca_btl_wv_module_t *btl, - ompi_btl_wv_connect_base_module_t **cpc); - -ompi_btl_wv_connect_base_component_t ompi_btl_wv_connect_empty = { - "empty", - empty_component_register, - empty_component_init, - empty_component_query, - NULL -}; - -static void empty_component_register(void) -{ - /* Nothing to do */ -} - -static int empty_component_init(void) -{ - /* Never let this CPC run */ - return OMPI_ERR_NOT_SUPPORTED; -} - -static int empty_component_query(mca_btl_wv_module_t *btl, - ompi_btl_wv_connect_base_module_t **cpc) -{ - /* Never let this CPC run */ - return OMPI_ERR_NOT_SUPPORTED; -} diff --git a/ompi/mca/btl/wv/connect/btl_wv_connect_empty.h b/ompi/mca/btl/wv/connect/btl_wv_connect_empty.h deleted file mode 100644 index 4e5da4245c..0000000000 --- a/ompi/mca/btl/wv/connect/btl_wv_connect_empty.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef BTL_WV_CONNECT_EMPTY_H -#define BTL_WV_CONNECT_EMPTY_H - -#include "ompi_config.h" - -#include "connect/connect.h" - -extern ompi_btl_wv_connect_base_component_t ompi_btl_wv_connect_empty; - -#endif diff --git a/ompi/mca/btl/wv/connect/btl_wv_connect_oob.c b/ompi/mca/btl/wv/connect/btl_wv_connect_oob.c deleted file mode 100644 index 953db17943..0000000000 --- a/ompi/mca/btl/wv/connect/btl_wv_connect_oob.c +++ /dev/null @@ -1,1370 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2011 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-2009 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2006-2012 Los Alamos National Security, LLC. All rights - * reserved. - * Copyright (c) 2008-2009 Mellanox Technologies. All rights reserved. - * Copyright (c) 2009 IBM Corporation. All rights reserved. - * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ -#include "ompi_config.h" -#include "opal/dss/dss.h" -#include "opal_stdint.h" -#include "opal/util/error.h" -#include "opal/util/output.h" - -#include "ompi/mca/rte/rte.h" -#include "btl_wv.h" -#include "btl_wv_endpoint.h" -#include "btl_wv_proc.h" -#include "connect/connect.h" -#include -#include - -typedef enum { - ENDPOINT_CONNECT_REQUEST, - ENDPOINT_CONNECT_RESPONSE, - ENDPOINT_CONNECT_ACK -} connect_message_type_t; - -#define SL_NOT_PRESENT 0x7F -#define MAX_GET_SL_REC_RETRIES 20 -#define GET_SL_REC_RETRIES_TIMEOUT_MS 2000000 - -#define IB_SA_QPN 1 -#define IB_GLOBAL_QKEY 0x80010000UL -#define IB_MGMT_BASE_VERSION 1 -#define IB_MGMT_CLASS_SUBN_ADM 0x03 -#define IB_MGMT_METHOD_GET 0x01 -#define IB_SA_TID_GET_PATH_REC_0 0xCA000000UL -#define IB_SA_TID_GET_PATH_REC_1 0xBEEF0000UL -#define IB_PATH_REC_SL_MASK 0x000F -#define IB_SA_ATTR_PATH_REC 0x35 -#define IB_SA_PATH_REC_DLID (1<<4) -#define IB_SA_PATH_REC_SLID (1<<5) - -struct ib_mad_hdr { - uint8_t base_version; - uint8_t mgmt_class; - uint8_t class_version; - uint8_t method; - uint16_t status; - uint16_t class_spec; - uint32_t tid[2]; - uint16_t attr_id; - uint16_t resv; - uint32_t attr_mod; -}; - -struct ib_rmpp_hdr { - uint32_t raw[3]; -}; - -struct ib_sa_hdr { - uint32_t sm_key[2]; - uint16_t reserved; - uint16_t attrib_offset; - uint32_t comp_mask[2]; -}; - -typedef union _ib_gid { - uint8_t raw[16]; - struct _ib_gid_unicast { - uint64_t prefix; - uint64_t interface_id; - } unicast; - struct _ib_gid_multicast { - uint8_t header[2]; - uint8_t raw_group_id[14]; - } multicast; -} ib_gid_t; - -struct ib_path_record { - uint64_t service_id; - ib_gid_t dgit; - ib_gid_t sgit; - uint16_t dlid; - uint16_t slid; - uint32_t hop_flow_raw; - uint8_t tclass; - uint8_t num_path; - uint16_t pkey; - uint8_t reserved1; - uint8_t qos_class_sl; - uint8_t mtu; - uint8_t rate; - uint32_t preference__packet_lifetime__packet_lifetime_selector; - uint32_t reserved2[35]; -}; - -union ib_sa_data { - struct ib_path_record path_record; -}; - -struct ib_mad_sa { - struct ib_mad_hdr mad_hdr; - struct ib_rmpp_hdr rmpp_hdr; - struct ib_sa_hdr sa_hdr; - union ib_sa_data sa_data; -}; - -static struct mca_btl_wv_sa_qp_cache { - /* There will be a MR with the one send and receive buffer together */ - /* The send buffer is first, the receive buffer is second */ - /* The receive buffer in a UD queue pair needs room for the 40 byte GRH */ - /* The buffers are first in the structure for page alignment */ - char send_recv_buffer[sizeof(struct ib_mad_sa) * 2 + 40]; - struct mca_btl_wv_sa_qp_cache *next; - struct wv_context *context; - char *device_name; - uint32_t port_num; - struct wv_qp *qp; - struct wv_ah *ah; - struct wv_cq *cq; - struct wv_mr *mr; - struct wv_pd *pd; - struct wv_recv_wr rwr; - WV_SGE rsge; - char sl_values[65536]; -} *sa_qp_cache = 0; - -static int oob_priority = 50; -static bool rml_recv_posted = false; - -static void oob_component_register(void); -static int oob_component_query(mca_btl_wv_module_t *wv_btl, - ompi_btl_wv_connect_base_module_t **cpc); -static int oob_component_finalize(void); - -static int oob_module_start_connect(ompi_btl_wv_connect_base_module_t *cpc, - mca_btl_base_endpoint_t *endpoint); -static int reply_start_connect(mca_btl_wv_endpoint_t *endpoint, - mca_btl_wv_rem_info_t *rem_info); -static int set_remote_info(mca_btl_base_endpoint_t* endpoint, - mca_btl_wv_rem_info_t* rem_info); -static int qp_connect_all(mca_btl_base_endpoint_t* endpoint); -static int qp_create_all(mca_btl_base_endpoint_t* endpoint); -static int qp_create_one(mca_btl_base_endpoint_t* endpoint, int qp, - struct wv_srq *srq, uint32_t max_recv_wr, uint32_t max_send_wr); -static int send_connect_data(mca_btl_base_endpoint_t* endpoint, - uint8_t message_type); - -static void rml_send_cb(int status, ompi_process_name_t* endpoint, - opal_buffer_t* buffer, ompi_rml_tag_t tag, - void* cbdata); -static void rml_recv_cb(int status, ompi_process_name_t* process_name, - opal_buffer_t* buffer, ompi_rml_tag_t tag, - void* cbdata); -static int init_ud_qp(struct wv_context *context_arg, - struct mca_btl_wv_sa_qp_cache *cache); -static void init_sa_mad(struct mca_btl_wv_sa_qp_cache *cache, - struct ib_mad_sa *sag, - WV_SEND_REQUEST *swr, - WV_SGE *ssge, - uint16_t lid, - uint16_t rem_lid); -static int get_pathrecord_info(struct mca_btl_wv_sa_qp_cache *cache, - struct ib_mad_sa *sag, - struct ib_mad_sa *sar, - WV_SEND_REQUEST *swr, - uint16_t lid, - uint16_t rem_lid); -static int init_device(struct wv_context *context_arg, - struct mca_btl_wv_sa_qp_cache *cache, - uint32_t port_num); -static int get_pathrecord_sl(struct wv_context *context_arg, - uint32_t port_num, - uint16_t lid, - uint16_t rem_lid); - - -/* - * The "component" struct -- the top-level function pointers for the - * oob connection scheme. - */ -ompi_btl_wv_connect_base_component_t ompi_btl_wv_connect_oob = { - "oob", - /* Register */ - oob_component_register, - /* Init */ - NULL, - /* Query */ - oob_component_query, - /* Finalize */ - oob_component_finalize, -}; - -/* Open - this functions sets up any oob specific commandline params */ -static void oob_component_register(void) -{ - mca_base_param_reg_int(&mca_btl_wv_component.super.btl_version, - "connect_oob_priority", - "The selection method priority for oob", - false, false, oob_priority, &oob_priority); - - if (oob_priority > 100) { - oob_priority = 100; - } else if (oob_priority < -1) { - oob_priority = -1; - } -} - -/* - * Init function. Post non-blocking RML receive to accept incoming - * connection requests. - */ -static int oob_component_query(mca_btl_wv_module_t *btl, - ompi_btl_wv_connect_base_module_t **cpc) -{ - int rc; - /* If this btl supports OOB, then post the RML message. But - ensure to only post it *once*, because another btl may have - come in before this and already posted it. */ - if (!rml_recv_posted) { - rc = ompi_rte_recv_buffer_nb(OMPI_NAME_WILDCARD, - OMPI_RML_TAG_OPENIB, - ORTE_RML_PERSISTENT, - rml_recv_cb, - NULL); - if (OMPI_SUCCESS != rc) { - opal_output_verbose(5, mca_btl_base_output, - "wv BTL: oob CPC system error %d (%s)", - rc, opal_strerror(rc)); - return rc; - } - rml_recv_posted = true; - } - - *cpc = (ompi_btl_wv_connect_base_module_t *) malloc(sizeof(ompi_btl_wv_connect_base_module_t)); - if (NULL == *cpc) { - ompi_rte_recv_cancel(OMPI_NAME_WILDCARD, OMPI_RML_TAG_OPENIB); - rml_recv_posted = false; - opal_output_verbose(5, mca_btl_base_output, - "wv BTL: oob CPC system error (malloc failed)"); - return OMPI_ERR_OUT_OF_RESOURCE; - } - (*cpc)->data.cbm_component = &ompi_btl_wv_connect_oob; - (*cpc)->data.cbm_priority = oob_priority; - (*cpc)->data.cbm_modex_message = NULL; - (*cpc)->data.cbm_modex_message_len = 0; - - (*cpc)->cbm_endpoint_init = NULL; - (*cpc)->cbm_start_connect = oob_module_start_connect; - (*cpc)->cbm_endpoint_finalize = NULL; - (*cpc)->cbm_finalize = NULL; - (*cpc)->cbm_uses_cts = false; - - opal_output_verbose(5, mca_btl_base_output, - "wv BTL: oob CPC available for use on %s:%d", - btl->device->ib_dev->name, - btl->port_num); - return OMPI_SUCCESS; -} - -/* - * Connect function. Start initiation of connections to a remote - * peer. We send our Queue Pair information over the RML/OOB - * communication mechanism. On completion of our send, a send - * completion handler is called. - */ -static int oob_module_start_connect(ompi_btl_wv_connect_base_module_t *cpc, - mca_btl_base_endpoint_t *endpoint) -{ - int rc; - - if (OMPI_SUCCESS != (rc = qp_create_all(endpoint))) { - return rc; - } - - /* Send connection info over to remote endpoint */ - endpoint->endpoint_state = MCA_BTL_IB_CONNECTING; - if (OMPI_SUCCESS != - (rc = send_connect_data(endpoint, ENDPOINT_CONNECT_REQUEST))) { - BTL_ERROR(("error sending connect request, error code %d", rc)); - return rc; - } - - return OMPI_SUCCESS; -} - -/* - * Component finalize function. Cleanup RML non-blocking receive. - */ -static int oob_component_finalize(void) -{ - if (rml_recv_posted) { - ompi_rte_recv_cancel(OMPI_NAME_WILDCARD, OMPI_RML_TAG_OPENIB); - rml_recv_posted = false; - } - - return OMPI_SUCCESS; -} - - -/* - * Reply to a `start - connect' message - */ -static int reply_start_connect(mca_btl_wv_endpoint_t *endpoint, - mca_btl_wv_rem_info_t *rem_info) -{ - int rc; - - BTL_VERBOSE(("Initialized QPs, LID = %d", - ((mca_btl_wv_module_t*)endpoint->endpoint_btl)->lid)); - - /* Create local QP's and post receive resources */ - if (OMPI_SUCCESS != (rc = qp_create_all(endpoint))) { - return rc; - } - - /* Set the remote side info */ - set_remote_info(endpoint, rem_info); - - /* Connect to remote endpoint qp's */ - if (OMPI_SUCCESS != (rc = qp_connect_all(endpoint))) { - return rc; - } - - /* Send connection info over to remote endpoint */ - endpoint->endpoint_state = MCA_BTL_IB_CONNECT_ACK; - if (OMPI_SUCCESS != - (rc = send_connect_data(endpoint, ENDPOINT_CONNECT_RESPONSE))) { - BTL_ERROR(("error in endpoint send connect request error code is %d", - rc)); - return rc; - } - return OMPI_SUCCESS; -} - - -static int set_remote_info(mca_btl_base_endpoint_t* endpoint, - mca_btl_wv_rem_info_t* rem_info) -{ - /* copy the rem_info stuff */ - memcpy(&((mca_btl_wv_endpoint_t*) endpoint)->rem_info, - rem_info, sizeof(mca_btl_wv_rem_info_t)); - - /* copy over the rem qp info */ - memcpy(endpoint->rem_info.rem_qps, - rem_info->rem_qps, sizeof(mca_btl_wv_rem_qp_info_t) * - mca_btl_wv_component.num_qps); - - BTL_VERBOSE(("Setting QP info, LID = %d", endpoint->rem_info.rem_lid)); - return OMPI_SUCCESS; -} - - -/* - * Connect the local ends of all qp's to the remote side - */ -static int qp_connect_all(mca_btl_wv_endpoint_t *endpoint) -{ - int i,rc; - mca_btl_wv_module_t* wv_btl = - (mca_btl_wv_module_t*)endpoint->endpoint_btl; - HRESULT hr = 0; - WV_QP_ATTRIBUTES wv_qp_attr; - - for (i = 0; i < mca_btl_wv_component.num_qps; i++) { - struct wv_qp* qp = endpoint->qps[i].qp->lcl_qp; - enum wv_mtu mtu = (enum wv_mtu) ((wv_btl->device->mtu < endpoint->rem_info.rem_mtu) ? - wv_btl->device->mtu : endpoint->rem_info.rem_mtu) ; - if (mca_btl_wv_component.verbose) { - BTL_OUTPUT(("Set MTU to WV value %d (%s bytes)", mtu, - (mtu == WV_MTU_256) ? "256" : - (mtu == WV_MTU_512) ? "512" : - (mtu == WV_MTU_1024) ? "1024" : - (mtu == WV_MTU_2048) ? "2048" : - (mtu == WV_MTU_4096) ? "4096" : - "unknown (!)")); - } - /* ready to receive(RTR) */ - memset(&wv_qp_attr,0,sizeof wv_qp_attr); - wv_qp_attr.QpState = WvQpStateRtr; - wv_qp_attr.DestinationQpn = htonl(endpoint->rem_info.rem_qps[i].rem_qp_num); - wv_qp_attr.ReceivePsn = htonl(endpoint->rem_info.rem_qps[i].rem_psn); - wv_qp_attr.AddressVector.Route.Valid = 0; - wv_qp_attr.AddressVector.DLid = htons((uint16_t)endpoint->rem_info.rem_lid); - wv_qp_attr.AddressVector.ServiceLevel = mca_btl_wv_component.ib_service_level; - wv_qp_attr.AddressVector.SourcePathBits = (uint8_t)wv_btl->src_path_bits; - wv_qp_attr.AddressVector.PortNumber = (uint8_t)wv_btl->port_num; - wv_qp_attr.PathMtu = (0x80< 0) { - rc = get_pathrecord_sl(qp->context, - wv_qp_attr.AddressVector.PortNumber, - wv_btl->lid, - wv_qp_attr.AddressVector.DLid); - if(OMPI_ERROR == rc) { - return OMPI_ERROR; - } - wv_qp_attr.AddressVector.ServiceLevel = rc; - } - int rtr_mask = WV_QP_ATTR_STATE|WV_QP_ATTR_AV|WV_QP_ATTR_DESTINATION_QPN - |WV_QP_ATTR_RECEIVE_PSN|WV_QP_ATTR_RESPONDER_RESOURCES - |WV_QP_ATTR_RNR_NAK_TIMEOUT; - hr = qp->handle->Modify(&wv_qp_attr,rtr_mask,NULL); - if(FAILED(hr)) { - BTL_ERROR(("error modifing QP to RTR errno says %s", - strerror(errno))); - return OMPI_ERROR; - }else { - qp->state = WvQpStateRtr; - } - - /* ready to send(RTS) */ - memset(&wv_qp_attr,0,sizeof wv_qp_attr); - wv_qp_attr.QpState = WvQpStateRts; - wv_qp_attr.SendPsn = htonl(endpoint->qps[i].qp->lcl_psn); - wv_qp_attr.PathMtu = (0x80<<0); - wv_qp_attr.LocalAckTimeout = mca_btl_wv_component.ib_timeout; - wv_qp_attr.SequenceErrorRetryCount = mca_btl_wv_component.ib_retry_count; - wv_qp_attr.RnrRetryCount = BTL_WV_QP_TYPE_PP(i) ? 0 : - mca_btl_wv_component.ib_rnr_retry; - int rts_mask = WV_QP_ATTR_STATE|WV_QP_ATTR_ACK_TIMEOUT|WV_QP_ATTR_RNR_RETRY_COUNT - |WV_QP_ATTR_SEND_PSN|WV_QP_ATTR_INITIATOR_DEPTH; - hr = qp->handle->Modify(&wv_qp_attr,rts_mask,NULL); - if(FAILED(hr)) { - BTL_ERROR(("error modifying QP to RTS errno says %s", - strerror(errno))); - return OMPI_ERROR; - }else { - qp->state = WvQpStateRts; - } - } - return OMPI_SUCCESS; -} - - -/* - * Create the local side of all the qp's. The remote sides will be - * connected later. - */ -static int qp_create_all(mca_btl_base_endpoint_t* endpoint) -{ - int qp, rc, pp_qp_num = 0; - int32_t rd_rsv_total = 0; - - for (qp = 0; qp < mca_btl_wv_component.num_qps; ++qp) - if(BTL_WV_QP_TYPE_PP(qp)) { - rd_rsv_total += - mca_btl_wv_component.qp_infos[qp].u.pp_qp.rd_rsv; - pp_qp_num++; - } - - /* if there is no pp QPs we still need reserved WQE for eager rdma flow - * control */ - if(0 == pp_qp_num && true == endpoint->use_eager_rdma) - pp_qp_num = 1; - - for (qp = 0; qp < mca_btl_wv_component.num_qps; ++qp) { - struct wv_srq *srq = NULL; - uint32_t max_recv_wr, max_send_wr; - int32_t rd_rsv, rd_num_credits; - - /* QP used for SW flow control need some additional recourses */ - if(qp == mca_btl_wv_component.credits_qp) { - rd_rsv = rd_rsv_total; - rd_num_credits = pp_qp_num; - } else { - rd_rsv = rd_num_credits = 0; - } - - if(BTL_WV_QP_TYPE_PP(qp)) { - max_recv_wr = mca_btl_wv_component.qp_infos[qp].rd_num + rd_rsv; - max_send_wr = mca_btl_wv_component.qp_infos[qp].rd_num + - rd_num_credits; - } else { - srq = endpoint->endpoint_btl->qps[qp].u.srq_qp.srq; - /* no receives are posted to SRQ qp */ - max_recv_wr = 0; - max_send_wr = mca_btl_wv_component.qp_infos[qp].u.srq_qp.sd_max - + rd_num_credits; - } - - rc = qp_create_one(endpoint, qp, srq, max_recv_wr, max_send_wr); - if (OMPI_SUCCESS != rc) { - return rc; - } - } - - /* Now that all the qp's are created locally, post some receive - buffers, setup credits, etc. */ - return mca_btl_wv_endpoint_post_recvs(endpoint); -} - - -/* Returns max inlne size for qp #N */ -static uint32_t max_inline_size(int qp, mca_btl_wv_device_t *device) -{ - if (mca_btl_wv_component.qp_infos[qp].size <= device->max_inline_data) { - /* If qp message size is smaller than max_inline_data, - * we should enable inline messages */ - return mca_btl_wv_component.qp_infos[qp].size; - } else if (mca_btl_wv_component.rdma_qp == qp || 0 == qp) { - /* If qp message size is bigger that max_inline_data, we - * should enable inline messages only for RDMA QP (for PUT/GET - * fin messages) and for the first qp */ - return device->max_inline_data; - } - /* Otherway it is no reason for inline */ - return 0; -} - -/* - * Create the local side of one qp. The remote side will be connected - * later. - */ -static int qp_create_one(mca_btl_base_endpoint_t* endpoint, int qp, - struct wv_srq *srq, uint32_t max_recv_wr, uint32_t max_send_wr) -{ - mca_btl_wv_module_t *wv_btl = endpoint->endpoint_btl; - struct wv_qp *my_qp; - size_t req_inline; - HRESULT hr; - WV_QP_CREATE create; - WV_QP_ATTRIBUTES wv_qp_attr; - WV_QP_ATTRIBUTES wv_attr; - req_inline = max_inline_size(qp, wv_btl->device); - my_qp = (struct wv_qp*)malloc(sizeof(wv_qp)); - create.pSendCq = wv_btl->device->ib_cq[BTL_WV_LP_CQ]->handle; - create.pReceiveCq = wv_btl->device->ib_cq[qp_cq_prio(qp)]->handle; - create.pSharedReceiveQueue = (srq != NULL) ? srq->handle : NULL; - create.Context = my_qp; - create.SendDepth = max_send_wr; - create.SendSge = 1; - create.ReceiveDepth = BTL_WV_QP_TYPE_PP(qp) ? max_recv_wr : 0; - create.ReceiveSge = 1; - create.MaxInlineSend = max_inline_size(qp, wv_btl->device); - create.InitiatorDepth = 0; - create.ResponderResources = 0; - create.QpType = WvQpTypeRc; - create.QpFlags = 0; - hr = wv_btl->device->ib_pd->handle->CreateConnectQueuePair(&create,&my_qp->conn_handle); - if(FAILED(hr)) { - BTL_ERROR(("error creating qp errno says %s", strerror(errno))); - } - - my_qp->conn_handle->QueryInterface(IID_IWVQueuePair,(LPVOID*)&my_qp->handle); - my_qp->context = wv_btl->device->ib_pd->context; - my_qp->qp_context = NULL; - my_qp->send_cq = wv_btl->device->ib_cq[BTL_WV_LP_CQ]; - my_qp->recv_cq = wv_btl->device->ib_cq[qp_cq_prio(qp)]; - my_qp->srq = srq; - my_qp->state = WvQpStateReset; - my_qp->qp_type = WvQpTypeRc; - hr = my_qp->handle->Query(&wv_attr); - if(FAILED(hr)) { - BTL_ERROR(("error creating qp errno says %s", strerror(errno))); - } - my_qp->qp_num = ntohl(wv_attr.Qpn); - endpoint->qps[qp].qp->lcl_qp = my_qp; - endpoint->qps[qp].ib_inline_max = req_inline; - memset(&wv_qp_attr,0,sizeof wv_qp_attr); - wv_qp_attr.QpState = WvQpStateInit; - wv_qp_attr.PkeyIndex = wv_btl->pkey_index; - wv_qp_attr.AddressVector.PortNumber = wv_btl->port_num; - wv_qp_attr.AccessFlags = WV_ACCESS_REMOTE_WRITE | WV_ACCESS_REMOTE_READ; - wv_qp_attr.PathMtu = (0x80<<0); - int attr_mask = WV_QP_ATTR_STATE|WV_QP_ATTR_PKEY_INDEX|WV_QP_ATTR_PORT_NUMBER|WV_QP_ATTR_ACCESS_FLAGS; - hr = endpoint->qps[qp].qp->lcl_qp->handle->Modify(&wv_qp_attr,attr_mask,NULL); - if(FAILED(hr)) { - BTL_ERROR(("error modifying qp to INIT errno says %s", strerror(errno))); - return OMPI_ERROR; - }else { - endpoint->qps[qp].qp->lcl_qp->state = WvQpStateInit; - } - - endpoint->qps[qp].qp->lcl_psn = lrand48() & 0xffffff; - endpoint->qps[qp].credit_frag = NULL; - - return OMPI_SUCCESS; -} - - -/* - * RML send connect information to remote endpoint - */ -static int send_connect_data(mca_btl_base_endpoint_t* endpoint, - uint8_t message_type) -{ - opal_buffer_t* buffer = OBJ_NEW(opal_buffer_t); - int rc; - - if (NULL == buffer) { - OMPI_ERROR_LOG(ORTE_ERR_OUT_OF_RESOURCE); - return OMPI_ERR_OUT_OF_RESOURCE; - } - - /* pack the info in the send buffer */ - BTL_VERBOSE(("packing %d of %d\n", 1, OPAL_UINT8)); - rc = opal_dss.pack(buffer, &message_type, 1, OPAL_UINT8); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - return rc; - } - - BTL_VERBOSE(("packing %d of %d\n", 1, OPAL_UINT64)); - rc = opal_dss.pack(buffer, &endpoint->subnet_id, 1, OPAL_UINT64); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - return rc; - } - - if (message_type != ENDPOINT_CONNECT_REQUEST) { - /* send the QP connect request info we respond to */ - BTL_VERBOSE(("packing %d of %d\n", 1, OPAL_UINT32)); - rc = opal_dss.pack(buffer, - &endpoint->rem_info.rem_qps[0].rem_qp_num, 1, - OPAL_UINT32); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - return rc; - } - BTL_VERBOSE(("packing %d of %d\n", 1, OPAL_UINT16)); - rc = opal_dss.pack(buffer, &endpoint->rem_info.rem_lid, 1, OPAL_UINT16); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - return rc; - } - } - - if (message_type != ENDPOINT_CONNECT_ACK) { - int qp; - /* stuff all the QP info into the buffer */ - for (qp = 0; qp < mca_btl_wv_component.num_qps; qp++) { - BTL_VERBOSE(("packing %d of %d\n", 1, OPAL_UINT32)); - rc = opal_dss.pack(buffer, &endpoint->qps[qp].qp->lcl_qp->qp_num, - 1, OPAL_UINT32); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - return rc; - } - BTL_VERBOSE(("packing %d of %d\n", 1, OPAL_UINT32)); - rc = opal_dss.pack(buffer, &endpoint->qps[qp].qp->lcl_psn, 1, - OPAL_UINT32); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - return rc; - } - } - - BTL_VERBOSE(("packing %d of %d\n", 1, OPAL_UINT16)); - rc = opal_dss.pack(buffer, &endpoint->endpoint_btl->lid, 1, OPAL_UINT16); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - return rc; - } - BTL_VERBOSE(("packing %d of %d\n", 1, OPAL_UINT32)); - rc = opal_dss.pack(buffer, &endpoint->endpoint_btl->device->mtu, 1, - OPAL_UINT32); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - return rc; - } - BTL_VERBOSE(("packing %d of %d\n", 1, OPAL_UINT32)); - rc = opal_dss.pack(buffer, &endpoint->index, 1, OPAL_UINT32); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - return rc; - } - } - - /* send to remote endpoint */ - rc = ompi_rte_send_buffer_nb(&endpoint->endpoint_proc->proc_guid, - buffer, OMPI_RML_TAG_OPENIB, 0, - rml_send_cb, NULL); - if (OMPI_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - return rc; - } - BTL_VERBOSE(("Sent QP Info, LID = %d, SUBNET = %" PRIx64 "\n", - endpoint->endpoint_btl->lid, - endpoint->subnet_id)); - - return OMPI_SUCCESS; -} - - -/* - * Callback when we have finished RML sending the connect data to a - * remote peer - */ -static void rml_send_cb(int status, ompi_process_name_t* endpoint, - opal_buffer_t* buffer, ompi_rml_tag_t tag, - void* cbdata) -{ - OBJ_RELEASE(buffer); -} - - -/* - * Non blocking RML recv callback. Read incoming QP and other info, - * and if this endpoint is trying to connect, reply with our QP info, - * otherwise try to modify QP's and establish reliable connection - */ -static void rml_recv_cb(int status, ompi_process_name_t* process_name, - opal_buffer_t* buffer, ompi_rml_tag_t tag, - void* cbdata) -{ - mca_btl_wv_proc_t *ib_proc; - mca_btl_wv_endpoint_t *ib_endpoint = NULL; - int endpoint_state; - int rc; - uint32_t i, lcl_qp = 0; - uint16_t lcl_lid = 0; - int32_t cnt = 1; - mca_btl_wv_rem_info_t rem_info; - uint8_t message_type; - bool master; - - /* start by unpacking data first so we know who is knocking at - our door */ - BTL_VERBOSE(("unpacking %d of %d\n", cnt, OPAL_UINT8)); - rc = opal_dss.unpack(buffer, &message_type, &cnt, OPAL_UINT8); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - mca_btl_wv_endpoint_invoke_error(NULL); - return; - } - - BTL_VERBOSE(("unpacking %d of %d\n", cnt, OPAL_UINT64)); - rc = opal_dss.unpack(buffer, &rem_info.rem_subnet_id, &cnt, OPAL_UINT64); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - mca_btl_wv_endpoint_invoke_error(NULL); - return; - } - - if (ENDPOINT_CONNECT_REQUEST != message_type) { - BTL_VERBOSE(("unpacking %d of %d\n", cnt, OPAL_UINT32)); - rc = opal_dss.unpack(buffer, &lcl_qp, &cnt, OPAL_UINT32); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - mca_btl_wv_endpoint_invoke_error(NULL); - return; - } - BTL_VERBOSE(("unpacking %d of %d\n", cnt, OPAL_UINT16)); - rc = opal_dss.unpack(buffer, &lcl_lid, &cnt, OPAL_UINT16); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - mca_btl_wv_endpoint_invoke_error(NULL); - return; - } - } - if (ENDPOINT_CONNECT_ACK != message_type) { - int qp; - /* get ready for the data */ - rem_info.rem_qps = - (mca_btl_wv_rem_qp_info_t*) malloc(sizeof(mca_btl_wv_rem_qp_info_t) * - mca_btl_wv_component.num_qps); - - /* unpack all the qp info */ - for (qp = 0; qp < mca_btl_wv_component.num_qps; ++qp) { - BTL_VERBOSE(("unpacking %d of %d\n", cnt, OPAL_UINT32)); - rc = opal_dss.unpack(buffer, &rem_info.rem_qps[qp].rem_qp_num, &cnt, - OPAL_UINT32); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - mca_btl_wv_endpoint_invoke_error(NULL); - return; - } - BTL_VERBOSE(("unpacking %d of %d\n", cnt, OPAL_UINT32)); - rc = opal_dss.unpack(buffer, &rem_info.rem_qps[qp].rem_psn, &cnt, - OPAL_UINT32); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - mca_btl_wv_endpoint_invoke_error(NULL); - return; - } - } - - BTL_VERBOSE(("unpacking %d of %d\n", cnt, OPAL_UINT16)); - rc = opal_dss.unpack(buffer, &rem_info.rem_lid, &cnt, OPAL_UINT16); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - mca_btl_wv_endpoint_invoke_error(NULL); - return; - } - BTL_VERBOSE(("unpacking %d of %d\n", cnt, OPAL_UINT32)); - rc = opal_dss.unpack(buffer, &rem_info.rem_mtu, &cnt, OPAL_UINT32); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - mca_btl_wv_endpoint_invoke_error(NULL); - return; - } - BTL_VERBOSE(("unpacking %d of %d\n", cnt, OPAL_UINT32)); - rc = opal_dss.unpack(buffer, &rem_info.rem_index, &cnt, OPAL_UINT32); - if (OPAL_SUCCESS != rc) { - OMPI_ERROR_LOG(rc); - mca_btl_wv_endpoint_invoke_error(NULL); - return; - } - } - - BTL_VERBOSE(("Received QP Info, LID = %d, SUBNET = %" PRIx64 "\n", - rem_info.rem_lid, - rem_info.rem_subnet_id)); - - master = ompi_rte_compare_name_fields(OMPI_RTE_CMP_ALL, OMPI_PROC_MY_NAME, - process_name) > 0 ? true : false; - - /* Need to protect the ib_procs list */ - OPAL_THREAD_LOCK(&mca_btl_wv_component.ib_lock); - - for (ib_proc = (mca_btl_wv_proc_t*) - opal_list_get_first(&mca_btl_wv_component.ib_procs); - ib_proc != (mca_btl_wv_proc_t*) - opal_list_get_end(&mca_btl_wv_component.ib_procs); - ib_proc = (mca_btl_wv_proc_t*)opal_list_get_next(ib_proc)) { - bool found = false; - - if (ompi_rte_compare_name_fields(OMPI_RTE_CMP_ALL, - &ib_proc->proc_guid, process_name) != OPAL_EQUAL) { - continue; - } - - if (ENDPOINT_CONNECT_REQUEST != message_type) { - /* This is a reply message. Try to get the endpoint - instance the reply belongs to */ - for (i = 0; i < ib_proc->proc_endpoint_count; i++) { - ib_endpoint = ib_proc->proc_endpoints[i]; - if (ib_endpoint->qps[0].qp->lcl_qp != NULL && - lcl_lid == ib_endpoint->endpoint_btl->lid && - lcl_qp == ib_endpoint->qps[0].qp->lcl_qp->qp_num && - rem_info.rem_subnet_id == ib_endpoint->subnet_id) { - found = true; - break; - } - } - } else { - /* This is new connection request. If this is master try - to find endpoint in a connecting state. If this is - slave try to find endpoint in closed state and - initiate connection back */ - mca_btl_wv_endpoint_t *ib_endpoint_found = NULL; - int master_first_closed = -1; - - for (i = 0; i < ib_proc->proc_endpoint_count; i++) { - ib_endpoint = ib_proc->proc_endpoints[i]; - if (ib_endpoint->subnet_id != rem_info.rem_subnet_id || - (ib_endpoint->endpoint_state != MCA_BTL_IB_CONNECTING - && ib_endpoint->endpoint_state != MCA_BTL_IB_CLOSED)) - continue; - found = true; - ib_endpoint_found = ib_endpoint; - - if (master && -1 == master_first_closed && - MCA_BTL_IB_CLOSED == ib_endpoint->endpoint_state ) { - /* capture in case no endpoint in connecting state */ - master_first_closed = i; - } - - if ((master && - MCA_BTL_IB_CONNECTING == ib_endpoint->endpoint_state) || - (!master && - MCA_BTL_IB_CLOSED == ib_endpoint->endpoint_state)) - break; /* Found one. No point to continue */ - } - ib_endpoint = ib_endpoint_found; - - if (found && master && - MCA_BTL_IB_CLOSED == ib_endpoint->endpoint_state ) { - /* since this is master and no endpoints found in - * connecting state use the first endpoint found - * in closed state */ - ib_endpoint = ib_proc->proc_endpoints[master_first_closed]; - } - - /* if this is slave and there is no endpoints in closed - state then all connection are already in progress so - just ignore this connection request */ - if (found && !master && - MCA_BTL_IB_CLOSED != ib_endpoint->endpoint_state) { - OPAL_THREAD_UNLOCK(&mca_btl_wv_component.ib_lock); - return; - } - } - - if (!found) { - BTL_ERROR(("can't find suitable endpoint for this peer\n")); - mca_btl_wv_endpoint_invoke_error(NULL); - OPAL_THREAD_UNLOCK(&mca_btl_wv_component.ib_lock); - return; - } - - OPAL_THREAD_LOCK(&ib_endpoint->endpoint_lock); - endpoint_state = ib_endpoint->endpoint_state; - - /* Update status */ - switch (endpoint_state) { - case MCA_BTL_IB_CLOSED : - /* We had this connection closed before. The endpoint is - trying to connect. Move the status of this connection - to CONNECTING, and then reply with our QP - information */ - if (master) { - rc = reply_start_connect(ib_endpoint, &rem_info); - } else { - rc = oob_module_start_connect(ib_endpoint->endpoint_local_cpc, - ib_endpoint); - } - - if (OMPI_SUCCESS != rc) { - BTL_ERROR(("error in endpoint reply start connect")); - mca_btl_wv_endpoint_invoke_error(ib_endpoint); - OPAL_THREAD_UNLOCK(&ib_endpoint->endpoint_lock); - break; - } - - /* As long as we expect a message from the peer (in order - to setup the connection) let the event engine pool the - RML events. Note: we increment it once peer active - connection. */ - opal_progress_event_users_increment(); - OPAL_THREAD_UNLOCK(&ib_endpoint->endpoint_lock); - break; - - case MCA_BTL_IB_CONNECTING : - set_remote_info(ib_endpoint, &rem_info); - if (OMPI_SUCCESS != (rc = qp_connect_all(ib_endpoint))) { - BTL_ERROR(("endpoint connect error: %d", rc)); - mca_btl_wv_endpoint_invoke_error(ib_endpoint); - OPAL_THREAD_UNLOCK(&ib_endpoint->endpoint_lock); - break; - } - - if (master) { - ib_endpoint->endpoint_state = MCA_BTL_IB_WAITING_ACK; - - /* Send him an ACK */ - send_connect_data(ib_endpoint, ENDPOINT_CONNECT_RESPONSE); - OPAL_THREAD_UNLOCK(&ib_endpoint->endpoint_lock); - } else { - send_connect_data(ib_endpoint, ENDPOINT_CONNECT_ACK); - /* Tell main BTL that we're done */ - mca_btl_wv_endpoint_cpc_complete(ib_endpoint); - /* cpc complete unlock the endpoint */ - } - break; - - case MCA_BTL_IB_WAITING_ACK: - /* Tell main BTL that we're done */ - mca_btl_wv_endpoint_cpc_complete(ib_endpoint); - /* cpc complete unlock the endpoint */ - break; - - case MCA_BTL_IB_CONNECT_ACK: - send_connect_data(ib_endpoint, ENDPOINT_CONNECT_ACK); - /* Tell main BTL that we're done */ - mca_btl_wv_endpoint_cpc_complete(ib_endpoint); - /* cpc complete unlock the endpoint */ - break; - - case MCA_BTL_IB_CONNECTED: - OPAL_THREAD_UNLOCK(&ib_endpoint->endpoint_lock); - break; - - case MCA_BTL_IB_FAILED: - OPAL_THREAD_UNLOCK(&ib_endpoint->endpoint_lock); - break; - - default : - BTL_ERROR(("Invalid endpoint state %d", endpoint_state)); - mca_btl_wv_endpoint_invoke_error(ib_endpoint); - OPAL_THREAD_UNLOCK(&ib_endpoint->endpoint_lock); - } - break; - } - OPAL_THREAD_UNLOCK(&mca_btl_wv_component.ib_lock); -} - -static int init_ud_qp(struct wv_context *context_arg, - struct mca_btl_wv_sa_qp_cache *cache) -{ - HRESULT hr; - SIZE_T entries; - WV_QP_CREATE create; - WV_QP_ATTRIBUTES wv_attr; - WV_QP_ATTRIBUTES wv_qp_attr; - - /* create cq */ - cache->cq = (struct wv_cq*)malloc(sizeof(struct wv_cq)); - cache->cq->context = cache->context; - cache->cq->channel = NULL; - cache->cq->cq_context = NULL; - cache->cq->notify_cnt = 0; - cache->cq->ack_cnt = 0; - entries = 4; - hr = cache->context->device_if->CreateCompletionQueue(&entries,&cache->cq->handle); - cache->cq->cqe = (uint32_t) entries; - if (NULL == cache->cq) { - BTL_ERROR(("error creating cq, errno says %s", strerror(errno))); - opal_show_help("help-mpi-btl-wv.txt", "init-fail-create-q", - true, ompi_process_info.nodename, - __FILE__, __LINE__, "create_cq", - strerror(errno), errno, - context_arg->device->name); - return OMPI_ERROR; - } - - /* create qp */ - memset(&create,0,sizeof(create)); - create.pSendCq = cache->cq->handle; - create.pReceiveCq = cache->cq->handle; - create.Context = cache->qp; - create.SendDepth = 2; - create.SendSge = 1; - create.ReceiveDepth = 2; - create.ReceiveSge =1; - create.QpType = WvQpTypeUd; - hr = cache->pd->handle->CreateDatagramQueuePair(&create,&cache->qp->ud_handle); - if(FAILED(hr)) { - BTL_ERROR(("error create qp error says %s",strerror(errno))); - return OMPI_ERROR; - } - cache->qp->ud_handle->QueryInterface(IID_IWVQueuePair,(LPVOID*)&cache->qp->handle); - cache->qp->context = cache->pd->context; - cache->qp->send_cq = cache->cq; - cache->qp->recv_cq = cache->cq; - cache->qp->state = WvQpStateReset; - cache->qp->qp_type = WvQpTypeUd; - hr = cache->qp->handle->Query(&wv_attr); - if(FAILED(hr)) { - BTL_ERROR(("error creating qp errno says %s",strerror(errno))); - return OMPI_ERROR; - } - cache->qp->qp_num = ntohl(wv_attr.Qpn); - - /* modify qp to INIT */ - memset(&wv_qp_attr, 0, sizeof(wv_qp_attr)); - wv_qp_attr.QpState = WvQpStateInit; - wv_qp_attr.AddressVector.PortNumber = cache->port_num; - wv_qp_attr.Qkey = htonl(IB_GLOBAL_QKEY); - wv_qp_attr.PathMtu = (0x80<<0); - int init_mask = WV_QP_ATTR_STATE | WV_QP_ATTR_PKEY_INDEX - | WV_QP_ATTR_PORT_NUMBER | WV_QP_ATTR_QKEY; - hr = cache->qp->handle->Modify(&wv_qp_attr,init_mask,NULL); - if(FAILED(hr)) { - BTL_ERROR(("Error modifying QP[%x] to QPS_INIT errno says: %s [%d]", - cache->qp->qp_num, strerror(errno), errno)); - return OMPI_ERROR; - } - - /* modify qp to RTR */ - memset(&wv_qp_attr, 0, sizeof(wv_qp_attr)); - wv_qp_attr.QpState = WvQpStateRtr; - int rtr_mask = WV_QP_ATTR_STATE; - hr = cache->qp->handle->Modify(&wv_qp_attr,rtr_mask,NULL); - if(FAILED(hr)) { - BTL_ERROR(("Error modifying QP[%x] to QPS_RTR errno says: %s [%d]", - cache->qp->qp_num, strerror(errno), errno)); - return OMPI_ERROR; - } - - /* modify qp to RTS */ - memset(&wv_qp_attr, 0, sizeof(wv_qp_attr)); - wv_qp_attr.QpState = WvQpStateRts; - int rts_mask = WV_QP_ATTR_STATE | WV_QP_ATTR_SEND_PSN; - hr = cache->qp->handle->Modify(&wv_qp_attr,rtr_mask,NULL); - if(FAILED(hr)) { - BTL_ERROR(("Error modifying QP[%x] to QPS_RTS errno says: %s [%d]", - cache->qp->qp_num, strerror(errno), errno)); - return OMPI_ERROR; - } -} - -static void init_sa_mad(struct mca_btl_wv_sa_qp_cache *cache, - struct ib_mad_sa *sag, - WV_SEND_REQUEST *swr, - WV_SGE *ssge, - uint16_t lid, - uint16_t rem_lid) -{ - memset(sag, 0, sizeof(*sag)); - memset(swr, 0, sizeof(*swr)); - memset(ssge, 0, sizeof(*ssge)); - - sag->mad_hdr.base_version = IB_MGMT_BASE_VERSION; - sag->mad_hdr.mgmt_class = IB_MGMT_CLASS_SUBN_ADM; - sag->mad_hdr.class_version = 2; - sag->mad_hdr.method = IB_MGMT_METHOD_GET; - sag->mad_hdr.attr_id = htons (IB_SA_ATTR_PATH_REC); - sag->mad_hdr.tid[0] = IB_SA_TID_GET_PATH_REC_0 + cache->qp->qp_num; - sag->mad_hdr.tid[1] = IB_SA_TID_GET_PATH_REC_1 + rem_lid; - sag->sa_hdr.comp_mask[1] = - htonl(IB_SA_PATH_REC_DLID | IB_SA_PATH_REC_SLID); - sag->sa_data.path_record.dlid = htons(rem_lid); - sag->sa_data.path_record.slid = htons(lid); - - swr->pSgl = ssge; - swr->nSge = 1; - swr->Opcode = WvSend; - swr->Wr.Datagram.AhKey = (ULONG_PTR)cache->ah; - swr->Wr.Datagram.DestinationQpn= IB_SA_QPN; - swr->Wr.Datagram.DestinationQkey = IB_GLOBAL_QKEY; - swr->Flags = WV_SEND_SIGNALED | WV_SEND_SOLICITED; - - ssge->pAddress = (void *)sag; - ssge->Length = sizeof(*sag); - ssge->Lkey = cache->mr->lkey; -} - -static int get_pathrecord_info(struct mca_btl_wv_sa_qp_cache *cache, - struct ib_mad_sa *sag, - struct ib_mad_sa *sar, - WV_SEND_REQUEST *swr, - uint16_t lid, - uint16_t rem_lid) -{ - WV_SEND_REQUEST *bswr; - WV_COMPLETION wc; - struct timeval get_sl_rec_last_sent, get_sl_rec_last_poll; - int got_sl_value, get_sl_rec_retries, ne, i; - HRESULT hr; - got_sl_value = 0; - get_sl_rec_retries = 0; - - while (0 == got_sl_value) { - hr = cache->qp->handle->PostSend((WV_SEND_REQUEST*)swr,(WV_SEND_REQUEST**)&bswr); - if (FAILED(hr)) { - BTL_ERROR(("error posing send on QP[%x] errno says: %s [%d]", - cache->qp->qp_num, strerror(errno), errno)); - return OMPI_ERROR; - } - gettimeofday(&get_sl_rec_last_sent, NULL); - - while (0 == got_sl_value) { - ne = (int)cache->cq->handle->Poll(&wc,1); - if (ne > 0 - && wc.Status == WvWcSuccess - && wc.Opcode == WvReceive - && wc.Length >= sizeof(*sar) - && sar->mad_hdr.tid[0] == sag->mad_hdr.tid[0] - && sar->mad_hdr.tid[1] == sag->mad_hdr.tid[1]) { - if (0 == sar->mad_hdr.status - && sar->sa_data.path_record.slid == htons(lid) - && sar->sa_data.path_record.dlid == htons(rem_lid)) { - /* Everything matches, so we have the desired SL */ - cache->sl_values[rem_lid] = - sar->sa_data.path_record.qos_class_sl & IB_PATH_REC_SL_MASK; - got_sl_value = 1; /* still must repost recieve buf */ - } else { - /* Probably bad status, unlikely bad lid match. We will */ - /* ignore response and let it time out so that we do a */ - /* retry, but after a delay. We must make a new TID so */ - /* the SM doesn't see it as the same request. */ - sag->mad_hdr.tid[1] += 0x10000; - } - hr = cache->qp->handle->PostReceive(cache->rwr.wr_id,cache->rwr.sg_list, - cache->rwr.num_sge); - if (FAILED(hr)) { - BTL_ERROR(("error posing receive on QP[%x] errno says: %s [%d]", - cache->qp->qp_num, strerror(errno), errno)); - return OMPI_ERROR; - } - } else if (0 == ne) { /* poll did not find anything */ - gettimeofday(&get_sl_rec_last_poll, NULL); - i = get_sl_rec_last_poll.tv_sec - get_sl_rec_last_sent.tv_sec; - i = (i * 1000000) + - get_sl_rec_last_poll.tv_usec - get_sl_rec_last_sent.tv_usec; - if (i > GET_SL_REC_RETRIES_TIMEOUT_MS) { - get_sl_rec_retries++; - BTL_VERBOSE(("[%d/%d] retries to get PathRecord", - get_sl_rec_retries, MAX_GET_SL_REC_RETRIES)); - if (get_sl_rec_retries > MAX_GET_SL_REC_RETRIES) { - BTL_ERROR(("No response from SA after %d retries", - MAX_GET_SL_REC_RETRIES)); - return OMPI_ERROR; - } - break; /* retransmit request */ - } - Sleep(100); /* otherwise pause before polling again */ - } else if (ne < 0) { - BTL_ERROR(("error polling CQ with %d: %s\n", - ne, strerror(errno))); - return OMPI_ERROR; - } - } - } - return 0; -} - -static int init_device(struct wv_context *context_arg, - struct mca_btl_wv_sa_qp_cache *cache, - uint32_t port_num) -{ - WV_ADDRESS_VECTOR aattr; - WV_PORT_ATTRIBUTES pattr; - HRESULT hr; - int i, rc; - struct wverbs_device *wvdev; - struct wverbs_context *wvcontext; - IWVProvider *provider; - - wvdev = CONTAINING_RECORD(context_arg->device, struct wverbs_device, device); - wvcontext = (struct wverbs_context*)malloc(sizeof(struct wverbs_context)); - if(wvcontext == NULL) { - return NULL; - } - memcpy(&wvcontext->device, wvdev, sizeof(struct wverbs_device)); - wvcontext->port = (struct wverbs_port*)malloc(wvdev->phys_port_cnt*sizeof(struct wverbs_port)); - WvGetObject(IID_IWVProvider,(LPVOID*)&provider); - provider->OpenDevice(wvdev->guid, &wvcontext->context.device_if); - for(i=0; i < wvdev->phys_port_cnt; i++) { - wvcontext->port[i].port_num = (uint8_t) i + 1; - } - cache->context = &wvcontext->context; - if (NULL == cache->context) { - BTL_ERROR(("error obtaining device context for %s errno says %s", - context_arg->device->name, strerror(errno))); - return OMPI_ERROR; - } - cache->device_name = strdup(cache->context->device->name); - cache->port_num = port_num; - - /* init all sl_values to be SL_NOT_PRESENT */ - memset(&cache->sl_values, SL_NOT_PRESENT, sizeof(cache->sl_values)); - - cache->next = sa_qp_cache; - sa_qp_cache = cache; - - /* allocate the protection domain for the device */ - cache->pd->context = cache->context; - cache->context->device_if->AllocateProtectionDomain(&cache->pd->handle); - if (NULL == cache->pd) { - BTL_ERROR(("error allocating protection domain for %s errno says %s", - context_arg->device->name, strerror(errno))); - return OMPI_ERROR; - } - - /* register memory region */ - cache->mr->context = cache->context; - cache->mr->pd = cache->pd; - cache->mr->addr = cache->send_recv_buffer; - cache->mr->length = sizeof(cache->send_recv_buffer); - cache->pd->handle->RegisterMemory(cache->mr->addr, cache->mr->length, - WV_ACCESS_LOCAL_WRITE|WV_ACCESS_REMOTE_WRITE, NULL, - (WV_MEMORY_KEYS *)&cache->mr->lkey); - cache->mr->rkey = ntohl(cache->mr->rkey); - if (NULL == cache->mr) { - BTL_ERROR(("error registering memory region, errno says %s", strerror(errno))); - return OMPI_ERROR; - } - - /* init the ud qp */ - rc = init_ud_qp(context_arg, cache); - if (OMPI_ERROR == rc) { - return OMPI_ERROR; - } - - hr = cache->context->device_if->QueryPort(cache->port_num, &pattr); - if (FAILED(hr)) { - BTL_ERROR(("error getting port attributes for device %s " - "port number %d errno says %s", - context_arg->device->name, - cache->port_num, strerror(errno))); - return OMPI_ERROR; - } - - /* create address handle */ - memset(&aattr, 0, sizeof(aattr)); - aattr.DLid = ntohs(pattr.SmLid); - aattr.ServiceLevel = pattr.SmSl; - aattr.PortNumber = cache->port_num; - cache->pd->handle->CreateAddressHandle(&aattr,&cache->ah->handle,&cache->ah->key); - if (NULL == cache->ah) { - BTL_ERROR(("error creating address handle: %s", strerror(errno))); - return OMPI_ERROR; - } - - memset(&(cache->rwr), 0, sizeof(cache->rwr)); - cache->rwr.num_sge = 1; - cache->rwr.sg_list = &(cache->rsge); - memset(&(cache->rsge), 0, sizeof(cache->rsge)); - cache->rsge.pAddress = (void *) - (cache->send_recv_buffer + sizeof(struct ib_mad_sa)); - cache->rsge.Length = sizeof(struct ib_mad_sa) + 40; - cache->rsge.Lkey = cache->mr->lkey; - - hr = cache->qp->handle->PostReceive(cache->rwr.wr_id, cache->rwr.sg_list, - cache->rwr.num_sge); - if (FAILED(hr)) { - BTL_ERROR(("error posing receive on QP[%x] errno says: %s [%d]", - cache->qp->qp_num, strerror(errno), errno)); - return OMPI_ERROR; - } - return 0; -} - -static int get_pathrecord_sl(struct wv_context *context_arg, - uint32_t port_num, - uint16_t lid, - uint16_t rem_lid) -{ - WV_SEND_REQUEST swr; - struct ib_mad_sa *sag, *sar; - WV_SGE ssge; - struct mca_btl_wv_sa_qp_cache *cache; - long page_size = sysconf(_SC_PAGESIZE); - int rc; - - /* search for a cached item */ - for (cache = sa_qp_cache; cache; cache = cache->next) { - if (strcmp(cache->device_name, - context_arg->device->name) == 0 - && cache->port_num == port_num) { - break; - } - } - - if (NULL == cache) { - /* init new cache */ - cache = (mca_btl_wv_sa_qp_cache*)_aligned_malloc(page_size, - sizeof(struct mca_btl_wv_sa_qp_cache)); - if(cache == NULL) { - BTL_ERROR(("error in posix_memalign SA cache")); - return OMPI_ERROR; - } - /* one time setup for each device/port combination */ - rc = init_device(context_arg, cache, port_num); - if (0 != rc) { - return rc; - } - } - - /* if the destination lid SL value is not in the cache, go get it */ - if (SL_NOT_PRESENT == cache->sl_values[rem_lid]) { - /* sag is first buffer, where we build the SA Get request to send */ - sag = (ib_mad_sa *)(cache->send_recv_buffer); - - init_sa_mad(cache, sag, &swr, &ssge, lid, rem_lid); - - /* sar is the receive buffer (40 byte GRH) */ - sar = (ib_mad_sa *)(cache->send_recv_buffer + sizeof(struct ib_mad_sa) + 40); - - rc = get_pathrecord_info(cache, sag, sar, &swr, lid, rem_lid); - if (0 != rc) { - return rc; - } - } - - /* now all we do is send back the value laying around */ - return cache->sl_values[rem_lid]; -} - diff --git a/ompi/mca/btl/wv/connect/btl_wv_connect_oob.h b/ompi/mca/btl/wv/connect/btl_wv_connect_oob.h deleted file mode 100644 index d7e1dcb159..0000000000 --- a/ompi/mca/btl/wv/connect/btl_wv_connect_oob.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef BTL_WV_CONNECT_OOB_H -#define BTL_WV_CONNECT_OOB_H - -#include "connect/connect.h" - -extern ompi_btl_wv_connect_base_component_t ompi_btl_wv_connect_oob; - -#endif diff --git a/ompi/mca/btl/wv/connect/connect.h b/ompi/mca/btl/wv/connect/connect.h deleted file mode 100644 index 8796acae4e..0000000000 --- a/ompi/mca/btl/wv/connect/connect.h +++ /dev/null @@ -1,355 +0,0 @@ -/* - * Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -/** - * @file - * - * This interface is designed to hide the back-end details of how IB - * RC connections are made from the rest of the wv BTL. There are - * module-like instances of the implemented functionality (dlopen and - * friends are not used, but all the functionality is accessed through - * struct's of function pointers, so you can swap between multiple - * different implementations at run time, just like real components). - * Hence, these entities are referred to as "Connect - * Pseudo-Components" (CPCs). - * - * The CPCs are referenced by their names (e.g., "oob", "rdma_cm"). - * - * CPCs are split into components and modules, similar to all other - * MCA frameworks in this code base. - * - * Before diving into the CPC interface, let's discuss some - * terminology and mappings of data structures: - * - * - a BTL module represents a network port (in the case of the wv - * BTL, a LID) - * - a CPC module represents one way to make connections to a BTL module - * - hence, a BTL module has potentially multiple CPC modules - * associated with it - * - an endpoint represnts a connection between a local BTL module and - * a remote BTL module (in the wv BTL, because of BSRQ, an - * endpoint can contain multiple QPs) - * - when an endpoint is created, one of the CPC modules associated - * with the local BTL is selected and associated with the endpoint - * (obviously, it is a CPC module that is common between the local - * and remote BTL modules) - * - endpoints may be created and destroyed during the MPI job - * - endpoints are created lazily, during the first communication - * between two peers - * - endpoints are destroyed when two MPI processes become - * disconnected (e.g., MPI-2 dynamics or MPI_FINALIZE) - * - hence, BTL modules and CPC modules outlive endpoints. - * Specifically, BTL modules and CPC modules live from MPI_INIT to - * MPI_FINALIZE. endpoints come and go as MPI semantics demand it. - * - therefore, CPC modules need to cache information on endpoints that - * are specific to that connection. - * - * Component interface: - * - * - component_register(): The wv BTL's component_open() function - * calls the connect_base_register() function, which scans all - * compiled-in CPC's. If they have component_register() functions, - * they are called (component_register() functions are only allowed to - * register MCA parameters). - * - * NOTE: The connect_base_register() function will process the - * btl_wv_cpc_include and btl_wv_cpc_exclude MCA parameters - * and automatically include/exclude CPCs as relevant. If a CPC is - * excluded, none of its other interface functions will be invoked for - * the duration of the process. - * - * - component_init(): The wv BTL's component_init() function - * calls connect_base_init(), which will invoke this query function on - * each CPC to see if it wants to run at all. CPCs can gracefully - * remove themselves from consideration in this process by returning - * OMPI_ERR_NOT_SUPPORTED. - * - * - component_query(): The wv BTL's init_one_port() calls the - * connect_base_select_for_local_port() function, which, for each LID - * on that port, calls the component_query() function on every - * available CPC on that LID. This function is intended to see if a - * CPC can run on a sepcific wv BTL module (i.e., LID). If it - * can, the CPC is supposed to create a CPC module that is specific to - * that BTL/LID and return it. If it cannot, it should return - * OMPI_ERR_NOT_SUPPORTED and be gracefully skipped for this - * OpenFabrics port. - * - * component_finalize(): The wv BTL's component_close() function - * calls connect_base_finalize(), which, in turn, calls the - * component_finalize() function on all available CPCs. Note that all - * CPC modules will have been finalized by this point; the CPC - * component_finalize() function is a chance for the CPC to clean up - * any component-specific resources. - * - * Module interface: - * - * cbm_component member: A pointer pointing to the single, global - * instance of the CPC component. This member is used for creating a - * unique index representing the modules' component so that it can be - * shared with remote peer processes. - * - * cbm_priority member: An integer between 0 and 100, inclusive, - * representing the priority of this CPC. - * - * cbm_modex_message member: A pointer to a blob buffer that will be - * included in the modex message for this port for this CPC (it is - * assumed that this blob is a) only understandable by the - * corresponding CPC in the peer process, and b) contains specific - * addressing/contact information for *this* port's CPC module). - * - * cbm_modex_message_len member: The length of the cbm_modex_message - * blob, in bytes. - * - * cbm_endpoint_init(): Called during endpoint creation, allowing a - * CPC module to cache information on the endpoint. A pointer to the - * endpoint's CPC module is already cached on the endpoint. - * - * cbm_start_connect(): initiate a connection to a remote peer. The - * CPC is responsible for setting itself up for asyncronous operation - * for progressing the outgoing connection request. - * - * cbm_endpoint_finalize(): Called during the endpoint destrouction, - * allowing the CPC module to destroy anything that it cached on the - * endpoint. - * - * cbm_finalize(): shut down all asynchronous handling and clean up - * any state that was setup for this CPC module/BTL. Some CPCs setup - * asynchronous support on a per-HCA/NIC basis (vs. per-port/LID). It - * is the reponsibility of the CPC to figure out such issues (e.g., - * via reference counting) -- there is no notification from the - * upper-level BTL about when an entire HCA/NIC is no longer being - * used. There is only this function, which tells when a specific - * CPC/BTL module is no longer being used. - * - * cbm_uses_cts: a bool that indicates whether the CPC will use the - * CTS protocol or not. - * - if true: the CPC will post the fragment on - * endpoint->endpoint_cts_frag as a receive buffer and will *not* - * call ompi_btl_wv_post_recvs(). - * - if false: the CPC will call ompi_btl_wv_post_recvs() before - * calling ompi_btl_wv_cpc_complete(). - * - * There are two functions in the main wv BTL that the CPC may - * call: - * - * - ompi_btl_wv_post_recvs(endpoint): once a QP is locally - * connected to the remote side (but we don't know if the remote side - * is connected to us yet), this function is invoked to post buffers - * on the QP, setup credits for the endpoint, etc. This function is - * *only* invoked if the CPC's cbm_uses_cts is false. - * - * - ompi_btl_wv_cpc_complete(endpoint): once that a CPC knows - * that a QP is connected on *both* sides, this function is invoked to - * tell the main wv BTL "ok, you can use this connection now." - * (e.g., the main wv BTL will either invoke the CTS protocol or - * start sending out fragments that were queued while the connection - * was establishing, etc.). - */ -#ifndef BTL_WV_CONNECT_H -#define BTL_WV_CONNECT_H - -BEGIN_C_DECLS - -#define BCF_MAX_NAME 64 - -/** - * Must forward declare these structs to avoid include file loops. - */ -struct mca_btl_wv_hca_t; -struct mca_btl_wv_module_t; -struct mca_btl_base_endpoint_t; - -/** - * This is struct is defined below - */ -struct ompi_btl_wv_connect_base_module_t; - -/************************************************************************/ - -/** - * Function to register MCA params in the connect functions. It - * returns no value, so it cannot fail. - */ -typedef void (*ompi_btl_wv_connect_base_component_register_fn_t)(void); - -/** - * This function is invoked once by the wv BTL component during - * startup. It is intended to have CPC component-wide startup. - * - * Return value: - * - * - OMPI_SUCCESS: this CPC component will be used in selection during - * this process. - * - * - OMPI_ERR_NOT_SUPPORTED: this CPC component will be silently - * ignored in this process. - * - * - Other OMPI_ERR_* values: the error will be propagated upwards, - * likely causing a fatal error (and/or the wv BTL component - * being ignored). - */ -typedef int (*ompi_btl_wv_connect_base_component_init_fn_t)(void); - -/** - * Query the CPC to see if it wants to run on a specific port (i.e., a - * specific BTL module). If the component init function previously - * returned OMPI_SUCCESS, this function is invoked once per BTL module - * creation (i.e., for each port found by an MPI process). If this - * CPC wants to be used on this BTL module, it returns a CPC module - * that is specific to this BTL module. - * - * The BTL module in question is passed to the function; all of its - * attributes can be used to query to see if it's eligible for this - * CPC. - * - * If it is eligible, the CPC is responsible for creating a - * corresponding CPC module, filling in all the relevant fields on the - * modules, and for setting itself up to run (per above) and returning - * a CPC module (this is effectively the "module_init" function). - * Note that the module priority must be between 0 and 100 - * (inclusive). When multiple CPCs are eligible for a single module, - * the CPC with the highest priority will be used. - * - * Return value: - * - * - OMPI_SUCCESS if this CPC is eligible for and was able to be setup - * for this BTL module. It is assumed that the CPC is now completely - * setup to run on this wv module (per description above). - * - * - OMPI_ERR_NOT_SUPPORTED if this CPC cannot support this BTL - * module. This is not an error; it's just the CPC saying "sorry, I - * cannot support this BTL module." - * - * - Other OMPI_ERR_* code: an error occurred. - */ -typedef int (*ompi_btl_wv_connect_base_func_component_query_t) - (struct mca_btl_wv_module_t *btl, - struct ompi_btl_wv_connect_base_module_t **cpc); - -/** - * This function is invoked once by the wv BTL component during - * shutdown. It is intended to have CPC component-wide shutdown. - */ -typedef int (*ompi_btl_wv_connect_base_component_finalize_fn_t)(void); - -/** - * CPC component struct - */ -struct ompi_btl_wv_connect_base_component_t { - /** Name of this set of connection functions */ - char cbc_name[BCF_MAX_NAME]; - - /** Register function. Can be NULL. */ - ompi_btl_wv_connect_base_component_register_fn_t cbc_register; - - /** CPC component init function. Can be NULL. */ - ompi_btl_wv_connect_base_component_init_fn_t cbc_init; - - /** Query the CPC component to get a CPC module corresponding to - an wv BTL module. Cannot be NULL. */ - ompi_btl_wv_connect_base_func_component_query_t cbc_query; - - /** CPC component finalize function. Can be NULL. */ - ompi_btl_wv_connect_base_component_finalize_fn_t cbc_finalize; -}; -/** - * Convenience typedef - */ -typedef struct ompi_btl_wv_connect_base_component_t ompi_btl_wv_connect_base_component_t; - -/************************************************************************/ - -/** - * Function called when an endpoint has been created and has been - * associated with a CPC. - */ -typedef int (*ompi_btl_wv_connect_base_module_endpoint_init_fn_t) - (struct mca_btl_base_endpoint_t *endpoint); - -/** - * Function to initiate a connection to a remote process. - */ -typedef int (*ompi_btl_wv_connect_base_module_start_connect_fn_t) - (struct ompi_btl_wv_connect_base_module_t *cpc, - struct mca_btl_base_endpoint_t *endpoint); - -/** - * Function called when an endpoint is being destroyed. - */ -typedef int (*ompi_btl_wv_connect_base_module_endpoint_finalize_fn_t) - (struct mca_btl_base_endpoint_t *endpoint); - -/** - * Function to finalize the CPC module. It is called once when the - * CPC module's corresponding wv BTL module is being finalized. - */ -typedef int (*ompi_btl_wv_connect_base_module_finalize_fn_t) - (struct mca_btl_wv_module_t *btl, - struct ompi_btl_wv_connect_base_module_t *cpc); - -/** - * Meta data about a CPC module. This is in a standalone struct - * because it is used in both the CPC module struct and the - * wv_btl_proc_t struct to hold information received from the - * modex. - */ -typedef struct ompi_btl_wv_connect_base_module_data_t { - /** Pointer back to the component. Used by the base and wv - btl to calculate this module's index for the modex. */ - ompi_btl_wv_connect_base_component_t *cbm_component; - - /** Priority of the CPC module (must be >=0 and <=100) */ - uint8_t cbm_priority; - - /** Blob that the CPC wants to include in the wv modex message - for a specific port, or NULL if the CPC does not want to - include a message in the modex. */ - void *cbm_modex_message; - - /** Length of the cbm_modex_message blob (0 if - cbm_modex_message==NULL). The message is intended to be short - (because the size of the modex broadcast is a function of - sum(cbm_modex_message_len[i]) for - i=(0...total_num_ports_in_MPI_job) -- e.g., IBCM imposes its - own [very short] limits (per IBTA volume 1, chapter 12). */ - uint8_t cbm_modex_message_len; -} ompi_btl_wv_connect_base_module_data_t; - -/** - * Struct for holding CPC module and associated meta data - */ -typedef struct ompi_btl_wv_connect_base_module_t { - /** Meta data about the module */ - ompi_btl_wv_connect_base_module_data_t data; - - /** Endpoint initialization function */ - ompi_btl_wv_connect_base_module_endpoint_init_fn_t cbm_endpoint_init; - - /** Connect function */ - ompi_btl_wv_connect_base_module_start_connect_fn_t cbm_start_connect; - - /** Endpoint finalization function */ - ompi_btl_wv_connect_base_module_endpoint_finalize_fn_t cbm_endpoint_finalize; - - /** Finalize the cpc module */ - ompi_btl_wv_connect_base_module_finalize_fn_t cbm_finalize; - - /** Whether this module will use the CTS protocol or not. This - directly states whether this module will call - mca_btl_wv_endpoint_post_recvs() or not: true = this - module will *not* call _post_recvs() and instead will post the - receive buffer provided at endpoint->endpoint_cts_frag on qp - 0. */ - bool cbm_uses_cts; -} ompi_btl_wv_connect_base_module_t; - -END_C_DECLS - -#endif diff --git a/ompi/mca/btl/wv/connect/help-mpi-btl-wv-cpc-base.txt b/ompi/mca/btl/wv/connect/help-mpi-btl-wv-cpc-base.txt deleted file mode 100644 index 5db2abddf3..0000000000 --- a/ompi/mca/btl/wv/connect/help-mpi-btl-wv-cpc-base.txt +++ /dev/null @@ -1,42 +0,0 @@ -# -*- text -*- -# -# Copyright (c) 2008-2009 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# -# This is the US/English help file for Open MPI's OpenFabrics IB CPC -# support. -# -[no cpcs for port] -No OpenFabrics connection schemes reported that they were able to be -used on a specific port. As such, the openib BTL (OpenFabrics -support) will be disabled for this port. - - Local host: %s - Local device: %s - Local port: %d - CPCs attempted: %s -# -[cpc name not found] -An invalid CPC name was specified via the btl_openib_cpc_%s MCA -parameter. - - Local host: %s - btl_openib_cpc_%s value: %s - Invalid name: %s - All possible valid names: %s -# -[inline truncated] -WARNING: The btl_openib_max_inline_data MCA parameter was used to -specify how much inline data should be used, but a device reduced this -value. This is not an error; it simply means that your run will use -a smaller inline data value than was requested. - - Local host: %s - Local device: %s - Local port: %d - Requested value: %d - Value used by device: %d diff --git a/ompi/mca/btl/wv/help-mpi-btl-wv.txt b/ompi/mca/btl/wv/help-mpi-btl-wv.txt deleted file mode 100644 index 91e385bf9f..0000000000 --- a/ompi/mca/btl/wv/help-mpi-btl-wv.txt +++ /dev/null @@ -1,662 +0,0 @@ -# -*- text -*- -# -# 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) 2006-2009 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2007-2009 Mellanox Technologies. All rights reserved. -# Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# -# This is the US/English help file for Open MPI's OpenFabrics support -# (the openib BTL). -# -[ini file:file not found] -The Open MPI OpenFabrics (openib) BTL component was unable to find or -read an INI file that was requested via the -btl_openib_device_param_files MCA parameter. Please check this file -and/or modify the btl_openib_evice_param_files MCA parameter: - - %s -# -[ini file:not in a section] -In parsing the OpenFabrics (openib) BTL parameter file, values were -found that were not in a valid INI section. These values will be -ignored. Please re-check this file: - - %s - -At line %d, near the following text: - - %s -# -[ini file:unexpected token] -In parsing the OpenFabrics (openib) BTL parameter file, unexpected -tokens were found (this may cause significant portions of the INI file -to be ignored). Please re-check this file: - - %s - -At line %d, near the following text: - - %s -# -[ini file:expected equals] -In parsing the OpenFabrics (openib) BTL parameter file, unexpected -tokens were found (this may cause significant portions of the INI file -to be ignored). An equals sign ("=") was expected but was not found. -Please re-check this file: - - %s - -At line %d, near the following text: - - %s -# -[ini file:expected newline] -In parsing the OpenFabrics (openib) BTL parameter file, unexpected -tokens were found (this may cause significant portions of the INI file -to be ignored). A newline was expected but was not found. Please -re-check this file: - - %s - -At line %d, near the following text: - - %s -# -[ini file:unknown field] -In parsing the OpenFabrics (openib) BTL parameter file, an -unrecognized field name was found. Please re-check this file: - - %s - -At line %d, the field named: - - %s - -This field, and any other unrecognized fields, will be skipped. -# -[no device params found] -WARNING: No preset parameters were found for the device that Open MPI -detected: - - Local host: %s - Device name: %s - Device vendor ID: 0x%04x - Device vendor part ID: %d - -Default device parameters will be used, which may result in lower -performance. You can edit any of the files specified by the -btl_openib_device_param_files MCA parameter to set values for your -device. - -NOTE: You can turn off this warning by setting the MCA parameter - btl_openib_warn_no_device_params_found to 0. -# -[init-fail-no-mem] -The OpenFabrics (openib) BTL failed to initialize while trying to -allocate some locked memory. This typically can indicate that the -memlock limits are set too low. For most HPC installations, the -memlock limits should be set to "unlimited". The failure occured -here: - - Local host: %s - OMPI source: %s:%d - Function: %s() - Device: %s - Memlock limit: %s - -You may need to consult with your system administrator to get this -problem fixed. This FAQ entry on the Open MPI web site may also be -helpful: - - http://www.open-mpi.org/faq/?category=openfabrics#ib-locked-pages -# -[init-fail-create-q] -The OpenFabrics (openib) BTL failed to initialize while trying to -create an internal queue. This typically indicates a failed -OpenFabrics installation, faulty hardware, or that Open MPI is -attempting to use a feature that is not supported on your hardware -(i.e., is a shared receive queue specified in the -btl_openib_receive_queues MCA parameter with a device that does not -support it?). The failure occured here: - - Local host: %s - OMPI source: %s:%d - Function: %s() - Error: %s (errno=%d) - Device: %s - -You may need to consult with your system administrator to get this -problem fixed. -# -[pp rnr retry exceeded] -The OpenFabrics "receiver not ready" retry count on a per-peer -connection between two MPI processes has been exceeded. In general, -this should not happen because Open MPI uses flow control on per-peer -connections to ensure that receivers are always ready when data is -sent. - -This error usually means one of two things: - -1. There is something awry within the network fabric itself. -2. A bug in Open MPI has caused flow control to malfunction. - -#1 is usually more likely. You should note the hosts on which this -error has occurred; it has been observed that rebooting or removing a -particular host from the job can sometimes resolve this issue. - -Below is some information about the host that raised the error and the -peer to which it was connected: - - Local host: %s - Local device: %s - Peer host: %s - -You may need to consult with your system administrator to get this -problem fixed. -# -[srq rnr retry exceeded] -The OpenFabrics "receiver not ready" retry count on a shared receive -queue or XRC receive queue has been exceeded. This error can occur if -the mca_btl_openib_ib_rnr_retry is set to a value less than 7 (where 7 -the default value and effectively means "infinite retry"). If your -rnr_retry value is 7, there might be something awry within the network -fabric itself. In this case, you should note the hosts on which this -error has occurred; it has been observed that rebooting or removing a -particular host from the job can sometimes resolve this issue. - -Below is some information about the host that raised the error and the -peer to which it was connected: - - Local host: %s - Local device: %s - Peer host: %s - -You may need to consult with your system administrator to get this -problem fixed. -# -[pp retry exceeded] -The InfiniBand retry count between two MPI processes has been -exceeded. "Retry count" is defined in the InfiniBand spec 1.2 -(section 12.7.38): - - The total number of times that the sender wishes the receiver to - retry timeout, packet sequence, etc. errors before posting a - completion error. - -This error typically means that there is something awry within the -InfiniBand fabric itself. You should note the hosts on which this -error has occurred; it has been observed that rebooting or removing a -particular host from the job can sometimes resolve this issue. - -Two MCA parameters can be used to control Open MPI's behavior with -respect to the retry count: - -* btl_openib_ib_retry_count - The number of times the sender will - attempt to retry (defaulted to 7, the maximum value). -* btl_openib_ib_timeout - The local ACK timeout parameter (defaulted - to 20). The actual timeout value used is calculated as: - - 4.096 microseconds * (2^btl_openib_ib_timeout) - - See the InfiniBand spec 1.2 (section 12.7.34) for more details. - -Below is some information about the host that raised the error and the -peer to which it was connected: - - Local host: %s - Local device: %s - Peer host: %s - -You may need to consult with your system administrator to get this -problem fixed. -# -[no active ports found] -WARNING: There is at least one OpenFabrics device found but there are -no active ports detected (or Open MPI was unable to use them). This -is most certainly not what you wanted. Check your cables, subnet -manager configuration, etc. The openib BTL will be ignored for this -job. - - Local host: %s -# -[error in device init] -WARNING: There was an error initializing an OpenFabrics device. - - Local host: %s - Local device: %s -# -[no devices right type] -WARNING: No OpenFabrics devices of the right type were found within -the requested bus distance. The OpenFabrics BTL will be ignored for -this run. - - Local host: %s - Requested type: %s - -If the "requested type" is "", this usually means that *no* -OpenFabrics devices were found within the requested bus distance. -# -[default subnet prefix] -WARNING: There are more than one active ports on host '%s', but the -default subnet GID prefix was detected on more than one of these -ports. If these ports are connected to different physical IB -networks, this configuration will fail in Open MPI. This version of -Open MPI requires that every physically separate IB subnet that is -used between connected MPI processes must have different subnet ID -values. - -Please see this FAQ entry for more details: - - http://www.open-mpi.org/faq/?category=openfabrics#ofa-default-subnet-gid - -NOTE: You can turn off this warning by setting the MCA parameter - btl_openib_warn_default_gid_prefix to 0. -# -[ibv_fork requested but not supported] -WARNING: fork() support was requested for the OpenFabrics (openib) -BTL, but it is not supported on the host %s. Deactivating the -OpenFabrics BTL. -# -[ibv_fork_init fail] -WARNING: fork() support was requested for the OpenFabrics (openib) -BTL, but the library call ibv_fork_init() failed on the host %s. -Deactivating the OpenFabrics BTL. -# -[wrong buffer alignment] -Wrong buffer alignment %d configured on host '%s'. Should be bigger -than zero and power of two. Use default %d instead. -# -[of error event] -The OpenFabrics stack has reported a network error event. Open MPI -will try to continue, but your job may end up failing. - - Local host: %s - MPI process PID: %d - Error number: %d (%s) - -This error may indicate connectivity problems within the fabric; -please contact your system administrator. -# -[of unknown event] -The OpenFabrics stack has reported an unknown network error event. -Open MPI will try to continue, but the job may end up failing. - - Local host: %s - MPI process PID: %d - Error number: %d - -This error may indicate that you are using an OpenFabrics library -version that is not currently supported by Open MPI. You might try -recompiling Open MPI against your OpenFabrics library installation to -get more information. -# -[specified include and exclude] -ERROR: You have specified more than one of the btl_openib_if_include, -btl_openib_if_exclude, btl_openib_ipaddr_include, or btl_openib_ipaddr_exclude -MCA parameters. These four parameters are mutually exclusive; you can only -specify one. - -For reference, the values that you specified are: - - btl_openib_if_include: %s - btl_openib_if_exclude: %s - btl_openib_ipaddr_include: %s - btl_openib_ipaddr_exclude: %s -# -[nonexistent port] -WARNING: One or more nonexistent OpenFabrics devices/ports were -specified: - - Host: %s - MCA parameter: mca_btl_if_%sclude - Nonexistent entities: %s - -These entities will be ignored. You can disable this warning by -setting the btl_openib_warn_nonexistent_if MCA parameter to 0. -# -[invalid mca param value] -WARNING: An invalid MCA parameter value was found for the OpenFabrics -(openib) BTL. - - Problem: %s - Resolution: %s -# -[no qps in receive_queues] -WARNING: No queue pairs were defined in the btl_openib_receive_queues -MCA parameter. At least one queue pair must be defined. The -OpenFabrics (openib) BTL will therefore be deactivated for this run. - - Local host: %s -# -[invalid qp type in receive_queues] -WARNING: An invalid queue pair type was specified in the -btl_openib_receive_queues MCA parameter. The OpenFabrics (openib) BTL -will be deactivated for this run. - -Valid queue pair types are "P" for per-peer and "S" for shared receive -queue. - - Local host: %s - btl_openib_receive_queues: %s - Bad specification: %s -# -[invalid pp qp specification] -WARNING: An invalid per-peer receive queue specification was detected -as part of the btl_openib_receive_queues MCA parameter. The -OpenFabrics (openib) BTL will therefore be deactivated for this run. - -Per-peer receive queues require between 2 and 5 parameters: - - 1. Buffer size in bytes (mandatory) - 2. Number of buffers (mandatory) - 3. Low buffer count watermark (optional; defaults to (num_buffers / 2)) - 4. Credit window size (optional; defaults to (low_watermark / 2)) - 5. Number of buffers reserved for credit messages (optional; - defaults to (num_buffers*2-1)/credit_window) - - Example: P,128,256,128,16 - - 128 byte buffers - - 256 buffers to receive incoming MPI messages - - When the number of available buffers reaches 128, re-post 128 more - buffers to reach a total of 256 - - If the number of available credits reaches 16, send an explicit - credit message to the sender - - Defaulting to ((256 * 2) - 1) / 16 = 31; this many buffers are - reserved for explicit credit messages - - Local host: %s - Bad queue specification: %s -# -[invalid srq specification] -WARNING: An invalid shared receive queue specification was detected as -part of the btl_openib_receive_queues MCA parameter. The OpenFabrics -(openib) BTL will therefore be deactivated for this run. - -Shared receive queues can take between 2 and 6 parameters: - - 1. Buffer size in bytes (mandatory) - 2. Number of buffers (mandatory) - 3. Low buffer count watermark (optional; defaults to (num_buffers / 2)) - 4. Maximum number of outstanding sends a sender can have (optional; - defaults to (low_watermark / 4) - 5. Start value of number of receive buffers that will be pre-posted (optional; defaults to (num_buffers / 4)) - 6. Event limit buffer count watermark (optional; defaults to (3/16 of start value of buffers number)) - - Example: S,1024,256,128,32,32,8 - - 1024 byte buffers - - 256 buffers to receive incoming MPI messages - - When the number of available buffers reaches 128, re-post 128 more - buffers to reach a total of 256 - - A sender will not send to a peer unless it has less than 32 - outstanding sends to that peer. - - 32 receive buffers will be preposted. - - When the number of unused shared receive buffers reaches 8, more - buffers (32 in this case) will be posted. - - Local host: %s - Bad queue specification: %s -# -[rd_num must be > rd_low] -WARNING: The number of buffers for a queue pair specified via the -btl_openib_receive_queues MCA parameter must be greater than the low -buffer count watermark. The OpenFabrics (openib) BTL will therefore -be deactivated for this run. - - Local host: %s - Bad queue specification: %s -# -[rd_num must be >= rd_init] -WARNING: The number of buffers for a queue pair specified via the -btl_openib_receive_queues MCA parameter (parameter #2) must be -greater or equal to the initial SRQ size (parameter #5). -The OpenFabrics (openib) BTL will therefore be deactivated for this run. - - Local host: %s - Bad queue specification: %s -# -[srq_limit must be > rd_num] -WARNING: The number of buffers for a queue pair specified via the -btl_openib_receive_queues MCA parameter (parameter #2) must be greater than the limit -buffer count (parameter #6). The OpenFabrics (openib) BTL will therefore -be deactivated for this run. - - Local host: %s - Bad queue specification: %s -# -[biggest qp size is too small] -WARNING: The largest queue pair buffer size specified in the -btl_openib_receive_queues MCA parameter is smaller than the maximum -send size (i.e., the btl_openib_max_send_size MCA parameter), meaning -that no queue is large enough to receive the largest possible incoming -message fragment. The OpenFabrics (openib) BTL will therefore be -deactivated for this run. - - Local host: %s - Largest buffer size: %d - Maximum send fragment size: %d -# -[biggest qp size is too big] -WARNING: The largest queue pair buffer size specified in the -btl_openib_receive_queues MCA parameter is larger than the maximum -send size (i.e., the btl_openib_max_send_size MCA parameter). This -means that memory will be wasted because the largest possible incoming -message fragment will not fill a buffer allocated for incoming -fragments. - - Local host: %s - Largest buffer size: %d - Maximum send fragment size: %d -# -[freelist too small] -WARNING: The maximum freelist size that was specified was too small -for the requested receive queue sizes. The maximum freelist size must -be at least equal to the sum of the largest number of buffers posted -to a single queue plus the corresponding number of reserved/credit -buffers for that queue. It is suggested that the maximum be quite a -bit larger than this for performance reasons. - - Local host: %s - Specified freelist size: %d - Minimum required freelist size: %d -# -[XRC with PP or SRQ] -WARNING: An invalid queue pair type was specified in the -btl_openib_receive_queues MCA parameter. The OpenFabrics (openib) BTL -will be deactivated for this run. - -Note that XRC ("X") queue pairs cannot be used with per-peer ("P") and -SRQ ("S") queue pairs. This restriction may be removed in future -versions of Open MPI. - - Local host: %s - btl_openib_receive_queues: %s -# -[XRC with BTLs per LID] -WARNING: An invalid queue pair type was specified in the -btl_openib_receive_queues MCA parameter. The OpenFabrics (openib) BTL -will be deactivated for this run. - -XRC ("X") queue pairs can not be used when (btls_per_lid > 1). This -restriction may be removed in future versions of Open MPI. - - Local host: %s - btl_openib_receive_queues: %s - btls_per_lid: %d -# -[XRC on device without XRC support] -WARNING: You configured the OpenFabrics (openib) BTL to run with %d -XRC queues. The device %s does not have XRC capabilities; the -OpenFabrics btl will ignore this device. If no devices are found with -XRC capabilities, the OpenFabrics BTL will be disabled. - - Local host: %s -# -[No XRC support] -WARNING: The Open MPI build was compiled without XRC support, but XRC -("X") queues were specified in the btl_openib_receive_queues MCA -parameter. The OpenFabrics (openib) BTL will therefore be deactivated -for this run. - - Local host: %s - btl_openib_receive_queues: %s -# -[XRC with wrong OOB] -WARNING: You must use the "xoob" OpenFabrics (openib) connection -manager when XRC ("X") queues are specified in the -btl_openib_receive_queues MCA parameter. Either remove the X queues -from btl_openib_receive_queues or ensure to use the "xoob" connection -manager by setting btl_openib_connect to "xoob". The OpenFabrics BTL -will therefore be deactivated for this run. - - Local host: %s - Number of XRC RQs: %d -# -[SRQ or PP with wrong OOB] -WARNING: You must use the "oob" OpenFabrics (openib) connection -manager when PP ("P") or SRQ ("S") queues are specified in the -btl_openib_receive_queues MCA parameter. Either remove the P or S -queues from btl_openib_receive_queues or ensure to use the "oob" -connection manager by setting btl_openib_connect to "oob". The -OpenFabrics BTL will therefore be deactivated for this run. - - Local host: %s - Number of SRQs: %d - Number of PPRQs: %d -# -[non optimal rd_win] -WARNING: rd_win specification is non optimal. For maximum performance it is -advisable to configure rd_win bigger than (rd_num - rd_low), but currently -rd_win = %d and (rd_num - rd_low) = %d. -# -[apm without lmc] -WARNING: You can't enable APM support with LMC bit configured to 0. -APM support will be disabled. -# -[apm with wrong lmc] -Can not provide %d alternative paths with LMC bit configured to %d. -# -[apm not enough ports] -WARNING: For APM over ports ompi require at least 2 active ports and -only single active port was found. Disabling APM over ports -# -[locally conflicting receive_queues] -Open MPI detected two devices on a single server that have different -"receive_queues" parameter values (in the openib BTL). Open MPI -currently only supports one OpenFabrics receive_queues value in an MPI -job, even if you have different types of OpenFabrics adapters on the -same host. - -Device 2 (in the details shown below) will be ignored for the duration -of this MPI job. - -You can fix this issue by one or more of the following: - - 1. Set the MCA parameter btl_openib_receive_queues to a value that - is usable by all the OpenFabrics devices that you will use. - 2. Use the btl_openib_if_include or btl_openib_if_exclue MCA - parameters to select exactly which OpenFabrics devices to use in - your MPI job. - -Finally, note that the "receive_queues" values may have been set by -the Open MPI device default settings file. You may want to look in -this file and see if your devices are getting receive_queues values -from this file: - - %s/mca-btl-openib-device-params.ini - -Here is more detailed information about the recieive_queus value -conflict: - - Local host: %s - Device 1: %s (vendor 0x%x, part ID %d) - Receive queues: %s - Device 2: %s (vendor 0x%x, part ID %d) - Receive queues: %s -# -[eager RDMA and progress threads] -WARNING: The openib BTL was directed to use "eager RDMA" for short -messages, but the openib BTL was compiled with progress threads -support. Short eager RDMA is not yet supported with progress threads; -its use has been disabled in this job. - -This is a warning only; you job will attempt to continue. -# -[ptmalloc2 with no threads] -WARNING: It appears that ptmalloc2 was compiled into this process via --lopenmpi-malloc, but there is no thread support. This combination is -known to cause memory corruption in the openib BTL. Open MPI is -therefore disabling the use of the openib BTL in this process for this -run. - - Local host: %s -# -[cannot raise btl error] -The OpenFabrics driver in Open MPI tried to raise a fatal error, but -failed. Hopefully there was an error message before this one that -gave some more detailed information. - - Local host: %s - Source file: %s - Source line: %d - -Your job is now going to abort, sorry. -# -[no iwarp support] -Open MPI does not support iWARP devices with this version of OFED. -You need to upgrade to a later version of OFED (1.3 or later) for Open -MPI to support iWARP devices. - -(This message is being displayed because you told Open MPI to use -iWARP devices via the btl_openib_device_type MCA parameter) -# -[invalid ipaddr_inexclude] -WARNING: An invalid value was given for btl_openib_ipaddr_%s. This -value will be ignored. - - Local host: %s - Value: %s - Message: %s -# -[unsupported queues configuration] -The Open MPI receive queue configuration for the OpenFabrics devices -on two nodes are incompatible, meaning that MPI processes on two -specific nodes were unable to communicate with each other. This -generally happens when you are using OpenFabrics devices from -different vendors on the same network. You should be able to use the -mca_btl_openib_receive_queues MCA parameter to set a uniform receive -queue configuration for all the devices in the MPI job, and therefore -be able to run successfully. - - Local host: %s - Local adapter: %s (vendor 0x%x, part ID %d) - Local queues: %s - - Remote host: %s - Remote adapter: (vendor 0x%x, part ID %d) - Remote queues: %s -# -[conflicting transport types] -Open MPI detected two different OpenFabrics transport types in the same Infiniband network. -Such mixed network trasport configuration is not supported by Open MPI. - - Local host: %s - Local adapter: %s (vendor 0x%x, part ID %d) - Local transport type: %s - - Remote host: %s - Remote Adapter: (vendor 0x%x, part ID %d) - Remote transport type: %s diff --git a/ompi/mca/btl/wv/mca-btl-wv-device-params.ini b/ompi/mca/btl/wv/mca-btl-wv-device-params.ini deleted file mode 100644 index 15ce262243..0000000000 --- a/ompi/mca/btl/wv/mca-btl-wv-device-params.ini +++ /dev/null @@ -1,253 +0,0 @@ -# -# Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2006-2008 Mellanox Technologies. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# - -# This is the default NIC/HCA parameters file for Open MPI's OpenIB -# BTL. If NIC/HCA vendors wish to add their respective values into -# this file (that is distributed with Open MPI), please contact the -# Open MPI development team. See http://www.open-mpi.org/ for -# details. - -# This file is in the "ini" style, meaning that it has sections -# identified section names enclosed in square brackets (e.g., -# "[Section name]") followed by "key = value" pairs indicating values -# for a specific NIC/HCA vendor and model. NICs/HCAs are identified -# by their vendor ID and vendor part ID, which can be obtained by -# running the diagnostic utility command "ibv_devinfo". The fields -# "vendor_id" and "vendor_part"id" are the vendor ID and vendor part -# ID, respectively. - -# The sections in this file only accept a few fields: - -# vendor_id: a comma-delimited list of integers of NIC/HCA vendor IDs, -# expressed either in decimal or hexidecimal (e.g., "13" or "0xd"). -# Individual values can be taken directly from the output of -# "ibv_devinfo". NIC/HCA vendor ID's correspond to IEEE OUI's, for -# which you can find the canonical list here: -# http://standards.ieee.org/regauth/oui/. Example: -# -# vendor_id = 0x05ad -# -# Note: Several vendors resell Mellanox hardware and put their own firmware -# on the cards, therefore overriding the default Mellanox vendor ID. -# -# Mellanox 0x02c9 -# Cisco 0x05ad -# Silverstorm 0x066a -# Voltaire 0x08f1 -# HP 0x1708 -# Sun 0x03ba - -# vendor_part_id: a comma-delimited list of integers of different -# NIC/HCA models from a single vendor, expressed in either decimal or -# hexidecimal (e.g., "13" or "0xd"). Individual values can be -# obtained from the output of the "ibv_devinfo". Example: -# -# vendor_part_id = 25208,25218 - -# mtu: an integer indicating the maximum transfer unit (MTU) to be -# used with this NIC/HCA. The effective MTU will be the minimum of an -# NIC's/HCA's MTU value and its peer NIC's/HCA's MTU value. Valid -# values are 256, 512, 1024, 2048, and 4096. Example: -# -# mtu = 1024 - -# use_eager_rdma: an integer indicating whether RDMA should be used -# for eager messages. 0 values indicate "no" (false); non-zero values -# indicate "yes" (true). This flag should only be enabled for -# NICs/HCAs that can provide guarantees about ordering of data in -# memory -- that the last byte of an incoming RDMA write will always -# be written last. Certain cards cannot provide this guarantee, while -# others can. - -# use_eager_rdma = 1 - -# receive_queues: a list of "bucket shared receive queues" (BSRQ) that -# are opened between MPI process peer pairs for point-to-point -# communications of messages shorter than the total length required -# for RDMA transfer. The use of multiple RQs, each with different -# sized posted receive buffers can allow [much] better registered -# memory utilization -- MPI messages are sent on the QP with the -# smallest buffer size that will fit the message. Note that flow -# control messages are always sent across the QP with the smallest -# buffer size. Also note that the buffers *must* be listed in -# increasing buffer size. This parameter matches the -# mca_btl_openib_receive_queues MCA parameter; see the ompi_info help -# message and FAQ for a description of its values. BSRQ -# specifications are found in this precedence: - -# highest: specifying the mca_btl_openib_receive_queues MCA param -# next: finding a value in this file -# lowest: using the default mca_btl_openib_receive_queues MCA param value - -# receive_queues = P,128,256,192,128:S,65536,256,192,128 - -# max_inline_data: an integer specifying the maximum inline data (in -# bytes) supported by the device. -1 means to use a run-time probe to -# figure out the maximum value supported by the device. - -# max_inline_data = 1024 - -# rdmacm_reject_causes_connect_error: a boolean indicating whether -# when an RDMA CM REJECT is issued on the device, instead of getting -# the expected REJECT event back, you might get a CONNECT_ERROR event. -# Open MPI uses RDMA CM REJECT messages in its normal wireup -# procedure; some connections are *expected* to be rejected. However, -# with some older drivers, if process A issues a REJECT, process B -# will receive a CONNECT_ERROR event instead of a REJECT event. So if -# this flag is set to true and we receive a CONNECT_ERROR event on a -# connection where we are expecting a REJECT, then just treat the -# CONNECT_ERROR exactly as we would have treated the REJECT. Setting -# this flag to true allows Open MPI to work around the behavior -# described above. It is [mostly] safe to set this flag to true even -# after a driver has been fixed; the scope of where this flag is used -# is small enough that it *shouldn't* mask real CONNECT_ERROR events. - -# rdmacm_reject_causes_connect_error = 1 - -############################################################################ - -[default] -# These are the default values, identified by the vendor and part ID -# numbers of 0 and 0. If queried NIC/HCA does not return vendor and -# part ID numbers that match any of the sections in this file, the -# values in this section are used. Vendor IDs and part IDs can be hex -# or decimal. -vendor_id = 0 -vendor_part_id = 0 -use_eager_rdma = 0 -mtu = 1024 -max_inline_data = 128 - -############################################################################ - -[Mellanox Tavor Infinihost] -vendor_id = 0x2c9,0x5ad,0x66a,0x8f1,0x1708,0x03ba -vendor_part_id = 23108 -use_eager_rdma = 1 -mtu = 1024 -max_inline_data = 128 - -############################################################################ - -[Mellanox Arbel InfiniHost III MemFree/Tavor] -vendor_id = 0x2c9,0x5ad,0x66a,0x8f1,0x1708,0x03ba -vendor_part_id = 25208,25218 -use_eager_rdma = 1 -mtu = 1024 -max_inline_data = 128 - -############################################################################ - -[Mellanox Sinai Infinihost III] -vendor_id = 0x2c9,0x5ad,0x66a,0x8f1,0x1708,0x03ba -vendor_part_id = 25204,24204 -use_eager_rdma = 1 -mtu = 2048 -max_inline_data = 128 - -############################################################################ - -# A.k.a. ConnectX -[Mellanox Hermon] -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 -max_inline_data = 128 - -############################################################################ - -[IBM eHCA 4x and 12x] -vendor_id = 0x5076 -vendor_part_id = 0 -use_eager_rdma = 1 -mtu = 2048 -receive_queues = P,128,256,192,128:P,65536,256,192,128 -max_inline_data = 0 - -############################################################################ - -[IBM eHCA-2 4x and 12x] -vendor_id = 0x5076 -vendor_part_id = 1 -use_eager_rdma = 1 -mtu = 4096 -receive_queues = P,128,256,192,128:P,65536,256,192,128 -max_inline_data = 0 - -############################################################################ - -# See http://lists.openfabrics.org/pipermail/general/2008-June/051920.html -# 0x1fc1 and 0x1077 are PCI ID's; at least one of QL's OUIs is 0x1175 - -[QLogic InfiniPath 1] -vendor_id = 0x1fc1,0x1077,0x1175 -vendor_part_id = 13 -use_eager_rdma = 1 -mtu = 2048 -max_inline_data = 0 - -[QLogic InfiniPath 2] -vendor_id = 0x1fc1,0x1077,0x1175 -vendor_part_id = 16,29216 -use_eager_rdma = 1 -mtu = 4096 -max_inline_data = 0 - -[QLogic InfiniPath 3] -vendor_id = 0x1fc1,0x1077,0x1175 -vendor_part_id = 16,29474 -use_eager_rdma = 1 -mtu = 4096 -max_inline_data = 0 - -############################################################################ - -# Chelsio's OUI is 0x0743. 0x1425 is the PCI ID. - -[Chelsio T3] -vendor_id = 0x1425 -vendor_part_id = 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0030,0x0031,0x0032,0x0035,0x0036 -use_eager_rdma = 1 -mtu = 2048 -receive_queues = P,65536,256,192,128 -max_inline_data = 64 - -[Chelsio T4] -vendor_id = 0x1425 -vendor_part_id = 0xa000,0x4400,0x4401,0x4402,0x4403,0x4404,0x4405,0x4406,0x4407,0x4408,0x4409,0x440a,0x440b,0x440c -use_eager_rdma = 1 -mtu = 2048 -receive_queues = P,65536,256,192,128 -max_inline_data = 64 - -############################################################################ - -# I'm *assuming* that 0x4040 is the PCI ID... - -[NetXen] -vendor_id = 0x4040 -vendor_part_id = 0x0001,0x0002,0x0003,0x0004,0x0005,0x0024,0x0025,0x0100 -use_eager_rdma = 1 -mtu = 2048 -receive_queues = P,65536,248,192,128 -max_inline_data = 64 - -############################################################################ - -# NetEffect's OUI is 0x1255. 0x1678 is the PCI ID. ...but then -# NetEffect was bought by Intel. Intel's OUI is 0x1b21. - -[NetEffect/Intel NE020] -vendor_id = 0x1678,0x1255,0x1b21 -vendor_part_id = 0x0100,0x0110 -use_eager_rdma = 1 -mtu = 2048 -receive_queues = P,128,256,192,128:P,65536,256,192,128 -max_inline_data = 64 -rdmacm_reject_causes_connect_error = 1 diff --git a/ompi/mca/coll/basic/.windows b/ompi/mca/coll/basic/.windows deleted file mode 100644 index 5e0af15aec..0000000000 --- a/ompi/mca/coll/basic/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi diff --git a/ompi/mca/coll/basic/Makefile.am b/ompi/mca/coll/basic/Makefile.am index 3b0bac888c..1bc09f3f21 100644 --- a/ompi/mca/coll/basic/Makefile.am +++ b/ompi/mca/coll/basic/Makefile.am @@ -18,8 +18,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ coll_basic.h \ coll_basic_allgather.c \ diff --git a/ompi/mca/coll/hierarch/.windows b/ompi/mca/coll/hierarch/.windows deleted file mode 100644 index 5e0af15aec..0000000000 --- a/ompi/mca/coll/hierarch/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi diff --git a/ompi/mca/coll/hierarch/Makefile.am b/ompi/mca/coll/hierarch/Makefile.am index 655bed8e2d..5a88bb91e2 100644 --- a/ompi/mca/coll/hierarch/Makefile.am +++ b/ompi/mca/coll/hierarch/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - # Make the output library in this directory, and name it either # mca__.la (for DSO builds) or libmca__.la # (for static builds). diff --git a/ompi/mca/coll/inter/.windows b/ompi/mca/coll/inter/.windows deleted file mode 100644 index 5e0af15aec..0000000000 --- a/ompi/mca/coll/inter/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi diff --git a/ompi/mca/coll/inter/Makefile.am b/ompi/mca/coll/inter/Makefile.am index 60dee96f12..48791141e9 100644 --- a/ompi/mca/coll/inter/Makefile.am +++ b/ompi/mca/coll/inter/Makefile.am @@ -16,8 +16,6 @@ # # $HEADER$ # -EXTRA_DIST = .windows - # Make the output library in this directory, and name it either # mca__.la (for DSO builds) or libmca__.la # (for static builds). diff --git a/ompi/mca/coll/libnbc/.windows b/ompi/mca/coll/libnbc/.windows deleted file mode 100644 index 5e0af15aec..0000000000 --- a/ompi/mca/coll/libnbc/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi diff --git a/ompi/mca/coll/libnbc/Makefile.am b/ompi/mca/coll/libnbc/Makefile.am index 51b94280ba..889c22a531 100644 --- a/ompi/mca/coll/libnbc/Makefile.am +++ b/ompi/mca/coll/libnbc/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ coll_libnbc.h \ coll_libnbc_component.c \ diff --git a/ompi/mca/coll/self/.windows b/ompi/mca/coll/self/.windows deleted file mode 100644 index 5e0af15aec..0000000000 --- a/ompi/mca/coll/self/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi diff --git a/ompi/mca/coll/self/Makefile.am b/ompi/mca/coll/self/Makefile.am index 34d04b2d1f..b53ad43e9b 100644 --- a/ompi/mca/coll/self/Makefile.am +++ b/ompi/mca/coll/self/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ coll_self.h \ coll_self_allgather.c \ diff --git a/ompi/mca/coll/sm/.windows b/ompi/mca/coll/sm/.windows deleted file mode 100644 index bd2a56336f..0000000000 --- a/ompi/mca/coll/sm/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte libmca_common_sm diff --git a/ompi/mca/coll/sm/Makefile.am b/ompi/mca/coll/sm/Makefile.am index 8796bc1f25..7e80e2aa52 100644 --- a/ompi/mca/coll/sm/Makefile.am +++ b/ompi/mca/coll/sm/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - dist_pkgdata_DATA = help-mpi-coll-sm.txt not_used_yet = \ diff --git a/ompi/mca/common/sm/.windows b/ompi/mca/common/sm/.windows deleted file mode 100644 index 8abdbb4df4..0000000000 --- a/ompi/mca/common/sm/.windows +++ /dev/null @@ -1,13 +0,0 @@ -# -# Copyright (c) 2008 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2011 Los Alamos National Security, LLC. -# All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module diff --git a/ompi/mca/common/sm/Makefile.am b/ompi/mca/common/sm/Makefile.am index 7790d4bc4f..5c9b27de2d 100644 --- a/ompi/mca/common/sm/Makefile.am +++ b/ompi/mca/common/sm/Makefile.am @@ -10,7 +10,7 @@ # 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) 2010-2011 Los Alamos National Security, LLC. +# Copyright (c) 2010-2013 Los Alamos National Security, LLC. # All rights reserved. # $COPYRIGHT$ # @@ -41,8 +41,6 @@ # Note that building this common component statically and linking # against other dynamic components is *not* supported! -EXTRA_DIST = .windows - # Header files headers = \ diff --git a/ompi/mca/dpm/orte/.windows b/ompi/mca/dpm/orte/.windows deleted file mode 100644 index 8d2f3e3450..0000000000 --- a/ompi/mca/dpm/orte/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte diff --git a/ompi/mca/dpm/orte/Makefile.am b/ompi/mca/dpm/orte/Makefile.am index 19a1516794..3b48bc5e4c 100644 --- a/ompi/mca/dpm/orte/Makefile.am +++ b/ompi/mca/dpm/orte/Makefile.am @@ -12,8 +12,6 @@ # -EXTRA_DIST = .windows - dist_pkgdata_DATA = help-ompi-dpm-orte.txt # Make the output library in this directory, and name it either diff --git a/ompi/mca/mpool/sm/.windows b/ompi/mca/mpool/sm/.windows deleted file mode 100644 index bd2a56336f..0000000000 --- a/ompi/mca/mpool/sm/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte libmca_common_sm diff --git a/ompi/mca/mpool/sm/Makefile.am b/ompi/mca/mpool/sm/Makefile.am index 5e8383e688..0da33f972e 100644 --- a/ompi/mca/mpool/sm/Makefile.am +++ b/ompi/mca/mpool/sm/Makefile.am @@ -18,8 +18,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ mpool_sm.h \ mpool_sm_module.c \ diff --git a/ompi/mca/osc/pt2pt/.windows b/ompi/mca/osc/pt2pt/.windows deleted file mode 100644 index 5e0af15aec..0000000000 --- a/ompi/mca/osc/pt2pt/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi diff --git a/ompi/mca/osc/pt2pt/Makefile.am b/ompi/mca/osc/pt2pt/Makefile.am index a9881759f8..5b334fcd9f 100644 --- a/ompi/mca/osc/pt2pt/Makefile.am +++ b/ompi/mca/osc/pt2pt/Makefile.am @@ -15,8 +15,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - pt2pt_sources = \ osc_pt2pt.h \ osc_pt2pt.c \ diff --git a/ompi/mca/osc/rdma/.windows b/ompi/mca/osc/rdma/.windows deleted file mode 100644 index 5e0af15aec..0000000000 --- a/ompi/mca/osc/rdma/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi diff --git a/ompi/mca/osc/rdma/Makefile.am b/ompi/mca/osc/rdma/Makefile.am index 0ed42f3dd3..3fa1de91d1 100644 --- a/ompi/mca/osc/rdma/Makefile.am +++ b/ompi/mca/osc/rdma/Makefile.am @@ -15,8 +15,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - pt2pt_sources = \ osc_rdma.h \ osc_rdma.c \ diff --git a/ompi/mca/pml/cm/.windows b/ompi/mca/pml/cm/.windows deleted file mode 100644 index 5e0af15aec..0000000000 --- a/ompi/mca/pml/cm/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi diff --git a/ompi/mca/pml/cm/Makefile.am b/ompi/mca/pml/cm/Makefile.am index 6abeba5ca0..a292996118 100644 --- a/ompi/mca/pml/cm/Makefile.am +++ b/ompi/mca/pml/cm/Makefile.am @@ -15,7 +15,7 @@ # mca__.la (for DSO builds) or libmca__.la # (for static builds). -EXTRA_DIST = post_configure.sh .windows +EXTRA_DIST = post_configure.sh if MCA_BUILD_ompi_pml_cm_DSO component_noinst = diff --git a/ompi/mca/pml/ob1/.windows b/ompi/mca/pml/ob1/.windows deleted file mode 100644 index 8d2f3e3450..0000000000 --- a/ompi/mca/pml/ob1/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte diff --git a/ompi/mca/pml/ob1/Makefile.am b/ompi/mca/pml/ob1/Makefile.am index df6557f1a3..6042e2df61 100644 --- a/ompi/mca/pml/ob1/Makefile.am +++ b/ompi/mca/pml/ob1/Makefile.am @@ -22,7 +22,7 @@ dist_pkgdata_DATA = \ help-mpi-pml-ob1.txt -EXTRA_DIST = post_configure.sh .windows +EXTRA_DIST = post_configure.sh ob1_sources = \ pml_ob1.c \ diff --git a/ompi/mca/pml/v/.windows b/ompi/mca/pml/v/.windows deleted file mode 100644 index c0c20359dc..0000000000 --- a/ompi/mca/pml/v/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte diff --git a/ompi/mca/pml/v/Makefile.am b/ompi/mca/pml/v/Makefile.am index ff1e21d213..098beddecf 100644 --- a/ompi/mca/pml/v/Makefile.am +++ b/ompi/mca/pml/v/Makefile.am @@ -13,8 +13,6 @@ # mca__.la (for DSO builds) or libmca__.la # (for static builds). -EXTRA_DIST = .windows - local_sources = \ pml_v.h \ pml_v_component.c \ diff --git a/ompi/mca/pubsub/orte/.windows b/ompi/mca/pubsub/orte/.windows deleted file mode 100644 index 8d2f3e3450..0000000000 --- a/ompi/mca/pubsub/orte/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte diff --git a/ompi/mca/pubsub/orte/Makefile.am b/ompi/mca/pubsub/orte/Makefile.am index 3675db1571..7f27c6fa4b 100644 --- a/ompi/mca/pubsub/orte/Makefile.am +++ b/ompi/mca/pubsub/orte/Makefile.am @@ -11,8 +11,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - dist_pkgdata_DATA = help-ompi-pubsub-orte.txt # Make the output library in this directory, and name it either diff --git a/ompi/mca/rcache/vma/.windows b/ompi/mca/rcache/vma/.windows deleted file mode 100644 index 8d2f3e3450..0000000000 --- a/ompi/mca/rcache/vma/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte diff --git a/ompi/mca/rcache/vma/Makefile.am b/ompi/mca/rcache/vma/Makefile.am index f4b08d3666..7bdd02a9fa 100644 --- a/ompi/mca/rcache/vma/Makefile.am +++ b/ompi/mca/rcache/vma/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ rcache_vma.c \ rcache_vma.h \ diff --git a/ompi/mca/sbgp/basesmsocket/.windows b/ompi/mca/sbgp/basesmsocket/.windows deleted file mode 100644 index 8d2f3e3450..0000000000 --- a/ompi/mca/sbgp/basesmsocket/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte diff --git a/ompi/mca/sbgp/basesmsocket/Makefile.am b/ompi/mca/sbgp/basesmsocket/Makefile.am index 91ce275def..8dd597fd8f 100644 --- a/ompi/mca/sbgp/basesmsocket/Makefile.am +++ b/ompi/mca/sbgp/basesmsocket/Makefile.am @@ -7,7 +7,6 @@ # # $HEADER$ # -EXTRA_DIST = .windows not_used_yet = sources = \ diff --git a/ompi/mca/sbgp/basesmuma/.windows b/ompi/mca/sbgp/basesmuma/.windows deleted file mode 100644 index 8d2f3e3450..0000000000 --- a/ompi/mca/sbgp/basesmuma/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte diff --git a/ompi/mca/sbgp/basesmuma/Makefile.am b/ompi/mca/sbgp/basesmuma/Makefile.am index efb6406256..583e1e6e86 100644 --- a/ompi/mca/sbgp/basesmuma/Makefile.am +++ b/ompi/mca/sbgp/basesmuma/Makefile.am @@ -7,7 +7,6 @@ # # $HEADER$ # -EXTRA_DIST = .windows not_used_yet = sources = \ diff --git a/ompi/mca/sbgp/p2p/.windows b/ompi/mca/sbgp/p2p/.windows deleted file mode 100644 index 8d2f3e3450..0000000000 --- a/ompi/mca/sbgp/p2p/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte diff --git a/ompi/mca/sbgp/p2p/Makefile.am b/ompi/mca/sbgp/p2p/Makefile.am index 32705cc60f..1ed9830a92 100644 --- a/ompi/mca/sbgp/p2p/Makefile.am +++ b/ompi/mca/sbgp/p2p/Makefile.am @@ -7,7 +7,6 @@ # # $HEADER$ # -EXTRA_DIST = .windows not_used_yet = sources = \ diff --git a/ompi/mca/sharedfp/dummy/.windows b/ompi/mca/sharedfp/dummy/.windows deleted file mode 100644 index 8d2f3e3450..0000000000 --- a/ompi/mca/sharedfp/dummy/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libmpi libopen-rte diff --git a/ompi/mca/sharedfp/dummy/Makefile.am b/ompi/mca/sharedfp/dummy/Makefile.am index 754b5b38ae..91319edaca 100644 --- a/ompi/mca/sharedfp/dummy/Makefile.am +++ b/ompi/mca/sharedfp/dummy/Makefile.am @@ -16,7 +16,6 @@ # # $HEADER$ # -EXTRA_DIST = .windows # Make the output library in this directory, and name it either # mca__.la (for DSO builds) or libmca__.la diff --git a/ompi/mca/topo/unity/.windows b/ompi/mca/topo/unity/.windows deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/ompi/mca/topo/unity/Makefile.am b/ompi/mca/topo/unity/Makefile.am index 372b065b0b..b41aebd27c 100644 --- a/ompi/mca/topo/unity/Makefile.am +++ b/ompi/mca/topo/unity/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ topo_unity.h \ topo_unity_cart_map.c \ diff --git a/opal/mca/backtrace/none/.windows b/opal/mca/backtrace/none/.windows deleted file mode 100644 index b8c2b6d4c9..0000000000 --- a/opal/mca/backtrace/none/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -not_single_shared_lib=1 diff --git a/opal/mca/backtrace/none/Makefile.am b/opal/mca/backtrace/none/Makefile.am index 696ced0f52..a8ca9f4a9a 100644 --- a/opal/mca/backtrace/none/Makefile.am +++ b/opal/mca/backtrace/none/Makefile.am @@ -16,8 +16,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - noinst_LTLIBRARIES = libmca_backtrace_none.la libmca_backtrace_none_la_SOURCES = \ diff --git a/opal/mca/compress/base/.windows b/opal/mca/compress/base/.windows deleted file mode 100644 index 70b13caa15..0000000000 --- a/opal/mca/compress/base/.windows +++ /dev/null @@ -1,11 +0,0 @@ -# -# Copyright (c) 2009 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -exclude_list=compress_base_fns.c diff --git a/opal/mca/compress/base/Makefile.am b/opal/mca/compress/base/Makefile.am index 5c076d2b19..bfada1c711 100644 --- a/opal/mca/compress/base/Makefile.am +++ b/opal/mca/compress/base/Makefile.am @@ -9,8 +9,6 @@ # $HEADER$ # -EXTRA_DIST = base/.windows - dist_pkgdata_DATA = base/help-opal-compress-base.txt headers += \ diff --git a/opal/mca/crs/none/.windows b/opal/mca/crs/none/.windows deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/opal/mca/crs/none/Makefile.am b/opal/mca/crs/none/Makefile.am index 40c821c1ef..04f109e0df 100644 --- a/opal/mca/crs/none/Makefile.am +++ b/opal/mca/crs/none/Makefile.am @@ -11,8 +11,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - AM_CPPFLAGS = \ $(LTDLINCL) diff --git a/opal/mca/db/hash/.windows b/opal/mca/db/hash/.windows deleted file mode 100644 index aa7d7bbbe5..0000000000 --- a/opal/mca/db/hash/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte diff --git a/opal/mca/db/hash/Makefile.am b/opal/mca/db/hash/Makefile.am index 30ee52b8c2..da73b7ddba 100644 --- a/opal/mca/db/hash/Makefile.am +++ b/opal/mca/db/hash/Makefile.am @@ -1,13 +1,12 @@ # # Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2012 Los Alamos National Security, Inc. All rights reserved. +# Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. # $COPYRIGHT$ # # Additional copyrights may follow # # $HEADER$ # -EXTRA_DIST = .windows sources = \ db_hash.h \ diff --git a/opal/mca/event/libevent2019/.windows b/opal/mca/event/libevent2019/.windows deleted file mode 100644 index 4ff95dc143..0000000000 --- a/opal/mca/event/libevent2019/.windows +++ /dev/null @@ -1,13 +0,0 @@ -# -# Copyright (c) 2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -not_single_shared_lib=1 -in_use=1 -required_check=opal_event_config \ No newline at end of file diff --git a/opal/mca/event/libevent2019/Makefile.am b/opal/mca/event/libevent2019/Makefile.am index b35fdf9f5c..2ede54b761 100644 --- a/opal/mca/event/libevent2019/Makefile.am +++ b/opal/mca/event/libevent2019/Makefile.am @@ -10,7 +10,7 @@ # $HEADER$ # -EXTRA_DIST = .windows opal_check_visibility.m4 +EXTRA_DIST = opal_check_visibility.m4 AM_CPPFLAGS = -I$(srcdir)/libevent -I$(srcdir)/libevent/include -I$(builddir)/libevent/include -I$(srcdir)/libevent/compat diff --git a/opal/mca/hwloc/base/.windows b/opal/mca/hwloc/base/.windows deleted file mode 100644 index d3ac5e4272..0000000000 --- a/opal/mca/hwloc/base/.windows +++ /dev/null @@ -1,11 +0,0 @@ -# -# Copyright (c) 2011-2012 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -exclude_list=hwloc_base_proc_mempolicy.c diff --git a/opal/mca/hwloc/base/Makefile.am b/opal/mca/hwloc/base/Makefile.am index 7cb5a9c2bc..9f4332cfc5 100644 --- a/opal/mca/hwloc/base/Makefile.am +++ b/opal/mca/hwloc/base/Makefile.am @@ -7,8 +7,6 @@ # $HEADER$ # -EXTRA_DIST = base/.windows - dist_pkgdata_DATA = base/help-opal-hwloc-base.txt headers += \ diff --git a/opal/mca/hwloc/hwloc151/.windows b/opal/mca/hwloc/hwloc151/.windows deleted file mode 100644 index 8c0fc7bf44..0000000000 --- a/opal/mca/hwloc/hwloc151/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -required_check=opal_hwloc_config diff --git a/opal/mca/hwloc/hwloc151/Makefile.am b/opal/mca/hwloc/hwloc151/Makefile.am index 9a562be433..fb1d0ac203 100644 --- a/opal/mca/hwloc/hwloc151/Makefile.am +++ b/opal/mca/hwloc/hwloc151/Makefile.am @@ -12,8 +12,7 @@ EXTRA_DIST = \ hwloc/doc/README.txt \ hwloc/tests/README.txt \ - hwloc/utils/README.txt \ - .windows + hwloc/utils/README.txt SUBDIRS = hwloc diff --git a/opal/mca/if/windows/.windows b/opal/mca/if/windows/.windows deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/opal/mca/if/windows/Makefile.am b/opal/mca/if/windows/Makefile.am deleted file mode 100644 index 8fede8ef92..0000000000 --- a/opal/mca/if/windows/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -# -# Copyright (c) 2004-2007 The Trustees of the University of Tennessee. -# All rights reserved. -# Copyright (c) 2009 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -EXTRA_DIST = .windows - -noinst_LTLIBRARIES = libmca_if_windows.la - -libmca_if_windows_la_SOURCES = \ - opal_if_windows.c - diff --git a/opal/mca/if/windows/configure.m4 b/opal/mca/if/windows/configure.m4 deleted file mode 100644 index 5c8ace9a90..0000000000 --- a/opal/mca/if/windows/configure.m4 +++ /dev/null @@ -1,49 +0,0 @@ -# -*- shell-script -*- -# -# Copyright (c) 2004-2007 The Trustees of the University of Tennessee. -# All rights reserved. -# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -AC_DEFUN([MCA_opal_if_windows_COMPILE_MODE], [ - AC_MSG_CHECKING([for MCA component $2:$3 compile mode]) - $4="static" - AC_MSG_RESULT([$$4]) -]) - - -# MCA_if_windows_CONFIG(action-if-can-compile, -# [action-if-cant-compile]) -# ------------------------------------------------ -AC_DEFUN([MCA_opal_if_windows_CONFIG],[ - AC_CONFIG_FILES([opal/mca/if/windows/Makefile]) - - # check for RegOpenKeyEx allowing access to the Windows - # registry. We should first check that the function is defined, - # and then check for it's presence in the kernel32 library. - AC_MSG_CHECKING([for working RegOpenKeyEx]) - AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT -#include ], [ -int main( int argc, char** argv ) { - RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\Open MPI", 0, KEY_READ, NULL); - return 0; }])], - [AC_MSG_RESULT([yes]) - $1], - [AC_MSG_RESULT([no]) - $2], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT -#include ], [ -int main( int argc, char** argv ) { - RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\Open MPI", 0, KEY_READ, NULL); - return 0; }])], - [AC_MSG_RESULT([yes]) - $1], - [AC_MSG_RESULT([no]) - $2])]) -])])dnl - diff --git a/opal/mca/if/windows/opal_if_windows.c b/opal/mca/if/windows/opal_if_windows.c deleted file mode 100644 index b62559f381..0000000000 --- a/opal/mca/if/windows/opal_if_windows.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (c) 2004-2007 The Trustees of the University of Tennessee. - * All rights reserved. - * Copyright (c) 2009 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "opal_config.h" - -#include -#include - -#include "opal/mca/if/if.h" -#include "opal/constants.h" - -static int if_windows_open(void); - -opal_if_base_component_t mca_if_windows_component = { - /* First, the mca_component_t struct containing meta information - about the component itself */ - { - OPAL_IF_BASE_VERSION_2_0_0, - - /* Component name and version */ - "windows", - OPAL_MAJOR_VERSION, - OPAL_MINOR_VERSION, - OPAL_RELEASE_VERSION, - - /* Component open and close functions */ - if_windows_open, - NULL - }, - { - /* This component is checkpointable */ - MCA_BASE_METADATA_PARAM_CHECKPOINT - }, -}; - - /* - 1. check if the interface info list is already populated. If so, return - 2. get the interface information which is required using WSAIoctl - 3. construct opal_if_list and populate it with the list of interfaces we have - CAVEAT: Does not support the following options which are supported in SIOCGIFCONF - - kernel table index - - interface name - */ - -#define MAX_INTERFACES 10 /* Anju: for now assume there are no more than this */ - -static int if_windows_open(void) -{ - SOCKET sd; - INTERFACE_INFO if_list[MAX_INTERFACES]; - int num_interfaces; - unsigned long num_bytes_returned; - int i; - unsigned int interface_counter = 0; - opal_if_t *intf; - - /* create a socket */ - sd = WSASocket (AF_INET, SOCK_DGRAM, IPPROTO_UDP, NULL, 0, 0); - if (sd == SOCKET_ERROR) { - opal_output(0, "opal_ifinit: WSASocket failed with errno=%d\n",WSAGetLastError()); - return OPAL_ERROR; - } - - /* get the information about the interfaces */ - if (SOCKET_ERROR == WSAIoctl (sd, - SIO_GET_INTERFACE_LIST, - NULL, - 0, - &if_list, - sizeof (if_list), - &num_bytes_returned, - 0, - 0)) { - opal_output(0, "opal_ifinit: WSAIoctl failed with errno=%d\n",WSAGetLastError()); - return OPAL_ERROR; - } - - /* loop through all the interfaces and create the list */ - num_interfaces = num_bytes_returned / sizeof (INTERFACE_INFO); - for (i = 0; i < num_interfaces; ++i) { - /* do all this only if the interface is up, and skip loopback interface */ - if (0 != (if_list[i].iiFlags & IFF_UP) - && (!opal_if_retain_loopback && 0 == (if_list[i].iiFlags & IFF_LOOPBACK))) { - - intf = OBJ_NEW(opal_if_t); - if (NULL == intf) { - opal_output (0,"opal_ifinit: Unable to malloc %d bytes",sizeof(opal_list_t)); - return OPAL_ERR_OUT_OF_RESOURCE; - } - - /* fill in the interface address */ - memcpy(&intf->if_addr, &(if_list[i].iiAddress), - sizeof(intf->if_addr)); - - /* fill in the netmask information */ - memcpy(&intf->if_mask, &(if_list[i].iiNetmask), - sizeof(intf->if_mask)); - - /* fill in the bcast address */ - memcpy(&intf->if_bcast, &(if_list[i].iiBroadcastAddress), - sizeof(intf->if_bcast)); - - /* fill in the flags */ - intf->if_flags = if_list[i].iiFlags; - - /* fill in the index in the table */ - intf->if_index = opal_list_get_size(&opal_if_list)+1; - - /* fill in the kernel index */ - intf->if_kernel_index = intf->if_index; - - /* generate the interface name, e.g. eth0, eth1, ..... */ - sprintf(intf->if_name, "eth%u", interface_counter++); - - /* copy all this into a persistent form and store it in the list */ - opal_list_append(&opal_if_list, &(intf->super)); - } - } - - return OPAL_SUCCESS; -} diff --git a/opal/mca/installdirs/config/.windows b/opal/mca/installdirs/config/.windows deleted file mode 100644 index 9109e18a87..0000000000 --- a/opal/mca/installdirs/config/.windows +++ /dev/null @@ -1,13 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -not_single_shared_lib=1 -mca_priority=0 diff --git a/opal/mca/installdirs/config/Makefile.am b/opal/mca/installdirs/config/Makefile.am index 6716adbdbf..e020e7230b 100644 --- a/opal/mca/installdirs/config/Makefile.am +++ b/opal/mca/installdirs/config/Makefile.am @@ -11,8 +11,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - noinst_LTLIBRARIES = libmca_installdirs_config.la libmca_installdirs_config_la_SOURCES = \ diff --git a/opal/mca/installdirs/windows/.windows b/opal/mca/installdirs/windows/.windows deleted file mode 100644 index c36ff08b6c..0000000000 --- a/opal/mca/installdirs/windows/.windows +++ /dev/null @@ -1,13 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -not_single_shared_lib=1 -mca_priority=1 diff --git a/opal/mca/installdirs/windows/Makefile.am b/opal/mca/installdirs/windows/Makefile.am deleted file mode 100644 index fdba4af560..0000000000 --- a/opal/mca/installdirs/windows/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -# -# Copyright (c) 2004-2007 The Trustees of the University of Tennessee. -# All rights reserved. -# Copyright (c) 2009 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -EXTRA_DIST = .windows - -noinst_LTLIBRARIES = libmca_installdirs_windows.la - -libmca_installdirs_windows_la_SOURCES = \ - opal_installdirs_windows.c - -# This file is generated; we do not want to include it in the tarball -nodist_libmca_installdirs_windows_la_SOURCES = \ - install_dirs.h diff --git a/opal/mca/installdirs/windows/configure.m4 b/opal/mca/installdirs/windows/configure.m4 deleted file mode 100644 index ccc5bdf566..0000000000 --- a/opal/mca/installdirs/windows/configure.m4 +++ /dev/null @@ -1,51 +0,0 @@ -# -*- shell-script -*- -# -# Copyright (c) 2004-2007 The Trustees of the University of Tennessee. -# All rights reserved. -# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -AC_DEFUN([MCA_opal_installdirs_windows_PRIORITY], [5]) - -AC_DEFUN([MCA_opal_installdirs_windows_COMPILE_MODE], [ - AC_MSG_CHECKING([for MCA component $2:$3 compile mode]) - $4="static" - AC_MSG_RESULT([$$4]) -]) - - -# MCA_installdirs_windows_CONFIG(action-if-can-compile, -# [action-if-cant-compile]) -# ------------------------------------------------ -AC_DEFUN([MCA_opal_installdirs_windows_CONFIG],[ - AC_CONFIG_FILES([opal/mca/installdirs/windows/Makefile]) - - # check for RegOpenKeyEx allowing access to the Windows - # registry. We should first check that the function is defined, - # and then check for it's presence in the kernel32 library. - AC_MSG_CHECKING(for working RegOpenKeyEx) - AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT -#include ], [ -int main( int argc, char** argv ) { - RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\Open MPI", 0, KEY_READ, NULL); - return 0; }])], - [AC_MSG_RESULT([yes]) - $1], - [AC_MSG_RESULT([no]) - $2], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT -#include ], [ -int main( int argc, char** argv ) { - RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\Open MPI", 0, KEY_READ, NULL); - return 0; }])], - [AC_MSG_RESULT([yes]) - $1], - [AC_MSG_RESULT([no]) - $2])]) -])dnl - diff --git a/opal/mca/installdirs/windows/opal_installdirs_windows.c b/opal/mca/installdirs/windows/opal_installdirs_windows.c deleted file mode 100644 index 138ab61db2..0000000000 --- a/opal/mca/installdirs/windows/opal_installdirs_windows.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (c) 2004-2007 The Trustees of the University of Tennessee. - * All rights reserved. - * Copyright (c) 2009 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "opal_config.h" - -#include -#include - -#include "opal/mca/installdirs/installdirs.h" -#include "opal/constants.h" - -static int installdirs_windows_open(void); - -opal_installdirs_base_component_t mca_installdirs_windows_component = { - /* First, the mca_component_t struct containing meta information - about the component itself */ - { - OPAL_INSTALLDIRS_BASE_VERSION_2_0_0, - - /* Component name and version */ - "windows", - OPAL_MAJOR_VERSION, - OPAL_MINOR_VERSION, - OPAL_RELEASE_VERSION, - - /* Component open and close functions */ - installdirs_windows_open, - NULL - }, - { - /* This component is checkpointable */ - MCA_BASE_METADATA_PARAM_CHECKPOINT - }, -}; - -char *openmpi_home = NULL; - -#define SET_FIELD(field, base_dir) \ - do { \ - if (NULL != openmpi_home && 0 != strlen(openmpi_home)) { \ - char *path = \ - (char *) malloc(strlen(openmpi_home) + strlen(base_dir) + 1); \ - strcpy(path, openmpi_home); \ - strcat(path, base_dir); \ - mca_installdirs_windows_component.install_dirs_data.field = path; \ - } \ - } while (0) - - - -static int -installdirs_windows_open(void) -{ - /* check the env first */ - openmpi_home = getenv("OPENMPI_HOME"); - - /* if OPENMPI_HOME is not set, check the registry */ - if(NULL == openmpi_home) { - HKEY ompi_key; - int i; - DWORD cbData, valueLength, keyType; - char valueName[1024], vData[1024]; - - /* The OPENMPI_HOME is the only one which is required to be in the registry. - * All others can be composed starting from OPAL_PREFIX. - * - * On 32 bit Windows, we write in HKEY_LOCAL_MACHINE\Software\Open MPI, - * but on 64 bit Windows, we always use HKEY_LOCAL_MACHINE\Software\Wow6432Node\Open MPI - * for both 32 and 64 bit OMPI, because we only have 32 bit installer, and Windows will - * always consider OMPI as 32 bit application. - */ - if( ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Open MPI", 0, KEY_READ, &ompi_key) || - ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Wow6432Node\\Open MPI", 0, KEY_READ, &ompi_key) ) { - for( i = 0; true; i++) { - valueLength = 1024; - valueName[0] = '\0'; - cbData = 1024; - valueLength = 1024; - if( ERROR_SUCCESS == RegEnumValue( (ompi_key), i, valueName, &valueLength, - NULL, &keyType, (LPBYTE) vData, &cbData ) ) { - if( ((REG_EXPAND_SZ == keyType) || (REG_SZ == keyType)) && - (0 == strncasecmp( valueName, ("OPENMPI_HOME"), strlen(("OPENMPI_HOME")) )) ) { - openmpi_home = strdup(vData); - break; - } - } else - break; - } - } - - RegCloseKey(ompi_key); - } - -#if OMPI_RELEASE_BUILD - /* the last try, check the executable path. - * only used for binary releases, so that we - * don't bother with the configured paths in mca_installdirs_config - */ - if(NULL == openmpi_home) { - int ch, i; - static TCHAR szPath[MAX_PATH+1]; - - szPath[MAX_PATH] = 0; - ch = GetModuleFileName(NULL, szPath, MAX_PATH); - if (ch != 0) { - for (i=ch; i>0; i--) { - if ((szPath[i] != '\\') && (szPath[i] != '/')) { - szPath[i] = 0; - } else { - szPath[i] = 0; - break; - } - } - strcat(szPath, "/.."); - openmpi_home = szPath; - } - } -#endif - - SET_FIELD(prefix, ""); - SET_FIELD(exec_prefix, "/bin"); - SET_FIELD(bindir, "/bin"); - SET_FIELD(sbindir, "/sbin"); - SET_FIELD(libexecdir, "/libexec"); - SET_FIELD(datarootdir, "/share"); - SET_FIELD(datadir, "/share"); - SET_FIELD(sysconfdir, "/etc"); - SET_FIELD(sharedstatedir, "/com"); - SET_FIELD(localstatedir, "/var"); - SET_FIELD(libdir, "/lib"); - SET_FIELD(includedir, "/include"); - SET_FIELD(infodir, "/share/info"); - SET_FIELD(mandir, "/share/man"); - SET_FIELD(pkgdatadir, "/share/openmpi"); - SET_FIELD(pkglibdir, "/lib/openmpi"); - SET_FIELD(pkgincludedir, "/include/openmpi"); - - return OPAL_SUCCESS; -} diff --git a/opal/mca/shmem/windows/.windows b/opal/mca/shmem/windows/.windows deleted file mode 100644 index 48475aa466..0000000000 --- a/opal/mca/shmem/windows/.windows +++ /dev/null @@ -1,11 +0,0 @@ -# -# Copyright (c) 2009 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -not_single_shared_lib=1 diff --git a/opal/mca/shmem/windows/Makefile.am b/opal/mca/shmem/windows/Makefile.am deleted file mode 100644 index 8317301074..0000000000 --- a/opal/mca/shmem/windows/Makefile.am +++ /dev/null @@ -1,51 +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) 2010 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2010-2011 Los Alamos National Security, LLC. -# All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -EXTRA_DIST = .windows - -sources = \ - shmem_windows.h \ - shmem_windows_component.c \ - shmem_windows_module.c - -# 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_opal_shmem_windows_DSO -component_noinst = -component_install = mca_shmem_windows.la -else -component_noinst = libmca_shmem_windows.la -component_install = -endif - -# help file -dist_pkgdata_DATA = help-opal-shmem-windows.txt - -mcacomponentdir = $(pkglibdir) -mcacomponent_LTLIBRARIES = $(component_install) -mca_shmem_windows_la_SOURCES = $(sources) -mca_shmem_windows_la_LDFLAGS = -module -avoid-version - -noinst_LTLIBRARIES = $(component_noinst) -libmca_shmem_windows_la_SOURCES =$(sources) -libmca_shmem_windows_la_LDFLAGS = -module -avoid-version diff --git a/opal/mca/shmem/windows/configure.m4 b/opal/mca/shmem/windows/configure.m4 deleted file mode 100644 index ed06a75e13..0000000000 --- a/opal/mca/shmem/windows/configure.m4 +++ /dev/null @@ -1,50 +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) 2010-2011 Los Alamos National Security, LLC. -# All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# MCA_opal_shmem_windows_CONFIG(action-if-can-compile, -# [action-if-cant-compile]) -# ------------------------------------------------ -AC_DEFUN([MCA_opal_shmem_windows_CONFIG],[ - AC_CONFIG_FILES([opal/mca/shmem/windows/Makefile]) - - # do we have the windows shm stuff? - AC_MSG_CHECKING([if want Windows shared memory support]) - AC_ARG_ENABLE(windows-shmem, - AC_HELP_STRING([--disable-windows-shmem], - [disable windows shared memory support (default: enabled)])) - AS_IF([test "$enable_windows_shmem" = "no"], - [AC_MSG_RESULT([no]) - shmem_windows_sm_build_windows=0], - [AC_MSG_RESULT([yes]) - AC_CHECK_FUNC(CreateFileMapping, - [shmem_windows_sm_build_windows=1], - [shmem_windows_sm_build_windows=0])]) - AS_IF([test "$enable_windows_shmem" = "yes" -a "$shmem_windows_sm_build_windows" = "0"], - [AC_MSG_WARN([Windows shared memory support requested but not found]) - AC_MSG_ERROR([Cannot continue])]) - - AS_IF([test "$shmem_windows_sm_build_windows" = "1"], [$1], [$2]) - - AC_DEFINE_UNQUOTED([OPAL_SHMEM_WINDOWS], - [$shmem_windows_sm_build_windows], - [Whether we have shared memory support for POSIX or not]) -])dnl diff --git a/opal/mca/shmem/windows/help-opal-shmem-windows.txt b/opal/mca/shmem/windows/help-opal-shmem-windows.txt deleted file mode 100644 index 343641c3ea..0000000000 --- a/opal/mca/shmem/windows/help-opal-shmem-windows.txt +++ /dev/null @@ -1,31 +0,0 @@ -# -*- text -*- -# -# Copyright (c) 2009-2011 Cisco Systems, Inc. All rights reserved. -# Copyright (c) 2010-2012 Los Alamos National Security, LLC. -# All rights reserved. -# -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# -# This is the US/English help file for Open MPI's common shmem support. -# -[sys call fail] -A system call failed during shared memory initialization that should -not have. It is likely that your MPI job will now either abort or -experience performance degradation. - - Local host: %s - System call: %s %s - Error: %s (errno %d) -# -[target full] -It appears as if there is not enough space for %s (the shared-memory backing -file). It is likely that your MPI job will now either abort or experience -performance degradation. - - Local host: %s - Space Requested: %lu B - Space Available: %llu B diff --git a/opal/mca/shmem/windows/shmem_windows.h b/opal/mca/shmem/windows/shmem_windows.h deleted file mode 100644 index e78a7059a2..0000000000 --- a/opal/mca/shmem/windows/shmem_windows.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2004-2008 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 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2010-2011 Los Alamos National Security, LLC. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef MCA_SHMEM_WINDOWS_EXPORT_H -#define MCA_SHMEM_WINDOWS_EXPORT_H - -#include "opal_config.h" - -#include "opal/mca/mca.h" -#include "opal/mca/shmem/shmem.h" - -BEGIN_C_DECLS - -/** - * globally exported variable to hold the windows component. - */ -typedef struct opal_shmem_windows_component_t { - /* base component struct */ - opal_shmem_base_component_t super; - /* priority for windows component */ - int priority; -} opal_shmem_windows_component_t; - -OPAL_MODULE_DECLSPEC extern opal_shmem_windows_component_t -mca_shmem_windows_component; - -typedef struct opal_shmem_windows_module_t { - opal_shmem_base_module_t super; -} opal_shmem_windows_module_t; -extern opal_shmem_windows_module_t opal_shmem_windows_module; - -END_C_DECLS - -#endif /* MCA_SHMEM_WINDOWS_EXPORT_H */ diff --git a/opal/mca/shmem/windows/shmem_windows_component.c b/opal/mca/shmem/windows/shmem_windows_component.c deleted file mode 100644 index 68385ded88..0000000000 --- a/opal/mca/shmem/windows/shmem_windows_component.c +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (c) 2004-2008 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-2010 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2010-2011 Los Alamos National Security, LLC. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - * These symbols are in a file by themselves to provide nice linker - * semantics. Since linkers generally pull in symbols by object - * files, keeping these symbols as the only symbols in this file - * prevents utility programs such as "ompi_info" from having to import - * entire components just to query their version and parameters. - */ - -#include "opal_config.h" - -#include "opal/constants.h" -#include "opal/mca/shmem/shmem.h" -#include "opal/mca/shmem/windows/shmem_windows.h" - -/** - * public string showing the shmem ompi_windows component version number - */ -const char *opal_shmem_windows_component_version_string = - "OPAL windows shmem MCA component version " OPAL_VERSION; - -/** - * local functions - */ -static int windows_open(void); -static int windows_query(mca_base_module_t **module, int *priority); -static int windows_runtime_query(mca_base_module_t **module, - int *priority, - const char *hint); - -/** - * instantiate the public struct with all of our public information - * and pointers to our public functions in it - */ -opal_shmem_windows_component_t mca_shmem_windows_component = { - /* ////////////////////////////////////////////////////////////////////// */ - /* super */ - /* ////////////////////////////////////////////////////////////////////// */ - { - /** - * common MCA component data - */ - { - OPAL_SHMEM_BASE_VERSION_2_0_0, - - /* component name and version */ - "windows", - OPAL_MAJOR_VERSION, - OPAL_MINOR_VERSION, - OPAL_RELEASE_VERSION, - - /* component open */ - windows_open, - /* component close */ - NULL, - /* component query */ - windows_query - }, - /* MCA v2.0.0 component meta data */ - { - /* the component is checkpoint ready */ - MCA_BASE_METADATA_PARAM_CHECKPOINT - }, - windows_runtime_query, - }, - /* ////////////////////////////////////////////////////////////////////// */ - /* windows component-specific information */ - /* see: shmem_windows.h for more information */ - /* ////////////////////////////////////////////////////////////////////// */ - /* (default) priority - set high to make windows the default */ - 45 -}; - -/* ////////////////////////////////////////////////////////////////////////// */ -static int -windows_runtime_query(mca_base_module_t **module, - int *priority, - const char *hint) -{ - /* no run-time query needed for windows, so this is easy */ - *priority = mca_shmem_windows_component.priority; - *module = (mca_base_module_t *)&opal_shmem_windows_module.super; - return OPAL_SUCCESS; -} - -/* ////////////////////////////////////////////////////////////////////////// */ -static int -windows_open(void) -{ - mca_base_param_reg_int( - &mca_shmem_windows_component.super.base_version, - "priority", "Priority of the windows shmem component", false, false, - mca_shmem_windows_component.priority, &mca_shmem_windows_component.priority - ); - - return OPAL_SUCCESS; -} - -/* ////////////////////////////////////////////////////////////////////////// */ -static int -windows_query(mca_base_module_t **module, int *priority) -{ - *priority = mca_shmem_windows_component.priority; - *module = (mca_base_module_t *)&opal_shmem_windows_module.super; - return OPAL_SUCCESS; -} - diff --git a/opal/mca/shmem/windows/shmem_windows_module.c b/opal/mca/shmem/windows/shmem_windows_module.c deleted file mode 100644 index 1971627fbe..0000000000 --- a/opal/mca/shmem/windows/shmem_windows_module.c +++ /dev/null @@ -1,467 +0,0 @@ -/* - * Copyright (c) 2004-2008 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-2010 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved. - * Copyright (c) 2010-2012 Los Alamos National Security, LLC. - * All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#include "opal_config.h" - -#include -#ifdef HAVE_FCNTL_H -#include -#endif /* HAVE_FCNTL_H */ -#ifdef HAVE_SYS_MMAN_H -#include -#endif /* HAVE_SYS_MMAN_H */ -#ifdef HAVE_UNISTD_H -#include -#endif /* HAVE_UNISTD_H */ -#ifdef HAVE_SYS_TYPES_H -#include -#endif /* HAVE_SYS_TYPES_H */ -#ifdef HAVE_STRING_H -#include -#endif /* HAVE_STRING_H */ - -#include "opal_stdint.h" -#include "opal/constants.h" -#include "opal_stdint.h" -#include "opal/util/output.h" -#include "opal/util/path.h" -#include "opal/util/show_help.h" -#include "opal/mca/base/mca_base_param.h" -#include "opal/mca/shmem/shmem.h" -#include "opal/mca/shmem/base/base.h" - -#include "opal/mca/shmem/windows/shmem_windows.h" - -/* for tons of debug output: -mca shmem_base_verbose 70 */ - -/* ////////////////////////////////////////////////////////////////////////// */ -/*local functions */ -/* local functions */ -static int -module_init(void); - -static int -segment_create(opal_shmem_ds_t *ds_buf, - const char *file_name, - size_t size); - -static int -ds_copy(const opal_shmem_ds_t *from, - opal_shmem_ds_t *to); - -static void * -segment_attach(opal_shmem_ds_t *ds_buf); - -static int -segment_detach(opal_shmem_ds_t *ds_buf); - -static int -segment_unlink(opal_shmem_ds_t *ds_buf); - -static int -module_finalize(void); - -static int -enough_space(const char *filename, - size_t space_req, - uint64_t *space_avail, - bool *result); - -/* - * windows shmem module - */ -opal_shmem_windows_module_t opal_shmem_windows_module = { - /* super */ - { - module_init, - segment_create, - ds_copy, - segment_attach, - segment_detach, - segment_unlink, - module_finalize - } -}; - -/* ////////////////////////////////////////////////////////////////////////// */ -/* private utility functions */ -/* ////////////////////////////////////////////////////////////////////////// */ - -/* ////////////////////////////////////////////////////////////////////////// */ -/** - * completely resets the contents of *ds_buf - */ -static inline void -shmem_ds_reset(opal_shmem_ds_t *ds_buf) -{ - /* don't print ds_buf info here, as we may be printing garbage. */ - OPAL_OUTPUT_VERBOSE( - (70, opal_shmem_base_output, - "%s: %s: shmem_ds_resetting\n", - mca_shmem_windows_component.super.base_version.mca_type_name, - mca_shmem_windows_component.super.base_version.mca_component_name) - ); - - ds_buf->seg_cpid = 0; - OPAL_SHMEM_DS_RESET_FLAGS(ds_buf); - ds_buf->seg_id = OPAL_SHMEM_DS_ID_INVALID; - ds_buf->seg_size = 0; - memset(ds_buf->seg_name, '\0', OPAL_PATH_MAX); -} - -/* ////////////////////////////////////////////////////////////////////////// */ -static int -enough_space(const char *filename, - size_t space_req, - uint64_t *space_avail, - bool *result) -{ - uint64_t avail = 0; - size_t fluff = (size_t)(.05 * space_req); - bool enough = false; - char *last_sep = NULL; - /* the target file name is passed here, but we need to check the parent - * directory. store it so we can extract that info later. */ - char *target_dir = strdup(filename); - int rc; - - if (NULL == target_dir) { - rc = OPAL_ERR_OUT_OF_RESOURCE; - goto out; - } - /* get the parent directory */ - last_sep = strrchr(target_dir, OPAL_PATH_SEP[0]); - *last_sep = '\0'; - /* now check space availability */ - if (OPAL_SUCCESS != (rc = opal_path_df(target_dir, &avail))) { - OPAL_OUTPUT_VERBOSE( - (70, opal_shmem_base_output, - "WARNING: opal_path_df failure!") - ); - goto out; - } - /* do we have enough space? */ - if (avail >= space_req + fluff) { - enough = true; - } - else { - OPAL_OUTPUT_VERBOSE( - (70, opal_shmem_base_output, - "WARNING: not enough space on %s to meet request!" - "available: %"PRIu64 "requested: %lu", target_dir, - avail, (unsigned long)space_req + fluff) - ); - } - -out: - if (NULL != target_dir) { - free(target_dir); - } - *result = enough; - *space_avail = avail; - return rc; -} - -/* ////////////////////////////////////////////////////////////////////////// */ -static int -module_init(void) -{ - /* nothing to do */ - return OPAL_SUCCESS; -} - -/* ////////////////////////////////////////////////////////////////////////// */ -static int -module_finalize(void) -{ - /* nothing to do */ - return OPAL_SUCCESS; -} - -/* ////////////////////////////////////////////////////////////////////////// */ -static int -ds_copy(const opal_shmem_ds_t *from, - opal_shmem_ds_t *to) -{ - memcpy(to, from, sizeof(opal_shmem_ds_t)); - - OPAL_OUTPUT_VERBOSE( - (70, opal_shmem_base_output, - "%s: %s: ds_copy complete " - "from: (id: %d, size: %"PRIsize_t", " - "name: %s flags: 0x%02x) " - "to: (id: %d, size: %"PRIsize_t", " - "name: %s flags: 0x%02x)\n", - mca_shmem_windows_component.super.base_version.mca_type_name, - mca_shmem_windows_component.super.base_version.mca_component_name, - from->seg_id, from->seg_size, from->seg_name, from->flags, to->seg_id, - to->seg_size, to->seg_name, to->flags) - ); - - return OPAL_SUCCESS; -} - -/* ////////////////////////////////////////////////////////////////////////// */ -static int -segment_create(opal_shmem_ds_t *ds_buf, - const char *file_name, - size_t size) -{ - int rc = OPAL_SUCCESS; - pid_t my_pid = getpid(); - char *temp1 = NULL, *temp2 = NULL; - bool space_available = false; - uint64_t amount_space_avail = 0; - - /* the real size of the shared memory segment. this includes enough space - * to store our segment header. - */ - size_t real_size = size + sizeof(opal_shmem_seg_hdr_t); - opal_shmem_seg_hdr_t *seg_hdrp = NULL; - HANDLE hMapObject = INVALID_HANDLE_VALUE; - LPVOID lpvMem = NULL; - - /* init the contents of opal_shmem_ds_t */ - shmem_ds_reset(ds_buf); - - /* On Windows the shared file will be created by the OS directly on the - * system ressources. Therefore, no file get involved in the operation. - * However, a unique key should be used as name for the shared memory object - * in order to allow all processes to access the same unique shared memory - * region. The key will be obtained from the original file_name by replacing - * all path separator occurences by '/' (as '\' is not allowed on the object - * name). - */ - temp1 = strdup(file_name); - if (NULL == temp1) { - return OPAL_ERR_OUT_OF_RESOURCE; - } - - temp2 = temp1; - while (NULL != (temp2 = strchr(temp2, OPAL_PATH_SEP[0])) ) { - *temp2 = '/'; - } - /* let's make sure we have enough space for the backing file */ - if (OPAL_SUCCESS != (rc = enough_space(temp1, - real_size, - &amount_space_avail, - &space_available))) { - opal_output(0, "shmem: windows: an error occurred while determining " - "whether or not %s could be created.", temp1); - /* rc is set */ - free(temp1); - goto out; - } - if (!space_available) { - char hn[MAXHOSTNAMELEN]; - gethostname(hn, MAXHOSTNAMELEN - 1); - hn[MAXHOSTNAMELEN - 1] = '\0'; - rc = OPAL_ERR_OUT_OF_RESOURCE; - opal_show_help("help-opal-shmem-windows.txt", "target full", 1, - temp1, hn, (unsigned long)real_size, - (unsigned long long)amount_space_avail); - free(temp1); - goto out; - } - /* enough space is available, so create the segment */ - /* use paging file */ - hMapObject = CreateFileMapping(INVALID_HANDLE_VALUE, - /* no security attributes */ - NULL, - /* read/write access */ - PAGE_READWRITE, - /* size: high 32-bits */ - 0, - /* size: low 32-bits */ - (DWORD)real_size, - /* name of map object */ - temp1); - if (NULL == hMapObject) { - rc = OPAL_ERROR; - goto out; - } - /* Get a pointer to the file-mapped shared memory. */ - lpvMem = MapViewOfFile(hMapObject, /* object to map view of */ - FILE_MAP_WRITE, /* read/write access */ - 0, /* high offset: map from */ - 0, /* low offset: beginning */ - 0); /* default: map entire file */ - if (NULL == lpvMem) { - rc = OPAL_ERROR; - goto out; - } - - seg_hdrp = (opal_shmem_seg_hdr_t *)lpvMem; - - /* all is well */ - /* -- initialize the shared memory segment -- */ - opal_atomic_rmb(); - - /* init segment lock */ - opal_atomic_init(&seg_hdrp->lock, OPAL_ATOMIC_UNLOCKED); - /* i was the creator of this segment, so note that fact */ - seg_hdrp->cpid = my_pid; - - opal_atomic_wmb(); - - /* -- initialize the contents of opal_shmem_ds_t -- */ - ds_buf->seg_cpid = my_pid; - ds_buf->seg_size = real_size; - ds_buf->seg_base_addr = (unsigned char *)seg_hdrp; - /* update path change in ds_buf */ - memcpy(ds_buf->seg_name, temp1, OPAL_PATH_MAX); - /* relase the temporary file name */ - free(temp1); - - /* set "valid" bit because setment creation was successful */ - OPAL_SHMEM_DS_SET_VALID(ds_buf); - - OPAL_OUTPUT_VERBOSE( - (70, opal_shmem_base_output, - "%s: %s: create successful " - "(id: %d, size: %"PRIsize_t", name: %s)\n", - mca_shmem_windows_component.super.base_version.mca_type_name, - mca_shmem_windows_component.super.base_version.mca_component_name, - ds_buf->seg_id, ds_buf->seg_size, ds_buf->seg_name) - ); - -out: - /* an error occured, so invalidate the shmem object and munmap if needed */ - if (OPAL_SUCCESS != rc) { - if (NULL != seg_hdrp) { - UnmapViewOfFile((LPVOID)seg_hdrp); - } - shmem_ds_reset(ds_buf); - } - return rc; -} - -/* ////////////////////////////////////////////////////////////////////////// */ -/** - * segment_attach can only be called after a successful call to segment_create - */ -static void * -segment_attach(opal_shmem_ds_t *ds_buf) -{ - pid_t my_pid = getpid(); - HANDLE hMapObject = INVALID_HANDLE_VALUE; - LPVOID lpvMem = NULL; - - /* i was not the creator of the segment */ - if (my_pid != ds_buf->seg_cpid) { - /* use paging file */ - hMapObject = CreateFileMapping(INVALID_HANDLE_VALUE, - /* no security attributes */ - NULL, - /* read/write access */ - PAGE_READWRITE, - /* size: high 32-bits */ - 0, - /* size: low 32-bits */ - (DWORD)ds_buf->seg_size, - /* name of map object */ - ds_buf->seg_name); - if (NULL == hMapObject) { - return NULL; - } - /* Get a pointer to the file-mapped shared memory. */ - lpvMem = MapViewOfFile(hMapObject, /* object to map view of */ - FILE_MAP_WRITE, /* read/write access */ - 0, /* high offset: map from */ - 0, /* low offset: beginning */ - 0); /* default: map entire file */ - if (NULL == lpvMem) { - return NULL; - } - ds_buf->seg_base_addr = (unsigned char *)lpvMem; - } - /* else i was the segment creator. nothing to do here because all the hard - * work was done in segment_create :-). - */ - - OPAL_OUTPUT_VERBOSE( - (70, opal_shmem_base_output, - "%s: %s: attach successful " - "(id: %d, size: %"PRIsize_t", name: %s)\n", - mca_shmem_windows_component.super.base_version.mca_type_name, - mca_shmem_windows_component.super.base_version.mca_component_name, - ds_buf->seg_id, ds_buf->seg_size, ds_buf->seg_name) - ); - - /* update returned base pointer with an offset that hides our stuff */ - return (ds_buf->seg_base_addr + sizeof(opal_shmem_seg_hdr_t)); -} - -/* ////////////////////////////////////////////////////////////////////////// */ -static int -segment_detach(opal_shmem_ds_t *ds_buf) -{ - int rc = OPAL_SUCCESS; - - OPAL_OUTPUT_VERBOSE( - (70, opal_shmem_base_output, - "%s: %s: detaching " - "(id: %d, size: %"PRIsize_t", name: %s)\n", - mca_shmem_windows_component.super.base_version.mca_type_name, - mca_shmem_windows_component.super.base_version.mca_component_name, - ds_buf->seg_id, ds_buf->seg_size, ds_buf->seg_name) - ); - - if (0 == UnmapViewOfFile((LPVOID)ds_buf->seg_base_addr)) { - int err = errno; - char hn[MAXHOSTNAMELEN]; - gethostname(hn, MAXHOSTNAMELEN - 1); - hn[MAXHOSTNAMELEN - 1] = '\0'; - opal_show_help("help-opal-shmem-windows.txt", "sys call fail", 1, hn, - "UnmapViewOfFile", "", strerror(err), err); - rc = OPAL_ERROR; - } - /* reset the contents of the opal_shmem_ds_t associated with this - * shared memory segment. - */ - shmem_ds_reset(ds_buf); - return rc; -} - -/* ////////////////////////////////////////////////////////////////////////// */ -static int -segment_unlink(opal_shmem_ds_t *ds_buf) -{ - OPAL_OUTPUT_VERBOSE( - (70, opal_shmem_base_output, - "%s: %s: unlinking " - "(id: %d, size: %"PRIsize_t", name: %s)\n", - mca_shmem_windows_component.super.base_version.mca_type_name, - mca_shmem_windows_component.super.base_version.mca_component_name, - ds_buf->seg_id, ds_buf->seg_size, ds_buf->seg_name) - ); - - /* don't completely reset the opal_shmem_ds_t. in particular, only reset - * the id and flip the invalid bit. size and name values will remain valid - * across unlinks. other information stored in flags will remain untouched. - */ - ds_buf->seg_id = OPAL_SHMEM_DS_ID_INVALID; - /* note: this is only chaning the valid bit to 0. */ - OPAL_SHMEM_DS_INVALIDATE(ds_buf); - return OPAL_SUCCESS; -} diff --git a/opal/mca/timer/windows/.windows b/opal/mca/timer/windows/.windows deleted file mode 100644 index 48475aa466..0000000000 --- a/opal/mca/timer/windows/.windows +++ /dev/null @@ -1,11 +0,0 @@ -# -# Copyright (c) 2009 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -not_single_shared_lib=1 diff --git a/opal/mca/timer/windows/Makefile.am b/opal/mca/timer/windows/Makefile.am deleted file mode 100644 index 595cd300b5..0000000000 --- a/opal/mca/timer/windows/Makefile.am +++ /dev/null @@ -1,27 +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-2009 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$ -# - -EXTRA_DIST = .windows - -noinst_LTLIBRARIES = libmca_timer_windows.la - -libmca_timer_windows_la_SOURCES = \ - timer_windows.h \ - timer_windows_component.h \ - timer_windows_component.c diff --git a/opal/mca/timer/windows/configure.m4 b/opal/mca/timer/windows/configure.m4 deleted file mode 100644 index 32b810e028..0000000000 --- a/opal/mca/timer/windows/configure.m4 +++ /dev/null @@ -1,60 +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$ -# -AC_DEFUN([MCA_opal_timer_windows_PRIORITY], [30]) - -AC_DEFUN([MCA_opal_timer_windows_COMPILE_MODE], [ - AC_MSG_CHECKING([for MCA component $2:$3 compile mode]) - $4="static" - AC_MSG_RESULT([$$4]) -]) - -AC_DEFUN([MCA_opal_timer_windows_POST_CONFIG],[ - AS_IF([test "$1" = "1"], [timer_base_include="windows/timer_windows.h"]) -])dnl - -# MCA_timer_windows_CONFIG(action-if-can-compile, -# [action-if-cant-compile]) -# ------------------------------------------------ -AC_DEFUN([MCA_opal_timer_windows_CONFIG],[ - AC_CONFIG_FILES([opal/mca/timer/windows/Makefile]) - - AS_IF([test "$with_timer" = "windows"], - [timer_windows_happy="yes" - timer_windows_should_use=1], - [timer_windows_should_use=0 - AS_IF([test "$with_timer" = ""], - [timer_windows_happy="yes"], - [timer_windows_happy="no"])]) - - AS_IF([test "$timer_windows_happy" = "yes"], - [AC_TRY_COMPILE([#include ], - [LARGE_INTEGER now; - QueryPerformanceCounter( &now );], - [timer_windows_happy="yes"], - [timer_windows_happy="no"])]) - - AS_IF([test "$timer_windows_happy" = "no" -a \ - "$timer_windows_should_use" = "1"], - [AC_MSG_ERROR([Windows timer requested but not available. Aborting.])]) - - AS_IF([test "$timer_windows_happy" = "yes"], - [$1], - [$2]) -]) diff --git a/opal/mca/timer/windows/timer_windows.h b/opal/mca/timer/windows/timer_windows.h deleted file mode 100644 index 1617cca738..0000000000 --- a/opal/mca/timer/windows/timer_windows.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2006 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 OPAL_MCA_TIMER_WINDOWS_H -#define OPAL_MCA_TIMER_WINDOWS_H - -#include "opal_config.h" -#include "windows.h" - -#include - -BEGIN_C_DECLS - -OPAL_DECLSPEC extern opal_timer_t opal_timer_windows_freq; -OPAL_DECLSPEC extern opal_timer_t opal_timer_windows_start; - -static inline opal_timer_t -opal_timer_base_get_cycles(void) -{ - LARGE_INTEGER now; - QueryPerformanceCounter( &now ); - return (now.QuadPart - opal_timer_windows_start); -} - - -static inline opal_timer_t -opal_timer_base_get_usec(void) -{ - /* freq is in Hz, so this gives usec */ - return opal_sys_timer_get_cycles() * 1000000 / opal_timer_windows_freq; -} - - -static inline opal_timer_t -opal_timer_base_get_freq(void) -{ - return opal_timer_windows_freq; -} - - -#define OPAL_TIMER_CYCLE_NATIVE OPAL_HAVE_SYS_TIMER_GET_CYCLES -#define OPAL_TIMER_CYCLE_SUPPORTED OPAL_HAVE_SYS_TIMER_GET_CYCLES -#define OPAL_TIMER_USEC_NATIVE 0 -#define OPAL_TIMER_USEC_SUPPORTED OPAL_HAVE_SYS_TIMER_GET_CYCLES - -END_C_DECLS - -#endif diff --git a/opal/mca/timer/windows/timer_windows_component.c b/opal/mca/timer/windows/timer_windows_component.c deleted file mode 100644 index 5d5bbd3bf5..0000000000 --- a/opal/mca/timer/windows/timer_windows_component.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2006 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$ - */ - -#include "opal_config.h" - -#include "opal/mca/timer/timer.h" -#include "opal/mca/timer/windows/timer_windows_component.h" -#include "opal/constants.h" - -opal_timer_t opal_timer_windows_freq; -opal_timer_t opal_timer_windows_start; - -static int opal_timer_windows_open(void); - -const -opal_timer_base_component_2_0_0_t mca_timer_windows_component = { - /* First, the mca_component_t struct containing meta information - about the component itself */ - { - OPAL_TIMER_BASE_VERSION_2_0_0, - - /* Component name and version */ - "windows", - OPAL_MAJOR_VERSION, - OPAL_MINOR_VERSION, - OPAL_RELEASE_VERSION, - - /* Component open and close functions */ - opal_timer_windows_open, - NULL - }, - { - /* The component is checkpoint ready */ - MCA_BASE_METADATA_PARAM_CHECKPOINT - }, -}; - -int -opal_timer_windows_open(void) -{ - LARGE_INTEGER now; - - if( 0 != QueryPerformanceFrequency( &now ) ) { - opal_timer_windows_freq = now.QuadPart; - QueryPerformanceCounter( &now ); - opal_timer_windows_start = now.QuadPart; - return OPAL_SUCCESS; - } - return OPAL_SUCCESS; -} diff --git a/opal/mca/timer/windows/timer_windows_component.h b/opal/mca/timer/windows/timer_windows_component.h deleted file mode 100644 index 9801a7d67d..0000000000 --- a/opal/mca/timer/windows/timer_windows_component.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2006 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 OPAL_MCA_TIMER_WINDOWS_COMPONENT_H -#define OPAL_MCA_TIMER_WINDOWS_COMPONENT_H - -#include "opal_config.h" -#include "opal/mca/timer/windows/timer_windows.h" - -BEGIN_C_DECLS - -OPAL_DECLSPEC extern const opal_timer_base_component_2_0_0_t mca_timer_windows_component; - -END_C_DECLS - -#endif diff --git a/orte/mca/errmgr/default_app/.windows b/orte/mca/errmgr/default_app/.windows deleted file mode 100644 index aa7d7bbbe5..0000000000 --- a/orte/mca/errmgr/default_app/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte diff --git a/orte/mca/errmgr/default_app/Makefile.am b/orte/mca/errmgr/default_app/Makefile.am index 0d778fb80b..67366f7223 100644 --- a/orte/mca/errmgr/default_app/Makefile.am +++ b/orte/mca/errmgr/default_app/Makefile.am @@ -7,8 +7,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ errmgr_default_app.h \ errmgr_default_app_component.c \ diff --git a/orte/mca/errmgr/default_hnp/.windows b/orte/mca/errmgr/default_hnp/.windows deleted file mode 100644 index aa7d7bbbe5..0000000000 --- a/orte/mca/errmgr/default_hnp/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte diff --git a/orte/mca/errmgr/default_hnp/Makefile.am b/orte/mca/errmgr/default_hnp/Makefile.am index 1ca3729f10..6aa80021f3 100644 --- a/orte/mca/errmgr/default_hnp/Makefile.am +++ b/orte/mca/errmgr/default_hnp/Makefile.am @@ -7,8 +7,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ errmgr_default_hnp.h \ errmgr_default_hnp_component.c \ diff --git a/orte/mca/errmgr/default_orted/.windows b/orte/mca/errmgr/default_orted/.windows deleted file mode 100644 index aa7d7bbbe5..0000000000 --- a/orte/mca/errmgr/default_orted/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte diff --git a/orte/mca/errmgr/default_orted/Makefile.am b/orte/mca/errmgr/default_orted/Makefile.am index 8ae10db828..54f19802d3 100644 --- a/orte/mca/errmgr/default_orted/Makefile.am +++ b/orte/mca/errmgr/default_orted/Makefile.am @@ -7,8 +7,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ errmgr_default_orted.h \ errmgr_default_orted_component.c \ diff --git a/orte/mca/ess/env/.windows b/orte/mca/ess/env/.windows deleted file mode 100644 index aa7d7bbbe5..0000000000 --- a/orte/mca/ess/env/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte diff --git a/orte/mca/ess/env/Makefile.am b/orte/mca/ess/env/Makefile.am index 6e5f90dc98..1d6291fe10 100644 --- a/orte/mca/ess/env/Makefile.am +++ b/orte/mca/ess/env/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ ess_env.h \ ess_env_component.c \ diff --git a/orte/mca/ess/hnp/.windows b/orte/mca/ess/hnp/.windows deleted file mode 100644 index aa7d7bbbe5..0000000000 --- a/orte/mca/ess/hnp/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte diff --git a/orte/mca/ess/hnp/Makefile.am b/orte/mca/ess/hnp/Makefile.am index a1aaac5448..943c6510a2 100644 --- a/orte/mca/ess/hnp/Makefile.am +++ b/orte/mca/ess/hnp/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ ess_hnp.h \ ess_hnp_component.c \ diff --git a/orte/mca/ess/singleton/.windows b/orte/mca/ess/singleton/.windows deleted file mode 100644 index aa7d7bbbe5..0000000000 --- a/orte/mca/ess/singleton/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte diff --git a/orte/mca/ess/singleton/Makefile.am b/orte/mca/ess/singleton/Makefile.am index fb19e5aa9f..b356ebd18f 100644 --- a/orte/mca/ess/singleton/Makefile.am +++ b/orte/mca/ess/singleton/Makefile.am @@ -16,8 +16,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ ess_singleton.h \ ess_singleton_component.c \ diff --git a/orte/mca/ess/tool/.windows b/orte/mca/ess/tool/.windows deleted file mode 100644 index aa7d7bbbe5..0000000000 --- a/orte/mca/ess/tool/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte diff --git a/orte/mca/ess/tool/Makefile.am b/orte/mca/ess/tool/Makefile.am index 9c0e02c53d..daa229dfcd 100644 --- a/orte/mca/ess/tool/Makefile.am +++ b/orte/mca/ess/tool/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ ess_tool.h \ ess_tool_component.c \ diff --git a/orte/mca/grpcomm/bad/.windows b/orte/mca/grpcomm/bad/.windows deleted file mode 100644 index 47925ab72e..0000000000 --- a/orte/mca/grpcomm/bad/.windows +++ /dev/null @@ -1,12 +0,0 @@ -'# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte Ws2_32.lib diff --git a/orte/mca/grpcomm/bad/Makefile.am b/orte/mca/grpcomm/bad/Makefile.am index c5142cc3b5..a4ad692de2 100644 --- a/orte/mca/grpcomm/bad/Makefile.am +++ b/orte/mca/grpcomm/bad/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - sources = \ grpcomm_bad.h \ grpcomm_bad_module.c \ diff --git a/orte/mca/iof/hnp/.windows b/orte/mca/iof/hnp/.windows deleted file mode 100644 index 47925ab72e..0000000000 --- a/orte/mca/iof/hnp/.windows +++ /dev/null @@ -1,12 +0,0 @@ -'# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte Ws2_32.lib diff --git a/orte/mca/iof/hnp/Makefile.am b/orte/mca/iof/hnp/Makefile.am index 1fa600eded..8de06cc575 100644 --- a/orte/mca/iof/hnp/Makefile.am +++ b/orte/mca/iof/hnp/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - # Make the output library in this directory, and name it either # mca__.la (for DSO builds) or libmca__.la # (for static builds). diff --git a/orte/mca/iof/orted/.windows b/orte/mca/iof/orted/.windows deleted file mode 100644 index 3d38f80566..0000000000 --- a/orte/mca/iof/orted/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte Ws2_32.lib diff --git a/orte/mca/iof/orted/Makefile.am b/orte/mca/iof/orted/Makefile.am index 63980ec497..ddc40d8e36 100644 --- a/orte/mca/iof/orted/Makefile.am +++ b/orte/mca/iof/orted/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - # Make the output library in this directory, and name it either # mca__.la (for DSO builds) or libmca__.la # (for static builds). diff --git a/orte/mca/iof/tool/.windows b/orte/mca/iof/tool/.windows deleted file mode 100644 index aa7d7bbbe5..0000000000 --- a/orte/mca/iof/tool/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte diff --git a/orte/mca/iof/tool/Makefile.am b/orte/mca/iof/tool/Makefile.am index 89f5e68c7c..3d44ec60e4 100644 --- a/orte/mca/iof/tool/Makefile.am +++ b/orte/mca/iof/tool/Makefile.am @@ -17,8 +17,6 @@ # $HEADER$ # -EXTRA_DIST = .windows - # Make the output library in this directory, and name it either # mca__.la (for DSO builds) or libmca__.la # (for static builds). diff --git a/orte/mca/odls/process/.windows b/orte/mca/odls/process/.windows deleted file mode 100644 index aa7d7bbbe5..0000000000 --- a/orte/mca/odls/process/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte diff --git a/orte/mca/odls/process/Makefile.am b/orte/mca/odls/process/Makefile.am deleted file mode 100644 index 62e3e45a30..0000000000 --- a/orte/mca/odls/process/Makefile.am +++ /dev/null @@ -1,43 +0,0 @@ -# -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2009 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -EXTRA_DIST = .windows - -dist_pkgdata_DATA = help-orte-odls-process.txt - -sources = \ - odls_process.h \ - odls_process_component.c \ - odls_process_module.c - -# 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_orte_odls_process_DSO -component_noinst = -component_install = mca_odls_process.la -else -component_noinst = libmca_odls_process.la -component_install = -endif - -mcacomponentdir = $(pkglibdir) -mcacomponent_LTLIBRARIES = $(component_install) -mca_odls_process_la_SOURCES = $(sources) -mca_odls_process_la_LDFLAGS = -module -avoid-version - -noinst_LTLIBRARIES = $(component_noinst) -libmca_odls_process_la_SOURCES =$(sources) -libmca_odls_process_la_LDFLAGS = -module -avoid-version diff --git a/orte/mca/odls/process/configure.m4 b/orte/mca/odls/process/configure.m4 deleted file mode 100644 index 906a9e13dc..0000000000 --- a/orte/mca/odls/process/configure.m4 +++ /dev/null @@ -1,24 +0,0 @@ -# -*- shell-script -*- -# -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# Copyright (c) 2011 Los Alamos National Security, LLC. -# All rights reserved. -# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# MCA_odls_process_CONFIG([action-if-found], [action-if-not-found]) -# ----------------------------------------------------------- -AC_DEFUN([MCA_orte_odls_process_CONFIG],[ - AC_CONFIG_FILES([orte/mca/odls/process/Makefile]) - - AC_CHECK_FUNC([CreateProcess], [odls_process_happy="yes"], [odls_process_happy="no"]) - - AS_IF([test "$odls_process_happy" = "yes" -a "$orte_without_full_support" = 0], [$1], [$2]) -])dnl diff --git a/orte/mca/odls/process/help-orte-odls-process.txt b/orte/mca/odls/process/help-orte-odls-process.txt deleted file mode 100644 index 1c851b8f89..0000000000 --- a/orte/mca/odls/process/help-orte-odls-process.txt +++ /dev/null @@ -1,37 +0,0 @@ -# -*- text -*- -# -# Copyright (c) 2004-2005 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# -# This is the US/English general help file for Open RTE's orterun. -# -[orte-odls-process:execv-error] -Could not execute the executable "%s": %s - -This could mean that your PATH or executable name is wrong, or that you do not -have the necessary permissions. Please ensure that the executable is able to be -found and executed. -[orte-odls-process:could-not-kill] -WARNING: A process refused to die! - -Host: %s -PID: %d - -This process may still be running and/or consuming resources. - -[orte-odls-process:could-not-kill] -WARNING: A process refused the kill SIGTERM signal! - This should never happen unless the application is changing the - parent/child relationship permissions. - -Host: %s -PID: %d -Errno: %d - -This process may still be running and/or consuming resources. diff --git a/orte/mca/odls/process/odls_process.h b/orte/mca/odls/process/odls_process.h deleted file mode 100644 index a42d2c9ff8..0000000000 --- a/orte/mca/odls/process/odls_process.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2004-2005 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2008 The Trustees of Indiana University. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef ORTE_ODLS_PROCESS_EXPORT_H -#define ORTE_ODLS_PROCESS_EXPORT_H - -#include "orte_config.h" - -#include "opal/mca/mca.h" - -#include "orte/mca/odls/odls.h" - -BEGIN_C_DECLS -/* - * Module open / close - */ -int orte_odls_process_component_open(void); -int orte_odls_process_component_close(void); -int orte_odls_process_component_query(mca_base_module_t **module, int *priority); - -/* - * ODLS Process module - */ -extern orte_odls_base_module_t orte_odls_process_module; -ORTE_MODULE_DECLSPEC extern orte_odls_base_component_t mca_odls_process_component; - -END_C_DECLS - -#endif /* ORTE_ODLS_PROCESS_EXPORT_H */ diff --git a/orte/mca/odls/process/odls_process_component.c b/orte/mca/odls/process/odls_process_component.c deleted file mode 100644 index 8bb5b01cfe..0000000000 --- a/orte/mca/odls/process/odls_process_component.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2004-2005 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2008 The Trustees of Indiana University. - * All rights reserved. - * - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - */ - -#include "orte_config.h" -#include "orte/constants.h" - -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -#include "opal/mca/base/mca_base_param.h" - - -#include "orte/mca/odls/odls.h" -#include "orte/mca/odls/base/odls_private.h" -#include "orte/mca/odls/process/odls_process.h" - -/* - * Instantiate the public struct with all of our public information - * and pointers to our public functions in it - */ - -orte_odls_base_component_t mca_odls_process_component = { - /* First, the mca_component_t struct containing meta information - about the component itself */ - { - ORTE_ODLS_BASE_VERSION_2_0_0, - /* Component name and version */ - "process", - ORTE_MAJOR_VERSION, - ORTE_MINOR_VERSION, - ORTE_RELEASE_VERSION, - - /* Component open and close functions */ - orte_odls_process_component_open, - orte_odls_process_component_close, - orte_odls_process_component_query - }, - { - /* The component is checkpoint ready */ - MCA_BASE_METADATA_PARAM_CHECKPOINT - } -}; - -int orte_odls_process_component_open(void) -{ - return ORTE_SUCCESS; -} - -int orte_odls_process_component_query(mca_base_module_t **module, int *priority) -{ - /* the base open/select logic protects us against operation when - * we are NOT in a daemon, so we don't have to check that here - */ - - *priority = 1; - *module = (mca_base_module_t *) &orte_odls_process_module; - return ORTE_SUCCESS; -} - -int orte_odls_process_component_close(void) -{ - return ORTE_SUCCESS; -} - -int orte_odls_process_component_finalize(void) -{ - return ORTE_SUCCESS; -} diff --git a/orte/mca/odls/process/odls_process_module.c b/orte/mca/odls/process/odls_process_module.c deleted file mode 100644 index f6b75fc7d3..0000000000 --- a/orte/mca/odls/process/odls_process_module.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright (c) 2004-2007 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - */ - -#include "orte_config.h" -#include "orte/constants.h" - -#include -#ifdef HAVE_UNISTD_H -#include -#endif /* HAVE_UNISTD_H */ -#include -#ifdef HAVE_SYS_TYPES_H -#include -#endif /* HAVE_SYS_TYPES_H */ -#include -#ifdef HAVE_SYS_WAIT_H -#include -#endif /* HAVE_SYS_WAIT_H */ -#include -#ifdef HAVE_FCNTL_H -#include -#endif /* HAVE_FCNTL_H */ - -#include "orte/util/show_help.h" -#include "opal/util/sys_limits.h" -#include "opal/class/opal_pointer_array.h" - -#include "orte/runtime/orte_wait.h" -#include "orte/runtime/orte_globals.h" -#include "orte/mca/errmgr/errmgr.h" -#include "orte/mca/iof/base/iof_base_setup.h" -#include "orte/util/name_fns.h" - -#include "orte/mca/odls/base/base.h" -#include "orte/mca/odls/base/odls_private.h" -#include "orte/mca/odls/process/odls_process.h" - -static void set_handler_default(int sig); - - -static bool odls_process_child_died( orte_proc_t *child ) -{ - int error; - HANDLE handle = OpenProcess( PROCESS_TERMINATE | SYNCHRONIZE, FALSE, - (DWORD)(child->pid) ); - if( 0 == child->pid || INVALID_HANDLE_VALUE == handle ) { - error = GetLastError(); - /* Let's suppose that the process dissapear ... by now */ - return true; - } - CloseHandle(handle); - /* The child didn't die, so return false */ - return false; -} - -static int odls_process_kill_local( pid_t pid, int sig_num ) -{ - if( 0 != pid && false == TerminateProcess( (HANDLE)pid, 1 ) ) { - return (int)GetLastError(); - } - return 0; -} - -static int odls_process_kill_local_procs(opal_pointer_array_t *procs) -{ - int rc; - - if (ORTE_SUCCESS != (rc = orte_odls_base_default_kill_local_procs(procs, - odls_process_kill_local, odls_process_child_died))) { - ORTE_ERROR_LOG(rc); - return rc; - } - return ORTE_SUCCESS; - -} - - -/** - * Fork/exec the specified processes - */ - -static int odls_process_fork_local_proc(orte_app_context_t* context, - orte_proc_t *child, - char **environ_copy, - orte_job_t *jobdat) -{ - pid_t pid; - orte_iof_base_io_conf_t opts; - int rc; - int i = 0; - - /* check the system limits - if we are at our max allowed children, then - * we won't be allowed to do this anyway, so we may as well abort now. - * According to the documentation, num_procs = 0 is equivalent to - * to no limit, so treat it as unlimited here. - */ - if (opal_sys_limits.initialized) { - if (0 < opal_sys_limits.num_procs && - opal_sys_limits.num_procs <= *(&orte_local_children->size)) { - /* at the system limit - abort */ - ORTE_ERROR_LOG(ORTE_ERR_SYS_LIMITS_CHILDREN); - child->state = ORTE_PROC_STATE_FAILED_TO_START; - child->exit_code = ORTE_ERR_SYS_LIMITS_CHILDREN; - return ORTE_ERR_SYS_LIMITS_CHILDREN; - } - } - - /* should pull this information from MPIRUN instead of going with - default */ - opts.usepty = OPAL_ENABLE_PTY_SUPPORT; - - /* do we want to setup stdin? */ - if (jobdat->stdin_target == ORTE_VPID_WILDCARD || child->name.vpid == jobdat->stdin_target) { - opts.connect_stdin = true; - } else { - opts.connect_stdin = false; - } - - if (ORTE_SUCCESS != (rc = orte_iof_base_setup_prefork(&opts))) { - ORTE_ERROR_LOG(rc); - child->state = ORTE_PROC_STATE_FAILED_TO_START; - child->exit_code = rc; - return rc; - } - -#if 0 - /* connect endpoints IOF */ - rc = orte_iof_base_setup_parent(child->name, &opts); - if(ORTE_SUCCESS != rc) { - ORTE_ERROR_LOG(rc); - return rc; - } -#endif - /* Flush all standard handles (stdin, stdout & stderr). */ - _flushall(); - - { - intptr_t handle = _spawnve( _P_NOWAIT, context->app, context->argv, environ_copy ); - - if( -1 == handle ) { - child->state = ORTE_PROC_STATE_FAILED_TO_START; - child->exit_code = ORTE_ERR_PIPE_READ_FAILURE; - orte_show_help("help-orted-launcher.txt", "orted-launcher:execv-error", - true, context->app, "TODO: some error"); - child->state = ORTE_PROC_STATE_ABORTED; - return ORTE_ERROR; - } - pid = handle; - } - - /* set the proc state to LAUNCHED and save the pid */ - child->state = ORTE_PROC_STATE_RUNNING; - child->pid = pid; - child->alive = true; - - return ORTE_SUCCESS; -} - - -/** - * Launch all processes allocated to the current node. - */ - -static int odls_process_launch_local_procs(opal_buffer_t *data) -{ - int rc; - orte_jobid_t job; - - /* construct the list of children we are to launch */ - if (ORTE_SUCCESS != (rc = orte_odls_base_default_construct_child_list(data, &job))) { - OPAL_OUTPUT_VERBOSE((2, orte_odls_globals.output, - "%s odls:process:launch:local failed to construct child list on error %s", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ORTE_ERROR_NAME(rc))); - goto CLEANUP; - } - - /* launch the local procs */ - ORTE_ACTIVATE_LOCAL_LAUNCH(job, odls_process_fork_local_proc); - -CLEANUP: - - return rc; -} - -static int send_signal(pid_t pid, int signal) -{ - return ORTE_ERROR; -} - -static int odls_process_signal_local_proc(const orte_process_name_t *proc, int32_t signal) -{ - int rc; - - if (ORTE_SUCCESS != (rc = orte_odls_base_default_signal_local_procs(proc, signal, send_signal))) { - ORTE_ERROR_LOG(rc); - } - return rc; -} - -static int orte_odls_process_restart_proc(orte_proc_t *child) -{ - int rc; - - /* restart the local proc */ - if (ORTE_SUCCESS != (rc = orte_odls_base_default_restart_proc(child, odls_process_fork_local_proc))) { - OPAL_OUTPUT_VERBOSE((2, orte_odls_globals.output, - "%s odls:process:restart_proc failed to launch on error %s", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ORTE_ERROR_NAME(rc))); - } - return rc; -} - - -orte_odls_base_module_t orte_odls_process_module = { - orte_odls_base_default_get_add_procs_data, - odls_process_launch_local_procs, - odls_process_kill_local_procs, - odls_process_signal_local_proc, - orte_odls_base_default_deliver_message, - orte_odls_base_default_require_sync, - orte_odls_process_restart_proc -}; diff --git a/orte/mca/oob/tcp/.windows b/orte/mca/oob/tcp/.windows deleted file mode 100644 index 3d38f80566..0000000000 --- a/orte/mca/oob/tcp/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte Ws2_32.lib diff --git a/orte/mca/oob/tcp/Makefile.am b/orte/mca/oob/tcp/Makefile.am index c3d5058d60..e767401279 100644 --- a/orte/mca/oob/tcp/Makefile.am +++ b/orte/mca/oob/tcp/Makefile.am @@ -19,8 +19,6 @@ dist_pkgdata_DATA = help-oob-tcp.txt -EXTRA_DIST = .windows - sources = \ oob_tcp.c \ oob_tcp.h \ diff --git a/orte/mca/plm/ccp/.windows b/orte/mca/plm/ccp/.windows deleted file mode 100644 index 4e9bf3157d..0000000000 --- a/orte/mca/plm/ccp/.windows +++ /dev/null @@ -1,13 +0,0 @@ -# -# Copyright (c) 2009-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte -required_check=find_ccp diff --git a/orte/mca/plm/ccp/Makefile.am b/orte/mca/plm/ccp/Makefile.am deleted file mode 100644 index 547871ea33..0000000000 --- a/orte/mca/plm/ccp/Makefile.am +++ /dev/null @@ -1,56 +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-2009 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-2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -EXTRA_DIST = .windows - -AM_CPPFLAGS = $(plm_ccp_CPPFLAGS) - -dist_pkgdata_DATA = help-plm-ccp.txt - -sources = \ - plm_ccp.h \ - plm_ccp_component.c \ - plm_ccp_module.c - -# 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_orte_plm_ccp_DSO -lib = -lib_sources = -component = mca_plm_ccp.la -component_sources = $(sources) -else -lib = libmca_plm_ccp.la -lib_sources = $(sources) -component = -component_sources = -endif - -mcacomponentdir = $(pkglibdir) -mcacomponent_LTLIBRARIES = $(component) -mca_plm_ccp_la_SOURCES = $(component_sources) -mca_plm_ccp_la_LDFLAGS = -module -avoid-version $(plm_ccp_LDFLAGS) -mca_plm_ccp_la_LIBADD = $(plm_ccp_LIBS) - -noinst_LTLIBRARIES = $(lib) -libmca_plm_ccp_la_SOURCES = $(lib_sources) -libmca_plm_ccp_la_LDFLAGS = -module -avoid-version $(plm_ccp_LDFLAGS) -libmca_plm_ccp_la_LIBADD = $(plm_ccp_LIBS) diff --git a/orte/mca/plm/ccp/configure.m4 b/orte/mca/plm/ccp/configure.m4 deleted file mode 100644 index f02a698c47..0000000000 --- a/orte/mca/plm/ccp/configure.m4 +++ /dev/null @@ -1,29 +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. -dnl Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# MCA_plm_ccp_CONFIG([action-if-found], [action-if-not-found]) -# ----------------------------------------------------------- -AC_DEFUN([MCA_orte_plm_ccp_CONFIG],[ - AC_CONFIG_FILES([orte/mca/plm/ccp/Makefile]) - - plm_ccp_good=0 - # CCP does never exist under Unix - [$2] -])dnl diff --git a/orte/mca/plm/ccp/help-plm-ccp.txt b/orte/mca/plm/ccp/help-plm-ccp.txt deleted file mode 100644 index 079da727b3..0000000000 --- a/orte/mca/plm/ccp/help-plm-ccp.txt +++ /dev/null @@ -1,57 +0,0 @@ -# -*- text -*- -# -# 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$ -# -[ccp-bad-launchid] -The CCP process starter cannot spawn the specified -application on a remote node due to an invalid launch_id. - -Node name: %s -Launch id: %d - -This is most likely due to use of the "--hostfile" option to the -command line. At this time, Open MPI/OpenRTE do not support this -method of operation. Instead, the system expects to directly read -information regarding the nodes to be used from the environment. - -Removing "--hostfile" from the command line will likely allow the -application to be launched. This will be fixed in a future release -to support the use of "--hostfile" on the command line. -# -[multiple-prefixes] -Multiple different --prefix options were specified to mpirun for the -same node. This is a fatal error for the ccp process -starter in Open MPI. - -The first two prefix values supplied for node %s were: - %s -and %s -# -[ccp-spawn-failed] -The CCP process starter failed to spawn a daemon (orted) -on a remote node. - -Command line: %s -Node name: %s -Launch id: %d - -If you do not understand this error mesage, please try the following: - -1. Ensure that the executable "orted" is in your PATH -2. Use the --prefix option to indicate where we can - find that executable -3. Talk to your local system administrator diff --git a/orte/mca/plm/ccp/plm_ccp.h b/orte/mca/plm/ccp/plm_ccp.h deleted file mode 100644 index 77f663d534..0000000000 --- a/orte/mca/plm/ccp/plm_ccp.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2004-2006 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - */ - -#ifndef ORTE_plm_CCP_EXPORT_H -#define ORTE_plm_CCP_EXPORT_H - -#include "orte_config.h" - -#include "opal/mca/mca.h" -#include "orte/mca/plm/plm.h" - -BEGIN_C_DECLS - -struct orte_plm_ccp_component_t { - orte_plm_base_component_t super; - int priority; - int debug; - int verbose; - bool want_path_check; - char **checked_paths; - char *stdout_file; - char *stderr_file; - char *job_name; - bool timing; -}; -typedef struct orte_plm_ccp_component_t orte_plm_ccp_component_t; -/* Globally exported variables */ -ORTE_DECLSPEC extern orte_plm_ccp_component_t mca_plm_ccp_component; -extern orte_plm_base_module_t orte_plm_ccp_module; - -END_C_DECLS - -#endif /* ORTE_plm_CCP_EXPORT_H */ diff --git a/orte/mca/plm/ccp/plm_ccp_component.c b/orte/mca/plm/ccp/plm_ccp_component.c deleted file mode 100644 index d5c250cc22..0000000000 --- a/orte/mca/plm/ccp/plm_ccp_component.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (c) 2004-2005 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2004-2008 The Trustees of Indiana University. - * All rights reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - */ - -#include "orte_config.h" - -#include "opal/mca/base/mca_base_param.h" -#include "orte/constants.h" - -#include "orte/util/proc_info.h" - -#include "orte/mca/plm/plm.h" -#include "orte/mca/plm/base/base.h" -#include "orte/mca/plm/base/plm_private.h" -#include "plm_ccp.h" - -/* Import the Windows CCP API. */ -#import "ccpapi.tlb" named_guids no_namespace raw_interfaces_only \ - rename("SetEnvironmentVariable","SetEnvVar") \ - rename("GetJob", "GetSingleJob") \ - rename("AddJob", "AddSingleJob") - - -/* - * Public string showing the plm ompi_ccp component version number - */ -const char *mca_plm_ccp_component_version_string = - "Open MPI ccp plm MCA component version " ORTE_VERSION; - - - -/* - * Local function - */ -static int plm_ccp_open(void); -static int plm_ccp_close(void); -static int orte_plm_ccp_component_query(mca_base_module_t **module, int *priority); - - -/* - * Instantiate the public struct with all of our public information - * and pointers to our public functions in it - */ - -orte_plm_ccp_component_t mca_plm_ccp_component = { - { - /* First, the mca_component_t struct containing meta information - about the component itself */ - - { - ORTE_PLM_BASE_VERSION_2_0_0, - - /* Component name and version */ - "ccp", - ORTE_MAJOR_VERSION, - ORTE_MINOR_VERSION, - ORTE_RELEASE_VERSION, - - /* Component open and close functions */ - plm_ccp_open, - plm_ccp_close, - orte_plm_ccp_component_query - }, - { - /* The component is checkpoint ready */ - MCA_BASE_METADATA_PARAM_CHECKPOINT - } - } -}; - - -static int plm_ccp_open(void) -{ - int tmp, value; - mca_base_component_t *comp = &mca_plm_ccp_component.super.base_version; - - mca_base_param_reg_int(comp, "debug", "Enable debugging of the CCP plm", - false, false, 0, &mca_plm_ccp_component.debug); - mca_base_param_reg_int(comp, "verbose", "Enable verbose output of the ccp plm", - false, false, 0, &mca_plm_ccp_component.verbose); - - mca_base_param_reg_int(comp, "priority", "Default selection priority", - false, false, 75, &mca_plm_ccp_component.priority); - - mca_base_param_reg_int(comp, "want_path_check", - "Whether the launching process should check for " - "the plm_ccp_orted executable in the PATH before " - "launching (the CCP API does not give an indication " - "of failure; this is a somewhat-lame workaround; " - "non-zero values enable this check)", - false, false, (int) true, &tmp); - mca_plm_ccp_component.want_path_check = OPAL_INT_TO_BOOL(tmp); - - mca_base_param_reg_string(comp, "stdout_file", - "Path and file name for stdout on cluster nodes. " - "By default, stdout will be sent to Job Scheduler. " - "If no path specified, the user home path will be used. " - "UNC path will not work for this param. ", - false, false, NULL, - &mca_plm_ccp_component.stdout_file); - - mca_base_param_reg_string(comp, "stderr_file", - "Path and file name for stderr on cluster nodes. " - "By default, stderr will be sent to Job Scheduler. " - "If no path specified, the user home path will be used. " - "UNC path will not work for this param. ", - false, false, NULL, - &mca_plm_ccp_component.stderr_file); - - mca_base_param_reg_string(comp, "job_name", - "The job name for displaying in the scheduler. " - "It is set to the application name by default.", - false, false, NULL, - &mca_plm_ccp_component.job_name); - - mca_plm_ccp_component.checked_paths = NULL; - - return ORTE_SUCCESS; -} - - -static int plm_ccp_close(void) -{ - return ORTE_SUCCESS; -} - - -static int orte_plm_ccp_component_query(mca_base_module_t **module, int *priority) -{ - ICluster* pCluster = NULL; - HRESULT hr = S_OK; - - /* CCP is not thread safe. Use the apartment model. */ - CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); - - /* Try to create the Cluster object. */ - hr = CoCreateInstance( __uuidof(Cluster), - NULL, - CLSCTX_INPROC_SERVER, - __uuidof(ICluster), - reinterpret_cast (&pCluster) ); - if (FAILED(hr)) { - /* We are not Windows clusters, don't select us.*/ - *module = NULL; - return ORTE_ERROR; - } - - /* if we are NOT an HNP, then don't select us */ - if (!ORTE_PROC_IS_HNP) { - pCluster->Release(); - *module = NULL; - return ORTE_ERROR; - } - - /* We are Windows clusters and this is HNP. */ - pCluster->Release(); - *priority = mca_plm_ccp_component.priority; - *module = (mca_base_module_t *) &orte_plm_ccp_module; - return ORTE_SUCCESS; -} diff --git a/orte/mca/plm/ccp/plm_ccp_module.c b/orte/mca/plm/ccp/plm_ccp_module.c deleted file mode 100644 index e130b79cf4..0000000000 --- a/orte/mca/plm/ccp/plm_ccp_module.c +++ /dev/null @@ -1,739 +0,0 @@ -/* - * Copyright (c) 2004-2007 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2010 High Performance Computing Center Stuttgart, - * University of Stuttgart. All rights reserved. - * Copyright (c) 2011-2012 Los Alamos National Security, LLC. All rights - * reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - */ - -#include "orte_config.h" -#include "orte/constants.h" -#include "orte/types.h" - -#ifdef HAVE_UNISTD_H -#include -#endif -#include -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_STAT_H -#include -#endif -#ifdef HAVE_SYS_WAIT_H -#include -#endif -#ifdef HAVE_SCHED_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#endif -#include -#include - -#include "opal/mca/installdirs/installdirs.h" -#include "opal/mca/event/event.h" -#include "opal/util/argv.h" -#include "opal/util/output.h" -#include "opal/util/opal_environ.h" -#include "opal/util/basename.h" -#include "opal/mca/base/mca_base_param.h" - -#include "orte/util/name_fns.h" -#include "orte/runtime/orte_globals.h" -#include "orte/runtime/orte_wait.h" -#include "orte/mca/errmgr/errmgr.h" -#include "orte/mca/rmaps/rmaps.h" -#include "orte/mca/state/state.h" - -#include "orte/mca/plm/plm.h" -#include "orte/mca/plm/base/plm_private.h" -#include "plm_ccp.h" - - -/* Import the Windows CCP API. */ -#import "ccpapi.tlb" named_guids no_namespace raw_interfaces_only \ - rename("SetEnvironmentVariable","SetEnvVar") \ - rename("GetJob", "GetSingleJob") \ - rename("AddJob", "AddSingleJob") - -/* Include the library for ::ConvertBSTRToString */ -#pragma comment(lib, "comsuppw.lib") - -/* - * Local functions - */ -static int plm_ccp_init(void); -static int plm_ccp_launch_job(orte_job_t *jdata); -static int plm_ccp_terminate_orteds(void); -static int plm_ccp_signal_job(orte_jobid_t jobid, int32_t signal); -static int plm_ccp_finalize(void); - -static int plm_ccp_connect(ICluster* pCluster); -static int plm_ccp_disconnect(void); - -void plm_get_cluster_message(ICluster* pCluster); -static char *plm_ccp_commandline(char *prefix, char *node_name, int argc, char **argv); - -/* - * Global variable - */ -orte_plm_base_module_t orte_plm_ccp_module = { - plm_ccp_init, - orte_plm_base_set_hnp_name, - plm_ccp_launch_job, - NULL, - orte_plm_base_orted_terminate_job, - plm_ccp_terminate_orteds, - orte_plm_base_orted_kill_local_procs, - plm_ccp_signal_job, - plm_ccp_finalize -}; - -static void launch_daemons(int fd, short args, void *cbdata); - -/** -* Init the module - */ -static int plm_ccp_init(void) -{ - int rc; - - /* point to our launch command */ - if (ORTE_SUCCESS != (rc = orte_state.add_job_state(ORTE_JOB_STATE_LAUNCH_DAEMONS, - launch_daemons, ORTE_SYS_PRI))) { - ORTE_ERROR_LOG(rc); - return rc; - } - - if (ORTE_SUCCESS != (rc = orte_plm_base_comm_start())) { - ORTE_ERROR_LOG(rc); - } - - /* we assign daemon nodes at launch */ - orte_plm_globals.daemon_nodes_assigned_at_launch = true; - - return rc; -} - - -static int plm_ccp_launch_job(orte_job_t *jdata) -{ - if (ORTE_JOB_CONTROL_RESTART & jdata->controls) { - /* this is a restart situation - skip to the mapping stage */ - ORTE_ACTIVATE_JOB_STATE(jdata, ORTE_JOB_STATE_MAP); - } else { - /* new job - set it up */ - ORTE_ACTIVATE_JOB_STATE(jdata, ORTE_JOB_STATE_INIT); - } - return ORTE_SUCCESS; -} - -/* When working in this function, ALWAYS jump to "cleanup" if - * you encounter an error so that orterun will be woken up and - * the job can cleanly terminate - */ -static void launch_daemons(int fd, short args, void *cbdata) -{ - orte_state_caddy_t *state = (orte_state_caddy_t*)cbdata; - orte_job_t *jdata = state->jdata; - - orte_app_context_t *app; - orte_node_t *node; - orte_std_cntr_t launched = 0, i; - - orte_job_map_t *map = NULL; - int argc, rc, proc_vpid_index; - char *param, **env = NULL, *var, **argv = NULL; - bool connected = false; - char *bin_base = NULL, *lib_base = NULL, *command_line; - - struct timeval completionstop, launchstart, launchstop; - struct timeval jobstart, jobstop; - int maxtime=0, mintime=99999999, maxiter = 0, miniter = 0, deltat; - float avgtime=0.0; - bool failed_launch = true; - mode_t current_umask; - IClusterEnumerable* pNodesCollection = NULL; - IEnumVARIANT* pNodes = NULL; - VARIANT v; - - INode* pNode = NULL; - HRESULT hr = S_OK; - ICluster* pCluster = NULL; - IJob* pJob = NULL; - long job_id, num_processors = 0, idle_processors = 0; - IClusterCounter* pClusterCounter = NULL; - ITask* pTask = NULL; - JobPriority job_priority = JobPriority_Normal; - - orte_jobid_t failed_job; - orte_job_state_t job_state = ORTE_JOB_STATE_NEVER_LAUNCHED; - orte_job_t *daemons; - - /* default to declaring the daemon launch failed */ - failed_job = ORTE_PROC_MY_NAME->jobid; - - /* check for timing request - get start time if so */ - if (orte_timing) { - if (0 != gettimeofday(&jobstart, NULL)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm_ccp: could not obtain job start time")); - } - } - - /* start by launching the virtual machine */ - daemons = orte_get_job_data_object(ORTE_PROC_MY_NAME->jobid); - if (ORTE_SUCCESS != (rc = orte_plm_base_setup_virtual_machine(jdata))) { - ORTE_ERROR_LOG(rc); - goto cleanup; - } - - /* if we don't want to launch, then don't attempt to - * launch the daemons - the user really wants to just - * look at the proposed process map - */ - if (orte_do_not_launch) { - /* set the state to indicate the daemons reported - this - * will trigger the daemons_reported event and cause the - * job to move to the following step - */ - jdata->state = ORTE_JOB_STATE_DAEMONS_LAUNCHED; - ORTE_ACTIVATE_JOB_STATE(jdata, ORTE_JOB_STATE_DAEMONS_REPORTED); - OBJ_RELEASE(state); - return; - } - - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:rsh: launching vm", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME))); - - /* Get the map for this job */ - if (NULL == (map = daemons->map)) { - ORTE_ERROR_LOG(ORTE_ERR_NOT_FOUND); - rc = ORTE_ERR_NOT_FOUND; - goto cleanup; - } - - if (0 == map->num_new_daemons) { - /* set the state to indicate the daemons reported - this - * will trigger the daemons_reported event and cause the - * job to move to the following step - */ - state->jdata->state = ORTE_JOB_STATE_DAEMONS_LAUNCHED; - if (ORTE_JOB_STATE_DAEMONS_REPORTED == daemons->state) { - ORTE_ACTIVATE_JOB_STATE(state->jdata, ORTE_JOB_STATE_DAEMONS_REPORTED); - } - OBJ_RELEASE(state); - return; - } - - /* add the daemon command (as specified by user) */ - argc = 0; - argv = NULL; - orte_plm_base_setup_orted_cmd(&argc, &argv); - - /* Add basic orted command line options */ - orte_plm_base_orted_append_basic_args(&argc, &argv, "env", - &proc_vpid_index, - NULL); - - if (0 < opal_output_get_verbosity(orte_plm_globals.output)) { - param = opal_argv_join(argv, ' '); - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:ccp: final top-level argv:\n\t%s", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), - (NULL == param) ? "NULL" : param)); - if (NULL != param) free(param); - } - - /* CCP is not thread safe. Use the apartment model. */ - CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); - - /* Create the Cluster object. */ - hr = CoCreateInstance( __uuidof(Cluster), - NULL, - CLSCTX_INPROC_SERVER, - __uuidof(ICluster), - reinterpret_cast (&pCluster) ); - if (FAILED(hr)) { - opal_output(orte_plm_globals.output, - "plm:ccp: failed to create cluster object!"); - goto cleanup; - } - - /* Connect to the head node. */ - rc = plm_ccp_connect(pCluster); - if (ORTE_SUCCESS != rc) { - goto cleanup; - } - connected = true; - - hr = pCluster->CreateJob(&pJob); - if (FAILED(hr)) { - plm_get_cluster_message(pCluster); - opal_output(orte_plm_globals.output, - "plm:ccp:failed to create cluster object!"); - goto cleanup; - } - /* Figure out the basenames for the libdir and bindir. There is a - lengthy comment about this in plm_rsh_module.c explaining all - the rationale for how / why we're doing this. */ - lib_base = opal_basename(opal_install_dirs.libdir); - bin_base = opal_basename(opal_install_dirs.bindir); - - /* setup environment */ - env = opal_argv_copy(orte_launch_environ); - - /* add our umask -- see big note in orted.c */ - current_umask = _umask(0); - _umask(current_umask); - asprintf(&var, "0%o", current_umask); - opal_setenv("ORTE_DAEMON_UMASK_VALUE", var, true, &env); - free(var); - - /* If we have a prefix, then modify the PATH and - LD_LIBRARY_PATH environment variables. We only allow - a single prefix to be specified. Since there will - always be at least one app_context, we take it from - there - */ - app = (orte_app_context_t*)opal_pointer_array_get_item(jdata->apps, 0); - if (NULL != app->prefix_dir) { - char *newenv; - - for (i = 0; NULL != env && NULL != env[i]; ++i) { - /* Reset PATH */ - if (0 == strncmp("PATH=", env[i], 5)) { - asprintf(&newenv, "%s/%s:%s", - app->prefix_dir, bin_base, env[i] + 5); - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:ccp: resetting PATH: %s", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), - newenv)); - opal_setenv("PATH", newenv, true, &env); - free(newenv); - } - - /* Reset LD_LIBRARY_PATH */ - else if (0 == strncmp("LD_LIBRARY_PATH=", env[i], 16)) { - asprintf(&newenv, "%s/%s:%s", - app->prefix_dir, lib_base, env[i] + 16); - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:ccp: resetting LD_LIBRARY_PATH: %s", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), - newenv)); - opal_setenv("LD_LIBRARY_PATH", newenv, true, &env); - free(newenv); - } - } - } - - /* This has already been done in RAS, but I have to do it again here. - * Because the node structure doesn't have num_processor member. */ - - /* Get the collection of nodes. */ - hr = pCluster->get_ComputeNodes(&pNodesCollection); - - /* Get the enumerator used to iterate through the collection. */ - hr = pNodesCollection->GetEnumerator(&pNodes); - - VariantInit(&v); - - int *num_procs; - num_procs = (int *) malloc(sizeof(int)*map->num_nodes); - - /* Loop through the collection. */ - while (hr = pNodes->Next(1, &v, NULL) == S_OK) { - v.pdispVal->QueryInterface(IID_INode, reinterpret_cast (&pNode)); - - /* Iterate through each of the nodes and check to sum up all the processors. */ - for (i = 0; i < map->nodes->size; i++) { - if (NULL == (node = (orte_node_t*)opal_pointer_array_get_item(map->nodes, i))) { - continue; - } - - BSTR node_name; - hr = pNode->get_Name(&node_name); - - if( 0 == strcmp(_com_util::ConvertBSTRToString(node_name), node->name)) { - /* Get available number of processors on required node. */ - hr = pNode->get_NumberOfIdleProcessors(&idle_processors); - num_procs[i] = idle_processors; - num_processors += idle_processors; - } - } - } - - if(NULL != mca_plm_ccp_component.job_name){ - pJob->put_Name(_bstr_t(mca_plm_ccp_component.job_name)); - } else { - pJob->put_Name(_bstr_t((*app).app)); - } - - pJob->put_MinimumNumberOfProcessors(num_processors); - if (FAILED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:failed to put min num of processors!")); - goto cleanup; - } - - pJob->put_MaximumNumberOfProcessors(num_processors); - if (FAILED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:failed to put max num of processors!")); - goto cleanup; - } - - hr = pJob->put_Priority(job_priority); - if (FAILED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:failed to set proiority!")); - goto cleanup; - } - - hr = pJob->SetExtendedJobTerm(_bstr_t(L"extended terms"), _bstr_t(L"TermValue")); - - /* set the job state to indicate we attempted to launch */ - job_state = ORTE_JOB_STATE_FAILED_TO_START; - - /* Iterate through each of the nodes and spin - * up a daemon. - */ - for (i = 0; i < map->nodes->size; i++) { - char* vpid_string; - if (NULL == (node = (orte_node_t*)opal_pointer_array_get_item(map->nodes, i))) { - continue; - } - - /* if this daemon already exists, don't launch it! */ - if (node->daemon_launched) { - continue; - } - - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:ccp: launching on node %s", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), - node->name)); - - /* setup process name */ - rc = orte_util_convert_vpid_to_string(&vpid_string, node->daemon->name.vpid); - if (ORTE_SUCCESS != rc) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp: unable to get daemon vpid as string")); - exit(-1); - } - free(argv[proc_vpid_index]); - argv[proc_vpid_index] = strdup(vpid_string); - free(vpid_string); - - /* exec the daemon */ - if (0 < opal_output_get_verbosity(orte_plm_globals.output)) { - param = opal_argv_join(argv, ' '); - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:ccp: executing:\n\t%s", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), - (NULL == param) ? "NULL" : param)); - if (NULL != param) free(param); - } - - /* check for timing request - get start time if so */ - if (orte_timing) { - if (0 != gettimeofday(&launchstart, NULL)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm_ccp: could not obtain start time")); - launchstart.tv_sec = 0; - launchstart.tv_usec = 0; - } - } - /* Set terms for task. */ - hr = pCluster->CreateTask(&pTask); - if (FAILED(hr)) { - plm_get_cluster_message(pCluster); - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:failed to create task object!")); - goto cleanup; - } - - pTask->put_MinimumNumberOfProcessors(num_procs[i]); - if (FAILED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:failed to create task object!")); - goto cleanup; - } - - pTask->put_MaximumNumberOfProcessors(num_procs[i]); - if (FAILED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:failed to create task object!")); - goto cleanup; - } - - pTask->put_RequiredNodes(_bstr_t(node->name)); - if (FAILED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:failed to set required nodes!")); - goto cleanup; - } - - /* Prepare the command line a little bit. */ - command_line = plm_ccp_commandline(app->prefix_dir, node->name, argc, argv); - - hr = pTask->put_CommandLine(_bstr_t(command_line)); - if (FAILED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:failed to put command line!")); - goto cleanup; - } - - if( NULL != mca_plm_ccp_component.stdout_file ) { - hr = pTask->put_Stdout(_bstr_t(mca_plm_ccp_component.stdout_file)); - if (FAILED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:failed to set stdout!")); - goto cleanup; - } - } - - if( NULL != mca_plm_ccp_component.stderr_file) { - hr = pTask->put_Stderr(_bstr_t(mca_plm_ccp_component.stderr_file)); - if (FAILED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:failed to set stderr!")); - goto cleanup; - } - } - - hr = pJob->AddTask(pTask); - if (FAILED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:failed to add task!")); - goto cleanup; - } - -#if 0 - /* RHC: you definitely cannot do that here!! Use - * nanosleep if you need to wait a little while - */ - /* Allow some progress to occur */ - opal_event_loop(orte_event_base, OPAL_EVLOOP_NONBLOCK); -#endif - launched++; - - pTask->Release(); - } - - /* Add job to the queue. */ - hr = pCluster->QueueJob(pJob, NULL, NULL, VARIANT_TRUE, 0, &job_id); - if (SUCCEEDED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "Added job %d to scheduling queue.\n", job_id)); - }else { - plm_get_cluster_message(pCluster); - } - - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:ccp:launch: finished spawning orteds", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME))); - - /* set the job state to indicate the daemons are launched */ - jdata->state = ORTE_JOB_STATE_DAEMONS_LAUNCHED; - - /* set the job state to indicate the daemons are launched */ - state->jdata->state = ORTE_JOB_STATE_DAEMONS_LAUNCHED; - - cleanup: - if (NULL != argv) { - opal_argv_free(argv); - } - - if (NULL != env) { - opal_argv_free(env); - } - - if (connected) { - plm_ccp_disconnect(); - } - - if (NULL != lib_base) { - free(lib_base); - } - - if (NULL != bin_base) { - free(bin_base); - } - - /* check for failed launch - if so, force terminate */ - if (failed_launch) { - ORTE_TERMINATE(ORTE_ERROR_DEFAULT_EXIT_CODE); - } - - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:ccp:launch: finished", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME))); - - OBJ_RELEASE(state); - return; -} - - -/** - * Terminate the orteds for a given job - */ -int plm_ccp_terminate_orteds() -{ - int rc; - - /* now tell them to die */ - if (orte_abnormal_term_ordered) { - /* cannot know if a daemon is able to - * tell us it died, so just ensure they - * all terminate - */ - if (ORTE_SUCCESS != (rc = orte_plm_base_orted_exit(ORTE_DAEMON_HALT_VM_CMD))) { - ORTE_ERROR_LOG(rc); - } - } else { - /* we need them to "phone home", though, - * so we can know that they have exited - */ - if (ORTE_SUCCESS != (rc = orte_plm_base_orted_exit(ORTE_DAEMON_EXIT_CMD))) { - ORTE_ERROR_LOG(rc); - } - } - - return rc; -} - - -static int plm_ccp_signal_job(orte_jobid_t jobid, int32_t signal) -{ - int rc; - - /* order them to pass this signal to their local procs */ - if (ORTE_SUCCESS != (rc = orte_plm_base_orted_signal_local_procs(jobid, signal))) { - ORTE_ERROR_LOG(rc); - } - - return rc; -} - - -/* - * Free stuff - */ -static int plm_ccp_finalize(void) -{ - int rc; - - /* cleanup any pending recvs */ - if (ORTE_SUCCESS != (rc = orte_plm_base_comm_stop())) { - ORTE_ERROR_LOG(rc); - } - - return ORTE_SUCCESS; -} - - -static int plm_ccp_connect(ICluster* pCluster) -{ - size_t i, len; - char *cluster_head = NULL; - HRESULT hr = S_OK; - - if (NULL == orte_ccp_headnode) { - /* Get the cluster head nodes name */ - _dupenv_s(&cluster_head, &len, "LOGONSERVER"); - - if(cluster_head == NULL) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:allocate: connot find cluster head node!")); - return ORTE_ERROR; - } - - /* Get rid of the beginning '//'. */ - for( i = 0; i < len; i++){ - cluster_head[i] = cluster_head[i+2]; - cluster_head[i+2] = '\0'; - } - } else { - cluster_head = orte_ccp_headnode; - } - - /* Connect to the cluster's head node */ - hr = pCluster->Connect(_bstr_t(cluster_head)); - if (FAILED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "plm:ccp:allocate: connection failed!")); - return ORTE_ERROR; - } - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "Connected to Cluster: %s. \n", cluster_head)); - return ORTE_SUCCESS; -} - - -static int plm_ccp_disconnect(void) -{ - return ORTE_SUCCESS; -} - - -/* Generate the proper command line according to the env. */ -static char *plm_ccp_commandline(char *prefix, char *node_name, int argc, char **argv) -{ - char *commandline; - size_t i, len = 0; - - for( i = 0; i < argc; i++ ) { - len += strlen(argv[i]) + 1; - } - - if(NULL != prefix) { - commandline = (char*)malloc(len + strlen(prefix) + 8); - memset(commandline, 0, len + strlen(prefix) + 8); - commandline[0] = '"'; - strcat(commandline, prefix); - strcat(commandline, "\\bin\"\\"); - } else { - commandline = (char*)malloc(len + 1); - memset(commandline, 0, len + 1); - } - - - for(i=0;iget_ErrorMessage(&message); - if (SUCCEEDED(hr)) { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - _com_util::ConvertBSTRToString(message))); - SysFreeString(message); - } - else { - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "pCluster->get_ErrorMessage failed.\n")); - } -} diff --git a/orte/mca/plm/process/.windows b/orte/mca/plm/process/.windows deleted file mode 100644 index aa7d7bbbe5..0000000000 --- a/orte/mca/plm/process/.windows +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2008-2010 High Performance Computing Center Stuttgart, -# University of Stuttgart. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# Specific to this module -mca_link_libraries=libopen-rte diff --git a/orte/mca/plm/process/Makefile.am b/orte/mca/plm/process/Makefile.am deleted file mode 100644 index 86295ab177..0000000000 --- a/orte/mca/plm/process/Makefile.am +++ /dev/null @@ -1,57 +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-2009 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-2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -dist_pkgdata_DATA = help-plm-process.txt - -EXTRA_DIST = .windows - -AM_CPPFLAGS = $(plm_process_CPPFLAGS) - -sources = \ - plm_process.h \ - plm_process_component.c \ - plm_process_module.c - - -# 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_orte_plm_process_DSO -lib = -lib_sources = -component = mca_plm_process.la -component_sources = $(sources) -else -lib = libmca_plm_process.la -lib_sources = $(sources) -component = -component_sources = -endif - -mcacomponentdir = $(pkglibdir) -mcacomponent_LTLIBRARIES = $(component) -mca_plm_process_la_SOURCES = $(component_sources) -mca_plm_process_la_LDFLAGS = -module -avoid-version $(plm_process_LDFLAGS) -mca_plm_process_la_LIBADD = $(plm_process_LIBS) - -noinst_LTLIBRARIES = $(lib) -libmca_plm_process_la_SOURCES = $(lib_sources) -libmca_plm_process_la_LDFLAGS = -module -avoid-version $(plm_process_LDFLAGS) -libmca_plm_process_la_LIBADD = $(plm_process_LIBS) diff --git a/orte/mca/plm/process/configure.m4 b/orte/mca/plm/process/configure.m4 deleted file mode 100644 index ad5209e4d8..0000000000 --- a/orte/mca/plm/process/configure.m4 +++ /dev/null @@ -1,31 +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-2009 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) 2011 Los Alamos National Security, LLC. -# All rights reserved. -# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# - -# MCA_plm_process_CONFIG([action-if-found], [action-if-not-found]) -# ----------------------------------------------------------- -AC_DEFUN([MCA_orte_plm_process_CONFIG],[ - AC_CONFIG_FILES([orte/mca/plm/process/Makefile]) - - plm_process_good=0 - # PROCESS does never exist under Unix - [$2] -])dnl diff --git a/orte/mca/plm/process/help-plm-process.txt b/orte/mca/plm/process/help-plm-process.txt deleted file mode 100644 index 9e7ff33a76..0000000000 --- a/orte/mca/plm/process/help-plm-process.txt +++ /dev/null @@ -1,54 +0,0 @@ -# -*- text -*- -# -# Copyright (c) 2004-2006 The University of Tennessee and The University -# of Tennessee Research Foundation. All rights -# reserved. -# $COPYRIGHT$ -# -# Additional copyrights may follow -# -# $HEADER$ -# -# This is the US/English general help file for Open RTE's orterun. -# -[no-local-orted] -The process PLS component was not able to find the executable "orted" in -your PATH or in the directory where Open MPI was initially installed, -and therefore cannot continue. - -For reference, your current PATH is: - - %s - -We also looked for orted in the following directory: - - %s - -[multiple-prefixes] -Specified multiple application contexts using different -settings for --prefix. Care should be taken, that corresponding -processes are mapped to different nodes. Having multiple prefixes -per node is not allowed. - -The previously set prefix was - %s - -the prefix to be set overriding: - %s - -[concurrency-less-than-zero] -The value of the MCA parameter "pls_process_num_concurrent" is less than -or equal to zero (%d). This parameter is used to determine how many -remote agents (typically process or ssh) to invoke concurrently while -launching parallel jobs. - -This value has automatically be reset to 1; processing will continue. - -[deadlock-params] -The process launcher has been given a number of %d concurrent daemons to -launch and is in a debug-daemons option. However, the total number of -daemons to launch (%d) is greater than this value. This is a scenario that -will cause the system to deadlock. - -To avoid deadlock, either increase the number of concurrent daemons, or -remove the debug-daemons flag. diff --git a/orte/mca/plm/process/plm_process.h b/orte/mca/plm/process/plm_process.h deleted file mode 100644 index df09297ae3..0000000000 --- a/orte/mca/plm/process/plm_process.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2006 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2009 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$ - */ -/** - * @file: - * Part of the process launcher. See plm_process.h for an overview of how it works. - */ - -#ifndef ORTE_PLM_PROCESS_EXPORT_H -#define ORTE_PLM_PROCESS_EXPORT_H - -#include "orte_config.h" - -#ifdef HAVE_SYS_TIME_H -#include -#endif - -#include "opal/threads/condition.h" -#include "opal/mca/mca.h" -#include "orte/mca/plm/plm.h" - -BEGIN_C_DECLS -/* - * Module open / close - */ -int orte_plm_process_component_open(void); -int orte_plm_process_component_close(void); -int orte_plm_process_component_query(mca_base_module_t **module, int *priority); - -/* - * Startup / Shutdown - */ -int orte_plm_process_finalize(void); - -/** - * PLM Component - */ -struct orte_plm_process_component_t { - orte_plm_base_component_t super; - bool debug; - bool debug_malloc; - bool debug_daemons; - bool timing; - bool reap; - bool assume_same_shell; - bool force_process; - bool use_gui_prompt; - bool remote_reg_prefix; - bool remote_env_prefix; - int delay; - int priority; - char* orted; - orte_std_cntr_t num_children; - orte_std_cntr_t num_concurrent; - opal_mutex_t lock; - opal_condition_t cond; -}; -typedef struct orte_plm_process_component_t orte_plm_process_component_t; - -ORTE_MODULE_DECLSPEC extern orte_plm_process_component_t mca_plm_process_component; -extern orte_plm_base_module_t orte_plm_process_module; - -END_C_DECLS - -#endif /* ORTE_PLM_PROCESS_EXPORT_H */ diff --git a/orte/mca/plm/process/plm_process_component.c b/orte/mca/plm/process/plm_process_component.c deleted file mode 100644 index 0f310eaed1..0000000000 --- a/orte/mca/plm/process/plm_process_component.c +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2006 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2009 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$ - * - * These symbols are in a file by themselves to provide nice linker - * semantics. Since linkers generally pull in symbols by object - * files, keeping these symbols as the only symbols in this file - * prevents utility programs such as "ompi_info" from having to import - * entire components just to query their version and parameters. - */ - -#include "orte_config.h" -#include "orte/constants.h" - -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#include - -#include "opal/util/argv.h" -#include "opal/util/path.h" -#include "opal/util/opal_environ.h" -#include "opal/mca/base/mca_base_param.h" - -#include "orte/mca/plm/plm.h" -#include "orte/mca/plm/base/plm_private.h" -#include "orte/mca/plm/process/plm_process.h" -#include "orte/util/show_help.h" - -/* - * Local function - */ -static char **search(const char* agent_list); - - -/* - * Public string showing the plm ompi_process component version number - */ -const char *mca_plm_process_component_version_string = - "Open MPI process plm MCA component version " ORTE_VERSION; - - -/* - * Instantiate the public struct with all of our public information - * and pointers to our public functions in it - */ - -orte_plm_process_component_t mca_plm_process_component = { - { - /* First, the mca_component_t struct containing meta information - about the component itself */ - - { - ORTE_PLM_BASE_VERSION_2_0_0, - - /* Component name and version */ - "process", - ORTE_MAJOR_VERSION, - ORTE_MINOR_VERSION, - ORTE_RELEASE_VERSION, - - /* Component open and close functions */ - orte_plm_process_component_open, - orte_plm_process_component_close, - orte_plm_process_component_query - }, - { - /* This component is not checkpointable */ - MCA_BASE_METADATA_PARAM_NONE - } - } -}; - - - -int orte_plm_process_component_open(void) -{ - int tmp, value; - mca_base_component_t *c = &mca_plm_process_component.super.base_version; - - /* initialize globals */ - OBJ_CONSTRUCT(&mca_plm_process_component.lock, opal_mutex_t); - OBJ_CONSTRUCT(&mca_plm_process_component.cond, opal_condition_t); - mca_plm_process_component.num_children = 0; - - /* lookup parameters */ - mca_base_param_reg_int(c, "num_concurrent", - "How many plm_process_agent instances to invoke concurrently (must be > 0)", - false, false, 128, &tmp); - if (tmp <= 0) { - orte_show_help("help-plm-process.txt", "concurrency-less-than-zero", - true, tmp); - tmp = 1; - } - mca_plm_process_component.num_concurrent = tmp; - - mca_base_param_reg_int(c, "force_process", - "Force the launcher to always use process, even for local daemons", - false, false, false, &tmp); - mca_plm_process_component.force_process = OPAL_INT_TO_BOOL(tmp); - - mca_base_param_reg_string(c, "orted", - "The command name that the process plm component will invoke for the ORTE daemon", - false, false, "orted.exe", - &mca_plm_process_component.orted); - - mca_base_param_reg_int(c, "priority", - "Priority of the process plm component", - false, false, 10, - &mca_plm_process_component.priority); - mca_base_param_reg_int(c, "delay", - "Delay (in seconds) between invocations of the remote agent, but only used when the \"debug\" MCA parameter is true, or the top-level MCA debugging is enabled (otherwise this value is ignored)", - false, false, 1, - &mca_plm_process_component.delay); - mca_base_param_reg_int(c, "reap", - "If set to 1, wait for all the processes to complete before exiting. Otherwise, quit immediately -- without waiting for confirmation that all other processes in the job have completed.", - false, false, 1, &tmp); - mca_plm_process_component.reap = OPAL_INT_TO_BOOL(tmp); - mca_base_param_reg_int(c, "assume_same_shell", - "If set to 1, assume that the shell on the remote node is the same as the shell on the local node. Otherwise, probe for what the remote shell.", - false, false, 1, &tmp); - mca_plm_process_component.assume_same_shell = OPAL_INT_TO_BOOL(tmp); - mca_base_param_reg_int(c, "use_gui_prompt", - "If set to 1, use Windows standard GUI to input user name and password for connecting to remote node. Otherwise, use command line prompt.", - false, false, 0, &tmp); - mca_plm_process_component.use_gui_prompt = OPAL_INT_TO_BOOL(tmp); - mca_base_param_reg_int(c, "remote_reg_prefix", - "If set to 1, the process module will first try to read OPAL_PREFIX registry entry on remote computer to get the orte daemon execute path. If the read failed, it will use the default prefix.", - false, false, 1, &tmp); - mca_plm_process_component.remote_reg_prefix = OPAL_INT_TO_BOOL(tmp); - mca_base_param_reg_int(c, "remote_env_prefix", - "If set to 1, the process module will first try to read OPENMPI_HOME user env on remote computer to get the orte daemon execute path. If the read failed, it will try to read remote registry, and then default prefix.", - false, false, 1, &tmp); - mca_plm_process_component.remote_env_prefix = OPAL_INT_TO_BOOL(tmp); - - return ORTE_SUCCESS; -} - - -int orte_plm_process_component_query(mca_base_module_t **module, int *priority) -{ - *priority = mca_plm_process_component.priority; - *module = (mca_base_module_t *) &orte_plm_process_module; - return ORTE_SUCCESS; -} - - -int orte_plm_process_component_close(void) -{ - /* cleanup state */ - OBJ_DESTRUCT(&mca_plm_process_component.lock); - OBJ_DESTRUCT(&mca_plm_process_component.cond); - if (NULL != mca_plm_process_component.orted) { - free(mca_plm_process_component.orted); - } - return ORTE_SUCCESS; -} - - -/* - * Take a colon-delimited list of agents and locate the first one that - * we are able to find in the PATH. Split that one into argv and - * return it. If nothing found, then return NULL. - */ -static char **search(const char* agent_list) -{ - int i, j; - char *line, **lines = opal_argv_split(agent_list, ':'); - char **tokens, *tmp; - char cwd[PATH_MAX]; - - getcwd(cwd, PATH_MAX); - for (i = 0; NULL != lines[i]; ++i) { - line = lines[i]; - - /* Trim whitespace at the beginning and end of the line */ - for (j = 0; '\0' != line[j] && isspace(line[j]); ++line) { - continue; - } - for (j = (int)strlen(line) - 2; j > 0 && isspace(line[j]); ++j) { - line[j] = '\0'; - } - if (strlen(line) <= 0) { - continue; - } - - /* Split it */ - tokens = opal_argv_split(line, ' '); - - /* Look for the first token in the PATH */ - tmp = opal_path_findv(tokens[0], X_OK, environ, cwd); - if (NULL != tmp) { - free(tokens[0]); - tokens[0] = tmp; - opal_argv_free(lines); - return tokens; - } - - /* Didn't find it */ - opal_argv_free(tokens); - } - - /* Doh -- didn't find anything */ - opal_argv_free(lines); - return NULL; -} diff --git a/orte/mca/plm/process/plm_process_module.c b/orte/mca/plm/process/plm_process_module.c deleted file mode 100644 index 1bdefbc933..0000000000 --- a/orte/mca/plm/process/plm_process_module.c +++ /dev/null @@ -1,1536 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana - * University Research and Technology - * Corporation. All rights reserved. - * Copyright (c) 2004-2009 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * Copyright (c) 2004-2010 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 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2007-2011 Los Alamos National Security, LLC. All rights - * reserved. - * $COPYRIGHT$ - * - * Additional copyrights may follow - * - * $HEADER$ - * - * These symbols are in a file by themselves to provide nice linker - * semantics. Since linkers generally pull in symbols by object - * files, keeping these symbols as the only symbols in this file - * prevents utility programs such as "ompi_info" from having to import - * entire components just to query their version and parameters. - */ - - -#include "orte_config.h" -#include "orte/constants.h" - -#include - -#ifdef HAVE_UNISTD_H -#include -#endif -#include -#include -#ifdef HAVE_SYS_SELECT_H -#include -#endif -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_SYS_STAT_H -#include -#endif -#ifdef HAVE_SYS_WAIT_H -#include -#endif -#include -#include -#ifdef HAVE_PWD_H -#include -#endif - -#ifdef _MSC_VER -#include -#include -#include -#include - -#pragma comment(lib, "wbemuuid.lib") -#pragma comment(lib, "comsuppw.lib") -#pragma comment(lib, "Credui.lib") -#endif - -#include "opal/mca/installdirs/installdirs.h" -#include "opal/mca/base/mca_base_param.h" -#include "opal/util/output.h" -#include "opal/util/os_path.h" -#include "opal/util/path.h" -#include "opal/mca/event/event.h" -#include "opal/util/argv.h" -#include "opal/util/opal_environ.h" -#include "orte/util/show_help.h" -#include "opal/util/trace.h" -#include "opal/util/basename.h" -#include "opal/util/opal_environ.h" - -#include "orte/util/name_fns.h" - -#include "orte/runtime/orte_wait.h" -#include "orte/runtime/orte_globals.h" - -#include "orte/mca/errmgr/errmgr.h" -#include "orte/mca/ras/ras_types.h" -#include "orte/mca/rmaps/rmaps.h" -#include "orte/mca/state/state.h" - -#include "orte/mca/plm/plm.h" -#include "orte/mca/plm/base/base.h" -#include "orte/mca/plm/base/plm_private.h" -#include "orte/mca/plm/process/plm_process.h" - - -#define rindex(a,b) strrchr((a),(b)) - -/* - * Interface - */ -static int orte_plm_process_init(void); -static int orte_plm_process_launch(orte_job_t*); -static int orte_plm_process_terminate_orteds(void); -static int orte_plm_process_signal_job(orte_jobid_t, int32_t); - -orte_plm_base_module_t orte_plm_process_module = { - orte_plm_process_init, - orte_plm_base_set_hnp_name, - orte_plm_process_launch, - NULL, - orte_plm_base_orted_terminate_job, - orte_plm_process_terminate_orteds, - orte_plm_base_orted_kill_local_procs, - orte_plm_process_signal_job, - orte_plm_process_finalize -}; - -static void set_handler_default(int sig); - -enum { - ORTE_PLM_RSH_SHELL_BASH = 0, - ORTE_PLM_RSH_SHELL_ZSH, - ORTE_PLM_RSH_SHELL_TCSH, - ORTE_PLM_RSH_SHELL_CSH, - ORTE_PLM_RSH_SHELL_KSH, - ORTE_PLM_RSH_SHELL_SH, - ORTE_PLM_RSH_SHELL_UNKNOWN -}; - -typedef int orte_plm_process_shell; - -static const char * orte_plm_process_shell_name[] = { - "bash", - "zsh", - "tcsh", /* tcsh has to be first otherwise strstr finds csh */ - "csh", - "ksh", - "sh", - "unknown" -}; - -typedef struct { - opal_list_item_t super; - int argc; - char **argv; - orte_proc_t *daemon; -} orte_plm_process_caddy_t; -static void caddy_const(orte_plm_process_caddy_t *ptr) -{ - ptr->argv = NULL; - ptr->daemon = NULL; -} -static void caddy_dest(orte_plm_process_caddy_t *ptr) -{ - if (NULL != ptr->argv) { - opal_argv_free(ptr->argv); - } - if (NULL != ptr->daemon) { - OBJ_RELEASE(ptr->daemon); - } -} -OBJ_CLASS_INSTANCE(orte_plm_process_caddy_t, - opal_list_item_t, - caddy_const, caddy_dest); - -/* local global storage of timing variables */ -static struct timeval joblaunchstart, joblaunchstop; -static int num_in_progress=0; -static opal_list_t launch_list; -static opal_event_t launch_event; - -static void launch_daemons(int fd, short args, void *cbdata); -static void process_launch_list(int fd, short args, void *cbdata); - -#ifdef _MSC_VER -/* - * local functions - */ -static char *generate_commandline(char *prefix, int argc, char **argv); -static int wmi_launch_child(char *prefix, char *remote_node, int argc, char **argv); -static int get_credential(char *node_name); -static char *read_remote_registry(uint32_t root, char *sub_key, char *key, char *remote_node, char *ntlm_auth); - -/* local global storage of user credential */ -static char user_name[CREDUI_MAX_USERNAME_LENGTH+1]; -static char user_password[CREDUI_MAX_PASSWORD_LENGTH+1]; - -/* WMI service locator */ -IWbemLocator *pLoc = NULL; -/* namespace for \hostname\root\default */ -IWbemServices *pSvc_registry = NULL; -/* namespace for \hostname\root\cimv2 */ -IWbemServices *pSvc_cimv2 = NULL; - - - -static char *generate_commandline(char *prefix, int argc, char **argv) -{ - int i, len = 0; - char *commandline; - - /* Generate remote launch command line. */ - for( i = 0; i < argc; i++ ) { - if(argv[i] != NULL) { - len += strlen(argv[i]) + 1; - } - } - - commandline = (char*)malloc( len + strlen(prefix) + 13); - memset(commandline, 0, len + strlen(prefix) + 13); - - strcat(commandline, "\""); - strcat(commandline, prefix); - strcat(commandline, "\\bin\\orted\" "); - - for(i=1;iConnectServer(_com_util::ConvertStringToBSTR(namespace_default), /* namespace */ - _com_util::ConvertStringToBSTR(user_name), /* User name */ - _com_util::ConvertStringToBSTR(user_password), /* User password */ - (L"MS_409"), /* Locale */ - NULL, /* Security flags */ - _com_util::ConvertStringToBSTR(ntlm_auth), /* Authority */ - 0, /* Context object */ - &pSvc_registry /* IWbemServices proxy */ - ); - - if (FAILED(hres)) { - opal_output(0,"Could not connect to namespace DEFAULT on node %s. Error code = %d \n", - remote_node, hres); - goto cleanup; - } - - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:process: Connected to \\\\%s\\\\ROOT\\\\DEFAULT", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), - remote_node)); - } - - hres = pSvc_registry->GetObject(ClassName_registry, 0, NULL, &pClass_registry, NULL); - if (FAILED(hres)) { - opal_output(0,"Could not get Wbem class object. Error code = %d \n", hres); - goto cleanup; - } - - hres = pClass_registry->GetMethod(MethodName_registry, 0, - &pInParamsDefinition_registry, NULL); - - hres = pInParamsDefinition_registry->SpawnInstance(0, &pClassInstance_registry); - - VARIANT hkey_root; - hkey_root.vt = VT_I4; - hkey_root.intVal = root; - - hres = pClassInstance_registry->Put(L"hDefKey", 0, &hkey_root, 0); - - VARIANT varSubKeyName; - varSubKeyName.vt = VT_BSTR; - varSubKeyName.bstrVal = _com_util::ConvertStringToBSTR(sub_key); - - hres = pClassInstance_registry->Put(L"sSubKeyName", 0, &varSubKeyName, 0); - - if(FAILED(hres)) { - opal_output(0,"Could not Store the value for the in parameters. Error code = %d \n",hres); - goto cleanup; - } - - VARIANT varsValueName; - varsValueName.vt = VT_BSTR; - varsValueName.bstrVal = _com_util::ConvertStringToBSTR(key); - - hres = pClassInstance_registry->Put(L"sValueName", 0, &varsValueName, 0); - if(FAILED(hres)) { - opal_output(0,"Could not Store the value for the in parameters. Error code = %d \n",hres); - goto cleanup; - } - - /* Execute Method to read OPAL_PREFIX in the registry */ - hres = pSvc_registry->ExecMethod(ClassName_registry, MethodName_registry, 0, - NULL, pClassInstance_registry, &pOutParams_registry, NULL); - - if (FAILED(hres)) { - opal_output(0,"Could not execute method. Error code = %d \n",hres); - goto cleanup; - } - - /* To see what the method returned */ - /* The return value will be in &varReturnValue */ - VARIANT varReturnValue_registry; - hres = pOutParams_registry->Get(L"ReturnValue", 0, - &varReturnValue_registry, NULL, 0); - - hres = pOutParams_registry->Get(L"sValue", 0, - &varsValue_registry, NULL, 0); - -cleanup: - if(NULL!=pClass_registry){ - pClass_registry->Release(); - } - - if(NULL!=pOutParams_registry){ - pOutParams_registry->Release(); - } - - if(NULL!=pInParamsDefinition_registry){ - pInParamsDefinition_registry->Release(); - } - - if(NULL!=pClassInstance_registry) { - pClassInstance_registry->Release(); - } - - if(NULL!=ClassName_registry){ - SysFreeString(ClassName_registry); - } - - if(NULL!=MethodName_registry){ - SysFreeString(MethodName_registry); - } - - if( VT_NULL != varsValue_registry.vt && VT_EMPTY != varsValue_registry.vt) { - char *value = strdup(_com_util::ConvertBSTRToString(varsValue_registry.bstrVal)); - return value; - } else { - return NULL; - } - -} - - -/** - * Remote spawn process using WMI. - */ -static int wmi_launch_child(char *remote_node, int argc, char **argv) -{ - char *command_line = NULL; - int len = 0, pid = -1; - char *prefix; - - HRESULT hres; - IWbemClassObject* pClass_cimv2 = NULL; - IWbemClassObject* pInParamsDefinition_cimv2 = NULL; - IWbemClassObject* pClassInstance_cimv2 = NULL; - IWbemClassObject* pOutParams_cimv2 = NULL; - VARIANT varCommand; - VARIANT varProcessId; - VariantInit(&varCommand); - VariantInit(&varProcessId); - BSTR MethodName_cimv2 = SysAllocString(L"Create"); - BSTR ClassName_cimv2 = SysAllocString(L"Win32_Process"); - - - /*Connect to WMI through the IWbemLocator::ConnectServer method*/ - char namespace_cimv2[100]; - - char *domain_name = getenv("USERDOMAIN"); - char *ntlm_auth = (char *) malloc(sizeof(char)*(strlen("ntlmdomain:")+strlen(domain_name)+1)); - memset(ntlm_auth, 0, sizeof(char)*(strlen("ntlmdomain:")+strlen(domain_name)+1)); - strcat(ntlm_auth, "ntlmdomain:"); - strcat(ntlm_auth, domain_name); - - if( 0 != get_credential(remote_node)) { - goto cleanup; - } - - /* set up remote namespace path */ - char *rt_namespace_cimv2 = "\\root\\cimv2"; - strcpy(namespace_cimv2, "\\\\"); - strcat(namespace_cimv2, remote_node ); - strcat(namespace_cimv2, rt_namespace_cimv2); - - /* connect to cimv2 namespace */ - hres = pLoc->ConnectServer(_com_util::ConvertStringToBSTR(namespace_cimv2), /* namespace */ - _com_util::ConvertStringToBSTR(user_name), /* User name */ - _com_util::ConvertStringToBSTR(user_password), /* User password */ - (L"MS_409"), /* Locale */ - NULL, /* Security flags */ - _com_util::ConvertStringToBSTR(ntlm_auth), /* Authority */ - 0, /* Context object */ - &pSvc_cimv2 /* IWbemServices proxy */ - ); - - if (FAILED(hres)) { - opal_output(0,"Could not connect to namespace cimv2 on node %s. Error code =%d \n", - remote_node, hres); - goto cleanup; - } - - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:process: Connected to \\\\%s\\\\ROOT\\\\CIMV2", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), - remote_node)); - - /* if there isn't a prefix ( e.g., '--noprefix' specfied, - or Open MPI was configured without ORTE_WANT_ORTERUN_PREFIX_BY_DEFAULT), - let's first check the OPENMPI_HOME in user environment variables, - and then the OPAL_PREFIX registry value. */ - if( mca_plm_process_component.remote_env_prefix ) { - char *path = "Environment"; - char *key = "OPENMPI_HOME"; - /* read registry at HKEY_CURRENT_USER - please note: this MUST be the same user as for WMI authorization. */ - char *reg_prefix = read_remote_registry(0x80000001, path, key, remote_node, ntlm_auth); - if( NULL != reg_prefix) { - command_line = generate_commandline(reg_prefix, argc, argv); - } - } - if( NULL == command_line && mca_plm_process_component.remote_reg_prefix ) { - char *path = "Software\\Open MPI\\"; - char *key = "OPAL_PREFIX"; - char *reg_prefix = read_remote_registry(0x80000002, path, key, remote_node, ntlm_auth); - if( NULL != reg_prefix) { - command_line = generate_commandline(reg_prefix, argc, argv); - } - } - - if ( NULL == command_line ) { - /* we couldn't find the execute path, abort. */ - opal_output(0, "couldn't find executable path for orted on node %s. aborted.", remote_node); - goto cleanup; - } - - /* Use the IWbemServices pointer to make requests of WMI */ - /* set up to call the Win32_Process::Create method */ - hres = pSvc_cimv2->GetObject(ClassName_cimv2, 0, NULL, &pClass_cimv2, NULL); - - if (FAILED(hres)) { - opal_output(0,"Could not get Wbem class object. Error code = %d \n", hres); - goto cleanup; - } - - hres = pClass_cimv2->GetMethod(MethodName_cimv2, 0, - &pInParamsDefinition_cimv2, NULL); - - hres = pInParamsDefinition_cimv2->SpawnInstance(0, &pClassInstance_cimv2); - - /* Create the values for the in parameters */ - varCommand.vt = VT_BSTR; - varCommand.bstrVal = _com_util::ConvertStringToBSTR(command_line); - - /* Store the value for the in parameters */ - hres = pClassInstance_cimv2->Put(L"CommandLine", 0, - &varCommand, 0); - - /* Execute Method to launch orted on remote node*/ - hres = pSvc_cimv2->ExecMethod(ClassName_cimv2, MethodName_cimv2, 0, - NULL, pClassInstance_cimv2, &pOutParams_cimv2, NULL); - - if (FAILED(hres)) { - opal_output(0,"Could not execute method. Error code = %d \n",hres); - goto cleanup; - } - - /* get remote process ID */ - hres = pOutParams_cimv2->Get((L"ProcessId"), 0, - &varProcessId, NULL, 0); - - pid = varProcessId.intVal; - -cleanup: - - if(NULL!=pClass_cimv2) { - pClass_cimv2->Release(); - } - - if(NULL!=pInParamsDefinition_cimv2) { - pInParamsDefinition_cimv2->Release(); - } - - if(NULL!=pOutParams_cimv2){ - pOutParams_cimv2->Release(); - } - - if(NULL!=ClassName_cimv2){ - SysFreeString(ClassName_cimv2); - } - - if(NULL!=MethodName_cimv2){ - SysFreeString(MethodName_cimv2); - } - - if(VT_NULL!=varCommand.vt) { - VariantClear(&varCommand); - } - - if(VT_NULL!=varProcessId.vt){ - VariantClear(&varProcessId); - } - - return pid; -} - -#endif /*_MSC_VER*/ - - -/** -* Init the module - */ -int orte_plm_process_init(void) -{ - int rc; - HRESULT hres; - - if (ORTE_SUCCESS != (rc = orte_plm_base_comm_start())) { - ORTE_ERROR_LOG(rc); - } - - /* point to our launch command */ - if (ORTE_SUCCESS != (rc = orte_state.add_job_state(ORTE_JOB_STATE_LAUNCH_DAEMONS, - launch_daemons, ORTE_SYS_PRI))) { - ORTE_ERROR_LOG(rc); - return rc; - } - - /* setup the event for metering the launch */ - OBJ_CONSTRUCT(&launch_list, opal_list_t); - opal_event_set(orte_event_base, &launch_event, -1, 0, process_launch_list, NULL); - opal_event_set_priority(&launch_event, ORTE_SYS_PRI); - - /* we assign daemon nodes at launch */ - orte_plm_globals.daemon_nodes_assigned_at_launch = true; - -#ifdef _MSC_VER - /* Initialize COM for WMI */ - hres = CoInitializeEx(0, COINIT_APARTMENTTHREADED); - if (FAILED(hres)) { - opal_output(0, "Failed to initialize COM library. Error code = %d \n", hres); - return ORTE_ERROR; - } - - /* Set general COM security levels. */ - hres = CoInitializeSecurity(NULL, - -1, /* COM authentication */ - NULL, /* Authentication services */ - NULL, /* Reserved */ - RPC_C_AUTHN_LEVEL_CONNECT, /* Default authentication */ - RPC_C_IMP_LEVEL_IMPERSONATE, /* Default Impersonation */ - NULL, /* Authentication info */ - EOAC_NONE, /* Additional capabilities */ - NULL /* Reserved */ - ); - - if (FAILED(hres)) { - opal_output(0, "Failed to initialize security. Error code = %d \n",hres); - CoUninitialize(); - return ORTE_ERROR; - } - - /* Obtain the initial locator to WMI. */ - hres = CoCreateInstance(CLSID_WbemLocator, - 0, - CLSCTX_INPROC_SERVER, - IID_IWbemLocator, (LPVOID *) &pLoc); - - if (FAILED(hres)) { - opal_output(0,"Failed to create IWbemLocator object. Err code = %d \n", hres); - CoUninitialize(); - return ORTE_ERROR; - } - - SecureZeroMemory(user_name, sizeof(user_name)); - SecureZeroMemory(user_password, sizeof(user_password)); - -#endif /*_MSC_VER*/ - - return rc; -} - - -/** - * Check the Shell variable on the specified node - */ - -static int orte_plm_process_probe(orte_node_t * node, orte_plm_process_shell * shell) -{ - char ** argv; - int rc, nfds; - int fd[2]; - pid_t pid; - -/* HANDLE myPipeFd[2]; - SECURITY_ATTRIBUTES securityAttr; - STARTUPINFO startupInfo; - PROCESS_INFORMATION processInfo; -*/ - fd_set readset; - fd_set errset; - char outbuf[4096]; - - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:process: going to check SHELL variable on node %s", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), - node->name)); - - *shell = ORTE_PLM_RSH_SHELL_UNKNOWN; - /* - * Build argv array - */ - - pid = _spawnve( _P_DETACH, argv[0], argv, NULL); - -#if 0 - securityAttr.nLength = sizeof(SECURITY_ATTRIBUTES); // Size of struct - securityAttr.lpSecurityDescriptor = NULL; // Default descriptor - securityAttr.bInheritHandle = TRUE; // Inheritable - - // Create the pipe - if (CreatePipe(&myPipeFd[0], &myPipeFd[1], &securityAttr, 0)) { - - // Create duplicate of write end so that original - if (!DuplicateHandle( - GetCurrentProcess(), - myPipeFd[0], // Original handle - GetCurrentProcess(), - NULL, // don't create new handle - 0, - FALSE, // Not inheritable - DUPLICATE_SAME_ACCESS) - ) { - CloseHandle(myPipeFd[0]); - CloseHandle(myPipeFd[1]); - opal_output(0, "plm:process: DuplicateHandle failed with errno=%d\n", errno); - return ORTE_ERR_IN_ERRNO; - } - - ZeroMemory( &startupInfo, sizeof(startupInfo) ); - startupInfo.cb = sizeof(startupInfo); - ZeroMemory( &processInfo, sizeof(processInfo) ); - - // Now populate startup info for CreateProcess - GetStartupInfo(&startupInfo); - startupInfo.dwFlags = STARTF_USESTDHANDLES; - startupInfo.hStdInput = myPipeFd[0]; - startupInfo.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE); - startupInfo.hStdError = GetStdHandle(STD_ERROR_HANDLE); - - - // Start the child process. - if( !CreateProcess( argv[0], //module name NULL, - NULL, //(LPSTR)(const char *) argv, - NULL, // Process handle not inheritable - NULL, // Thread handle not inheritable - TRUE, // Set handle inheritance to TRUE; - // each inheritable handle in the calling process is inherited by the new process - 0, // No creation flags - NULL, // Use parent's environment block - NULL, // Use parent's starting directory - &startupInfo, // Pointer to STARTUPINFO structure - &processInfo ) // Pointer to PROCESS_INFORMATION structure - ) - { - CloseHandle(myPipeFd[1]); - opal_output(0, "plm:process: CreateProcess failed with errno=%d\n", errno); //, GetLastError() ); - return ORTE_ERR_IN_ERRNO; - } - } -#endif - /* - if ((pid = fork()) < 0) { - opal_output(0, "plm:process: fork failed with errno=%d\n", errno); - return ORTE_ERR_IN_ERRNO; - } - else if (pid == 0) { // child //processInfo.hProcess - - if (dup2(fd[1], 1) < 0) { - opal_output(0, "plm:process: dup2 failed with errno=%d\n", errno); - return ORTE_ERR_IN_ERRNO; - } - execvp(argv[0], argv); - exit(errno); - } - if (close(fd[1])) { - opal_output(0, "plm:process: close failed with errno=%d\n", errno); - return ORTE_ERR_IN_ERRNO; - } - */ - - - /* Monitor stdout */ - FD_ZERO(&readset); - nfds = fd[0]+1; - - memset (outbuf, 0, sizeof (outbuf)); - rc = ORTE_SUCCESS;; - while (ORTE_SUCCESS == rc) { - int err; - FD_SET (fd[0], &readset); - errset = readset; - err = select(nfds, &readset, NULL, &errset, NULL); - if (err == -1) { - if (errno == EINTR) - continue; - else { - rc = ORTE_ERR_IN_ERRNO; - break; - } - } - if (FD_ISSET(fd[0], &errset) != 0) - rc = ORTE_ERR_FATAL; - /* In case we have something valid to read on stdin */ - if (FD_ISSET(fd[0], &readset) != 0) { - ssize_t ret = 1; - char temp[4096]; - char * ptr = outbuf; - ssize_t outbufsize = sizeof(outbuf); - - memset (temp, 0, sizeof(temp)); - - while (ret != 0) { - ret = read (fd[0], temp, 256); - if (ret < 0) { - if (errno == EINTR) - continue; - else { - rc = ORTE_ERR_IN_ERRNO; - break; - } - } - else { - if (outbufsize > 0) { - memcpy (ptr, temp, (ret > outbufsize) ? outbufsize : ret); - outbufsize -= ret; - ptr += ret; - if (outbufsize > 0) - *ptr = '\0'; - } - } - } - /* After reading complete string (aka read returns 0), we just break */ - break; - } - } - - /* Search for the substring of known shell-names */ -/* for (i = 0; i < (int)(sizeof (orte_plm_process_shell_name)/ - sizeof(orte_plm_process_shell_name[0])); i++) { - char *sh_name = NULL; - - sh_name = rindex(outbuf, '/'); - if ( sh_name != NULL ) { - sh_name++; /* skip '/' */ - - /* We cannot use "echo -n $SHELL" because -n is not portable. Therefore - * we have to remove the "\n" */ -/* if ( sh_name[strlen(sh_name)-1] == '\n' ) { - sh_name[strlen(sh_name)-1] = '\0'; - } - if ( 0 == strcmp(sh_name, orte_plm_process_shell_name[i]) ) { - *shell = i; - break; - } - } - } -*/ - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:process: node:%s has SHELL: %s", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), - node->name, orte_plm_process_shell_name[*shell])); - - return rc; -} - -/** - * Fill the exec_path variable with the directory to the orted - */ - -static int orte_plm_process_fill_exec_path( char ** exec_path ) -{ - struct stat buf; - - asprintf(exec_path, "%s/orted", opal_install_dirs.bindir); - if (0 != stat(*exec_path, &buf)) { - char *path = getenv("PATH"); - if (NULL == path) { - path = "PATH is empty!"; - } - orte_show_help("help-plm-process.txt", "no-local-orted", - true, path, opal_install_dirs.bindir); - return ORTE_ERR_NOT_FOUND; - } - return ORTE_SUCCESS; -} - -/** - * Callback on daemon exit. - */ - -static void orte_plm_process_wait_daemon(pid_t pid, int status, void* cbdata) -{ - orte_job_t *jdata; - orte_plm_process_caddy_t *caddy=(orte_plm_process_caddy_t*)cbdata; - orte_proc_t *daemon=caddy->daemon; - unsigned long deltat; - - if (! WIFEXITED(status) || ! WEXITSTATUS(status) == 0) { - /* tell the user something went wrong */ - opal_output(0, "ERROR: A daemon failed to start as expected."); - opal_output(0, "ERROR: There may be more information available from"); - opal_output(0, "ERROR: the remote shell (see above)."); - - if (WIFEXITED(status)) { - opal_output(0, "ERROR: The daemon exited unexpectedly with status %d.", - WEXITSTATUS(status)); - } else if (WIFSIGNALED(status)) { -#ifdef WCOREDUMP - if (WCOREDUMP(status)) { - opal_output(0, "The daemon received a signal %d (with core).", - WTERMSIG(status)); - } else { - opal_output(0, "The daemon received a signal %d.", WTERMSIG(status)); - } -#else - opal_output(0, "The daemon received a signal %d.", WTERMSIG(status)); -#endif /* WCOREDUMP */ - } else { - opal_output(0, "No extra status information is available: %d.", status); - } - jdata = orte_get_job_data_object(ORTE_PROC_MY_NAME->jobid); - - /* note that this daemon failed */ - daemon->state = ORTE_PROC_STATE_FAILED_TO_START; - /* increment the #daemons terminated so we will exit properly */ - jdata->num_terminated++; - /* report that the daemon has failed so we can exit */ - ORTE_ACTIVATE_PROC_STATE(&daemon->name, ORTE_PROC_STATE_FAILED_TO_START); - } /* if abnormal exit */ - - /* release any delay */ - --num_in_progress; - if (num_in_progress < mca_plm_process_component.num_concurrent) { - /* trigger continuation of the launch */ - opal_event_active(&launch_event, EV_WRITE, 1); - } - /* cleanup */ - OBJ_RELEASE(caddy); - -} - -/** - * Launch a daemon (bootproxy) on each node. The daemon will be responsible - * for launching the application. - */ - -/* When working in this function, ALWAYS jump to "cleanup" if - * you encounter an error so that orterun will be woken up and - * the job can cleanly terminate - */ -static int orte_plm_process_launch(orte_job_t *jdata) -{ - if (ORTE_JOB_CONTROL_RESTART & jdata->controls) { - /* this is a restart situation - skip to the mapping stage */ - ORTE_ACTIVATE_JOB_STATE(jdata, ORTE_JOB_STATE_MAP); - } else { - /* new job - set it up */ - ORTE_ACTIVATE_JOB_STATE(jdata, ORTE_JOB_STATE_INIT); - } - return ORTE_SUCCESS; -} - -static void process_launch_list(int fd, short args, void *cbdata) -{ - opal_list_item_t *item; - pid_t pid; - orte_plm_process_caddy_t *caddy; - char **env; - char *param; - - while (num_in_progress < mca_plm_process_component.num_concurrent) { - item = opal_list_remove_first(&launch_list); - if (NULL == item) { - /* we are done */ - break; - } - caddy = (orte_plm_process_caddy_t*)item; - - /* Set signal handlers back to the default. Do this close - to the execve() because the event library may (and likely - will) reset them. If we don't do this, the event - library may have left some set that, at least on some - OS's, don't get reset via fork() or exec(). Hence, the - orted could be unkillable (for example). */ - - set_handler_default(SIGTERM); - set_handler_default(SIGINT); - set_handler_default(SIGCHLD); - - /* setup environment */ - env = opal_argv_copy(orte_launch_environ); - - /* exec the daemon */ - if (0 < opal_output_get_verbosity(orte_plm_globals.output)) { - param = opal_argv_join(caddy->argv, ' '); - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:process: executing:\n\t%s", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), - (NULL == param) ? "NULL" : param)); - if (NULL != param) free(param); - } - -#ifdef _MSC_VER - /* launch remote process */ - pid = wmi_launch_child(caddy->daemon->nodename, caddy->argc, caddy->argv); -#else - pid = _spawnve( _P_NOWAIT, caddy->daemon->name, caddy->argv, env); -#endif - - if (pid < 0) { - /* note that this daemon failed */ - caddy->daemon->state = ORTE_PROC_STATE_FAILED_TO_START; - /* report that the daemon has failed so we can exit */ - ORTE_ACTIVATE_PROC_STATE(&(caddy->daemon->name), ORTE_PROC_STATE_FAILED_TO_START); - continue; - } - /* setup callback on sigchild - wait until setup above is complete - * as the callback can occur in the call to orte_wait_cb - */ - orte_wait_cb(pid, orte_plm_process_wait_daemon, (void*)caddy); - num_in_progress++; - } -} - -static void launch_daemons(int fd, short args, void *cbdata) -{ - orte_job_map_t *map = NULL; - int proc_vpid_index; - int local_exec_index; - char *vpid_string = NULL; - char *param; - char **argv = NULL; - char *prefix_dir; - int argc = 0; - int rc; - char *lib_base = NULL, *bin_base = NULL; - orte_app_context_t *app; - orte_node_t *node; - orte_std_cntr_t nnode; - orte_job_t *daemons; - orte_state_caddy_t *state = (orte_state_caddy_t*)cbdata; - orte_job_t *jdata = state->jdata; - orte_plm_process_caddy_t *caddy; - - if (orte_timing) { - if (0 != gettimeofday(&joblaunchstart, NULL)) { - opal_output(0, "plm_process: could not obtain start time"); - joblaunchstart.tv_sec = 0; - joblaunchstart.tv_usec = 0; - } - } - - /* setup the virtual machine */ - daemons = orte_get_job_data_object(ORTE_PROC_MY_NAME->jobid); - if (ORTE_SUCCESS != (rc = orte_plm_base_setup_virtual_machine(jdata))) { - ORTE_ERROR_LOG(rc); - goto cleanup; - } - - /* if we don't want to launch, then don't attempt to - * launch the daemons - the user really wants to just - * look at the proposed process map - */ - if (orte_do_not_launch) { - /* set the state to indicate the daemons reported - this - * will trigger the daemons_reported event and cause the - * job to move to the following step - */ - state->jdata->state = ORTE_JOB_STATE_DAEMONS_LAUNCHED; - ORTE_ACTIVATE_JOB_STATE(state->jdata, ORTE_JOB_STATE_DAEMONS_REPORTED); - OBJ_RELEASE(state); - return; - } - - /* Get the map for this job */ - if (NULL == (map = daemons->map)) { - ORTE_ERROR_LOG(ORTE_ERR_NOT_FOUND); - rc = ORTE_ERR_NOT_FOUND; - goto cleanup; - } - - if (0 == map->num_new_daemons) { - /* set the state to indicate the daemons reported - this - * will trigger the daemons_reported event and cause the - * job to move to the following step - */ - state->jdata->state = ORTE_JOB_STATE_DAEMONS_LAUNCHED; - if (ORTE_JOB_STATE_DAEMONS_REPORTED == daemons->state) { - ORTE_ACTIVATE_JOB_STATE(state->jdata, ORTE_JOB_STATE_DAEMONS_REPORTED); - } - OBJ_RELEASE(state); - return; - } - - OPAL_OUTPUT_VERBOSE((1, orte_plm_globals.output, - "%s plm:process: launching vm", - ORTE_NAME_PRINT(ORTE_PROC_MY_NAME))); - - if (orte_debug_daemons_flag && - mca_plm_process_component.num_concurrent < map->num_new_daemons) { - /** - * If we are in '--debug-daemons' we keep the ssh connection - * alive for the span of the run. If we use this option - * AND we launch on more than "num_concurrent" machines - * then we will deadlock. No connections are terminated - * until the job is complete, no job is started - * since all the orteds are waiting for all the others - * to come online, and the others ore not launched because - * we are waiting on those that have started to terminate - * their ssh tunnels. :( - * As we cannot run in this situation, pretty print the error - * and return an error code. - */ - orte_show_help("help-plm-process.txt", "deadlock-params", - true, mca_plm_process_component.num_concurrent, map->num_new_daemons); - rc = ORTE_ERR_FATAL; - goto cleanup; - } - - /* - * After a discussion between Ralph & Jeff, we concluded that we - * really are handling the prefix dir option incorrectly. It currently - * is associated with an app_context, yet it really refers to the - * location where OpenRTE/Open MPI is installed on a NODE. Fixing - * this right now would involve significant change to orterun as well - * as elsewhere, so we will intentionally leave this incorrect at this - * point. The error, however, is identical to that seen in all prior - * releases of OpenRTE/Open MPI, so our behavior is no worse than before. - * - * A note to fix this, along with ideas on how to do so, has been filed - * on the project's Trac system under "feature enhancement". - * - * For now, default to the prefix_dir provided in the first app_context. - * Since there always MUST be at least one app_context, we are safe in - * doing this. - */ - app = (orte_app_context_t*)opal_pointer_array_get_item(jdata->apps, 0); - prefix_dir = app->prefix_dir; - - /* - * Build argv array - */ - opal_argv_append(&argc, &argv, "