From 3aa5211994b893b504fc58db864d5eec53dd61e5 Mon Sep 17 00:00:00 2001 From: Alireza Kheirkhahan Date: Fri, 14 Jun 2024 09:41:49 -0500 Subject: [PATCH 1/9] Update LSU Jenkins libraries to match Rostam 3.0 with RHEL9 --- .jenkins/lsu-perftests/env-perftests.sh | 6 ++- .jenkins/lsu/Jenkinsfile | 3 +- .jenkins/lsu/env-clang-12.sh | 39 ------------------- .jenkins/lsu/env-clang-13.sh | 39 ------------------- .jenkins/lsu/env-clang-14.sh | 39 ------------------- .jenkins/lsu/env-clang-16.sh | 2 +- ...-clang-12-apex.sh => env-clang-17-apex.sh} | 9 ++--- .jenkins/lsu/env-clang-17.sh | 4 +- .../lsu/{env-clang-15.sh => env-clang-18.sh} | 6 +-- .jenkins/lsu/env-gcc-10.sh | 34 ---------------- .jenkins/lsu/env-gcc-11.sh | 2 +- .jenkins/lsu/env-gcc-12.sh | 2 +- ...cc-12-cuda-12.sh => env-gcc-13-cuda-12.sh} | 5 ++- .jenkins/lsu/env-gcc-13.sh | 4 +- ...da-12-dgx.sh => env-gcc-14-cuda-12-dgx.sh} | 5 ++- .jenkins/lsu/slurm-configuration-clang-15.sh | 8 ---- ...-11.sh => slurm-configuration-clang-16.sh} | 1 + ...h => slurm-configuration-clang-17-apex.sh} | 0 ...-12.sh => slurm-configuration-clang-17.sh} | 1 + ...-13.sh => slurm-configuration-clang-18.sh} | 1 + .jenkins/lsu/slurm-configuration-gcc-10.sh | 8 ---- ... => slurm-configuration-gcc-13-cuda-12.sh} | 1 + ...slurm-configuration-gcc-14-cuda-12-dgx.sh} | 1 + ...ng-14.sh => slurm-configuration-gcc-14.sh} | 1 + .jenkins/lsu/slurm-configuration-gcc-9.sh | 8 ---- 25 files changed, 32 insertions(+), 197 deletions(-) delete mode 100644 .jenkins/lsu/env-clang-12.sh delete mode 100644 .jenkins/lsu/env-clang-13.sh delete mode 100644 .jenkins/lsu/env-clang-14.sh rename .jenkins/lsu/{env-clang-12-apex.sh => env-clang-17-apex.sh} (89%) rename .jenkins/lsu/{env-clang-15.sh => env-clang-18.sh} (93%) delete mode 100644 .jenkins/lsu/env-gcc-10.sh rename .jenkins/lsu/{env-gcc-12-cuda-12.sh => env-gcc-13-cuda-12.sh} (90%) rename .jenkins/lsu/{env-gcc-13-cuda-12-dgx.sh => env-gcc-14-cuda-12-dgx.sh} (90%) delete mode 100644 .jenkins/lsu/slurm-configuration-clang-15.sh rename .jenkins/lsu/{slurm-configuration-clang-11.sh => slurm-configuration-clang-16.sh} (88%) rename .jenkins/lsu/{slurm-configuration-clang-12-apex.sh => slurm-configuration-clang-17-apex.sh} (100%) rename .jenkins/lsu/{slurm-configuration-clang-12.sh => slurm-configuration-clang-17.sh} (88%) rename .jenkins/lsu/{slurm-configuration-clang-13.sh => slurm-configuration-clang-18.sh} (88%) delete mode 100644 .jenkins/lsu/slurm-configuration-gcc-10.sh rename .jenkins/lsu/{slurm-configuration-gcc-10-cuda-11.sh => slurm-configuration-gcc-13-cuda-12.sh} (87%) rename .jenkins/lsu/{slurm-configuration-gcc-12-cuda-12-dgx.sh => slurm-configuration-gcc-14-cuda-12-dgx.sh} (88%) rename .jenkins/lsu/{slurm-configuration-clang-14.sh => slurm-configuration-gcc-14.sh} (88%) delete mode 100644 .jenkins/lsu/slurm-configuration-gcc-9.sh diff --git a/.jenkins/lsu-perftests/env-perftests.sh b/.jenkins/lsu-perftests/env-perftests.sh index bc8e324deedb..4d13d79e38d5 100644 --- a/.jenkins/lsu-perftests/env-perftests.sh +++ b/.jenkins/lsu-perftests/env-perftests.sh @@ -1,5 +1,7 @@ # Copyright (c) 2020 ETH Zurich # Copyright (c) 2022 Hartmut Kaiser +# Copyright (c) 2024 Alireza Kheirkhahan + # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -8,8 +10,8 @@ set -eu module purge module load cmake -module load llvm/13 -module load boost/1.78.0-release +module load llvm/18 +module load boost/1.85.0-release module load hwloc module load openmpi diff --git a/.jenkins/lsu/Jenkinsfile b/.jenkins/lsu/Jenkinsfile index b638b11e8393..996eacc96453 100644 --- a/.jenkins/lsu/Jenkinsfile +++ b/.jenkins/lsu/Jenkinsfile @@ -2,6 +2,7 @@ // Copyright (c) 2020 ETH Zurich // Copyright (c) 2022 Hartmut Kaiser +// Copyright (c) 2024 Alireza Kheirkhahan // // SPDX-License-Identifier: BSL-1.0 // Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -36,7 +37,7 @@ pipeline { axes { axis { name 'configuration_name' - values 'gcc-10', 'gcc-11', 'gcc-12', 'gcc-13', 'clang-12-apex', 'clang-12', 'clang-13', 'clang-14', 'clang-15', 'clang-16', 'clang-17','gcc-12-cuda-12', 'gcc-13-cuda-12-dgx', 'hipcc' + values 'gcc-11', 'gcc-12', 'gcc-13', 'gcc-14', 'clang-17-apex', 'clang-16', 'clang-17', 'clang-18', 'gcc-13-cuda-12', 'gcc-14-cuda-12-dgx', 'hipcc' } axis { name 'build_type' diff --git a/.jenkins/lsu/env-clang-12.sh b/.jenkins/lsu/env-clang-12.sh deleted file mode 100644 index c9b5e4a5ee10..000000000000 --- a/.jenkins/lsu/env-clang-12.sh +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (c) 2020 ETH Zurich -# -# SPDX-License-Identifier: BSL-1.0 -# 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) - -module purge -module load cmake -module load llvm/12 -module load boost/1.75.0-${build_type,,} -module load hwloc -module load openmpi -module load pwrapi/1.1.1 - -export HPXRUN_RUNWRAPPER=srun -export CXX_STD="20" -export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH - -configure_extra_options+=" -DCMAKE_BUILD_TYPE=${build_type}" -configure_extra_options+=" -DHPX_WITH_CXX_STANDARD=${CXX_STD}" -configure_extra_options+=" -DHPX_WITH_MALLOC=system" -configure_extra_options+=" -DHPX_WITH_FETCH_ASIO=ON" -configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS=ON" -configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON" -configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON" -configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON" -configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON" -configure_extra_options+=" -DCMAKE_C_COMPILER=clang" -configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC" -configure_extra_options+=" -DHPX_WITH_LOGGING=OFF" - -# The pwrapi library still needs to be set up properly on rostam -# configure_extra_options+=" -DHPX_WITH_POWER_COUNTER=ON" - -# Make sure HWLOC does not report 'cores'. This is purely an option to enable -# testing the topology code under conditions close to those on FreeBSD. -configure_extra_options+=" -DHPX_TOPOLOGY_WITH_ADDITIONAL_HWLOC_TESTING=ON" - -configure_extra_options+=" -DHPX_COROUTINES_WITH_THREAD_SCHEDULE_HINT_RUNS_AS_CHILD=ON" diff --git a/.jenkins/lsu/env-clang-13.sh b/.jenkins/lsu/env-clang-13.sh deleted file mode 100644 index 76df09cfd93b..000000000000 --- a/.jenkins/lsu/env-clang-13.sh +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (c) 2020 ETH Zurich -# -# SPDX-License-Identifier: BSL-1.0 -# 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) - -module purge -module load cmake -module load llvm/13 -module load boost/1.78.0-${build_type,,} -module load hwloc -module load openmpi -module load pwrapi/1.1.1 - -export HPXRUN_RUNWRAPPER=srun -export CXX_STD="17" -export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH - -configure_extra_options+=" -DCMAKE_BUILD_TYPE=${build_type}" -configure_extra_options+=" -DHPX_WITH_CXX_STANDARD=${CXX_STD}" -configure_extra_options+=" -DHPX_WITH_MALLOC=system" -configure_extra_options+=" -DHPX_WITH_FETCH_ASIO=ON" -configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS=ON" -configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON" -configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON" -configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON" -configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON" -configure_extra_options+=" -DCMAKE_C_COMPILER=clang" -configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC" -configure_extra_options+=" -DHPX_WITH_LOGGING=OFF" -configure_extra_options+=" -DHPX_WITH_TESTS_COMMAND_LINE=--hpx:queuing=local-workrequesting-fifo" - - -# The pwrapi library still needs to be set up properly on rostam -# configure_extra_options+=" -DHPX_WITH_POWER_COUNTER=ON" - -# Make sure HWLOC does not report 'cores'. This is purely an option to enable -# testing the topology code under conditions close to those on FreeBSD. -configure_extra_options+=" -DHPX_TOPOLOGY_WITH_ADDITIONAL_HWLOC_TESTING=ON" diff --git a/.jenkins/lsu/env-clang-14.sh b/.jenkins/lsu/env-clang-14.sh deleted file mode 100644 index 144c17e7820d..000000000000 --- a/.jenkins/lsu/env-clang-14.sh +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (c) 2020 ETH Zurich -# -# SPDX-License-Identifier: BSL-1.0 -# 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) - -module purge -module load cmake -module load llvm/14 -module load boost/1.79.0-${build_type,,} -module load hwloc -module load openmpi -module load pwrapi/1.1.1 - -export HPXRUN_RUNWRAPPER=srun -export CXX_STD="20" -export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH - -configure_extra_options+=" -DCMAKE_BUILD_TYPE=${build_type}" -configure_extra_options+=" -DHPX_WITH_CXX_STANDARD=${CXX_STD}" -configure_extra_options+=" -DHPX_WITH_MALLOC=system" -configure_extra_options+=" -DHPX_WITH_FETCH_ASIO=ON" -configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS=ON" -configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON" -configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON" -configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON" -configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON" -configure_extra_options+=" -DCMAKE_C_COMPILER=clang" -configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC" -configure_extra_options+=" -DHPX_WITH_LOGGING=OFF" -configure_extra_options+=" -DHPX_WITH_DATAPAR_BACKEND=EVE" -configure_extra_options+=" -DHPX_WITH_FETCH_EVE=ON" - -# The pwrapi library still needs to be set up properly on rostam -# configure_extra_options+=" -DHPX_WITH_POWER_COUNTER=ON" - -# Make sure HWLOC does not report 'cores'. This is purely an option to enable -# testing the topology code under conditions close to those on FreeBSD. -configure_extra_options+=" -DHPX_TOPOLOGY_WITH_ADDITIONAL_HWLOC_TESTING=ON" diff --git a/.jenkins/lsu/env-clang-16.sh b/.jenkins/lsu/env-clang-16.sh index 393e42c03e54..4a5d951bd1aa 100644 --- a/.jenkins/lsu/env-clang-16.sh +++ b/.jenkins/lsu/env-clang-16.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -10,7 +11,6 @@ module load llvm/16 module load boost/1.82.0-${build_type,,} module load hwloc module load openmpi -module load pwrapi/1.1.1 export HPXRUN_RUNWRAPPER=srun export CXX_STD="20" diff --git a/.jenkins/lsu/env-clang-12-apex.sh b/.jenkins/lsu/env-clang-17-apex.sh similarity index 89% rename from .jenkins/lsu/env-clang-12-apex.sh rename to .jenkins/lsu/env-clang-17-apex.sh index 0ade7b3262cf..568882562ce0 100644 --- a/.jenkins/lsu/env-clang-12-apex.sh +++ b/.jenkins/lsu/env-clang-17-apex.sh @@ -7,13 +7,12 @@ module purge module load cmake -module load llvm/12 -module load boost/1.75.0-${build_type,,} +module load llvm/17 +module load boost/1.84.0-${build_type,,} module load hwloc module load openmpi -module load pwrapi/1.1.1 -module load papi/7.0.1 -module load otf2/3.0.3 +module load papi +module load otf2 export HPXRUN_RUNWRAPPER=srun export CXX_STD="20" diff --git a/.jenkins/lsu/env-clang-17.sh b/.jenkins/lsu/env-clang-17.sh index 1b6ac8d26294..cf8ef3e3aed5 100644 --- a/.jenkins/lsu/env-clang-17.sh +++ b/.jenkins/lsu/env-clang-17.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -7,10 +8,9 @@ module purge module load cmake module load llvm/17 -module load boost/1.83.0-${build_type,,} +module load boost/1.84.0-${build_type,,} module load hwloc module load openmpi -module load pwrapi/1.1.1 export HPXRUN_RUNWRAPPER=srun export CXX_STD="20" diff --git a/.jenkins/lsu/env-clang-15.sh b/.jenkins/lsu/env-clang-18.sh similarity index 93% rename from .jenkins/lsu/env-clang-15.sh rename to .jenkins/lsu/env-clang-18.sh index 1df2a9fd23b3..6c105f905bad 100644 --- a/.jenkins/lsu/env-clang-15.sh +++ b/.jenkins/lsu/env-clang-18.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -6,11 +7,10 @@ module purge module load cmake -module load llvm/15 -module load boost/1.81.0-${build_type,,} +module load llvm/18 +module load boost/1.85.0-${build_type,,} module load hwloc module load openmpi -module load pwrapi/1.1.1 export HPXRUN_RUNWRAPPER=srun export CXX_STD="20" diff --git a/.jenkins/lsu/env-gcc-10.sh b/.jenkins/lsu/env-gcc-10.sh deleted file mode 100644 index 9c4064825a0a..000000000000 --- a/.jenkins/lsu/env-gcc-10.sh +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright (c) 2020 ETH Zurich -# -# SPDX-License-Identifier: BSL-1.0 -# 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) - -module purge -module load cmake -module load gcc/10 -module load boost/1.75.0-${build_type,,} -module load hwloc -module load openmpi -module load pwrapi/1.1.1 - -export HPXRUN_RUNWRAPPER=srun -export CXX_STD="17" -export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH - -configure_extra_options+=" -DHPX_WITH_CXX_STANDARD=${CXX_STD}" -configure_extra_options+=" -DHPX_WITH_MALLOC=system" -configure_extra_options+=" -DHPX_WITH_FETCH_ASIO=ON" -configure_extra_options+=" -DHPX_WITH_ASIO_TAG=asio-1-12-0" -configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS=ON" -configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON" -configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON" -configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON" -configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON" -configure_extra_options+=" -DCMAKE_C_COMPILER=gcc" -configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC" - -# The pwrapi library still needs to be set up properly on rostam -# configure_extra_options+=" -DHPX_WITH_POWER_COUNTER=ON" - -configure_extra_options+=" -DHPX_COROUTINES_WITH_THREAD_SCHEDULE_HINT_RUNS_AS_CHILD=ON" diff --git a/.jenkins/lsu/env-gcc-11.sh b/.jenkins/lsu/env-gcc-11.sh index 3276a6f9c97f..17055b618fe2 100644 --- a/.jenkins/lsu/env-gcc-11.sh +++ b/.jenkins/lsu/env-gcc-11.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -10,7 +11,6 @@ module load gcc/11 module load boost/1.78.0-${build_type,,} module load hwloc module load openmpi -module load pwrapi/1.1.1 export HPXRUN_RUNWRAPPER=srun export CXX_STD="20" diff --git a/.jenkins/lsu/env-gcc-12.sh b/.jenkins/lsu/env-gcc-12.sh index 48a6887c1ba6..06e288a62b7f 100644 --- a/.jenkins/lsu/env-gcc-12.sh +++ b/.jenkins/lsu/env-gcc-12.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -10,7 +11,6 @@ module load gcc/12 module load boost/1.81.0-${build_type,,} module load hwloc module load openmpi -module load pwrapi/1.1.1 export HPXRUN_RUNWRAPPER=srun export CXX_STD="20" diff --git a/.jenkins/lsu/env-gcc-12-cuda-12.sh b/.jenkins/lsu/env-gcc-13-cuda-12.sh similarity index 90% rename from .jenkins/lsu/env-gcc-12-cuda-12.sh rename to .jenkins/lsu/env-gcc-13-cuda-12.sh index 5cee91dd586d..08f87aed63c6 100644 --- a/.jenkins/lsu/env-gcc-12-cuda-12.sh +++ b/.jenkins/lsu/env-gcc-13-cuda-12.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -6,8 +7,8 @@ module purge module load cmake -module load gcc/12 -module load boost/1.82.0-${build_type,,} +module load gcc/13 +module load boost/1.84.0-${build_type,,} module load hwloc module load cuda/12 module load openmpi diff --git a/.jenkins/lsu/env-gcc-13.sh b/.jenkins/lsu/env-gcc-13.sh index 4a10458aa535..06910b0f4037 100644 --- a/.jenkins/lsu/env-gcc-13.sh +++ b/.jenkins/lsu/env-gcc-13.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -7,10 +8,9 @@ module purge module load cmake module load gcc/13 -module load boost/1.83.0-${build_type,,} +module load boost/1.84.0-${build_type,,} module load hwloc module load openmpi -module load pwrapi/1.1.1 export HPXRUN_RUNWRAPPER=srun export CXX_STD="20" diff --git a/.jenkins/lsu/env-gcc-13-cuda-12-dgx.sh b/.jenkins/lsu/env-gcc-14-cuda-12-dgx.sh similarity index 90% rename from .jenkins/lsu/env-gcc-13-cuda-12-dgx.sh rename to .jenkins/lsu/env-gcc-14-cuda-12-dgx.sh index f114b043e65d..6ec9302511ba 100644 --- a/.jenkins/lsu/env-gcc-13-cuda-12-dgx.sh +++ b/.jenkins/lsu/env-gcc-14-cuda-12-dgx.sh @@ -1,4 +1,5 @@ # Copyright (c) 2022-2023 Hartmut Kaiser +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -6,9 +7,9 @@ module purge module load cmake -module load gcc/13 +module load gcc/14 module load cuda/12 -module load boost/1.83.0-${build_type,,} +module load boost/1.85.0-${build_type,,} module load hwloc export CXX_STD="17" diff --git a/.jenkins/lsu/slurm-configuration-clang-15.sh b/.jenkins/lsu/slurm-configuration-clang-15.sh deleted file mode 100644 index fa04df0a3fb8..000000000000 --- a/.jenkins/lsu/slurm-configuration-clang-15.sh +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 ETH Zurich -# -# SPDX-License-Identifier: BSL-1.0 -# 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) - -configuration_slurm_partition="jenkins-compute" -configuration_slurm_num_nodes="1" diff --git a/.jenkins/lsu/slurm-configuration-clang-11.sh b/.jenkins/lsu/slurm-configuration-clang-16.sh similarity index 88% rename from .jenkins/lsu/slurm-configuration-clang-11.sh rename to .jenkins/lsu/slurm-configuration-clang-16.sh index fa04df0a3fb8..c5d36d447667 100644 --- a/.jenkins/lsu/slurm-configuration-clang-11.sh +++ b/.jenkins/lsu/slurm-configuration-clang-16.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/.jenkins/lsu/slurm-configuration-clang-12-apex.sh b/.jenkins/lsu/slurm-configuration-clang-17-apex.sh similarity index 100% rename from .jenkins/lsu/slurm-configuration-clang-12-apex.sh rename to .jenkins/lsu/slurm-configuration-clang-17-apex.sh diff --git a/.jenkins/lsu/slurm-configuration-clang-12.sh b/.jenkins/lsu/slurm-configuration-clang-17.sh similarity index 88% rename from .jenkins/lsu/slurm-configuration-clang-12.sh rename to .jenkins/lsu/slurm-configuration-clang-17.sh index fa04df0a3fb8..c5d36d447667 100644 --- a/.jenkins/lsu/slurm-configuration-clang-12.sh +++ b/.jenkins/lsu/slurm-configuration-clang-17.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/.jenkins/lsu/slurm-configuration-clang-13.sh b/.jenkins/lsu/slurm-configuration-clang-18.sh similarity index 88% rename from .jenkins/lsu/slurm-configuration-clang-13.sh rename to .jenkins/lsu/slurm-configuration-clang-18.sh index fa04df0a3fb8..c5d36d447667 100644 --- a/.jenkins/lsu/slurm-configuration-clang-13.sh +++ b/.jenkins/lsu/slurm-configuration-clang-18.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/.jenkins/lsu/slurm-configuration-gcc-10.sh b/.jenkins/lsu/slurm-configuration-gcc-10.sh deleted file mode 100644 index fa04df0a3fb8..000000000000 --- a/.jenkins/lsu/slurm-configuration-gcc-10.sh +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 ETH Zurich -# -# SPDX-License-Identifier: BSL-1.0 -# 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) - -configuration_slurm_partition="jenkins-compute" -configuration_slurm_num_nodes="1" diff --git a/.jenkins/lsu/slurm-configuration-gcc-10-cuda-11.sh b/.jenkins/lsu/slurm-configuration-gcc-13-cuda-12.sh similarity index 87% rename from .jenkins/lsu/slurm-configuration-gcc-10-cuda-11.sh rename to .jenkins/lsu/slurm-configuration-gcc-13-cuda-12.sh index 3dc9e8a74287..b386fe86fb17 100644 --- a/.jenkins/lsu/slurm-configuration-gcc-10-cuda-11.sh +++ b/.jenkins/lsu/slurm-configuration-gcc-13-cuda-12.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/.jenkins/lsu/slurm-configuration-gcc-12-cuda-12-dgx.sh b/.jenkins/lsu/slurm-configuration-gcc-14-cuda-12-dgx.sh similarity index 88% rename from .jenkins/lsu/slurm-configuration-gcc-12-cuda-12-dgx.sh rename to .jenkins/lsu/slurm-configuration-gcc-14-cuda-12-dgx.sh index 36f38fc2950a..3a58eafb20cc 100644 --- a/.jenkins/lsu/slurm-configuration-gcc-12-cuda-12-dgx.sh +++ b/.jenkins/lsu/slurm-configuration-gcc-14-cuda-12-dgx.sh @@ -1,4 +1,5 @@ # Copyright (c) 2022-2023 Hartmut Kaiser +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/.jenkins/lsu/slurm-configuration-clang-14.sh b/.jenkins/lsu/slurm-configuration-gcc-14.sh similarity index 88% rename from .jenkins/lsu/slurm-configuration-clang-14.sh rename to .jenkins/lsu/slurm-configuration-gcc-14.sh index fa04df0a3fb8..c5d36d447667 100644 --- a/.jenkins/lsu/slurm-configuration-clang-14.sh +++ b/.jenkins/lsu/slurm-configuration-gcc-14.sh @@ -1,4 +1,5 @@ # Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/.jenkins/lsu/slurm-configuration-gcc-9.sh b/.jenkins/lsu/slurm-configuration-gcc-9.sh deleted file mode 100644 index fa04df0a3fb8..000000000000 --- a/.jenkins/lsu/slurm-configuration-gcc-9.sh +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2020 ETH Zurich -# -# SPDX-License-Identifier: BSL-1.0 -# 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) - -configuration_slurm_partition="jenkins-compute" -configuration_slurm_num_nodes="1" From 1dd88068b8faae66c5b1a39f55b639a0d43d82eb Mon Sep 17 00:00:00 2001 From: Hartmut Kaiser Date: Wed, 19 Jun 2024 17:37:23 -0500 Subject: [PATCH 2/9] Fixing CI errors --- .../algorithms/tests/regressions/minimal_findend.cpp | 11 ++++++----- .../tests/unit/algorithms/adjacentfind_tests.hpp | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/libs/core/algorithms/tests/regressions/minimal_findend.cpp b/libs/core/algorithms/tests/regressions/minimal_findend.cpp index 2512610611cb..06842f5f9847 100644 --- a/libs/core/algorithms/tests/regressions/minimal_findend.cpp +++ b/libs/core/algorithms/tests/regressions/minimal_findend.cpp @@ -69,11 +69,12 @@ void find_end_failing_test() bool caught_exception = false; try { - std::find_end(decorated_iterator(std::begin(c), - []() { throw std::runtime_error("error"); }), - decorated_iterator( - std::end(c), []() { throw std::runtime_error("error"); }), - std::begin(h), std::end(h)); + [[maybe_unused]] auto ret = + std::find_end(decorated_iterator(std::begin(c), + []() { throw std::runtime_error("error"); }), + decorated_iterator( + std::end(c), []() { throw std::runtime_error("error"); }), + std::begin(h), std::end(h)); // should never reach this point HPX_TEST(false); diff --git a/libs/core/algorithms/tests/unit/algorithms/adjacentfind_tests.hpp b/libs/core/algorithms/tests/unit/algorithms/adjacentfind_tests.hpp index ff5f6fd11b21..7c21cf8acdc3 100644 --- a/libs/core/algorithms/tests/unit/algorithms/adjacentfind_tests.hpp +++ b/libs/core/algorithms/tests/unit/algorithms/adjacentfind_tests.hpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include From 6e989e2b971c9dbd4fb41baec620eaddc2eb4f1f Mon Sep 17 00:00:00 2001 From: Alireza Kheirkhahan Date: Fri, 14 Jun 2024 09:41:49 -0500 Subject: [PATCH 3/9] Update LSU Jenkins libraries to match Rostam 3.0 with RHEL9 --- .jenkins/lsu/env-hipcc.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.jenkins/lsu/env-hipcc.sh b/.jenkins/lsu/env-hipcc.sh index e31a25c4fa26..307beddd95d0 100644 --- a/.jenkins/lsu/env-hipcc.sh +++ b/.jenkins/lsu/env-hipcc.sh @@ -1,15 +1,19 @@ # Copyright (c) 2020-2021 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 # 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) + +module purge +module load cmake module load rocm -module load boost -export CXX=hipcc +module load boost/1.84.0-${build_type,,} +#export CXX=hipcc export HPXRUN_RUNWRAPPER=srun -export CXX_STD="17" +export CXX_STD="20" configure_extra_options+=" -DHPX_WITH_CXX_STANDARD=${CXX_STD}" configure_extra_options+=" -DHPX_WITH_MALLOC=system" From 9d258dcca4f4c3f57972236a31cb124ddc2e2524 Mon Sep 17 00:00:00 2001 From: Hartmut Kaiser Date: Thu, 20 Jun 2024 10:12:49 -0500 Subject: [PATCH 4/9] Adding missing env files, changing DGX to gcc 13 --- .github/workflows/macos_debug.yml | 3 +- .github/workflows/macos_debug_fetch_boost.yml | 3 +- .github/workflows/macos_debug_fetch_hwloc.yml | 3 +- .jenkins/lsu/Jenkinsfile | 2 +- ...da-12-dgx.sh => env-gcc-13-cuda-12-dgx.sh} | 4 +-- .jenkins/lsu/env-gcc-14.sh | 34 +++++++++++++++++++ 6 files changed, 43 insertions(+), 6 deletions(-) rename .jenkins/lsu/{env-gcc-14-cuda-12-dgx.sh => env-gcc-13-cuda-12-dgx.sh} (94%) create mode 100644 .jenkins/lsu/env-gcc-14.sh diff --git a/.github/workflows/macos_debug.yml b/.github/workflows/macos_debug.yml index 0f1d31974bdc..7d0936730d54 100644 --- a/.github/workflows/macos_debug.yml +++ b/.github/workflows/macos_debug.yml @@ -74,4 +74,5 @@ jobs: tests.unit.modules.segmented_algorithms.distributed.tcp.partitioned_vector|\ tests.unit.threads.distributed.tcp.thread_stacksize|\ tests.unit.topology.numa_allocator|\ - tests.unit.modules.runtime_components.distributed.tcp.migrate_polymorphic_component" + tests.unit.modules.runtime_components.distributed.tcp.migrate_polymorphic_component|\ + tests.unit.modules.executors.limiting_executor" diff --git a/.github/workflows/macos_debug_fetch_boost.yml b/.github/workflows/macos_debug_fetch_boost.yml index 6fb9233cb507..81d15d8eeb1c 100644 --- a/.github/workflows/macos_debug_fetch_boost.yml +++ b/.github/workflows/macos_debug_fetch_boost.yml @@ -72,4 +72,5 @@ jobs: tests.unit.modules.segmented_algorithms.distributed.tcp.partitioned_vector|\ tests.unit.threads.distributed.tcp.thread_stacksize|\ tests.unit.topology.numa_allocator|\ - tests.unit.modules.runtime_components.distributed.tcp.migrate_polymorphic_component" + tests.unit.modules.runtime_components.distributed.tcp.migrate_polymorphic_component|\ + tests.unit.modules.executors.limiting_executor" diff --git a/.github/workflows/macos_debug_fetch_hwloc.yml b/.github/workflows/macos_debug_fetch_hwloc.yml index b3cef50f4784..caec2af3ac25 100644 --- a/.github/workflows/macos_debug_fetch_hwloc.yml +++ b/.github/workflows/macos_debug_fetch_hwloc.yml @@ -75,4 +75,5 @@ jobs: tests.unit.modules.segmented_algorithms.distributed.tcp.partitioned_vector|\ tests.unit.threads.distributed.tcp.thread_stacksize|\ tests.unit.topology.numa_allocator|\ - tests.unit.modules.runtime_components.distributed.tcp.migrate_polymorphic_component" + tests.unit.modules.runtime_components.distributed.tcp.migrate_polymorphic_component|\ + tests.unit.modules.executors.limiting_executor" diff --git a/.jenkins/lsu/Jenkinsfile b/.jenkins/lsu/Jenkinsfile index 996eacc96453..08977c7614fe 100644 --- a/.jenkins/lsu/Jenkinsfile +++ b/.jenkins/lsu/Jenkinsfile @@ -37,7 +37,7 @@ pipeline { axes { axis { name 'configuration_name' - values 'gcc-11', 'gcc-12', 'gcc-13', 'gcc-14', 'clang-17-apex', 'clang-16', 'clang-17', 'clang-18', 'gcc-13-cuda-12', 'gcc-14-cuda-12-dgx', 'hipcc' + values 'gcc-11', 'gcc-12', 'gcc-13', 'gcc-14', 'clang-17-apex', 'clang-16', 'clang-17', 'clang-18', 'gcc-13-cuda-12', 'gcc-13-cuda-12-dgx', 'hipcc' } axis { name 'build_type' diff --git a/.jenkins/lsu/env-gcc-14-cuda-12-dgx.sh b/.jenkins/lsu/env-gcc-13-cuda-12-dgx.sh similarity index 94% rename from .jenkins/lsu/env-gcc-14-cuda-12-dgx.sh rename to .jenkins/lsu/env-gcc-13-cuda-12-dgx.sh index 6ec9302511ba..eb197fc21623 100644 --- a/.jenkins/lsu/env-gcc-14-cuda-12-dgx.sh +++ b/.jenkins/lsu/env-gcc-13-cuda-12-dgx.sh @@ -1,4 +1,4 @@ -# Copyright (c) 2022-2023 Hartmut Kaiser +# Copyright (c) 2022-2024 Hartmut Kaiser # Copyright (c) 2024 Alireza Kheirkhahan # # SPDX-License-Identifier: BSL-1.0 @@ -7,7 +7,7 @@ module purge module load cmake -module load gcc/14 +module load gcc/13 module load cuda/12 module load boost/1.85.0-${build_type,,} module load hwloc diff --git a/.jenkins/lsu/env-gcc-14.sh b/.jenkins/lsu/env-gcc-14.sh new file mode 100644 index 000000000000..062124d1d835 --- /dev/null +++ b/.jenkins/lsu/env-gcc-14.sh @@ -0,0 +1,34 @@ +# Copyright (c) 2020 ETH Zurich +# Copyright (c) 2024 Alireza Kheirkhahan +# +# SPDX-License-Identifier: BSL-1.0 +# 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) + +module purge +module load cmake +module load gcc/14 +module load boost/1.84.0-${build_type,,} +module load hwloc +module load openmpi + +export HPXRUN_RUNWRAPPER=srun +export CXX_STD="20" +export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH + +configure_extra_options+=" -DHPX_WITH_CXX_STANDARD=${CXX_STD}" +configure_extra_options+=" -DHPX_WITH_MALLOC=system" +configure_extra_options+=" -DHPX_WITH_FETCH_ASIO=ON" +configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS=ON" +configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=ON" +configure_extra_options+=" -DHPX_WITH_PARCELPORT_MPI=ON" +configure_extra_options+=" -DHPX_WITH_PARCELPORT_LCI=ON" +configure_extra_options+=" -DHPX_WITH_FETCH_LCI=ON" +configure_extra_options+=" -DCMAKE_C_COMPILER=gcc" +configure_extra_options+=" -DCMAKE_C_FLAGS=-fPIC" +configure_extra_options+=" -DHPX_WITH_DATAPAR_BACKEND=EVE" +configure_extra_options+=" -DHPX_WITH_FETCH_EVE=ON" +configure_extra_options+=" -DHPX_WITH_EVE_TAG=main" + +# The pwrapi library still needs to be set up properly on rostam +# configure_extra_options+=" -DHPX_WITH_POWER_COUNTER=ON" From f820c05d65804f6d29e4031185e96db9557379a1 Mon Sep 17 00:00:00 2001 From: Hartmut Kaiser Date: Thu, 20 Jun 2024 10:48:23 -0500 Subject: [PATCH 5/9] More config file fixes --- .jenkins/lsu/env-gcc-14.sh | 2 +- ...cuda-12-dgx.sh => slurm-configuration-gcc-13-cuda-12-dgx.sh} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename .jenkins/lsu/{slurm-configuration-gcc-14-cuda-12-dgx.sh => slurm-configuration-gcc-13-cuda-12-dgx.sh} (100%) diff --git a/.jenkins/lsu/env-gcc-14.sh b/.jenkins/lsu/env-gcc-14.sh index 062124d1d835..a256e0651b18 100644 --- a/.jenkins/lsu/env-gcc-14.sh +++ b/.jenkins/lsu/env-gcc-14.sh @@ -8,7 +8,7 @@ module purge module load cmake module load gcc/14 -module load boost/1.84.0-${build_type,,} +module load boost/1.85.0-${build_type,,} module load hwloc module load openmpi diff --git a/.jenkins/lsu/slurm-configuration-gcc-14-cuda-12-dgx.sh b/.jenkins/lsu/slurm-configuration-gcc-13-cuda-12-dgx.sh similarity index 100% rename from .jenkins/lsu/slurm-configuration-gcc-14-cuda-12-dgx.sh rename to .jenkins/lsu/slurm-configuration-gcc-13-cuda-12-dgx.sh From 653342e1358e80cfd7fcd5d3c67859408fde3393 Mon Sep 17 00:00:00 2001 From: Hartmut Kaiser Date: Thu, 20 Jun 2024 16:18:21 -0500 Subject: [PATCH 6/9] More test fixes --- .jenkins/lsu/env-hipcc.sh | 1 + .../algorithms/adjacentdifference_tests.hpp | 1 + .../unit/algorithms/adjacentfind_tests.hpp | 1 - .../format/include/hpx/modules/format.hpp | 6 +- libs/core/format/tests/unit/format.cpp | 64 ++++++++++--------- .../detail/pack_traversal_impl.hpp | 5 ++ .../type_support/tests/unit/generator.cpp | 8 +-- 7 files changed, 49 insertions(+), 37 deletions(-) diff --git a/.jenkins/lsu/env-hipcc.sh b/.jenkins/lsu/env-hipcc.sh index 307beddd95d0..06903456b326 100644 --- a/.jenkins/lsu/env-hipcc.sh +++ b/.jenkins/lsu/env-hipcc.sh @@ -24,3 +24,4 @@ configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS=ON" configure_extra_options+=" -DHPX_WITH_COMPILER_WARNINGS_AS_ERRORS=OFF" ctest_extra_args+=" -E tests.unit.modules.algorithms.detail " +ctest_extra_args+=" -E tests.regressions.modules.coroutines.coroutine_function_destructor_yield_4800" diff --git a/libs/core/algorithms/tests/unit/algorithms/adjacentdifference_tests.hpp b/libs/core/algorithms/tests/unit/algorithms/adjacentdifference_tests.hpp index d6469ec8d497..5721e9d19e14 100644 --- a/libs/core/algorithms/tests/unit/algorithms/adjacentdifference_tests.hpp +++ b/libs/core/algorithms/tests/unit/algorithms/adjacentdifference_tests.hpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include diff --git a/libs/core/algorithms/tests/unit/algorithms/adjacentfind_tests.hpp b/libs/core/algorithms/tests/unit/algorithms/adjacentfind_tests.hpp index 7c21cf8acdc3..ff5f6fd11b21 100644 --- a/libs/core/algorithms/tests/unit/algorithms/adjacentfind_tests.hpp +++ b/libs/core/algorithms/tests/unit/algorithms/adjacentfind_tests.hpp @@ -9,7 +9,6 @@ #include #include #include -#include #include #include diff --git a/libs/core/format/include/hpx/modules/format.hpp b/libs/core/format/include/hpx/modules/format.hpp index 73427ee3c115..ff1b43146780 100644 --- a/libs/core/format/include/hpx/modules/format.hpp +++ b/libs/core/format/include/hpx/modules/format.hpp @@ -1,5 +1,5 @@ // Copyright (c) 2017-2021 Agustin Berge -// Copyright (c) 2022 Hartmut Kaiser +// Copyright (c) 2022-2024 Hartmut Kaiser // // SPDX-License-Identifier: BSL-1.0 // Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -317,7 +317,11 @@ namespace hpx::util { os << value.delim; first = false; +#if defined(HPX_CUDA_VERSION) + using value_type = typename std::decay_t::value_type; +#else using value_type = std::decay_t; +#endif detail::formatter::call(os, spec, &elem); } } diff --git a/libs/core/format/tests/unit/format.cpp b/libs/core/format/tests/unit/format.cpp index 58528e7314b4..c2ce743cb468 100644 --- a/libs/core/format/tests/unit/format.cpp +++ b/libs/core/format/tests/unit/format.cpp @@ -15,34 +15,35 @@ int main(int argc, char* argv[]) { - using hpx::util::format; { - HPX_TEST_EQ((format("Hello")), "Hello"); - HPX_TEST_EQ((format("Hello, {}!", "world")), "Hello, world!"); - HPX_TEST_EQ((format("The number is {}", 1)), "The number is 1"); + HPX_TEST_EQ((hpx::util::format("Hello")), "Hello"); + HPX_TEST_EQ( + (hpx::util::format("Hello, {}!", "world")), "Hello, world!"); + HPX_TEST_EQ( + (hpx::util::format("The number is {}", 1)), "The number is 1"); } { - HPX_TEST_EQ((format("{} {}", 1, 2)), "1 2"); - HPX_TEST_EQ((format("{} {1}", 1, 2)), "1 1"); - HPX_TEST_EQ((format("{2} {}", 1, 2)), "2 2"); - HPX_TEST_EQ((format("{2} {1}", 1, 2)), "2 1"); + HPX_TEST_EQ((hpx::util::format("{} {}", 1, 2)), "1 2"); + HPX_TEST_EQ((hpx::util::format("{} {1}", 1, 2)), "1 1"); + HPX_TEST_EQ((hpx::util::format("{2} {}", 1, 2)), "2 2"); + HPX_TEST_EQ((hpx::util::format("{2} {1}", 1, 2)), "2 1"); - HPX_TEST_EQ((format("{:}", 42)), "42"); - HPX_TEST_EQ((format("{:04}", 42)), "0042"); - HPX_TEST_EQ((format("{2:04}", 42, 43)), "0043"); + HPX_TEST_EQ((hpx::util::format("{:}", 42)), "42"); + HPX_TEST_EQ((hpx::util::format("{:04}", 42)), "0042"); + HPX_TEST_EQ((hpx::util::format("{2:04}", 42, 43)), "0043"); - HPX_TEST_EQ((format("{:x}", 42)), "2a"); - HPX_TEST_EQ((format("{:04x}", 42)), "002a"); - HPX_TEST_EQ((format("{2:04x}", 42, 43)), "002b"); + HPX_TEST_EQ((hpx::util::format("{:x}", 42)), "2a"); + HPX_TEST_EQ((hpx::util::format("{:04x}", 42)), "002a"); + HPX_TEST_EQ((hpx::util::format("{2:04x}", 42, 43)), "002b"); - HPX_TEST_EQ((format("{:#x}", 42)), "0x2a"); - HPX_TEST_EQ((format("{:#06x}", 42)), "0x002a"); - HPX_TEST_EQ((format("{2:#06x}", 42, 43)), "0x002b"); + HPX_TEST_EQ((hpx::util::format("{:#x}", 42)), "0x2a"); + HPX_TEST_EQ((hpx::util::format("{:#06x}", 42)), "0x002a"); + HPX_TEST_EQ((hpx::util::format("{2:#06x}", 42, 43)), "0x002b"); } { - HPX_TEST_EQ((format("{} {}", true, false)), "1 0"); + HPX_TEST_EQ((hpx::util::format("{} {}", true, false)), "1 0"); } { @@ -50,29 +51,30 @@ int main(int argc, char* argv[]) std::tm tm = *std::localtime(&t); char buffer[64] = {}; std::strftime(buffer, 64, "%c", &tm); - HPX_TEST_EQ((format("{}", tm)), buffer); + HPX_TEST_EQ((hpx::util::format("{}", tm)), buffer); std::strftime(buffer, 64, "%A %c", &tm); - HPX_TEST_EQ((format("{:%A %c}", tm)), buffer); + HPX_TEST_EQ((hpx::util::format("{:%A %c}", tm)), buffer); } { using hpx::util::format_join; std::vector const vs = {42, 43}; - HPX_TEST_EQ((format("{}", format_join(vs, ""))), "4243"); - HPX_TEST_EQ((format("{}", format_join(vs, ","))), "42,43"); - HPX_TEST_EQ((format("{:x}", format_join(vs, ""))), "2a2b"); - HPX_TEST_EQ((format("{:04x}", format_join(vs, ","))), "002a,002b"); + HPX_TEST_EQ((hpx::util::format("{}", format_join(vs, ""))), "4243"); + HPX_TEST_EQ((hpx::util::format("{}", format_join(vs, ","))), "42,43"); + HPX_TEST_EQ((hpx::util::format("{:x}", format_join(vs, ""))), "2a2b"); + HPX_TEST_EQ( + (hpx::util::format("{:04x}", format_join(vs, ","))), "002a,002b"); } { - HPX_TEST_EQ((format("{{ {}", 1)), "{ 1"); - HPX_TEST_EQ((format("}} {}", 1)), "} 1"); - HPX_TEST_EQ((format("{{}} {}", 1)), "{} 1"); - HPX_TEST_EQ((format("{} {{}}", 1)), "1 {}"); - HPX_TEST_EQ((format("{} {{", 1)), "1 {"); - HPX_TEST_EQ((format("{} }}", 1)), "1 }"); - HPX_TEST_EQ((format("{{{1}}}", 2)), "{2}"); + HPX_TEST_EQ((hpx::util::format("{{ {}", 1)), "{ 1"); + HPX_TEST_EQ((hpx::util::format("}} {}", 1)), "} 1"); + HPX_TEST_EQ((hpx::util::format("{{}} {}", 1)), "{} 1"); + HPX_TEST_EQ((hpx::util::format("{} {{}}", 1)), "1 {}"); + HPX_TEST_EQ((hpx::util::format("{} {{", 1)), "1 {"); + HPX_TEST_EQ((hpx::util::format("{} }}", 1)), "1 }"); + HPX_TEST_EQ((hpx::util::format("{{{1}}}", 2)), "{2}"); } return hpx::util::report_errors(); diff --git a/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp b/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp index d7b341d22a28..c0cbe0b6e63b 100644 --- a/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp +++ b/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp @@ -515,8 +515,13 @@ namespace hpx::util::detail { // I didn't want to pull a whole header for it in. for (auto&& val : container_accessor_of(HPX_FORWARD(T, container))) { +#if defined(HPX_CUDA_VERSION) + remapped.push_back( + spreading::unpack(HPX_FORWARD(M, mapper)(HPX_MOVE(val)))); +#else remapped.push_back(spreading::unpack( HPX_FORWARD(M, mapper)(HPX_FORWARD(decltype(val), val)))); +#endif } return remapped; // RVO diff --git a/libs/core/type_support/tests/unit/generator.cpp b/libs/core/type_support/tests/unit/generator.cpp index 0bb35a2d0302..5d080d7fac93 100644 --- a/libs/core/type_support/tests/unit/generator.cpp +++ b/libs/core/type_support/tests/unit/generator.cpp @@ -202,8 +202,8 @@ namespace tests { } }; - // gcc V11/V12 are complaining about mismatched-new-delete -#if !defined(HPX_GCC_VERSION) || HPX_GCC_VERSION >= 140000 + // gcc V11 and on are complaining about mismatched-new-delete +#if !defined(HPX_GCC_VERSION) || HPX_GCC_VERSION >= 150000 hpx::generator> stateless_example() { co_yield 42; @@ -313,8 +313,8 @@ int main() HPX_TEST_EQ(i, expected.size()); } - // gcc V11/V12 are complaining about mismatched-new-delete -#if !defined(HPX_GCC_VERSION) || HPX_GCC_VERSION >= 140000 + // gcc V11 and on are complaining about mismatched-new-delete +#if !defined(HPX_GCC_VERSION) || HPX_GCC_VERSION >= 150000 { std::vector const expected = {42}; std::size_t i = 0; From f4292fefc8d582bf3fcb96edf9155d0e93e4fa7d Mon Sep 17 00:00:00 2001 From: Hartmut Kaiser Date: Fri, 21 Jun 2024 19:16:07 -0500 Subject: [PATCH 7/9] Moving CUDA builders to gcc12 --- .jenkins/lsu/Jenkinsfile | 2 +- .../{env-gcc-13-cuda-12-dgx.sh => env-gcc-12-cuda-12-dgx.sh} | 4 ++-- .../lsu/{env-gcc-13-cuda-12.sh => env-gcc-12-cuda-12.sh} | 4 ++-- ...a-12-dgx.sh => slurm-configuration-gcc-12-cuda-12-dgx.sh} | 0 ...c-13-cuda-12.sh => slurm-configuration-gcc-12-cuda-12.sh} | 0 libs/core/format/include/hpx/modules/format.hpp | 4 ---- .../hpx/pack_traversal/detail/pack_traversal_impl.hpp | 5 ----- 7 files changed, 5 insertions(+), 14 deletions(-) rename .jenkins/lsu/{env-gcc-13-cuda-12-dgx.sh => env-gcc-12-cuda-12-dgx.sh} (94%) rename .jenkins/lsu/{env-gcc-13-cuda-12.sh => env-gcc-12-cuda-12.sh} (94%) rename .jenkins/lsu/{slurm-configuration-gcc-13-cuda-12-dgx.sh => slurm-configuration-gcc-12-cuda-12-dgx.sh} (100%) rename .jenkins/lsu/{slurm-configuration-gcc-13-cuda-12.sh => slurm-configuration-gcc-12-cuda-12.sh} (100%) diff --git a/.jenkins/lsu/Jenkinsfile b/.jenkins/lsu/Jenkinsfile index 08977c7614fe..d2cba01e2f55 100644 --- a/.jenkins/lsu/Jenkinsfile +++ b/.jenkins/lsu/Jenkinsfile @@ -37,7 +37,7 @@ pipeline { axes { axis { name 'configuration_name' - values 'gcc-11', 'gcc-12', 'gcc-13', 'gcc-14', 'clang-17-apex', 'clang-16', 'clang-17', 'clang-18', 'gcc-13-cuda-12', 'gcc-13-cuda-12-dgx', 'hipcc' + values 'gcc-11', 'gcc-12', 'gcc-13', 'gcc-14', 'clang-17-apex', 'clang-16', 'clang-17', 'clang-18', 'gcc-12-cuda-12', 'gcc-12-cuda-12-dgx', 'hipcc' } axis { name 'build_type' diff --git a/.jenkins/lsu/env-gcc-13-cuda-12-dgx.sh b/.jenkins/lsu/env-gcc-12-cuda-12-dgx.sh similarity index 94% rename from .jenkins/lsu/env-gcc-13-cuda-12-dgx.sh rename to .jenkins/lsu/env-gcc-12-cuda-12-dgx.sh index eb197fc21623..5881de40698a 100644 --- a/.jenkins/lsu/env-gcc-13-cuda-12-dgx.sh +++ b/.jenkins/lsu/env-gcc-12-cuda-12-dgx.sh @@ -7,9 +7,9 @@ module purge module load cmake -module load gcc/13 +module load gcc/12 module load cuda/12 -module load boost/1.85.0-${build_type,,} +module load boost/1.81.0-${build_type,,} module load hwloc export CXX_STD="17" diff --git a/.jenkins/lsu/env-gcc-13-cuda-12.sh b/.jenkins/lsu/env-gcc-12-cuda-12.sh similarity index 94% rename from .jenkins/lsu/env-gcc-13-cuda-12.sh rename to .jenkins/lsu/env-gcc-12-cuda-12.sh index 08f87aed63c6..9d946b075061 100644 --- a/.jenkins/lsu/env-gcc-13-cuda-12.sh +++ b/.jenkins/lsu/env-gcc-12-cuda-12.sh @@ -7,8 +7,8 @@ module purge module load cmake -module load gcc/13 -module load boost/1.84.0-${build_type,,} +module load gcc/12 +module load boost/1.81.0-${build_type,,} module load hwloc module load cuda/12 module load openmpi diff --git a/.jenkins/lsu/slurm-configuration-gcc-13-cuda-12-dgx.sh b/.jenkins/lsu/slurm-configuration-gcc-12-cuda-12-dgx.sh similarity index 100% rename from .jenkins/lsu/slurm-configuration-gcc-13-cuda-12-dgx.sh rename to .jenkins/lsu/slurm-configuration-gcc-12-cuda-12-dgx.sh diff --git a/.jenkins/lsu/slurm-configuration-gcc-13-cuda-12.sh b/.jenkins/lsu/slurm-configuration-gcc-12-cuda-12.sh similarity index 100% rename from .jenkins/lsu/slurm-configuration-gcc-13-cuda-12.sh rename to .jenkins/lsu/slurm-configuration-gcc-12-cuda-12.sh diff --git a/libs/core/format/include/hpx/modules/format.hpp b/libs/core/format/include/hpx/modules/format.hpp index ff1b43146780..f18b553fe60d 100644 --- a/libs/core/format/include/hpx/modules/format.hpp +++ b/libs/core/format/include/hpx/modules/format.hpp @@ -317,11 +317,7 @@ namespace hpx::util { os << value.delim; first = false; -#if defined(HPX_CUDA_VERSION) - using value_type = typename std::decay_t::value_type; -#else using value_type = std::decay_t; -#endif detail::formatter::call(os, spec, &elem); } } diff --git a/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp b/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp index c0cbe0b6e63b..d7b341d22a28 100644 --- a/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp +++ b/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp @@ -515,13 +515,8 @@ namespace hpx::util::detail { // I didn't want to pull a whole header for it in. for (auto&& val : container_accessor_of(HPX_FORWARD(T, container))) { -#if defined(HPX_CUDA_VERSION) - remapped.push_back( - spreading::unpack(HPX_FORWARD(M, mapper)(HPX_MOVE(val)))); -#else remapped.push_back(spreading::unpack( HPX_FORWARD(M, mapper)(HPX_FORWARD(decltype(val), val)))); -#endif } return remapped; // RVO From 9cbe23d8f01ea5508fc78dae599bc4b0bff3bed2 Mon Sep 17 00:00:00 2001 From: Hartmut Kaiser Date: Thu, 27 Jun 2024 09:35:53 -0500 Subject: [PATCH 8/9] Trying to fix segfault in examples --- .../hpx/futures/detail/future_data.hpp | 4 ++-- .../include/hpx/futures/futures_factory.hpp | 2 +- .../hpx/futures/packaged_continuation.hpp | 20 ++++++++----------- libs/core/futures/src/future_data.cpp | 10 ++++------ .../include/hpx/components/client_base.hpp | 5 ++--- 5 files changed, 17 insertions(+), 24 deletions(-) diff --git a/libs/core/futures/include/hpx/futures/detail/future_data.hpp b/libs/core/futures/include/hpx/futures/detail/future_data.hpp index 2f108651a6d1..1839709b0904 100644 --- a/libs/core/futures/include/hpx/futures/detail/future_data.hpp +++ b/libs/core/futures/include/hpx/futures/detail/future_data.hpp @@ -99,7 +99,7 @@ namespace hpx::lcos::detail { virtual ~future_data_refcnt_base(); - virtual void set_on_completed(completed_callback_type) = 0; + virtual void set_on_completed(completed_callback_type&&) = 0; HPX_FORCEINLINE bool requires_delete() noexcept { @@ -313,7 +313,7 @@ namespace hpx::lcos::detail { // Set the callback which needs to be invoked when the future becomes // ready. If the future is ready the function will be invoked // immediately. - void set_on_completed(completed_callback_type data_sink) override; + void set_on_completed(completed_callback_type&& data_sink) override; virtual state wait(error_code& ec = throws); diff --git a/libs/core/futures/include/hpx/futures/futures_factory.hpp b/libs/core/futures/include/hpx/futures/futures_factory.hpp index 6ab780cdaa60..ac412045a4ee 100644 --- a/libs/core/futures/include/hpx/futures/futures_factory.hpp +++ b/libs/core/futures/include/hpx/futures/futures_factory.hpp @@ -50,7 +50,7 @@ namespace hpx::lcos::local { using result_type = typename Base::result_type; using init_no_addref = typename Base::init_no_addref; - F f_; + std::decay_t f_; explicit task_object(F const& f) : f_(f) diff --git a/libs/core/futures/include/hpx/futures/packaged_continuation.hpp b/libs/core/futures/include/hpx/futures/packaged_continuation.hpp index c7c38d936d43..f337114d1d23 100644 --- a/libs/core/futures/include/hpx/futures/packaged_continuation.hpp +++ b/libs/core/futures/include/hpx/futures/packaged_continuation.hpp @@ -36,7 +36,7 @@ namespace hpx::lcos::detail { template HPX_FORCEINLINE void transfer_result( - SourceState&& src, DestinationState const& dest) + SourceState&& src, DestinationState& dest) { hpx::detail::try_catch_exception_ptr( [&]() { @@ -88,6 +88,8 @@ namespace hpx::lcos::detail { } else { + hpx::intrusive_ptr cont_(&cont); + hpx::detail::try_catch_exception_ptr( [&]() { using inner_shared_state_ptr = @@ -109,13 +111,12 @@ namespace hpx::lcos::detail { // Bind an on_completed handler to this future that will // transfer its result to the new future. - hpx::intrusive_ptr cont_(&cont); ptr->execute_deferred(); ptr->set_on_completed( [inner_state = HPX_MOVE(inner_state), cont_ = HPX_MOVE(cont_)]() mutable -> void { return transfer_result( - HPX_MOVE(inner_state), HPX_MOVE(cont_)); + HPX_MOVE(inner_state), cont_); }); }, [&](std::exception_ptr ep) { @@ -404,13 +405,6 @@ namespace hpx::lcos::detail { class unwrap_continuation : public future_data { private: - template - void on_inner_ready( - traits::detail::shared_state_ptr_for_t&& inner_state) - { - transfer_result(HPX_MOVE(inner_state), this); - } - template void on_outer_ready( traits::detail::shared_state_ptr_for_t&& outer_state) @@ -443,11 +437,13 @@ namespace hpx::lcos::detail { } ptr->execute_deferred(); + + // attach continuation on inner ready ptr->set_on_completed( [this_ = HPX_MOVE(this_), inner = HPX_MOVE(inner_state)]() mutable -> void { - this_->template on_inner_ready( - HPX_MOVE(inner)); + transfer_result( + HPX_MOVE(inner), this_); }); }, [&](std::exception_ptr ep) { diff --git a/libs/core/futures/src/future_data.cpp b/libs/core/futures/src/future_data.cpp index e41a4e4d5844..f0002a6f807c 100644 --- a/libs/core/futures/src/future_data.cpp +++ b/libs/core/futures/src/future_data.cpp @@ -101,8 +101,7 @@ namespace hpx::lcos::detail { { if (runs_child_ != threads::invalid_thread_id) { - auto* thrd = get_thread_id_data(runs_child_); - (void) thrd; + [[maybe_unused]] auto* thrd = get_thread_id_data(runs_child_); LTM_(debug).format( "task_object::~task_object({}), description({}): " "destroy runs_as_child thread", @@ -284,7 +283,7 @@ namespace hpx::lcos::detail { hpx::detail::try_catch_exception_ptr( [&]() { // clang-format off - constexpr void (*p)(Callback&&) noexcept = + constexpr void (*p)(std::decay_t&&) noexcept = &future_data_base::run_on_completed; // clang-format on run_on_completed_on_new_thread(util::deferred_call( @@ -318,11 +317,12 @@ namespace hpx::lcos::detail { // Set the callback which needs to be invoked when the future becomes ready. // If the future is ready the function will be invoked immediately. void future_data_base::set_on_completed( - completed_callback_type data_sink) + completed_callback_type&& data_sink) { if (!data_sink) return; + hpx::intrusive_ptr this_(this); // keep alive if (is_ready(std::memory_order_relaxed)) { // invoke the callback (continuation) function right away @@ -330,8 +330,6 @@ namespace hpx::lcos::detail { } else { - hpx::intrusive_ptr this_(this); // keep alive - std::unique_lock l(mtx_); if (is_ready()) { diff --git a/libs/full/components/include/hpx/components/client_base.hpp b/libs/full/components/include/hpx/components/client_base.hpp index 1d3117f00d86..2656e6a19d52 100644 --- a/libs/full/components/include/hpx/components/client_base.hpp +++ b/libs/full/components/include/hpx/components/client_base.hpp @@ -335,9 +335,8 @@ namespace hpx::components { { } explicit client_base(hpx::future&& f) noexcept - : shared_state_( - hpx::traits::future_access::get_shared_state( - HPX_MOVE(f))) + : shared_state_(hpx::traits::future_access< + hpx::future>::get_shared_state(HPX_MOVE(f))) { } From 13e0d532a345cadf48dc41544f0f3fa8f3045e13 Mon Sep 17 00:00:00 2001 From: Hartmut Kaiser Date: Fri, 28 Jun 2024 15:51:35 -0500 Subject: [PATCH 9/9] Attempt to work around nvcc problems --- .../include/hpx/async_combinators/wait_some.hpp | 7 +++++++ .../execution/algorithms/when_all_vector.hpp | 13 +++++++++++++ .../tests/regressions/fork_join_with_result.cpp | 1 + libs/core/format/include/hpx/modules/format.hpp | 4 ++++ .../detail/pack_traversal_impl.hpp | 17 +++++++++++++++++ 5 files changed, 42 insertions(+) diff --git a/libs/core/async_combinators/include/hpx/async_combinators/wait_some.hpp b/libs/core/async_combinators/include/hpx/async_combinators/wait_some.hpp index e07428ff634d..6814439c5a64 100644 --- a/libs/core/async_combinators/include/hpx/async_combinators/wait_some.hpp +++ b/libs/core/async_combinators/include/hpx/async_combinators/wait_some.hpp @@ -183,6 +183,10 @@ namespace hpx { { } +#if defined(HPX_GCC_VERSION) && HPX_GCC_VERSION >= 140000 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstringop-overflow" +#endif template void operator()(SharedState const& shared_state) const { @@ -224,6 +228,9 @@ namespace hpx { wait_.on_future_ready(shared_state->has_exception()); } } +#if defined(HPX_GCC_VERSION) && HPX_GCC_VERSION >= 140000 +#pragma GCC diagnostic pop +#endif template HPX_FORCEINLINE void apply( diff --git a/libs/core/execution/include/hpx/execution/algorithms/when_all_vector.hpp b/libs/core/execution/include/hpx/execution/algorithms/when_all_vector.hpp index 3e1d5ac934a1..ab87ac88fe16 100644 --- a/libs/core/execution/include/hpx/execution/algorithms/when_all_vector.hpp +++ b/libs/core/execution/include/hpx/execution/algorithms/when_all_vector.hpp @@ -268,12 +268,21 @@ namespace hpx::when_all_vector_detail { for (auto&& sender : senders) { #if defined(HPX_HAVE_CXX17_COPY_ELISION) +#if defined(__NVCC__) + op_states[i].emplace( + hpx::util::detail::with_result_of([&]() { + return hpx::execution::experimental::connect( + std::move(sender), + when_all_vector_receiver{*this, i}); + })); +#else op_states[i].emplace( hpx::util::detail::with_result_of([&]() { return hpx::execution::experimental::connect( HPX_MOVE(sender), when_all_vector_receiver{*this, i}); })); +#endif #else // MSVC doesn't get copy elision quite right, the operation // state must be constructed explicitly directly in place @@ -312,7 +321,11 @@ namespace hpx::when_all_vector_detail { values.reserve(num_predecessors); for (auto&& t : ts) { +#if defined(__NVCC__) + values.push_back(std::move(t.value())); +#else values.push_back(HPX_MOVE(t.value())); +#endif } hpx::execution::experimental::set_value( HPX_MOVE(receiver), HPX_MOVE(values)); diff --git a/libs/core/executors/tests/regressions/fork_join_with_result.cpp b/libs/core/executors/tests/regressions/fork_join_with_result.cpp index ef53b4924b7b..248f4198a726 100644 --- a/libs/core/executors/tests/regressions/fork_join_with_result.cpp +++ b/libs/core/executors/tests/regressions/fork_join_with_result.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include diff --git a/libs/core/format/include/hpx/modules/format.hpp b/libs/core/format/include/hpx/modules/format.hpp index f18b553fe60d..0e9ca0847e47 100644 --- a/libs/core/format/include/hpx/modules/format.hpp +++ b/libs/core/format/include/hpx/modules/format.hpp @@ -317,7 +317,11 @@ namespace hpx::util { os << value.delim; first = false; +#if defined(__NVCC__) + using value_type = typename Range::value_type; +#else using value_type = std::decay_t; +#endif detail::formatter::call(os, spec, &elem); } } diff --git a/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp b/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp index d7b341d22a28..c4cdbb367899 100644 --- a/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp +++ b/libs/core/pack_traversal/include/hpx/pack_traversal/detail/pack_traversal_impl.hpp @@ -515,8 +515,13 @@ namespace hpx::util::detail { // I didn't want to pull a whole header for it in. for (auto&& val : container_accessor_of(HPX_FORWARD(T, container))) { +#if defined(__NVCC__) + remapped.push_back( + spreading::unpack(HPX_FORWARD(M, mapper)(val))); +#else remapped.push_back(spreading::unpack( HPX_FORWARD(M, mapper)(HPX_FORWARD(decltype(val), val)))); +#endif } return remapped; // RVO @@ -530,8 +535,12 @@ namespace hpx::util::detail { { for (auto&& val : container_accessor_of(HPX_FORWARD(T, container))) { +#if defined(__NVCC__) + val = spreading::unpack(HPX_FORWARD(M, mapper)(val)); +#else val = spreading::unpack( HPX_FORWARD(M, mapper)(HPX_FORWARD(decltype(val), val))); +#endif } return HPX_FORWARD(T, container); } @@ -545,7 +554,11 @@ namespace hpx::util::detail { { // Don't save the empty mapping for each invocation // of the mapper. +#if defined(__NVCC__) + HPX_FORWARD(M, mapper)(val); +#else HPX_FORWARD(M, mapper)(HPX_FORWARD(decltype(val), val)); +#endif } // Return one instance of an empty mapping for the container return spreading::empty_spread(); @@ -571,7 +584,11 @@ namespace hpx::util::detail { // CUDA needs std::forward here for (auto&& element : std::forward(container)) { +#if defined(__NVCC__) + HPX_FORWARD(M, mapper)(element); +#else HPX_FORWARD(M, mapper)(HPX_FORWARD(decltype(element), element)); +#endif } } } // end namespace container_remapping