diff --git a/docs/manual/build_system/cmake_toolchains.qbk b/docs/manual/build_system/cmake_toolchains.qbk index 22b06f8be06e..cc048bec05ca 100644 --- a/docs/manual/build_system/cmake_toolchains.qbk +++ b/docs/manual/build_system/cmake_toolchains.qbk @@ -19,6 +19,8 @@ in the `cmake/toolchains` directory: * [link hpx.manual.build_system.building_hpx.cmake_toolchains.BGQ BGQ] * [link hpx.manual.build_system.building_hpx.cmake_toolchains.Cray Cray] * [link hpx.manual.build_system.building_hpx.cmake_toolchains.CrayKNL CrayKNL] +* [link hpx.manual.build_system.building_hpx.cmake_toolchains.CrayKNLStatic CrayKNLStatic] +* [link hpx.manual.build_system.building_hpx.cmake_toolchains.CrayStatic CrayStatic] * [link hpx.manual.build_system.building_hpx.cmake_toolchains.XeonPhi XeonPhi] @@ -191,23 +193,26 @@ To use them pass the `-DCMAKE_TOOLCHAIN_FILE=` argument to the cmake set(CMAKE_CXX_COMPILER CC) set(CMAKE_C_COMPILER cc) set(CMAKE_Fortran_COMPILER ftn) + if (CMAKE_VERSION VERSION_GREATER 3.3.0) + set(__includes "") + endif() set(CMAKE_C_FLAGS_INIT "" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC -shared" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-fPIC -shared" CACHE STRING "") - set(CMAKE_C_COMPILE_OBJECT " -shared -fPIC -o -c " CACHE STRING "") + set(CMAKE_C_COMPILE_OBJECT " -shared -fPIC ${__includes} -o -c " CACHE STRING "") set(CMAKE_C_LINK_EXECUTABLE " -fPIC -dynamic -o " CACHE STRING "") set(CMAKE_C_CREATE_SHARED_LIBRARY " -fPIC -shared -o " CACHE STRING "") set(CMAKE_CXX_FLAGS_INIT "" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC -shared" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-fPIC -shared" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-fPIC -shared" CACHE STRING "") - set(CMAKE_CXX_COMPILE_OBJECT " -shared -fPIC -o -c " CACHE STRING "") + set(CMAKE_CXX_COMPILE_OBJECT " -shared -fPIC ${__includes} -o -c " CACHE STRING "") set(CMAKE_CXX_LINK_EXECUTABLE " -fPIC -dynamic -o " CACHE STRING "") set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -fPIC -shared -o " CACHE STRING "") set(CMAKE_Fortran_FLAGS_INIT "" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-fPIC" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-shared" CACHE STRING "") - set(CMAKE_Fortran_COMPILE_OBJECT " -shared -fPIC -o -c " CACHE STRING "") + set(CMAKE_Fortran_COMPILE_OBJECT " -shared -fPIC ${__includes} -o -c " CACHE STRING "") set(CMAKE_Fortran_LINK_EXECUTABLE " -fPIC -dynamic -o ") set(CMAKE_Fortran_CREATE_SHARED_LIBRARY " -fPIC -shared -o " CACHE STRING "") # Disable searches in the default system paths. We are cross compiling after all @@ -248,30 +253,28 @@ To use them pass the `-DCMAKE_TOOLCHAIN_FILE=` argument to the cmake set(CMAKE_CXX_COMPILER CC) set(CMAKE_C_COMPILER cc) set(CMAKE_Fortran_COMPILER ftn) - if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") - set(AVX512_FLAGS "-xmic-avx512") - elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Gnu") - set(AVX512_FLAGS "-mavx512f -mavx512pf") + if (CMAKE_VERSION VERSION_GREATER 3.3.0) + set(__includes "") endif() - set(CMAKE_C_FLAGS_INIT ${AVX512_FLAGS} CACHE STRING "") + set(CMAKE_C_FLAGS_INIT "" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC -shared" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-fPIC -shared" CACHE STRING "") - set(CMAKE_C_COMPILE_OBJECT " -shared -fPIC -o -c " CACHE STRING "") + set(CMAKE_C_COMPILE_OBJECT " -shared -fPIC ${__includes} -o -c " CACHE STRING "") set(CMAKE_C_LINK_EXECUTABLE " -fPIC -o " CACHE STRING "") set(CMAKE_C_CREATE_SHARED_LIBRARY " -fPIC -shared -o " CACHE STRING "") # - set(CMAKE_CXX_FLAGS_INIT ${AVX512_FLAGS} CACHE STRING "") + set(CMAKE_CXX_FLAGS_INIT "" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC -shared" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-fPIC -shared" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-fPIC -shared" CACHE STRING "") - set(CMAKE_CXX_COMPILE_OBJECT " -shared -fPIC -o -c " CACHE STRING "") + set(CMAKE_CXX_COMPILE_OBJECT " -shared -fPIC ${__includes} -o -c " CACHE STRING "") set(CMAKE_CXX_LINK_EXECUTABLE " -fPIC -dynamic -o " CACHE STRING "") set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -fPIC -shared -o " CACHE STRING "") # - set(CMAKE_Fortran_FLAGS_INIT ${AVX512_FLAGS} CACHE STRING "") + set(CMAKE_Fortran_FLAGS_INIT $"" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-fPIC" CACHE STRING "") set(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-shared" CACHE STRING "") - set(CMAKE_Fortran_COMPILE_OBJECT " -shared -fPIC -o -c " CACHE STRING "") + set(CMAKE_Fortran_COMPILE_OBJECT " -shared -fPIC ${__includes} -o -c " CACHE STRING "") set(CMAKE_Fortran_LINK_EXECUTABLE " -fPIC -o ") set(CMAKE_Fortran_CREATE_SHARED_LIBRARY " -fPIC -shared -o " CACHE STRING "") # @@ -295,6 +298,95 @@ To use them pass the `-DCMAKE_TOOLCHAIN_FILE=` argument to the cmake set(HPX_WITH_RDTSCP ON CACHE BOOL "") `` +[heading:CrayKNLStatic CrayKNLStatic] + +`` + # Copyright (c) 2014-2017 Thomas Heller + # Copyright (c) 2017 Bryce Adelstein Lelbach + # + # Distributed under the Boost Software License, Version 1.0. (See accompanying + # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + set(HPX_WITH_STATIC_LINKING ON CACHE BOOL "") + set(HPX_WITH_STATIC_EXE_LINKING ON CACHE BOOL "") + set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) + # Set the Cray Compiler Wrapper + set(CMAKE_CXX_COMPILER CC) + set(CMAKE_C_COMPILER cc) + set(CMAKE_Fortran_COMPILER ftn) + if (CMAKE_VERSION VERSION_GREATER 3.3.0) + set(__includes "") + endif() + set(CMAKE_C_FLAGS_INIT "" CACHE STRING "") + set(CMAKE_C_COMPILE_OBJECT " -static -fPIC ${__includes} -o -c " CACHE STRING "") + set(CMAKE_C_LINK_EXECUTABLE " -fPIC -o " CACHE STRING "") + set(CMAKE_CXX_FLAGS_INIT "" CACHE STRING "") + set(CMAKE_CXX_COMPILE_OBJECT " -static -fPIC ${__includes} -o -c " CACHE STRING "") + set(CMAKE_CXX_LINK_EXECUTABLE " -fPIC -o " CACHE STRING "") + set(CMAKE_Fortran_FLAGS_INIT "" CACHE STRING "") + set(CMAKE_Fortran_COMPILE_OBJECT " -static -fPIC ${__includes} -o -c " CACHE STRING "") + set(CMAKE_Fortran_LINK_EXECUTABLE " -fPIC -o ") + # Disable searches in the default system paths. We are cross compiling after all + # and cmake might pick up wrong libraries that way + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(HPX_WITH_PARCELPORT_TCP OFF CACHE BOOL "") + set(HPX_WITH_PARCELPORT_MPI ON CACHE BOOL "") + set(HPX_WITH_PARCELPORT_MPI_MULTITHREADED ON CACHE BOOL "") + # Set the TBBMALLOC_PLATFORM correctly so that find_package(TBBMalloc) sets the + # right hints + set(TBBMALLOC_PLATFORM "mic-knl" CACHE STRING "") + # We have a bunch of cores on the MIC ... increase the default + set(HPX_WITH_MAX_CPU_COUNT "512" CACHE STRING "") + # We do a cross compilation here ... + set(CMAKE_CROSSCOMPILING ON CACHE BOOL "") + # RDTSCP is available on Xeon/Phis + set(HPX_WITH_RDTSCP ON CACHE BOOL "") +`` + +[heading:CrayStatic CrayStatic] + +`` + # Copyright (c) 2014-2017 Thomas Heller + # Copyright (c) 2017 Bryce Adelstein Lelbach + # + # Distributed under the Boost Software License, Version 1.0. (See accompanying + # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + set(HPX_WITH_STATIC_LINKING ON CACHE BOOL "") + set(HPX_WITH_STATIC_EXE_LINKING ON CACHE BOOL "") + set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE) + # Set the Cray Compiler Wrapper + set(CMAKE_CXX_COMPILER CC) + set(CMAKE_C_COMPILER cc) + set(CMAKE_Fortran_COMPILER ftn) + if (CMAKE_VERSION VERSION_GREATER 3.3.0) + set(__includes "") + endif() + set(CMAKE_C_FLAGS_INIT "" CACHE STRING "") + set(CMAKE_C_COMPILE_OBJECT " -static -fPIC ${__includes} -o -c " CACHE STRING "") + set(CMAKE_C_LINK_EXECUTABLE " -fPIC -o " CACHE STRING "") + set(CMAKE_CXX_FLAGS_INIT "" CACHE STRING "") + set(CMAKE_CXX_COMPILE_OBJECT " -static -fPIC ${__includes} -o -c " CACHE STRING "") + set(CMAKE_CXX_LINK_EXECUTABLE " -fPIC -o " CACHE STRING "") + set(CMAKE_Fortran_FLAGS_INIT "" CACHE STRING "") + set(CMAKE_Fortran_COMPILE_OBJECT " -static -fPIC ${__includes} -o -c " CACHE STRING "") + set(CMAKE_Fortran_LINK_EXECUTABLE " -fPIC -o ") + # Disable searches in the default system paths. We are cross compiling after all + # and cmake might pick up wrong libraries that way + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(HPX_WITH_PARCELPORT_TCP OFF CACHE BOOL "") + set(HPX_WITH_PARCELPORT_MPI ON CACHE BOOL "") + set(HPX_WITH_PARCELPORT_MPI_MULTITHREADED ON CACHE BOOL "") + # We do a cross compilation here ... + set(CMAKE_CROSSCOMPILING ON CACHE BOOL "") + # RDTSCP is available on Xeon/Phis + set(HPX_WITH_RDTSCP ON CACHE BOOL "") +`` + [heading:XeonPhi XeonPhi] `` diff --git a/docs/manual/build_system/cmake_variables.qbk b/docs/manual/build_system/cmake_variables.qbk index 66c4bd94fe01..b2a4455ebe65 100644 --- a/docs/manual/build_system/cmake_variables.qbk +++ b/docs/manual/build_system/cmake_variables.qbk @@ -57,9 +57,9 @@ The options are split into these categories: * [link build_system.cmake_variables.HPX_WITH_LOGGING HPX_WITH_LOGGING] * [link build_system.cmake_variables.HPX_WITH_MALLOC HPX_WITH_MALLOC] * [link build_system.cmake_variables.HPX_WITH_NATIVE_TLS HPX_WITH_NATIVE_TLS] +* [link build_system.cmake_variables.HPX_WITH_NICE_THREADLEVEL HPX_WITH_NICE_THREADLEVEL] * [link build_system.cmake_variables.HPX_WITH_PARCEL_COALESCING HPX_WITH_PARCEL_COALESCING] * [link build_system.cmake_variables.HPX_WITH_RUN_MAIN_EVERYWHERE HPX_WITH_RUN_MAIN_EVERYWHERE] -* [link build_system.cmake_variables.HPX_WITH_SECURITY HPX_WITH_SECURITY] * [link build_system.cmake_variables.HPX_WITH_STATIC_LINKING HPX_WITH_STATIC_LINKING] * [link build_system.cmake_variables.HPX_WITH_SYCL HPX_WITH_SYCL] * [link build_system.cmake_variables.HPX_WITH_TRANSFORM_REDUCE_COMPATIBILITY HPX_WITH_TRANSFORM_REDUCE_COMPATIBILITY] @@ -95,9 +95,9 @@ The options are split into these categories: [[[#build_system.cmake_variables.HPX_WITH_LOGGING] `HPX_WITH_LOGGING:BOOL`][Build HPX with logging enabled (default: ON).]] [[[#build_system.cmake_variables.HPX_WITH_MALLOC] `HPX_WITH_MALLOC:STRING`][Define which allocator should be linked in. Options are: system, tcmalloc, jemalloc, tbbmalloc, and custom (default is: tcmalloc)]] [[[#build_system.cmake_variables.HPX_WITH_NATIVE_TLS] `HPX_WITH_NATIVE_TLS:BOOL`][Use native TLS support if available (default: ON)]] + [[[#build_system.cmake_variables.HPX_WITH_NICE_THREADLEVEL] `HPX_WITH_NICE_THREADLEVEL:BOOL`][Set HPX worker threads to have high NICE level (may impact performance) (default: OFF)]] [[[#build_system.cmake_variables.HPX_WITH_PARCEL_COALESCING] `HPX_WITH_PARCEL_COALESCING:BOOL`][Enable the parcel coalescing plugin (default: ON).]] [[[#build_system.cmake_variables.HPX_WITH_RUN_MAIN_EVERYWHERE] `HPX_WITH_RUN_MAIN_EVERYWHERE:BOOL`][Run hpx_main by default on all localities (default: OFF).]] - [[[#build_system.cmake_variables.HPX_WITH_SECURITY] `HPX_WITH_SECURITY:BOOL`][Enable security support via libsodium.]] [[[#build_system.cmake_variables.HPX_WITH_STATIC_LINKING] `HPX_WITH_STATIC_LINKING:BOOL`][Compile HPX statically linked libraries (Default: OFF)]] [[[#build_system.cmake_variables.HPX_WITH_SYCL] `HPX_WITH_SYCL:BOOL`][Enable sycl support (default: OFF)]] [[[#build_system.cmake_variables.HPX_WITH_TRANSFORM_REDUCE_COMPATIBILITY] `HPX_WITH_TRANSFORM_REDUCE_COMPATIBILITY:BOOL`][Enable old overloads for transform_reduce and inner_product (default: ON)]] @@ -209,12 +209,14 @@ The options are split into these categories: [#build_system.cmake_variables.Profiling][h3 Profiling Options] * [link build_system.cmake_variables.HPX_WITH_APEX HPX_WITH_APEX] +* [link build_system.cmake_variables.HPX_WITH_APEX_NO_UPDATE HPX_WITH_APEX_NO_UPDATE] * [link build_system.cmake_variables.HPX_WITH_GOOGLE_PERFTOOLS HPX_WITH_GOOGLE_PERFTOOLS] * [link build_system.cmake_variables.HPX_WITH_ITTNOTIFY HPX_WITH_ITTNOTIFY] * [link build_system.cmake_variables.HPX_WITH_PAPI HPX_WITH_PAPI] [variablelist [[[#build_system.cmake_variables.HPX_WITH_APEX] `HPX_WITH_APEX:BOOL`][Enable APEX instrumentation support.]] + [[[#build_system.cmake_variables.HPX_WITH_APEX_NO_UPDATE] `HPX_WITH_APEX_NO_UPDATE:BOOL`][Do not update code from remote APEX repository.]] [[[#build_system.cmake_variables.HPX_WITH_GOOGLE_PERFTOOLS] `HPX_WITH_GOOGLE_PERFTOOLS:BOOL`][Enable Google Perftools instrumentation support.]] [[[#build_system.cmake_variables.HPX_WITH_ITTNOTIFY] `HPX_WITH_ITTNOTIFY:BOOL`][Enable Amplifier (ITT) instrumentation support.]] [[[#build_system.cmake_variables.HPX_WITH_PAPI] `HPX_WITH_PAPI:BOOL`][Enable the PAPI based performance counter.]] diff --git a/docs/whats_new.qbk b/docs/whats_new.qbk index 4ce80a9ac177..324cfbe891c1 100644 --- a/docs/whats_new.qbk +++ b/docs/whats_new.qbk @@ -101,6 +101,7 @@ Here is a list of the important tickets we closed for this release. * [pr 2596] - Adding apex data * [pr 2595] - Remove obsolete file * [issue 2594] - FindOpenCL.cmake mismatch with the official cmake module +* [pr 2592] - First attempt to introduce spmd_block in hpx * [issue 2591] - Feature request: continuation (then) which does not require the callable object to take a future as parameter * [pr 2588] - Daint fixes