diff --git a/CMakeLists.txt b/CMakeLists.txt index bc53c27be..c95253513 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,9 +56,9 @@ option(ENABLE_ASSERTIONS option(ENABLE_UNIFIED_MEMORY_MODEL "Specify whether to assume unified memory model" on) option(ENABLE_SHARED_WINDOWS - "Specify whether shared memory features are enabled" on) + "Specify whether shared memory features are enabled" off) option(ENABLE_DYNAMIC_WINDOWS - "Specify whether to use dynamic MPI windows for collective allocation" on) + "Specify whether to use dynamic MPI windows for collective allocation" off) option(ENABLE_DEFAULT_INDEX_TYPE_LONG "Specify whether to use int64_t as default index type" on) option(ENABLE_LIBNUMA diff --git a/build.analyze.sh b/build.analyze.sh index 87e7ccfab..2f73f0ff4 100755 --- a/build.analyze.sh +++ b/build.analyze.sh @@ -76,6 +76,15 @@ fi # -DGTEST_INCLUDE_PATH=${HOME}/gtest/include \ # +# The MPI backend offers support for employing shared memory windows in combination +# with dynamic windows, which may improve on-node communication performance. +# This feature can be enabled by setting +# -DENABLE_SHARED_WINDOWS=ON \ +# -DENABLE_DYNAMIC_WINDOWS=ON \ +# below. However, we have experienced issues with some MPI implementations if used +# in combination with -DENABLE_THREADSUPPORT=ON. It might also have a negative effect +# on inter-node communication performance on some architectures. + # To build with MKL support, set environment variables MKLROOT and INTELROOT. # @@ -103,8 +112,8 @@ mkdir -p $BUILD_DIR/$REPORT_DIR -DENABLE_LT_OPTIMIZATION=OFF \ -DENABLE_ASSERTIONS=ON \ \ - -DENABLE_SHARED_WINDOWS=ON \ - -DENABLE_UNIFIED_MEMORY_MODEL=ON \ + -DENABLE_SHARED_WINDOWS=OFF \ + -DENABLE_UNIFIED_MEMORY_MODEL=OFF \ -DENABLE_DYNAMIC_WINDOWS=ON \ -DENABLE_DEFAULT_INDEX_TYPE_LONG=ON \ \ diff --git a/build.cov.sh b/build.cov.sh index b24cca288..c0d572123 100755 --- a/build.cov.sh +++ b/build.cov.sh @@ -41,6 +41,15 @@ fi # -DGTEST_INCLUDE_PATH=${HOME}/gtest/include \ # +# The MPI backend offers support for employing shared memory windows in combination +# with dynamic windows, which may improve on-node communication performance. +# This feature can be enabled by setting +# -DENABLE_SHARED_WINDOWS=ON \ +# -DENABLE_DYNAMIC_WINDOWS=ON \ +# below. However, we have experienced issues with some MPI implementations if used +# in combination with -DENABLE_THREADSUPPORT=ON. It might also have a negative effect +# on inter-node communication performance on some architectures. + # To build with MKL support, set environment variables MKLROOT and INTELROOT. # @@ -64,8 +73,8 @@ rm -Rf $BUILD_DIR/* -DENABLE_LT_OPTIMIZATION=OFF \ -DENABLE_ASSERTIONS=ON \ \ - -DENABLE_SHARED_WINDOWS=ON \ - -DENABLE_DYNAMIC_WINDOWS=ON \ + -DENABLE_SHARED_WINDOWS=OFF \ + -DENABLE_DYNAMIC_WINDOWS=OFF \ -DENABLE_UNIFIED_MEMORY_MODEL=ON \ -DENABLE_DEFAULT_INDEX_TYPE_LONG=ON \ \ diff --git a/build.debug.sh b/build.debug.sh index b386da905..cc6f3ed56 100755 --- a/build.debug.sh +++ b/build.debug.sh @@ -41,6 +41,15 @@ fi # -DGTEST_INCLUDE_PATH=${HOME}/gtest/include \ # +# The MPI backend offers support for employing shared memory windows in combination +# with dynamic windows, which may improve on-node communication performance. +# This feature can be enabled by setting +# -DENABLE_SHARED_WINDOWS=ON \ +# -DENABLE_DYNAMIC_WINDOWS=ON \ +# below. However, we have experienced issues with some MPI implementations if used +# in combination with -DENABLE_THREADSUPPORT=ON. It might also have a negative effect +# on inter-node communication performance on some architectures. + # To build with MKL support, set environment variables MKLROOT and INTELROOT. # @@ -66,8 +75,8 @@ rm -Rf $BUILD_DIR/* -DENABLE_LT_OPTIMIZATION=OFF \ -DENABLE_ASSERTIONS=ON \ \ - -DENABLE_SHARED_WINDOWS=ON \ - -DENABLE_DYNAMIC_WINDOWS=ON \ + -DENABLE_SHARED_WINDOWS=OFF \ + -DENABLE_DYNAMIC_WINDOWS=OFF \ -DENABLE_UNIFIED_MEMORY_MODEL=ON \ -DENABLE_DEFAULT_INDEX_TYPE_LONG=ON \ \ diff --git a/build.dev.sh b/build.dev.sh index 2ea323c3c..324dce9da 100755 --- a/build.dev.sh +++ b/build.dev.sh @@ -44,6 +44,15 @@ fi # To build with MKL support, set environment variables MKLROOT and INTELROOT. # +# The MPI backend offers support for employing shared memory windows in combination +# with dynamic windows, which may improve on-node communication performance. +# This feature can be enabled by setting +# -DENABLE_SHARED_WINDOWS=ON \ +# -DENABLE_DYNAMIC_WINDOWS=ON \ +# below. However, we have experienced issues with some MPI implementations if used +# in combination with -DENABLE_THREADSUPPORT=ON. It might also have a negative effect +# on inter-node communication performance on some architectures. + # To enable IPM runtime support, use: # # -DIPM_PREFIX= \ @@ -66,8 +75,8 @@ rm -Rf $BUILD_DIR/* -DENABLE_LT_OPTIMIZATION=OFF \ -DENABLE_ASSERTIONS=ON \ \ - -DENABLE_SHARED_WINDOWS=ON \ - -DENABLE_DYNAMIC_WINDOWS=ON \ + -DENABLE_SHARED_WINDOWS=OFF \ + -DENABLE_DYNAMIC_WINDOWS=OFF \ -DENABLE_UNIFIED_MEMORY_MODEL=ON \ -DENABLE_DEFAULT_INDEX_TYPE_LONG=ON \ \ diff --git a/build.mic.sh b/build.mic.sh index 5f6770a0a..b2771366d 100755 --- a/build.mic.sh +++ b/build.mic.sh @@ -55,8 +55,8 @@ rm -Rf $BUILD_DIR/* -DENABLE_EXT_COMPILER_WARNINGS=OFF \ -DENABLE_ASSERTIONS=OFF \ \ - -DENABLE_SHARED_WINDOWS=ON \ - -DENABLE_DYNAMIC_WINDOWS=ON \ + -DENABLE_SHARED_WINDOWS=OFF \ + -DENABLE_DYNAMIC_WINDOWS=OFF \ -DENABLE_UNIFIED_MEMORY_MODEL=ON \ -DENABLE_DEFAULT_INDEX_TYPE_LONG=ON \ \ diff --git a/build.minimal.sh b/build.minimal.sh index 938fd4f06..7b05eaf36 100755 --- a/build.minimal.sh +++ b/build.minimal.sh @@ -39,6 +39,16 @@ fi # -DGTEST_LIBRARY_PATH=${HOME}/gtest \ # -DGTEST_INCLUDE_PATH=${HOME}/gtest/include \ # +# The MPI backend offers support for employing shared memory windows in combination +# with dynamic windows, which may improve on-node communication performance. +# This feature can be enabled by setting +# -DENABLE_SHARED_WINDOWS=ON \ +# -DENABLE_DYNAMIC_WINDOWS=ON \ +# below. However, we have experienced issues with some MPI implementations if used +# in combination with -DENABLE_THREADSUPPORT=ON. It might also have a negative effect +# on inter-node communication performance on some architectures. +# +# # To build with MKL support, set environment variables MKLROOT and INTELROOT. # # To enable IPM runtime support, use: diff --git a/build.nasty.sh b/build.nasty.sh index 43236c6b5..d918e2379 100755 --- a/build.nasty.sh +++ b/build.nasty.sh @@ -41,6 +41,15 @@ fi # -DGTEST_INCLUDE_PATH=${HOME}/gtest/include \ # +# The MPI backend offers support for employing shared memory windows in combination +# with dynamic windows, which may improve on-node communication performance. +# This feature can be enabled by setting +# -DENABLE_SHARED_WINDOWS=ON \ +# -DENABLE_DYNAMIC_WINDOWS=ON \ +# below. However, we have experienced issues with some MPI implementations if used +# in combination with -DENABLE_THREADSUPPORT=ON. It might also have a negative effect +# on inter-node communication performance on some architectures. + # To build with MKL support, set environment variables MKLROOT and INTELROOT. # diff --git a/build.sh b/build.sh index 9d15ad156..3725ee076 100755 --- a/build.sh +++ b/build.sh @@ -41,6 +41,15 @@ fi # -DGTEST_INCLUDE_PATH=${HOME}/gtest/include \ # +# The MPI backend offers support for employing shared memory windows in combination +# with dynamic windows, which may improve on-node communication performance. +# This feature can be enabled by setting +# -DENABLE_SHARED_WINDOWS=ON \ +# -DENABLE_DYNAMIC_WINDOWS=ON \ +# below. However, we have experienced issues with some MPI implementations if used +# in combination with -DENABLE_THREADSUPPORT=ON. It might also have a negative effect +# on inter-node communication performance on some architectures. + # To build with MKL support, set environment variables MKLROOT and INTELROOT. # @@ -66,8 +75,8 @@ rm -Rf $BUILD_DIR/* -DENABLE_LT_OPTIMIZATION=OFF \ -DENABLE_ASSERTIONS=ON \ \ - -DENABLE_SHARED_WINDOWS=ON \ - -DENABLE_DYNAMIC_WINDOWS=ON \ + -DENABLE_SHARED_WINDOWS=OFF \ + -DENABLE_DYNAMIC_WINDOWS=OFF \ -DENABLE_UNIFIED_MEMORY_MODEL=ON \ -DENABLE_DEFAULT_INDEX_TYPE_LONG=ON \ \