From f2b6019a20dd43ed5b569f4d523111081e15157d Mon Sep 17 00:00:00 2001 From: Joseph Schuchart Date: Mon, 25 Mar 2019 21:07:23 +0100 Subject: [PATCH 1/3] Set default window type to non-shared static --- build.cov.sh | 4 ++-- build.debug.sh | 4 ++-- build.dev.sh | 4 ++-- build.mic.sh | 4 ++-- build.sh | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/build.cov.sh b/build.cov.sh index b24cca288..8745a36f6 100755 --- a/build.cov.sh +++ b/build.cov.sh @@ -64,8 +64,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..165fe751a 100755 --- a/build.debug.sh +++ b/build.debug.sh @@ -66,8 +66,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..756ce8583 100755 --- a/build.dev.sh +++ b/build.dev.sh @@ -66,8 +66,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.sh b/build.sh index 9d15ad156..d34cbba2c 100755 --- a/build.sh +++ b/build.sh @@ -66,8 +66,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 \ \ From e4898821be6639ffa9648578106a4a6525ff7751 Mon Sep 17 00:00:00 2001 From: Joseph Schuchart Date: Mon, 25 Mar 2019 21:09:16 +0100 Subject: [PATCH 2/3] Change default window type in CMake files --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From dcba48a678e12cdcf86877ea314ee1b81b9f5442 Mon Sep 17 00:00:00 2001 From: Joseph Schuchart Date: Tue, 26 Mar 2019 08:57:00 +0100 Subject: [PATCH 3/3] Add documentation for why shared and dynamic window configuration options --- build.analyze.sh | 13 +++++++++++-- build.cov.sh | 9 +++++++++ build.debug.sh | 9 +++++++++ build.dev.sh | 9 +++++++++ build.minimal.sh | 10 ++++++++++ build.nasty.sh | 9 +++++++++ build.sh | 9 +++++++++ 7 files changed, 66 insertions(+), 2 deletions(-) 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 8745a36f6..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. # diff --git a/build.debug.sh b/build.debug.sh index 165fe751a..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. # diff --git a/build.dev.sh b/build.dev.sh index 756ce8583..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= \ 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 d34cbba2c..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. #