qmcpack/external_codes/boost_multi/multi/.gitlab-ci.yml

1056 lines
48 KiB
YAML

# Copyright 2020-2024 Alfredo A. Correa
# Install docker (for local CI or to set up CI machine)
# sudo apt install docker.io
# Install gitlab-runner
# curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
# sudo apt-get install gitlab-runner
image: debian:stable
workflow:
auto_cancel:
on_new_commit: interruptible
variables:
GIT_SUBMODULE_STRATEGY: recursive
CODECOV_TOKEN: "999feb5b-a599-4d02-b9c5-46d977247f3a"
RT_VERSION: "0.1"
NVIDIA_DISABLE_REQUIRE: 1
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
msbuild: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe'
g++: # debian-stable: default is gcc 12.2.0 as of April 2024
stage: build
interruptible: false
tags:
- non-shared
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev liblapack-dev libfftw3-dev pkg-config
- g++ --version
- mkdir build && cd build
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-D_GLIBCXX_DEBUG=1"
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure -T Test
g++-m32:
stage: build
image: debian:latest
tags:
- non-shared
- high-bandwidth
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates g++ g++-multilib cmake make tar wget
- wget https://downloads.sourceforge.net/project/boost/boost/1.84.0/boost_1_84_0.tar.gz --no-verbose # 1.70 doesn't install boost timer well, there is no version 1.71 in sourceforge
- tar -xf boost_1_84_0.tar.gz
- cd boost_1_84_0
- ./bootstrap.sh
- ./b2 cxxflags=-m32 --with-serialization --with-test --with-timer install -j4 # libc++ only works with boost test compiled with libc++
- cd ..
- mkdir build && cd build
- c++ --version
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-m32"
- cmake --build .
- ctest -j 2 --output-on-failure
needs: ["g++"]
g++-10:
stage: build
image: ubuntu:20.04
tags:
- high-bandwidth
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates g++-10 cmake libboost-test-dev libboost-timer-dev libboost-serialization-dev make tar wget # linux-libc-dev:i386
- mkdir build && cd build
- g++-10 --version
- CXX=g++-10 cmake .. -DCMAKE_BUILD_TYPE=Debug # -DCMAKE_CXX_FLAGS="-m32"
- cmake --build .
- ctest -j 2 --output-on-failure
needs: ["g++"]
clang++-9:
stage: build
image: ubuntu:20.04
tags:
- non-shared
- high-bandwidth
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang-9 cmake libboost-test-dev libboost-timer-dev libboost-serialization-dev make tar wget
- mkdir build && cd build
- clang++-9 --version
- CXX=clang++-9 cmake .. -DCMAKE_BUILD_TYPE=Debug
- cmake --build .
- ctest -j 2 --output-on-failure
needs: ["clang++"]
clang++-11:
stage: build
image: ubuntu:22.04
tags:
- non-shared
- high-bandwidth
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang-11 cmake libboost-test-dev libboost-timer-dev libboost-serialization-dev make tar wget
- mkdir build && cd build
- clang++-11 --version
- CXX=clang++-11 cmake .. -DCMAKE_BUILD_TYPE=Debug
- cmake --build .
- ctest -j 2 --output-on-failure
needs: ["clang++"]
coverage:
stage: build
tags:
- non-shared
- docker
allow_failure: true
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake curl g++ gcovr git make lcov libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config wget
- mkdir build && cd build
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-DNDEBUG --coverage -O0 -fno-inline -fno-inline-small-functions -fno-default-inline" -DCMAKE_EXE_LINKER_FLAGS="--coverage"
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 1 --output-on-failure -T Test
- ctest -j 1 --output-on-failure -T Coverage
- gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o coverage.xml --root ${CI_PROJECT_DIR}
# - lcov --directory . --capture --output-file coverage.info
# - lcov --remove coverage.info '/usr/*' --output-file coverage.info
# - lcov --list coverage.info && genhtml coverage.info
- bash <(curl -s https://codecov.io/bash) || echo 'Codecov failed to upload'
coverage: /^\s*Percentage\s+Coverage:\s*\d+.\d+\%/
# coverage: /^\s*lines:\s*\d+.\d+\%/
artifacts:
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
expire_in: 2 days
reports:
coverage_report:
coverage_format: cobertura
path: build/coverage.xml
needs: ["g++"]
g++ cppcheck cpplint memcheck: # debian-stable: gcc 12 as of Dec 2023
stage: build
allow_failure: true
interruptible: true
tags:
- non-shared
- docker
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake cppcheck cpplint g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config valgrind
- g++ --version
- cpplint --version
- cppcheck --version
- valgrind --version
- mkdir build && cd build
- export VALGRIND_EXE="valgrind --leak-check=full --track-origins=yes --show-leak-kinds=all --suppressions=.valgrind_suppressions --gen-suppressions=all --error-exitcode=1 "
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_CPPLINT="cpplint;--quiet" -DCMAKE_CXX_CPPCHECK="cppcheck;--enable=all;--suppress=missingIncludeSystem;--inline-suppr;--std=c++17;--check-config;--error-exitcode=1"
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure -T memcheck
needs: ["g++"]
g++-testing sanitizer:
stage: build
tags:
- non-shared
- docker
image: debian:testing
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config
- mkdir build && cd build
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-fsanitize=address" -fno-omit-frame-pointer # ,undefined,pointer-compare,pointer-subtract,float-divide-by-zero -fno-omit-frame-pointer -fno-sanitize-recover=all"
- cmake --build . --parallel 2 || cmake --build . --verbose
- ASAN_OPTIONS="new_delete_type_mismatch=true:check_initialization_order=true:strict_init_order=true:detect_stack_use_after_return=true:detect_odr_violation=true" ctest -j 2 --output-on-failure -T Test
needs: ["g++"]
g++-7:
stage: build
image: debian:oldoldstable # default is gcc 8 as of Dec 2023
tags:
- non-shared
- docker
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake g++-7 make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config wget
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
- cmake --version
- g++-7 --version
- mkdir build && cd build
- CXX=g++-7 CXXFLAGS="-DBOOST_TEST_MAIN -DBOOST_TEST_DYN_LINK" cmake .. -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_BUILD_TYPE=Debug
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure -T Test
needs: ["g++"]
g++-testing c++20:
stage: build
image: debian:testing
tags:
- non-shared
- docker
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet g++ pkg-config cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev
- mkdir build && cd build
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_STANDARD=20
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest --output-on-failure
needs: ["g++"]
g++-13 c++23 par: # debian-testing: default is gcc 13.2.0 as of Dec 2023
stage: build
image: debian:unstable
tags:
- non-shared
- docker
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet g++ g++-14 pkg-config cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev libtbb-dev
- mkdir build && cd build
- g++-13 --version
- CXX=g++-13 cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_STANDARD=23
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest --output-on-failure
needs: ["g++-testing c++20"]
g++-14 c++23 par: # debian-testing: default is gcc 13.2.0 as of Dec 2023
stage: build
image: debian:unstable
tags:
- non-shared
- docker
allow_failure: true
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet g++ g++-14 pkg-config cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev libtbb-dev
- mkdir build && cd build
- g++-14 --version
- CXX=g++-14 cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_STANDARD=23
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest --output-on-failure
needs: ["g++-testing c++20"]
clang++:
stage: build
tags:
- non-shared
interruptible: false
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet clang cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config
- mkdir build && cd build
- clang++ --version
- CXX=clang++ cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-D_GLIBCXX_DEBUG=1"
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure
# deb:
# stage: build
# script:
# - apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config
# - mkdir build && cd build
# - cmake .. -DCMAKE_BUILD_TYPE=Release
# - cmake --build . --parallel 2 || cmake --build . --verbose
# - ctest -j 2 --output-on-failure
# - cpack -G DEB
# - ls -all
# - dpkg -i multi_all.deb
# - ls -all /usr/include/multi
# - c++ ../test/main.cpp
# artifacts:
# paths:
# - build/multi_all.deb
# needs: ["g++", "clang++"]
clang++-latest libc++:
stage: build
image: debian:latest
tags:
- non-shared
- docker
- high-bandwidth
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake make libblas-dev libc++-dev libc++abi-dev libfftw3-dev pkg-config tar wget
- wget https://downloads.sourceforge.net/project/boost/boost/1.72.0/boost_1_72_0.tar.gz --no-verbose # 1.70 doesn't install boost timer well, there is no version 1.72 in sourceforge
- tar -xf boost_1_72_0.tar.gz
- cd boost_1_72_0
- ./bootstrap.sh --with-toolset=clang
- ./b2 toolset=clang cxxflags=-stdlib=libc++ linkflags=-stdlib=libc++ --with-serialization --with-test --with-timer install -j4 # libc++ only works with boost test compiled with libc++
- cd ..
- mkdir build && cd build
- clang++ --version
- CXX=clang++ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-stdlib=libc++ -DBOOST_NO_CXX98_FUNCTION_BASE -D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG"
- cmake --build .
- ctest -j 2 --output-on-failure
needs: ["clang++"]
# build_windows:
# stage: build
# allow_failure: true
# script:
# - '& "$msbuild" -help'
# - '& "$msbuild" -version'
# - choco install -y cmake
# - $env:Path += ';C:\Program Files\CMake\bin'
# - cmake --version
# tags:
# - shared-windows
# - windows
# - windows-1809
# clang++-macos:
# stage: build
# image: macos-14-xcode-15
# # variables:
# # HOMEBREW_NO_AUTO_UPDATE: 1
# tags:
# - saas-macos-medium-m1
# allow_failure: true
# script:
# #- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake make libblas-dev libc++-dev libc++abi-dev libfftw3-dev pkg-config tar wget
# #- wget https://downloads.sourceforge.net/project/boost/boost/1.72.0/boost_1_72_0.tar.gz --no-verbose # 1.70 doesn't install boost timer well, there is no version 1.72 in sourceforge
# #- tar -xf boost_1_72_0.tar.gz
# #- cd boost_1_72_0
# #- ./bootstrap.sh --with-toolset=clang
# #- ./b2 toolset=clang cxxflags=-stdlib=libc++ linkflags=-stdlib=libc++ --with-serialization --with-test --with-timer install -j4 # libc++ only works with boost test compiled with libc++
# #- cd ..
# - mkdir build && cd build
# - c++ --version
# - CXX=c++ cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 # -DCMAKE_CXX_FLAGS="-stdlib=libc++ -DBOOST_NO_CXX98_FUNCTION_BASE -D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR -D_LIBCPP_ENABLE_DEBUG_MODE=1 -D_LIBCPP_DEBUG_RANDOMIZE_UNSPECIFIED_STABILITY=1 -D_LIBCPP_DEBUG_STRICT_WEAK_ORDERING_CHECK=1"
# - cmake --build .
# - ctest -j 2 --output-on-failure
# needs: ["clang++"]
clang++-m32:
stage: build
image: debian:latest
tags:
- high-bandwidth
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang g++ g++-multilib cmake make tar wget
- wget https://downloads.sourceforge.net/project/boost/boost/1.84.0/boost_1_84_0.tar.gz --no-verbose # 1.70 doesn't install boost timer well, there is no version 1.71 in sourceforge
- tar -xf boost_1_84_0.tar.gz
- cd boost_1_84_0
- ./bootstrap.sh --with-toolset=clang
- ./b2 toolset=clang cxxflags=-m32 --with-serialization --with-test --with-timer install -j4 # libc++ only works with boost test compiled with libc++
- cd ..
- mkdir build && cd build
- c++ --version
- CXX=clang++ cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-m32"
- cmake --build .
- ctest -j 2 --output-on-failure
needs: ["clang++"]
clang++-testing tidy:
stage: build
image: debian:unstable # clang 18 as of Apr 2024
tags:
- non-shared
- docker
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet clang-18 clang-tidy-18 cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config
- mkdir build && cd build
- clang++-18 --version
- clang-tidy-18 --version
- CXX=clang++-18 cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_CLANG_TIDY=clang-tidy-18
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure
needs: ["clang++"]
g++-testing c++20:
stage: build
image: debian:testing
tags:
- non-shared
- docker
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet g++ pkg-config cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev
- mkdir build && cd build
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_STANDARD=20
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest --output-on-failure
needs: ["g++"]
g++-testing sanitizer:
stage: build
image: debian:testing
tags:
- non-shared
- docker
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config
- mkdir build && cd build
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-fsanitize=address,undefined,pointer-compare,pointer-subtract,float-divide-by-zero -fno-sanitize-recover=all"
- cmake --build . --parallel 2 || cmake --build . --verbose
- ASAN_OPTIONS="new_delete_type_mismatch=0:check_initialization_order=true:strict_init_order=true:detect_stack_use_after_return=true:detect_odr_violation=1" ctest -j 2 --output-on-failure -T Test
needs: ["g++"]
clang++-17-unstable libc++ c++23 boost_1_84:
stage: build
image: debian:unstable # clang 17 as of March 2024
tags:
- non-shared
- docker
- high-bandwidth
interruptible: true
script: # clang 17 doesn't work with gcc 13 libstd
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang clang-17 cmake make libblas-dev libc++-17-dev libc++abi-17-dev libfftw3-dev pkg-config tar wget
- wget https://downloads.sourceforge.net/project/boost/boost/1.84.0/boost_1_84_0.tar.gz --no-verbose
- tar -xf boost_1_84_0.tar.gz
- cd boost_1_84_0
- ./bootstrap.sh --with-toolset=clang
- ./b2 toolset=clang cxxflags=-stdlib=libc++ linkflags=-stdlib=libc++ --with-serialization --with-test --with-timer install -j4 # libc++ only works with boost test compiled with libc++
- cd ..
- mkdir build && cd build
- CXX=clang++-17 cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_STANDARD=23 -DCMAKE_CXX_FLAGS="-stdlib=libc++ -D_LIBCPP_ENABLE_DEBUG_MODE=1 -D_LIBCPP_DEBUG_RANDOMIZE_UNSPECIFIED_STABILITY=1 -D_LIBCPP_DEBUG_STRICT_WEAK_ORDERING_CHECK=1" # -DBoost_INCLUDE_DIR=../boost_1_84_0 -DBoost_LIBRARY_DIR=../boost_1_84_0/stage/lib -DBoost_NO_SYSTEM_PATHS=ON
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest --output-on-failure
needs: ["clang++-latest libc++", "g++-testing c++20"]
clang++-oldoldstable:
stage: build
image: debian:oldoldstable # clang 7.0.1 as of April 2024
tags:
- non-shared
- docker
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config wget
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
- mkdir build && cd build
- clang++ --version
- CXX=clang++ CXXFLAGS="-DBOOST_TEST_DYN_LINK" cmake .. -DCMAKE_BUILD_TYPE=Release -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure
needs: ["clang++"]
oneapi:
stage: build
image: intel/oneapi-hpckit:2023.0.0-devel-ubuntu22.04 # Intel(R) oneAPI DPC++/C++ Compiler 2023.0.0 (2023.0.0.20221201)
tags:
- non-shared
- large-disk-space
interruptible: true
script:
- apt-get update && apt-get install --no-install-recommends -y --quiet ca-certificates cmake curl libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev liblapack-dev libfftw3-dev make pkg-config
- mkdir build && cd build
- icpx --version
- CXX=icpx cmake .. -DCMAKE_BUILD_TYPE=Release -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest --parallel 2 --output-on-failure
oneapi-2022.2:
stage: build
image: intel/oneapi-hpckit:2022.2-devel-ubuntu20.04
tags:
- non-shared
- large-disk-space
interruptible: true
script:
- apt-get update && apt-get install --no-install-recommends -y --quiet ca-certificates cmake curl g++ libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev liblapack-dev libfftw3-dev make pkg-config
- mkdir build && cd build
- icpx --version
- CXX=icpx CXXFLAGS="-DPSTL_USE_PARALLEL_POLICIES=0" cmake .. -DCMAKE_BUILD_TYPE=Release
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest --parallel 2 --output-on-failure
needs: ["oneapi"]
oneapi-latest c++20:
stage: build
image: intel/oneapi-hpckit:latest # icpx --version (2023.2.0.20230721) as of Dec 2023
allow_failure: true
tags:
- non-shared
- large-disk-space
- high-bandwidth
interruptible: true
script:
# - wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
# - echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | tee /etc/apt/sources.list.d/oneAPI.list
- apt-get update && apt-get install --no-install-recommends -y --quiet ca-certificates cmake curl g++ libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev liblapack-dev libfftw3-dev make pkg-config
- mkdir build && cd build
- icpx --version
- CXX=icpx cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=20
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest --parallel 2 --output-on-failure
needs: ["oneapi"]
nvhpc:
stage: build
image: nvcr.io/nvidia/nvhpc:22.11-devel-cuda11.8-ubuntu22.04 # https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nvhpc/tags
tags:
- non-shared
- large-disk-space
interruptible: true
script:
- nvidia-smi
- apt-get update && apt-get install --no-install-recommends -y cmake make libboost-test-dev libboost-serialization-dev
- /opt/nvidia/hpc_sdk/Linux_x86_64/2022/compilers/bin/nvc++ --version
- mkdir build && cd build
- CXX=/opt/nvidia/hpc_sdk/Linux_x86_64/2022/compilers/bin/nvc++ cmake .. -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest --output-on-failure
nvhpc-22.7:
stage: build
image: nvcr.io/nvidia/nvhpc:22.7-devel-cuda11.7-ubuntu22.04 # https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nvhpc/tags
tags:
- non-shared
- large-disk-space
interruptible: true
script:
- nvidia-smi
- apt-get update && apt-get install --no-install-recommends -y cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev
- /opt/nvidia/hpc_sdk/Linux_x86_64/2022/compilers/bin/nvc++ --version
- mkdir build && cd build
- CXX=/opt/nvidia/hpc_sdk/Linux_x86_64/2022/compilers/bin/nvc++ cmake .. -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 # TODO(correaa) add -DCMAKE_BUILD_TYPE=Release
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest --output-on-failure
needs: ["nvhpc"]
nvhpc-24.3 c++20 par:
stage: build
image: nvcr.io/nvidia/nvhpc:24.3-devel-cuda12.3-ubuntu22.04 # https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nvhpc/tags
tags:
- non-shared
- large-disk-space
interruptible: true
script:
- nvidia-smi
- apt-get update && apt-get install --no-install-recommends -y cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libfftw3-dev pkg-config
- /opt/nvidia/hpc_sdk/Linux_x86_64/2024/compilers/bin/nvc++ --version
- mkdir build && cd build
- CXX=/opt/nvidia/hpc_sdk/Linux_x86_64/2024/compilers/bin/nvc++ cmake .. -DCMAKE_BUILD_TYPE=Release -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_FLAGS="-stdpar=multicore"
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest --output-on-failure
needs: ["nvhpc"]
cuda:
stage: build
image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04
tags:
- non-shared
- nvidia-gpu
interruptible: true
script:
- nvidia-smi
- apt-get -qq update && apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
- mkdir build && cd build
- ls /usr/local
- ls /usr/local/cuda-11/bin
- /usr/local/cuda-11/bin/nvcc --version
- CUDACXX=/usr/local/cuda-11/bin/nvcc cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES=61
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure
- ../build/include/boost/multi/adaptors/thrust/test/speed.cu.x
- ../build/include/boost/multi/adaptors/thrust/test/speed_algo.cu.x
- ../build/include/boost/multi/adaptors/fftw/test/combinations.cpp.x
needs: ["g++"]
cuda-11.8 mkl:
stage: build
image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04
tags:
- non-shared
- nvidia-gpu
interruptible: true
script:
- nvidia-smi
- apt-get -qq update && apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
- DEBIAN_FRONTEND=interactive apt-get install --no-install-recommends --yes --force-yes -y libmkl-full-dev
- mkdir build && cd build
- ls /usr/local
- ls /usr/local/cuda-11/bin
- /usr/local/cuda-11/bin/nvcc --version
- CUDACXX=/usr/local/cuda-11/bin/nvcc cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES=61
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure
- ../build/include/boost/multi/adaptors/thrust/test/speed.cu.x
- ../build/include/boost/multi/adaptors/thrust/test/speed_algo.cu.x
- ../build/include/boost/multi/adaptors/fftw/test/combinations.cpp.x
needs: ["cuda"]
cuda-11.4.3:
stage: build
image: nvcr.io/nvidia/cuda:11.4.3-devel-ubuntu20.04
tags:
- non-shared
- nvidia-gpu
interruptible: true
script:
- nvidia-smi
# - export CUDA_VISIBLE_DEVICES=2
- apt-get -qq update
- DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
- cmake --version
- mkdir build && cd build
- /usr/local/cuda/bin/nvcc --version
- CUDACXX=/usr/local/cuda/bin/nvcc cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES=61
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure
needs: ["cuda"]
cuclang++-16 cuda-11.4.3:
stage: build
image: nvcr.io/nvidia/cuda:11.4.3-devel-ubuntu20.04
tags:
- non-shared
- nvidia-gpu
interruptible: true
script:
- nvidia-smi
- apt-get -qq update
- DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
- apt-get install --no-install-recommends -y lsb-release software-properties-common
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
- cmake --version
- wget https://apt.llvm.org/llvm.sh
- chmod u+x llvm.sh
- ./llvm.sh 16
- mkdir build && cd build
- clang++-16 --version
- cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=1 -DCMAKE_CUDA_COMPILER=clang++-16 -DCMAKE_CXX_COMPILER=clang++-16
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure
needs: ["cuda", "clang++"]
culang++-17 cuda-11.8:
stage: build
image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04 # nvcr.io/nvidia/cuda:12.0.0-devel-ubuntu22.04
tags:
- non-shared
- nvidia-gpu
- high-bandwidth
interruptible: true
script:
- nvidia-smi
- apt-get -qq update && apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
- apt-get install --no-install-recommends -y lsb-release software-properties-common
- wget https://apt.llvm.org/llvm.sh
- chmod u+x llvm.sh
- ./llvm.sh 17
- mkdir build && cd build
- clang++-17 --version
- cmake .. -DCMAKE_BUILD_TYPE=Release -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DENABLE_CUDA=1 -DCMAKE_CUDA_COMPILER=clang++-17 -DCMAKE_CXX_COMPILER=clang++-17
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure
needs: ["cuda", "clang++"]
culang++-19 cuda-12.1.1 tidy:
stage: build
image: nvcr.io/nvidia/cuda:12.1.1-devel-ubuntu22.04 # nvcr.io/nvidia/cuda:12.0.0-devel-ubuntu22.04
allow_failure: false
tags:
- non-shared
- nvidia-gpu
- high-bandwidth
interruptible: true
script:
- nvidia-smi
- apt-get -qq update && apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
- apt-get install --no-install-recommends -y lsb-release software-properties-common
- wget https://apt.llvm.org/llvm.sh
- chmod u+x llvm.sh
- ./llvm.sh 19
- apt-get install --no-install-recommends -y clang-tidy-19
- mkdir build && cd build
- clang++-19 --version
- clang-tidy-19 --version
- cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_CLANG_TIDY=clang-tidy-19 -DENABLE_CUDA=1 -DCMAKE_CUDA_COMPILER=clang++-19 -DCMAKE_CXX_COMPILER=clang++-19
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest -j 2 --output-on-failure
needs: ["cuda", "clang++"]
cuda-12.3.1:
stage: build
allow_failure: false
image: nvcr.io/nvidia/cuda:12.3.1-devel-ubuntu22.04
tags:
- non-shared
- nvidia-gpu
interruptible: true
script:
- nvidia-smi
- apt-get -qq update && apt-get install --no-install-recommends -y cmake g++-12 wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
- mkdir build && cd build
- g++-12 --version
- /usr/local/cuda/bin/nvcc --version
- CUDACXX=/usr/local/cuda/bin/nvcc cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES=61 -DCMAKE_CUDA_HOST_COMPILER=g++-12 -DCMAKE_CUDA_FLAGS="-allow-unsupported-compiler"
- cmake --build . --parallel 2 || cmake --build . --verbose
- ctest || ctest --rerun-failed --output-on-failure || echo "ctest failed, probably due to lack of drivers"
needs: ["cuda"]
rocm:
stage: build
image: rocm/dev-ubuntu-22.04
allow_failure: false
tags:
- non-shared
- docker
- high-bandwidth
interruptible: true
script:
- apt-get -qq update
- apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev wget gpg
- apt-get install --no-install-recommends -y rocthrust-dev hipblas-dev hipfft-dev rocm-device-libs
- /opt/rocm/bin/hipconfig --full
- HIPCC_VERBOSE=1 /opt/rocm/bin/hipcc --version
- cmake --version
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
- cmake --version
- mkdir build && cd build
- export PATH=/opt/rocm/bin:/opt/rocm/llvm/bin:${PATH}
- export CMAKE_PREFIX_PATH=/opt/rocm:${CMAKE_PREFIX_PATH}
- export ROCM_PATH=/opt/rocm
- export HIP_PATH=/opt/rocm
- cmake .. -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_HIP_COMPILER=/opt/rocm/llvm/bin/clang++ -DCMAKE_CXX_FLAGS="-DMULTI_USE_HIP" -DCMAKE_HIP_FLAGS="-DMULTI_USE_HIP" -DENABLE_HIP=1 -DCMAKE_HIP_ARCHITECTURES=gfx90a # TODO(correaa) add CMAKE_BUILD_TYPE
- cmake --build . --parallel 2 || cmake --build . --verbose --parallel 1
- ctest || ctest --rerun-failed --output-on-failure || echo "ctest failed, probably due to lack of hardware"
needs: ["clang++", "g++"]
# clang++-fedora c++23:
# stage: build
# image: fedora:rawhide # clang 17.0.6 as of Dec 2023
# script: # clang 17 doesn't work with gcc 13 libstd
# - dnf install --setopt=install_weak_deps=False -y ca-certificates blas-devel boost-devel clang cmake fftw-devel make pkg-config
# - mkdir build && cd build
# - CXX=clang++ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_STANDARD=23 # -DBoost_INCLUDE_DIR=../boost_1_84_0 -DBoost_LIBRARY_DIR=../boost_1_84_0/stage/lib -DBoost_NO_SYSTEM_PATHS=ON
# - cmake --build . --parallel 2 || cmake --build . --verbose
# - ctest --output-on-failure
# needs: ["clang++-testing c++20"]
circle:
stage: build
tags:
- non-shared
- docker
# interruptible: false
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake g++-11 gzip libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libelf1 libfftw3-dev make pkg-config tar wget
- mkdir -p build_latest ; cd build_latest
- wget https://www.circle-lang.org/linux/build_200.tgz --no-verbose
- tar -zxvf build_???.tgz
- cd ..
- ls
- ./build_latest/circle --version
- mkdir build && cd build
- CXX=`pwd`/../build_latest/circle cmake .. -DCMAKE_BUILD_TYPE=Debug -DENABLE_CIRCLE=1
- cmake --build . --parallel 2 || make VERBOSE=1
- ctest -j 2 --output-on-failure
circle-187:
stage: build
tags:
- non-shared
- docker
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake g++-11 gzip libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libelf1 libfftw3-dev make pkg-config tar wget
- mkdir -p build_latest ; cd build_latest
- wget https://www.circle-lang.org/linux/build_187.tgz --no-verbose
- tar -zxvf build_???.tgz
- cd ..
- ls
- ./build_latest/circle --version
- mkdir build && cd build
- CXX=`pwd`/../build_latest/circle cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DENABLE_CIRCLE=1
- cmake --build . --parallel 2 || make VERBOSE=1
- ctest -j 2 --output-on-failure
needs: ["circle"]
circle-latest:
stage: build
allow_failure: true
tags:
- non-shared
- docker
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake g++-11 gzip libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libelf1 libfftw3-dev make pkg-config tar wget
- mkdir -p build_latest ; cd build_latest
- wget https://www.circle-lang.org/linux/build_latest.tgz --no-verbose
- tar -zxvf build_*.tgz
- cd ..
- ls
- ./build_latest/circle --version
- mkdir build && cd build
- CXX=`pwd`/../build_latest/circle cmake .. -DCMAKE_BUILD_TYPE=Debug -DENABLE_CIRCLE=1
- cmake --build . --parallel 2 || make VERBOSE=1
- ctest -j 2 --output-on-failure
needs: ["circle"]
inq:
stage: test
image: debian:stable
tags:
- non-shared
- large-memory-space
interruptible: true
script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y ca-certificates cmake g++ git gfortran libopenmpi-dev libblas-dev libboost-filesystem-dev libboost-iostreams-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev make ninja-build pkg-config python3-dev
- export PREFIX=`mktemp -d`
- git clone --recurse-submodules https://gitlab.com/npneq/inq.git
- cd inq
- git submodule update
- cd external_libs/multi
- git checkout $CI_COMMIT_SHA # check that multi repo is mirrored correctly
- cd ../..
- mkdir build && cd build
- cmake .. -G Ninja --install-prefix=$PREFIX -DCMAKE_BUILD_TYPE=Release
- cmake --build . || cmake --build . --parallel 1
- cmake --install .
- export OMPI_ALLOW_RUN_AS_ROOT=1
- export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
- export OMPI_MCA_btl_vader_single_copy_mechanism=none
- export OMPI_MCA_rmaps_base_oversubscribe=1
- ctest -j 2 --output-on-failure --timeout 600
- INQ_EXEC_ENV="mpirun --oversubscribe -n 4" ctest --output-on-failure --timeout 600
needs: ["g++"]
inq cuda:
allow_failure: false
stage: test
image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04
tags:
- non-shared
- nvidia-gpu
interruptible: true
before_script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y ca-certificates cmake git gfortran libopenmpi-dev libblas-dev libboost-filesystem-dev libboost-iostreams-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev pkg-config python3-dev
script:
- nvidia-smi
# - export CUDA_VISIBLE_DEVICES=0,1
- __nvcc_device_query
- export PREFIX=`mktemp -d`
- git clone --recurse-submodules https://gitlab.com/npneq/inq.git
- cd inq
- cd external_libs/multi
- git checkout $CI_COMMIT_SHA
- cd ../..
- rm -f cmake/FindNCCL.cmake # disable NCCL workaround
- mkdir build && cd build
- /usr/local/cuda/bin/nvcc --version
- CUDACXX=/usr/local/cuda/bin/nvcc cmake .. --install-prefix=$PREFIX -DENABLE_CUDA=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CUDA_ARCHITECTURES=61 # =75 # =80
- cmake --build . --parallel 4 || cmake --build . --parallel 1
- cmake --install .
- export OMPI_ALLOW_RUN_AS_ROOT=1
- export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
- export OMPI_MCA_btl_vader_single_copy_mechanism=none
- export OMPI_MCA_rmaps_base_oversubscribe=1
- ctest -j 2 --output-on-failure --timeout 2400
- INQ_EXEC_ENV="mpirun --oversubscribe -n 4" ctest --output-on-failure --timeout 2400
timeout: 2 hours 30 minutes
needs: ["cuda", "inq"]
inq rocm:
stage: test
image: rocm/dev-ubuntu-22.04
allow_failure: false
tags:
- non-shared
- large-disk-space
interruptible: true
script:
- apt-get -qq update
- apt-get -qq install --no-install-recommends -y ca-certificates cmake git gfortran gpg hipblas-dev hipfft-dev libopenmpi-dev libblas-dev libboost-filesystem-dev libboost-iostreams-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev make pkg-config python3-dev rocthrust-dev rocm-device-libs wget
- /opt/rocm/bin/hipconfig --full
- HIPCC_VERBOSE=1 /opt/rocm/bin/hipcc --version
- cmake --version
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
- cmake --version
- export PREFIX=`mktemp -d`
- git clone --recurse-submodules https://gitlab.com/npneq/inq.git
- cd inq
- cd external_libs/multi
- git checkout $CI_COMMIT_SHA
- cd ../..
- mkdir build && cd build
- export PATH=/opt/rocm/bin:/opt/rocm/llvm/bin:${PATH}
- export CMAKE_PREFIX_PATH=/opt/rocm:${CMAKE_PREFIX_PATH}
- export ROCM_PATH=/opt/rocm
- export HIP_PATH=/opt/rocm
- cmake .. -DCMAKE_HIP_COMPILER=/opt/rocm/llvm/bin/clang++ --install-prefix=$PREFIX -DENABLE_HIP=1 -DCMAKE_HIP_ARCHITECTURES=gfx90a
- cmake --build . --parallel 4 || cmake --build . --parallel 1
- cmake --install .
- export OMPI_ALLOW_RUN_AS_ROOT=1
- export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
- export OMPI_MCA_btl_vader_single_copy_mechanism=none
- export OMPI_MCA_rmaps_base_oversubscribe=1
- INQ_EXEC_ENV="mpirun --oversubscribe -n 4" ctest --output-on-failure --timeout 2400 || echo "ctest failed, probably due to lack of hardware"
timeout: 2 hours 30 minutes
needs: ["rocm", "inq"]
qmcpack:
stage: test
image: debian:latest
tags:
- non-shared
- docker
- high-bandwidth
interruptible: true
before_script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y ca-certificates cmake g++ git gfortran libblas-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev libopenmpi-dev make numdiff pkg-config python3 python3-h5py python3-numpy python3-mpi4py python3-scipy libxml2-dev
script:
- git clone --depth=1 https://github.com/QMCPACK/qmcpack.git # --branch fix_afqmc_pointer_traits
- cd qmcpack
- git config --global user.email "alfredo.correa@gmail.com" && git config --global user.name "Alfredo Correa"
- git rm -r external_codes/boost_multi/multi && git commit -m "remove multi subtree"
- git subtree add --squash -P external_codes/boost_multi/multi $CI_REPOSITORY_URL $CI_COMMIT_SHA || git subtree add --squash -P external_codes/boost_multi/multi $CI_REPOSITORY_URL # e.g. https://gitlab.com/correaa/boost-multi.git
- cd build
- cmake -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DBUILD_AFQMC=1 -DQMC_MIXED_PRECISION=1 -DCMAKE_BUILD_TYPE=Debug -DMPIEXEC_PREFLAGS="--allow-run-as-root;--bind-to;none" ..
- make ppconvert afqmc test_afqmc_matrix test_afqmc_numerics test_afqmc_slaterdeterminantoperations test_afqmc_walkers test_afqmc_hamiltonians test_afqmc_hamiltonian_operations test_afqmc_phmsd test_afqmc_wfn_factory test_afqmc_prop_factory test_afqmc_estimators qmc-afqmc-performance
- ctest -R ppconvert --output-on-failure
- ctest -R afqmc --output-on-failure
needs: ["g++"]
# qmcpack-cuda:
# stage: test
# image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04
# tags:
# - nvidia-gpu
# before_script:
# - apt-get -qq update && apt-get -qq install --no-install-recommends -y ca-certificates cmake git libopenmpi-dev cmake g++ git gfortran libblas-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev libopenmpi-dev make numdiff pkg-config python3 python3-h5py python3-numpy python3-mpi4py python3-scipy libxml2-dev
# script:
# - nvidia-smi
# - git clone --depth 1 https://github.com/QMCPACK/qmcpack.git
# # - git clone https://github.com/correaa/qmcpack.git --branch fix_afqmc_pointer_traits
# - cd qmcpack
# - git config --global user.email "alfredo.correa@gmail.com" && git config --global user.name "Alfredo Correa"
# - git rm -r external_codes/boost_multi/multi && git commit -m "remove multi subtree"
# - git subtree add --squash -P external_codes/boost_multi/multi $CI_REPOSITORY_URL $CI_COMMIT_SHA # e.g. https://gitlab.com/correaa/boost-multi.git
# - cd build
# - nvcc --version
# - __nvcc_device_query
# - CUDACXX=/usr/local/cuda/bin/nvcc cmake .. -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DBUILD_AFQMC=1 -DQMC_CXX_STANDARD=17 -DENABLE_CUDA=1 -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc -DCMAKE_CUDA_HOST_COMPILER=g++ -DCMAKE_CXX_FLAGS="-Wno-deprecated -Wno-deprecated-declarations" -DCMAKE_CUDA_ARCHITECTURES=80
# - make -j 4 ppconvert afqmc test_afqmc_matrix test_afqmc_numerics test_afqmc_slaterdeterminantoperations test_afqmc_walkers test_afqmc_hamiltonians test_afqmc_hamiltonian_operations test_afqmc_phmsd test_afqmc_wfn_factory test_afqmc_prop_factory test_afqmc_estimators qmc-afqmc-performance
# - OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 ctest -R ppconvert --output-on-failure
# - OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 ctest -R afqmc --output-on-failure
# needs: ["qmcpack","cuda"]
qmcpack cuda-12.3.1:
stage: test
image: nvcr.io/nvidia/cuda:12.3.1-devel-ubuntu22.04
tags:
- non-shared
- nvidia-gpu
- high-bandwidth
interruptible: true
before_script:
- apt-get -qq update && apt-get -qq install --no-install-recommends -y ca-certificates cmake git libopenmpi-dev cmake g++ git gfortran libblas-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev libopenmpi-dev make numdiff pkg-config python3 python3-h5py python3-numpy python3-mpi4py python3-scipy libxml2-dev
script:
- nvidia-smi
- git clone --depth 1 https://github.com/QMCPACK/qmcpack.git # --branch fix_afqmc_pointer_traits
- cd qmcpack
- git config --global user.email "alfredo.correa@gmail.com" && git config --global user.name "Alfredo Correa"
- git rm -r external_codes/boost_multi/multi && git commit -m "remove multi subtree"
- git subtree add --squash -P external_codes/boost_multi/multi $CI_REPOSITORY_URL $CI_COMMIT_SHA # e.g. https://gitlab.com/correaa/boost-multi.git
- cd build
- nvcc --version
- __nvcc_device_query
- CUDACXX=/usr/local/cuda/bin/nvcc cmake .. -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DBUILD_AFQMC=1 -DQMC_CXX_STANDARD=17 -DENABLE_CUDA=1 -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc -DCMAKE_CUDA_HOST_COMPILER=g++ -DCMAKE_CXX_FLAGS="-Wno-deprecated -Wno-deprecated-declarations" -DCMAKE_CUDA_ARCHITECTURES=75 # =80
- make -j 4 ppconvert afqmc test_afqmc_matrix test_afqmc_numerics test_afqmc_slaterdeterminantoperations test_afqmc_walkers test_afqmc_hamiltonians test_afqmc_hamiltonian_operations test_afqmc_phmsd test_afqmc_wfn_factory test_afqmc_prop_factory test_afqmc_estimators qmc-afqmc-performance
- OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 ctest -R ppconvert --output-on-failure
- OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 ctest -R afqmc --output-on-failure
needs: ["qmcpack","cuda"]
# sonar cloud
# from instructions
# another example here: https://github.com/sonarsource-cfamily-examples/linux-cmake-gitlab-ci-sc/blob/main/.gitlab-ci.yml
# get-sonar-binaries:
# stage: .pre
# cache:
# policy: push
# key: "${CI_COMMIT_SHORT_SHA}"
# paths:
# - build-wrapper/
# - sonar-scanner/
# script:
# - apt-get -qq update && apt-get -qq install curl unzip
# # Download sonar-scanner
# - curl -sSLo ./sonar-scanner.zip 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip'
# - unzip -o sonar-scanner.zip
# - mv sonar-scanner-5.0.1.3006-linux sonar-scanner
# # Download build-wrapper
# - curl -sSLo ./build-wrapper-linux-x86.zip "${SONAR_HOST_URL}/static/cpp/build-wrapper-linux-x86.zip"
# - unzip -oj build-wrapper-linux-x86.zip -d ./build-wrapper
# only:
# - merge_requests
# - master
# - develop
sonar:
stage: build
allow_failure: true
only:
refs:
- master
tags:
- non-shared
- docker
# cache:
# policy: pull-push
# key: "${CI_COMMIT_SHORT_SHA}"
# paths:
# - build-wrapper/
# - sonar-scanner/
# - bw-output/
interruptible: true
script:
# Run the build inside the build wrapper
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake curl unzip g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config gcovr lcov
- g++ --version
- mkdir build
# Download sonar-scanner
- curl -sSLo ./sonar-scanner.zip 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip'
- unzip -o sonar-scanner.zip
- mv sonar-scanner-5.0.1.3006-linux sonar-scanner
# Download build-wrapper
- curl -sSLo ./build-wrapper-linux-x86.zip "${SONAR_HOST_URL}/static/cpp/build-wrapper-linux-x86.zip"
- unzip -oj build-wrapper-linux-x86.zip -d ./build-wrapper
- cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="--coverage -O0 -fno-inline -fno-inline-small-functions -fno-default-inline" -DCMAKE_EXE_LINKER_FLAGS="--coverage"
- build-wrapper/build-wrapper-linux-x86-64 --out-dir bw-output cmake --build build/ --verbose
- cd build
- ctest -j 1 --output-on-failure -T Test
- ctest -j 1 --output-on-failure -T Coverage
- gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o coverage.xml --root ${CI_PROJECT_DIR}
- cd ..
- sonar-scanner/bin/sonar-scanner -Dsonar.host.url="${SONAR_HOST_URL}" -Dsonar.token="${SONAR_TOKEN}" -Dsonar.cfamily.build-wrapper-output=bw-output -Dsonar.cfamily.gcov.reportsPath="build/"
# only:
# - merge_requests
# - master
# - main
# - develop
# needs: ["g++"]
# sonarcloud-check:
# stage: .post
# cache:
# policy: pull
# key: "${CI_COMMIT_SHORT_SHA}"
# paths:
# - build-wrapper/
# - sonar-scanner/
# - bw-output/
# script:
# - sonar-scanner/bin/sonar-scanner -Dsonar.host.url="${SONAR_HOST_URL}" -Dsonar.token="${SONAR_TOKEN}" -Dsonar.cfamily.build-wrapper-output=bw-output
# only:
# - merge_requests
# - master
# - develop