# To do: Consider expanding matrix here to improve transparency and reduce file sizes.
# E.g. '/admin/gitlab-ci/matrix/clang-8.gitlab-ci.yml
- local: '/admin/gitlab-ci/gromacs.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix.gitlab-ci.yml'
# Repository cleanliness. Source tidiness, linting, and policy compliance.
- local: '/admin/gitlab-ci/lint.gitlab-ci.yml'
# Web page and manual.
-# Build, test, and install variously configured GROMACS installations.
+# Test goal: Initial build with close-to-default settings that always needs to pass before follow-up CI stages run
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: Clang
+# Build type: Debug
+# GPU: no
+# SIMD: no
+# Scope: configure, build, unit tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Compiler: Clang 9
+# FFT: FFTW3
+# Parallelism nt/ntomp: 4/2
-# Initial build that always needs to pass before follow-up stages run
simple-build:
+ # Test scope: configure, build, unit tests
extends:
- .variables:default
- .use-ccache
- $BUILD_DIR/*log
when: always
expire_in: 1 week
-
-# Jobs running in first pre-build stage
-
-.gromacs:base:configure:
- extends:
- - .variables:default
- stage: configure-build
- cache: {}
- variables:
- KUBERNETES_CPU_LIMIT: 1
- KUBERNETES_CPU_REQUEST: 1
- KUBERNETES_MEMORY_REQUEST: 2Gi
- CMAKE_COMPILER_SCRIPT: ""
- CMAKE_EXTRA_OPTIONS: ""
- CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
- CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
- CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
- CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
- CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
- script:
- - CMAKE=${CMAKE:-$(which cmake)}
- - echo $CMAKE_COMPILER_SCRIPT
- - echo $CMAKE_EXTRA_OPTIONS
- - echo $CMAKE_SIMD_OPTIONS
- - echo $CMAKE_GPU_OPTIONS
- - echo $CMAKE_MPI_OPTIONS
- - echo $CMAKE_PRECISION_OPTIONS
- - echo $CMAKE_BUILD_TYPE_OPTIONS
- - echo $CMAKE_GMXAPI_OPTIONS
- - if [[ -d $BUILD_DIR ]] ; then
- rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
- else
- echo "Preparing new build directory" ;
- mkdir $BUILD_DIR ;
- fi
- - cd $BUILD_DIR
- - $CMAKE ..
- -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- $CMAKE_COMPILER_SCRIPT
- $CMAKE_EXTRA_OPTIONS
- $CMAKE_SIMD_OPTIONS
- $CMAKE_MPI_OPTIONS
- $CMAKE_PRECISION_OPTIONS
- $CMAKE_BUILD_TYPE_OPTIONS
- $CMAKE_GPU_OPTIONS
- $CMAKE_GMXAPI_OPTIONS
- -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
- 2>&1 | tee cmakeLog.log
- - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
- - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
- - cd ..
- artifacts:
- when: always
- paths:
- - $BUILD_DIR
-
-.gromacs:base:release:configure:
- extends:
- - .variables:default
- stage: release-configure
- cache: {}
- variables:
- KUBERNETES_CPU_LIMIT: 1
- KUBERNETES_CPU_REQUEST: 1
- KUBERNETES_MEMORY_REQUEST: 2Gi
- CMAKE_COMPILER_SCRIPT: ""
- CMAKE_EXTRA_OPTIONS: ""
- CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
- CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
- CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
- CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
- CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
- CMAKE_REGRESSIONTEST_OPTIONS: "-DREGRESSIONTEST_PATH=../\\$RELEASE_REGRESSIONTESTS"
- RELEASE_BUILD_DIR: release-builds
- RELEASE_SOURCE: release-source-from-tarball
- RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
- script:
- - CMAKE=${CMAKE:-$(which cmake)}
- - VERSION=`cat version.json |
- python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
- - if [[ $GROMACS_RELEASE != "true" ]] ; then
- VERSION=$VERSION-dev ;
- fi
- - SOURCENAME=gromacs-$VERSION
- - SOURCETARBALL=$SOURCENAME.tar.gz
- - REGTESTNAME=regressiontests-$VERSION
- - REGTESTTARBALL=$REGTESTNAME.tar.gz
- - echo "$SOURCETARBALL"
- - echo "$REGTESTTARBALL"
- - RELEASE_TARBALLS=release-tarballs
- - rm -rf $RELEASE_TARBALLS $RELEASE_SOURCE $RELEASE_REGRESSIONTESTS && mkdir $RELEASE_TARBALLS
- - mv $SOURCETARBALL $RELEASE_TARBALLS
- - mv $REGTESTTARBALL $RELEASE_TARBALLS
- - cd $RELEASE_TARBALLS
- # We rename the source and regressiontest directories
- # to have names for them that don't change for different versions.
- - tar -xf $SOURCETARBALL
- - mv $SOURCENAME ../$RELEASE_SOURCE
- - tar -xf $REGTESTTARBALL
- - mv $REGTESTNAME ../$RELEASE_REGRESSIONTESTS
- - rm $SOURCETARBALL $REGTESTTARBALL
- - cd ..
- - echo $CMAKE_COMPILER_SCRIPT
- - echo $CMAKE_EXTRA_OPTIONS
- - echo $CMAKE_SIMD_OPTIONS
- - echo $CMAKE_GPU_OPTIONS
- - echo $CMAKE_MPI_OPTIONS
- - echo $CMAKE_PRECISION_OPTIONS
- - echo $CMAKE_BUILD_TYPE_OPTIONS
- - echo $CMAKE_GMXAPI_OPTIONS
- - if [[ -d $RELEASE_BUILD_DIR ]] ; then
- echo "Cleaning up build directory" ;
- rm -rf $RELEASE_BUILD_DIR && mkdir $RELEASE_BUILD_DIR ;
- else
- echo "Preparing new build directory" ;
- mkdir $RELEASE_BUILD_DIR ;
- fi
- - cd $RELEASE_BUILD_DIR
- - cmake ../$RELEASE_SOURCE/
- -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- $CMAKE_COMPILER_SCRIPT
- $CMAKE_EXTRA_OPTIONS
- $CMAKE_SIMD_OPTIONS
- $CMAKE_MPI_OPTIONS
- $CMAKE_PRECISION_OPTIONS
- $CMAKE_BUILD_TYPE_OPTIONS
- $CMAKE_GPU_OPTIONS
- $CMAKE_GMXAPI_OPTIONS
- $CMAKE_REGRESSIONTEST_OPTIONS
- -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR
- 2>&1 | tee cmakeLog.log
- - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
- - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
- - cd ..
- artifacts:
- when: always
- paths:
- - $RELEASE_BUILD_DIR
- - $RELEASE_REGRESSIONTESTS
- - $RELEASE_SOURCE
-
-# Templates for configuration stage
-
-gromacs:gcc-10:configure:
- extends:
- - .gromacs:base:configure
- - .use-gcc:base
- - .use-opencl
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-10
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
- CMAKE_EXTRA_OPTIONS: "-DGMX_EXTERNAL_CLFFT=ON"
- COMPILER_MAJOR_VERSION: 10
-
-gromacs:clang-8-cuda-10.0:configure:
- extends:
- - .gromacs:base:configure
- - .use-clang:base
- - .use-cuda
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- CMAKE_SIMD_OPTIONS: "-DGMX_USE_SIMD_KERNELS=off"
- CMAKE_EXTRA_OPTIONS: "-DGMX_CLANG_CUDA=ON"
- CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
- COMPILER_MAJOR_VERSION: 8
-
-gromacs:gcc-7-cuda-10.2:configure:
- extends:
- - .gromacs:base:configure
- - .use-gcc:base
- - .use-cuda
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
- COMPILER_MAJOR_VERSION: 7
-
-gromacs:gcc-8-cuda-11.0:configureMPI:
- extends:
- - .gromacs:base:configure
- - .use-gcc:base
- - .use-cuda
- - .use-mpi
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
- COMPILER_MAJOR_VERSION: 8
-
-gromacs:clang-TSAN:configure:
- extends:
- - .gromacs:base:configure
- - .use-clang:base
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- COMPILER_MAJOR_VERSION: 8
- CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=TSAN"
-
-gromacs:icc-2021.1:configure:
- extends:
- - .gromacs:base:configure
- - .use-icc-oneapi:base
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- COMPILER_MAJOR_VERSION: 2021
-
-gromacs:clang-8:configure:
- extends:
- - .gromacs:base:configure
- - .use-clang:base
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
- variables:
- COMPILER_MAJOR_VERSION: 8
-
-gromacs:clang-9-mpi:configure:
- extends:
- - .gromacs:base:configure
- - .use-clang:base
- - .use-mpi
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- COMPILER_MAJOR_VERSION: 9
- CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON
-
-gromacs:clang-static-analyzer:configure:
- extends:
- - .gromacs:base:configure
- - .use-clang:base
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- CMAKE_COMPILER_SCRIPT: "-DCMAKE_CXX_COMPILER=/usr/local/libexec/c++-analyzer -DCMAKE_C_COMPILER=gcc"
- CMAKE_EXTRA_OPTIONS: "-DGMX_CLANG_ANALYZER=ON -DGMX_OPENMP=OFF -DGMX_USE_RDTSCP=OFF -DGMX_FFT_LIBRARY=fftpack -DGMX_DEVELOPER_BUILD=ON"
- CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
-
-gromacs:clang-ASAN:configure:
- extends:
- - .gromacs:base:configure
- - .use-clang:base
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- COMPILER_MAJOR_VERSION: 8
- CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=ASAN"
-
-gromacs:oneapi-2021.1.1-opencl:configure:
- extends:
- - .gromacs:base:configure
- - .use-oneapi:base
- - .use-opencl
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- COMPILER_MAJOR_VERSION: 2021
-
-gromacs:oneapi-2021.1.1-sycl:configure:
- extends:
- - .gromacs:base:configure
- - .use-oneapi:base
- - .use-sycl
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- COMPILER_MAJOR_VERSION: 2021
-
-gromacs:clang-UBSAN:configure:
- extends:
- - .gromacs:base:configure
- - .use-clang:base
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- COMPILER_MAJOR_VERSION: 8
- CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=UBSAN"
-
-gromacs:gcc-8-cuda-11.0:release:configure:
- extends:
- - .gromacs:base:release:configure
- - .use-gcc:base
- - .use-mpi
- - .use-cuda
- - .rules:nightly-only-for-release
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- COMPILER_MAJOR_VERSION: 8
- RELEASE_BUILD_DIR: release-builds-gcc
- CMAKE_EXTRA_OPTIONS: "-DGMX_BUILD_MDRUN_ONLY=ON"
- CMAKE_BUILD_TYPE_OPTIONS : "-DCMAKE_BUILD_TYPE=RelWithAssert"
- CMAKE_REGRESSIONTEST_OPTIONS: ""
- dependencies:
- - archive:package
- - regressiontests:package
- - prepare-release-version
-
-gromacs:gcc-9:release:configure:
- extends:
- - .gromacs:base:release:configure
- - .use-gcc:base
- - .use-opencl
- - .rules:nightly-only-for-release
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-9
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- COMPILER_MAJOR_VERSION: 9
- RELEASE_BUILD_DIR: release-builds-gcc
- CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
- dependencies:
- - archive:package
- - regressiontests:package
- - prepare-release-version
-
-gromacs:clang-9:release:configure:
- extends:
- - .gromacs:base:release:configure
- - .use-clang:base
- - .use-mpi
- - .rules:nightly-only-for-release
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- COMPILER_MAJOR_VERSION: 9
- RELEASE_BUILD_DIR: release-builds-clang
- CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=ON"
- CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
- dependencies:
- - archive:package
- - regressiontests:package
- - prepare-release-version
-
-gromacs:clang-8-cuda-10.1:release:configure:
- extends:
- - .gromacs:base:release:configure
- - .use-clang:base
- - .use-cuda
- - .rules:nightly-only-for-release
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1
- variables:
- COMPILER_MAJOR_VERSION: 8
- RELEASE_BUILD_DIR: release-builds-clang
- CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
-
-gromacs:oneapi-2021.1.1-opencl:release:configure:
- extends:
- - .gromacs:base:release:configure
- - .use-oneapi:base
- - .use-opencl
- - .rules:nightly-only-for-release
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- COMPILER_MAJOR_VERSION: 2021
- RELEASE_BUILD_DIR: release-builds-oneapi
-
-# Jobs running during build stage
-
-.gromacs:base:build:
- stage: build
- script:
- - CMAKE=${CMAKE:-$(which cmake)}
- - cd $BUILD_DIR
- - $CMAKE --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log
- - $CMAKE --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log
- - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log
- | grep -v "CMake" | tee buildErrors.log || true
- - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true
- - $CMAKE --build . --target install 2>&1 | tee installBuildLogFile.log
- - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
- - for file in `find . -mindepth 1 -name "*.o" ! -type l` ; do echo $file ; rm $file ; done 2>&1 > remove-build-objects.log
- - cd ..
- artifacts:
- when: always
- paths:
- - $BUILD_DIR
- - $INSTALL_DIR/
-
-.gromacs:static-analyzer-build:
- stage: build
- script:
- - CMAKE=${CMAKE:-$(which cmake)}
- - cd $BUILD_DIR
- - scan-build -o scan_html $CMAKE --build . -- -j8 2>&1 | tee buildLogFile.log
- - awk '/warning/,/warning.*generated|^$/' buildLogFile.log
- | grep -v "CMake" | tee buildErrors.log || true
- - grep "cannot be built" buildLogFile.log | tee -a buildErrors.log || true
- - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
- - cd ..
- artifacts:
- when: always
- paths:
- - $BUILD_DIR/scan_html
-
-gromacs:gcc-10:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .before_script:default
- - .use-ccache
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-10
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- needs:
- - job: gromacs:gcc-10:configure
-
-gromacs:clang-8-cuda-10.0:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .use-clang:base
- - .use-ccache
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- needs:
- - job: gromacs:clang-8-cuda-10.0:configure
-
-gromacs:gcc-7-cuda-10.2:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .before_script:default
- - .use-ccache
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- needs:
- - job: gromacs:gcc-7-cuda-10.2:configure
-
-gromacs:gcc-8-cuda-11.0:buildMPI:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .before_script:default
- - .use-ccache
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- needs:
- - job: gromacs:gcc-8-cuda-11.0:configureMPI
-
-gromacs:clang-TSAN:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .use-clang:base
- - .use-ccache
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- needs:
- - job: gromacs:clang-TSAN:configure
-
-gromacs:icc-2021.1:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .use-icc-oneapi:base
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- needs:
- - job: gromacs:icc-2021.1:configure
-
-gromacs:clang-ASAN:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .use-clang:base
- - .use-ccache
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-ASAN:configure
-
-gromacs:clang-UBSAN:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .use-clang:base
- - .use-ccache
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-UBSAN:configure
-
-gromacs:clang-static-analyzer:build:
- extends:
- - .variables:default
- - .gromacs:static-analyzer-build
- - .use-clang:base
- - .use-ccache
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-static-analyzer:configure
-
-gromacs:clang-8:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .before_script:default
- - .use-ccache
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
- needs:
- - job: gromacs:clang-8:configure
-
-gromacs:oneapi-2021.1.1-opencl:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .use-ccache
- - .use-oneapi:base
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- needs:
- - job: gromacs:oneapi-2021.1.1-opencl:configure
-
-gromacs:oneapi-2021.1.1-sycl:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .use-ccache
- - .use-oneapi:base
- - .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- needs:
- - job: gromacs:oneapi-2021.1.1-sycl:configure
-
-gromacs:clang-9-mpi:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .before_script:default
- - .use-ccache
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- needs:
- - job: gromacs:clang-9-mpi:configure
-
-gromacs:gcc-8-cuda-11.0:release:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .before_script:default
- - .use-ccache
- - .rules:nightly-only-for-release
- stage: release-build
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- BUILD_DIR: release-builds-gcc
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
- needs:
- - job: gromacs:gcc-8-cuda-11.0:release:configure
-
-gromacs:gcc-9:release:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .before_script:default
- - .use-ccache
- - .rules:nightly-only-for-release
- stage: release-build
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- BUILD_DIR: release-builds-gcc
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-9
- needs:
- - job: gromacs:gcc-9:release:configure
-
-gromacs:clang-9:release:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .before_script:default
- - .use-ccache
- - .rules:nightly-only-for-release
- stage: release-build
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- BUILD_DIR: release-builds-clang
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
- needs:
- - job: gromacs:clang-9:release:configure
-
-gromacs:clang-8-cuda-10.1:release:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .before_script:default
- - .use-ccache
- - .rules:nightly-only-for-release
- stage: release-build
- variables:
- BUILD_DIR: release-builds-clang
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1
- needs:
- - job: gromacs:clang-8-cuda-10.1:release:configure
-
-gromacs:oneapi-2021.1.1-opencl:release:build:
- extends:
- - .variables:default
- - .gromacs:base:build
- - .use-oneapi:base
- - .use-opencl
- - .use-ccache
- - .rules:nightly-only-for-release
- stage: release-build
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- BUILD_DIR: release-builds-oneapi
- COMPILER_MAJOR_VERSION: 2021
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- needs:
- - job: gromacs:oneapi-2021.1.1-opencl:release:configure
-
-# Jobs running during test stage
-
-.gromacs:base:test:
- extends:
- - .variables:default
- stage: test
- cache: {}
- retry:
- max: 1
- variables:
- CTEST_RUN_MODE: "ExperimentalTest"
- script:
- - CMAKE=${CMAKE:-$(which cmake)}
- - cd $BUILD_DIR
- - export UBSAN_OPTIONS=halt_on_error=1:print_stacktrace=1:suppressions=$CI_PROJECT_DIR/admin/ubsan-suppressions.txt
- # Needed to run MPI enabled code in the docker images, until we set up different users
- - export OMPI_ALLOW_RUN_AS_ROOT=1
- - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
- - export ASAN_OPTIONS="check_initialization_order=1:detect_invalid_pointer_pairs=1:strict_init_order=true:strict_string_checks=true:detect_stack_use_after_return=true"
- # If $GMX_TEST_REQUIRED_NUMBER_OF_DEVICES is not set and we have GPUs, set it
- - if [ -z $GMX_TEST_REQUIRED_NUMBER_OF_DEVICES ] && [ -n $KUBERNETES_EXTENDED_RESOURCE_NAME ] ; then
- if grep -q '/gpu$' <<< "$KUBERNETES_EXTENDED_RESOURCE_NAME"; then
- echo "export GMX_TEST_REQUIRED_NUMBER_OF_DEVICES=\"$KUBERNETES_EXTENDED_RESOURCE_LIMIT\"";
- export GMX_TEST_REQUIRED_NUMBER_OF_DEVICES="$KUBERNETES_EXTENDED_RESOURCE_LIMIT";
- fi
- fi
- - if grep -qF 'nvidia.com/gpu' <<< "$KUBERNETES_EXTENDED_RESOURCE_NAME"; then
- nvidia-smi || true;
- fi
- - ctest -D $CTEST_RUN_MODE --output-on-failure | tee ctestLog.log || true
- - awk '/The following tests FAILED/,/^Errors while running CTest|^$/'
- ctestLog.log | tee ctestErrors.log
- - xsltproc $CI_PROJECT_DIR/scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/*.xml > JUnitTestResults.xml
- - if [ -s ctestErrors.log ] ; then
- echo "Error during running ctest";
- exit 1;
- fi
- - cd ..
- artifacts:
- reports:
- junit: $BUILD_DIR/JUnitTestResults.xml
- paths:
- - $BUILD_DIR/Testing
- - $BUILD_DIR/tests
- when: always
- expire_in: 1 week
-
-.gromacs:base:regressiontest:
- extends:
- - .variables:default
- variables:
- KUBERNETES_CPU_LIMIT: 4
- KUBERNETES_CPU_REQUEST: 4
- KUBERNETES_MEMORY_REQUEST: 4Gi
- REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
- REGRESSIONTEST_OMP_RANK_NUMBER: 2
- REGRESSIONTEST_PME_RANK_NUMBER: 1
- REGRESSIONTEST_MPI_RUN_COMMAND: ""
- REGRESSIONTEST_DOUBLE: ""
- REGRESSIONTEST_PARALLEL: "-nt"
- stage: test
- cache: {}
- retry:
- max: 1
- script:
- - export LSAN_OPTIONS="suppressions=$CI_PROJECT_DIR/admin/lsan-suppressions.txt:print_suppressions=0"
- - export ASAN_OPTIONS="check_initialization_order=1:detect_invalid_pointer_pairs=1:strict_init_order=true:strict_string_checks=true:detect_stack_use_after_return=true"
- # Needed to run MPI enabled code in the docker images, until we set up different users
- - export OMPI_ALLOW_RUN_AS_ROOT=1
- - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
- - tar xzf gmx-regressiontests.tar.gz
- - source $INSTALL_DIR/bin/GMXRC
- - cd regressiontests
- - perl gmxtest.pl $REGRESSIONTEST_PARALLEL $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND -xml all
- artifacts:
- paths:
- - regressiontests/gmxtest.xml
- when: always
- expire_in: 1 week
-
-gromacs:gcc-10:test:
- extends:
- - .gromacs:base:test
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-10
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:gcc-10:build
-
-gromacs:clang-8-cuda-10.0:test:
- extends:
- - .gromacs:base:test
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-8-cuda-10.0:build
-
-gromacs:gcc-7-cuda-10.2:test:
- extends:
- - .gromacs:base:test
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:gcc-7-cuda-10.2:build
-
-gromacs:gcc-8-cuda-10.2:test-gpucommupd:
- extends:
- - .gromacs:base:test
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- GMX_GPU_DD_COMMS: 1
- GMX_GPU_PME_PP_COMMS: 1
- GMX_FORCE_UPDATE_DEFAULT_GPU: 1
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:gcc-7-cuda-10.2:build
-
-gromacs:clang-8:test:
- extends:
- - .gromacs:base:test
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
- needs:
- - job: gromacs:clang-8:build
-
-gromacs:clang-TSAN:test:
- extends:
- - .gromacs:base:test
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- needs:
- - job: gromacs:clang-TSAN:build
-
-gromacs:icc-2021.1:test:
- extends:
- - .gromacs:base:test
- - .use-icc-oneapi:base
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- needs:
- - job: gromacs:icc-2021.1:build
-
-gromacs:clang-ASAN:test:
- extends:
- - .gromacs:base:test
- - .use-clang:base
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- CTEST_RUN_MODE: "ExperimentalMemCheck"
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-ASAN:build
-
-gromacs:clang-UBSAN:test:
- extends:
- - .gromacs:base:test
- - .use-clang:base
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-UBSAN:build
-
-gromacs:oneapi-2021.1.1-opencl:test:
- extends:
- - .gromacs:base:test
- - .use-oneapi:base
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- needs:
- - job: gromacs:oneapi-2021.1.1-opencl:build
-
-gromacs:oneapi-2021.1.1-sycl:test:
- extends:
- - .gromacs:base:test
- - .use-oneapi:base
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- needs:
- - job: gromacs:oneapi-2021.1.1-sycl:build
-
-gromacs:clang-9-mpi:test:
- extends:
- - .gromacs:base:test
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-9-mpi:build
-
-gromacs:gcc-10:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-10
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- REGRESSIONTEST_PME_RANK_NUMBER: 0
- REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
- REGRESSIONTEST_OMP_RANK_NUMBER: 1
- LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:gcc-10:build
- - job: regressiontests:prepare
-
-gromacs:clang-8-cuda-10.0:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- REGRESSIONTEST_PME_RANK_NUMBER: 0
- REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
- REGRESSIONTEST_OMP_RANK_NUMBER: 1
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-8-cuda-10.0:build
- - job: regressiontests:prepare
-
-
-gromacs:gcc-7-cuda-10.2:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- REGRESSIONTEST_PME_RANK_NUMBER: 0
- REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
- REGRESSIONTEST_OMP_RANK_NUMBER: 1
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:gcc-7-cuda-10.2:build
- - job: regressiontests:prepare
-
-gromacs:gcc-7-cuda-10.2:regressiontest-gpucommupd-tMPI:
- extends:
- - .gromacs:base:regressiontest
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
- REGRESSIONTEST_PME_RANK_NUMBER: 0
- REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
- REGRESSIONTEST_OMP_RANK_NUMBER: 1
- GMX_GPU_DD_COMMS: 1
- GMX_GPU_PME_PP_COMMS: 1
- GMX_FORCE_UPDATE_DEFAULT_GPU: 1
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:gcc-7-cuda-10.2:build
- - job: regressiontests:prepare
- artifacts:
- paths:
- - regressiontests
- when: always
- expire_in: 1 week
-
-gromacs:gcc-7-cuda-10.2:regressiontest-upd-tMPI:
- extends:
- - .gromacs:base:regressiontest
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
- variables:
- KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
- REGRESSIONTEST_PME_RANK_NUMBER: 0
- REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
- REGRESSIONTEST_OMP_RANK_NUMBER: 1
- GMX_FORCE_UPDATE_DEFAULT_GPU: 1
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:gcc-7-cuda-10.2:build
- - job: regressiontests:prepare
- artifacts:
- paths:
- - regressiontests
- when: always
- expire_in: 1 week
-
-gromacs:gcc-8-cuda-11.0:regressiontest-gpucommupd-MPI:
- extends:
- - .gromacs:base:regressiontest
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
- REGRESSIONTEST_PME_RANK_NUMBER: 0
- REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
- REGRESSIONTEST_OMP_RANK_NUMBER: 1
- REGRESSIONTEST_PARALLEL: "-np"
- GMX_GPU_DD_COMMS: 1
- GMX_GPU_PME_PP_COMMS: 1
- GMX_FORCE_UPDATE_DEFAULT_GPU: 1
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:gcc-8-cuda-11.0:buildMPI
- - job: regressiontests:prepare
- artifacts:
- paths:
- - regressiontests
- when: always
- expire_in: 1 week
-
-gromacs:clang-8:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-8:build
- - job: regressiontests:prepare
-
-gromacs:clang-TSAN:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-TSAN:build
- - job: regressiontests:prepare
-
-gromacs:icc-2021.1:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .use-icc-oneapi:base
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- needs:
- - job: gromacs:icc-2021.1:build
- - job: regressiontests:prepare
-
-gromacs:clang-ASAN:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .use-clang:base
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-ASAN:build
- - job: regressiontests:prepare
-
-gromacs:clang-9:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- REGRESSIONTEST_DOUBLE: "-double"
- REGRESSIONTEST_PARALLEL: "-np"
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-9-mpi:build
- - job: regressiontests:prepare
-
-gromacs:oneapi-2021.1.1-opencl:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .use-oneapi:base
- - .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- needs:
- - job: gromacs:oneapi-2021.1.1-opencl:build
- - job: regressiontests:prepare
-
-gromacs:oneapi-2021.1.1-sycl:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .use-oneapi:base
- - .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- needs:
- - job: gromacs:oneapi-2021.1.1-sycl:build
- - job: regressiontests:prepare
-
-gromacs:gcc-8-cuda-11.0:release:test:
- extends:
- - .gromacs:base:test
- - .rules:nightly-only-for-release
- stage: release-tests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- BUILD_DIR: release-builds-gcc
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:gcc-8-cuda-11.0:release:configure
- - job: gromacs:gcc-8-cuda-11.0:release:build
-
-gromacs:gcc-9:release:test:
- extends:
- - .gromacs:base:test
- - .rules:nightly-only-for-release
- stage: release-tests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-9
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- BUILD_DIR: release-builds-gcc
- KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:gcc-9:release:configure
- - job: gromacs:gcc-9:release:build
-
-gromacs:clang-9:release:test:
- extends:
- - .gromacs:base:test
- - .rules:nightly-only-for-release
- stage: release-tests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- BUILD_DIR: release-builds-clang
- needs:
- - job: gromacs:clang-9:release:configure
- - job: gromacs:clang-9:release:build
-
-gromacs:clang-8-cuda-10.1:release:test:
- extends:
- - .gromacs:base:test
- - .rules:nightly-only-for-release
- stage: release-tests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1
- variables:
- KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- BUILD_DIR: release-builds-clang
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-8-cuda-10.1:release:configure
- - job: gromacs:clang-8-cuda-10.1:release:build
-
-gromacs:oneapi-2021.1.1-opencl:release:test:
- extends:
- - .gromacs:base:test
- - .use-oneapi:base
- - .rules:nightly-only-for-release
- stage: release-tests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- BUILD_DIR: release-builds-oneapi
- needs:
- - job: gromacs:oneapi-2021.1.1-opencl:release:configure
- - job: gromacs:oneapi-2021.1.1-opencl:release:build
-
-gromacs:gcc-9:release:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .rules:nightly-only-for-release
- stage: release-tests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-9
- variables:
- CMAKE: /usr/local/cmake-3.13.0/bin/cmake
- BUILD_DIR: release-builds-gcc
- KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:gcc-9:release:build
- - job: regressiontests:package
-
-gromacs:clang-9:release:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .rules:nightly-only-for-release
- stage: release-tests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
- variables:
- CMAKE: /usr/local/cmake-3.15.7/bin/cmake
- BUILD_DIR: release-builds-clang
- REGRESSIONTEST_DOUBLE: "-double"
- REGRESSIONTEST_PARALLEL: "-np"
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-9:release:build
- - job: regressiontests:package
-
-gromacs:clang-8-cuda-10.1:release:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .rules:nightly-only-for-release
- stage: release-tests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1
- variables:
- BUILD_DIR: release-builds-clang
- KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
- KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
- REGRESSIONTEST_PME_RANK_NUMBER: 0
- REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
- REGRESSIONTEST_OMP_RANK_NUMBER: 1
- tags:
- - k8s-scilifelab
- needs:
- - job: gromacs:clang-8-cuda-10.1:release:build
- - job: regressiontests:package
-
-gromacs:oneapi-2021.1.1-opencl:release:regressiontest:
- extends:
- - .gromacs:base:regressiontest
- - .use-oneapi:base
- - .rules:nightly-only-for-release
- stage: release-tests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
- variables:
- CMAKE: /usr/local/cmake-3.17.2/bin/cmake
- BUILD_DIR: release-builds-oneapi
- REGRESSIONTEST_PME_RANK_NUMBER: 0
- REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
- REGRESSIONTEST_OMP_RANK_NUMBER: 1
- needs:
- - job: gromacs:oneapi-2021.1.1-opencl:release:build
- - job: regressiontests:package
--- /dev/null
+# Build, test, and install variously configured GROMACS installations.
+#
+# This file contains job templates. Actual job configurations are inside gromacs.matrix/ directory.
+
+.gromacs:base:configure:
+ extends:
+ - .variables:default
+ stage: configure-build
+ cache: {}
+ variables:
+ KUBERNETES_CPU_LIMIT: 1
+ KUBERNETES_CPU_REQUEST: 1
+ KUBERNETES_MEMORY_REQUEST: 2Gi
+ CMAKE_COMPILER_SCRIPT: ""
+ CMAKE_EXTRA_OPTIONS: ""
+ CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
+ CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
+ CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
+ CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
+ CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
+ script:
+ - CMAKE=${CMAKE:-$(which cmake)}
+ - echo $CMAKE_COMPILER_SCRIPT
+ - echo $CMAKE_EXTRA_OPTIONS
+ - echo $CMAKE_SIMD_OPTIONS
+ - echo $CMAKE_GPU_OPTIONS
+ - echo $CMAKE_MPI_OPTIONS
+ - echo $CMAKE_PRECISION_OPTIONS
+ - echo $CMAKE_BUILD_TYPE_OPTIONS
+ - echo $CMAKE_GMXAPI_OPTIONS
+ - if [[ -d $BUILD_DIR ]] ; then
+ rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
+ else
+ echo "Preparing new build directory" ;
+ mkdir $BUILD_DIR ;
+ fi
+ - cd $BUILD_DIR
+ - $CMAKE ..
+ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
+ $CMAKE_COMPILER_SCRIPT
+ $CMAKE_EXTRA_OPTIONS
+ $CMAKE_SIMD_OPTIONS
+ $CMAKE_MPI_OPTIONS
+ $CMAKE_PRECISION_OPTIONS
+ $CMAKE_BUILD_TYPE_OPTIONS
+ $CMAKE_GPU_OPTIONS
+ $CMAKE_GMXAPI_OPTIONS
+ -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
+ 2>&1 | tee cmakeLog.log
+ - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
+ - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
+ - cd ..
+ artifacts:
+ when: always
+ paths:
+ - $BUILD_DIR
+
+.gromacs:base:release:configure:
+ extends:
+ - .variables:default
+ stage: release-configure
+ cache: {}
+ variables:
+ KUBERNETES_CPU_LIMIT: 1
+ KUBERNETES_CPU_REQUEST: 1
+ KUBERNETES_MEMORY_REQUEST: 2Gi
+ CMAKE_COMPILER_SCRIPT: ""
+ CMAKE_EXTRA_OPTIONS: ""
+ CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
+ CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
+ CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
+ CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
+ CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
+ CMAKE_REGRESSIONTEST_OPTIONS: "-DREGRESSIONTEST_PATH=../\\$RELEASE_REGRESSIONTESTS"
+ RELEASE_BUILD_DIR: release-builds
+ RELEASE_SOURCE: release-source-from-tarball
+ RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
+ script:
+ - CMAKE=${CMAKE:-$(which cmake)}
+ - VERSION=`cat version.json |
+ python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
+ - if [[ $GROMACS_RELEASE != "true" ]] ; then
+ VERSION=$VERSION-dev ;
+ fi
+ - SOURCENAME=gromacs-$VERSION
+ - SOURCETARBALL=$SOURCENAME.tar.gz
+ - REGTESTNAME=regressiontests-$VERSION
+ - REGTESTTARBALL=$REGTESTNAME.tar.gz
+ - echo "$SOURCETARBALL"
+ - echo "$REGTESTTARBALL"
+ - RELEASE_TARBALLS=release-tarballs
+ - rm -rf $RELEASE_TARBALLS $RELEASE_SOURCE $RELEASE_REGRESSIONTESTS && mkdir $RELEASE_TARBALLS
+ - mv $SOURCETARBALL $RELEASE_TARBALLS
+ - mv $REGTESTTARBALL $RELEASE_TARBALLS
+ - cd $RELEASE_TARBALLS
+ # We rename the source and regressiontest directories
+ # to have names for them that don't change for different versions.
+ - tar -xf $SOURCETARBALL
+ - mv $SOURCENAME ../$RELEASE_SOURCE
+ - tar -xf $REGTESTTARBALL
+ - mv $REGTESTNAME ../$RELEASE_REGRESSIONTESTS
+ - rm $SOURCETARBALL $REGTESTTARBALL
+ - cd ..
+ - echo $CMAKE_COMPILER_SCRIPT
+ - echo $CMAKE_EXTRA_OPTIONS
+ - echo $CMAKE_SIMD_OPTIONS
+ - echo $CMAKE_GPU_OPTIONS
+ - echo $CMAKE_MPI_OPTIONS
+ - echo $CMAKE_PRECISION_OPTIONS
+ - echo $CMAKE_BUILD_TYPE_OPTIONS
+ - echo $CMAKE_GMXAPI_OPTIONS
+ - if [[ -d $RELEASE_BUILD_DIR ]] ; then
+ echo "Cleaning up build directory" ;
+ rm -rf $RELEASE_BUILD_DIR && mkdir $RELEASE_BUILD_DIR ;
+ else
+ echo "Preparing new build directory" ;
+ mkdir $RELEASE_BUILD_DIR ;
+ fi
+ - cd $RELEASE_BUILD_DIR
+ - cmake ../$RELEASE_SOURCE/
+ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
+ $CMAKE_COMPILER_SCRIPT
+ $CMAKE_EXTRA_OPTIONS
+ $CMAKE_SIMD_OPTIONS
+ $CMAKE_MPI_OPTIONS
+ $CMAKE_PRECISION_OPTIONS
+ $CMAKE_BUILD_TYPE_OPTIONS
+ $CMAKE_GPU_OPTIONS
+ $CMAKE_GMXAPI_OPTIONS
+ $CMAKE_REGRESSIONTEST_OPTIONS
+ -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR
+ 2>&1 | tee cmakeLog.log
+ - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
+ - if [ -s cmakeErrors.log ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
+ - cd ..
+ artifacts:
+ when: always
+ paths:
+ - $RELEASE_BUILD_DIR
+ - $RELEASE_REGRESSIONTESTS
+ - $RELEASE_SOURCE
+
+.gromacs:base:build:
+ stage: build
+ script:
+ - CMAKE=${CMAKE:-$(which cmake)}
+ - cd $BUILD_DIR
+ - $CMAKE --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log
+ - $CMAKE --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log
+ - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log
+ | grep -v "CMake" | tee buildErrors.log || true
+ - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true
+ - $CMAKE --build . --target install 2>&1 | tee installBuildLogFile.log
+ - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
+ - for file in `find . -mindepth 1 -name "*.o" ! -type l` ; do echo $file ; rm $file ; done 2>&1 > remove-build-objects.log
+ - cd ..
+ artifacts:
+ when: always
+ paths:
+ - $BUILD_DIR
+ - $INSTALL_DIR/
+
+.gromacs:static-analyzer-build:
+ stage: build
+ script:
+ - CMAKE=${CMAKE:-$(which cmake)}
+ - cd $BUILD_DIR
+ - scan-build -o scan_html $CMAKE --build . -- -j8 2>&1 | tee buildLogFile.log
+ - awk '/warning/,/warning.*generated|^$/' buildLogFile.log
+ | grep -v "CMake" | tee buildErrors.log || true
+ - grep "cannot be built" buildLogFile.log | tee -a buildErrors.log || true
+ - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
+ - cd ..
+ artifacts:
+ when: always
+ paths:
+ - $BUILD_DIR/scan_html
+
+.gromacs:base:test:
+ extends:
+ - .variables:default
+ stage: test
+ cache: {}
+ retry:
+ max: 1
+ variables:
+ CTEST_RUN_MODE: "ExperimentalTest"
+ script:
+ - CMAKE=${CMAKE:-$(which cmake)}
+ - cd $BUILD_DIR
+ - export UBSAN_OPTIONS=halt_on_error=1:print_stacktrace=1:suppressions=$CI_PROJECT_DIR/admin/ubsan-suppressions.txt
+ # Needed to run MPI enabled code in the docker images, until we set up different users
+ - export OMPI_ALLOW_RUN_AS_ROOT=1
+ - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
+ - export ASAN_OPTIONS="check_initialization_order=1:detect_invalid_pointer_pairs=1:strict_init_order=true:strict_string_checks=true:detect_stack_use_after_return=true"
+ # If $GMX_TEST_REQUIRED_NUMBER_OF_DEVICES is not set and we have GPUs, set it
+ - if [ -z $GMX_TEST_REQUIRED_NUMBER_OF_DEVICES ] && [ -n $KUBERNETES_EXTENDED_RESOURCE_NAME ] ; then
+ if grep -q '/gpu$' <<< "$KUBERNETES_EXTENDED_RESOURCE_NAME"; then
+ echo "export GMX_TEST_REQUIRED_NUMBER_OF_DEVICES=\"$KUBERNETES_EXTENDED_RESOURCE_LIMIT\"";
+ export GMX_TEST_REQUIRED_NUMBER_OF_DEVICES="$KUBERNETES_EXTENDED_RESOURCE_LIMIT";
+ fi
+ fi
+ - if grep -qF 'nvidia.com/gpu' <<< "$KUBERNETES_EXTENDED_RESOURCE_NAME"; then
+ nvidia-smi || true;
+ fi
+ - ctest -D $CTEST_RUN_MODE --output-on-failure | tee ctestLog.log || true
+ - awk '/The following tests FAILED/,/^Errors while running CTest|^$/'
+ ctestLog.log | tee ctestErrors.log
+ - xsltproc $CI_PROJECT_DIR/scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/*.xml > JUnitTestResults.xml
+ - if [ -s ctestErrors.log ] ; then
+ echo "Error during running ctest";
+ exit 1;
+ fi
+ - cd ..
+ artifacts:
+ reports:
+ junit: $BUILD_DIR/JUnitTestResults.xml
+ paths:
+ - $BUILD_DIR/Testing
+ - $BUILD_DIR/tests
+ when: always
+ expire_in: 1 week
+
+.gromacs:base:regressiontest:
+ extends:
+ - .variables:default
+ variables:
+ KUBERNETES_CPU_LIMIT: 4
+ KUBERNETES_CPU_REQUEST: 4
+ KUBERNETES_MEMORY_REQUEST: 4Gi
+ REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
+ REGRESSIONTEST_OMP_RANK_NUMBER: 2
+ REGRESSIONTEST_PME_RANK_NUMBER: 1
+ REGRESSIONTEST_MPI_RUN_COMMAND: ""
+ REGRESSIONTEST_DOUBLE: ""
+ REGRESSIONTEST_PARALLEL: "-nt"
+ stage: test
+ cache: {}
+ retry:
+ max: 1
+ script:
+ - export LSAN_OPTIONS="suppressions=$CI_PROJECT_DIR/admin/lsan-suppressions.txt:print_suppressions=0"
+ - export ASAN_OPTIONS="check_initialization_order=1:detect_invalid_pointer_pairs=1:strict_init_order=true:strict_string_checks=true:detect_stack_use_after_return=true"
+ # Needed to run MPI enabled code in the docker images, until we set up different users
+ - export OMPI_ALLOW_RUN_AS_ROOT=1
+ - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
+ - tar xzf gmx-regressiontests.tar.gz
+ - source $INSTALL_DIR/bin/GMXRC
+ - cd regressiontests
+ - perl gmxtest.pl $REGRESSIONTEST_PARALLEL $REGRESSIONTEST_TOTAL_RANK_NUMBER -ntomp $REGRESSIONTEST_OMP_RANK_NUMBER -npme $REGRESSIONTEST_PME_RANK_NUMBER $REGRESSIONTEST_DOUBLE $REGRESSIONTEST_MPI_RUN_COMMAND -xml all
+ artifacts:
+ paths:
+ - regressiontests/gmxtest.xml
+ when: always
+ expire_in: 1 week
+
+include:
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.clang-8-cuda-10.0.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.clang-8-cuda-10.1-release.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.clang-8.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.clang-9-mpi.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.clang-9-release.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.clang-ASAN.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.clang-static-analyzer.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.clang-TSAN.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.clang-UBSAN.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.gcc-10.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.gcc-7-cuda-10.2.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.gcc-8-cuda-11.0.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.gcc-8-cuda-11.0-release.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.gcc-9-release.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.icc-2021.1.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.oneapi-2021.1.1-opencl.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.oneapi-2021.1.1-opencl-release.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.oneapi-2021.1.1-sycl.gitlab-ci.yml'
+
--- /dev/null
+# Test goal: Clang-CUDA build
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# GPU: Clang CUDA
+# HW: NVIDIA GPU
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: RelWithDebInfo
+# Compiler: Clang 8
+# MPI: thread_MPI
+# GPU: Clang CUDA 10.0, CUDA 10.0
+# SIMD: AVX2_256, no kernels
+# FFT: FFTW3
+# Parallelism nt/ntomp: 4/2 (unit tests)
+# Parallelism nt/ntomp: 2/1 (regression tests)
+
+gromacs:clang-8-cuda-10.0:configure:
+ extends:
+ - .gromacs:base:configure
+ - .use-clang:base
+ - .use-cuda
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ CMAKE_SIMD_OPTIONS: "-DGMX_USE_SIMD_KERNELS=off"
+ CMAKE_EXTRA_OPTIONS: "-DGMX_CLANG_CUDA=ON"
+ CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
+ COMPILER_MAJOR_VERSION: 8
+
+gromacs:clang-8-cuda-10.0:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .use-clang:base
+ - .use-ccache
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ needs:
+ - job: gromacs:clang-8-cuda-10.0:configure
+
+gromacs:clang-8-cuda-10.0:test:
+ extends:
+ - .gromacs:base:test
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-8-cuda-10.0:build
+
+gromacs:clang-8-cuda-10.0:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ REGRESSIONTEST_PME_RANK_NUMBER: 0
+ REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
+ REGRESSIONTEST_OMP_RANK_NUMBER: 1
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-8-cuda-10.0:build
+ - job: regressiontests:prepare
--- /dev/null
+# Test goal: old Clang with old CUDA
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# GPU: CUDA oldest supported
+# HW: NVIDIA GPU
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: RelWithAssert
+# Compiler: Clang 8
+# GPU: CUDA 10.1
+# MPI: thread_MPI
+# SIMD: AVX2_256
+# FFT: FFTW3
+# Parallelism nt/ntomp: 4/2 (unit tests)
+# Parallelism nt/ntomp: 2/1 (regression tests)
+
+gromacs:clang-8-cuda-10.1:release:configure:
+ extends:
+ - .gromacs:base:release:configure
+ - .use-clang:base
+ - .use-cuda
+ - .rules:nightly-only-for-release
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1
+ variables:
+ COMPILER_MAJOR_VERSION: 8
+ RELEASE_BUILD_DIR: release-builds-clang
+ CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
+
+gromacs:clang-8-cuda-10.1:release:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .before_script:default
+ - .use-ccache
+ - .rules:nightly-only-for-release
+ stage: release-build
+ variables:
+ BUILD_DIR: release-builds-clang
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1
+ needs:
+ - job: gromacs:clang-8-cuda-10.1:release:configure
+
+gromacs:clang-8-cuda-10.1:release:test:
+ extends:
+ - .gromacs:base:test
+ - .rules:nightly-only-for-release
+ stage: release-tests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1
+ variables:
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ BUILD_DIR: release-builds-clang
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-8-cuda-10.1:release:configure
+ - job: gromacs:clang-8-cuda-10.1:release:build
+
+gromacs:clang-8-cuda-10.1:release:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:nightly-only-for-release
+ stage: release-tests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.1
+ variables:
+ BUILD_DIR: release-builds-clang
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ REGRESSIONTEST_PME_RANK_NUMBER: 0
+ REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
+ REGRESSIONTEST_OMP_RANK_NUMBER: 1
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-8-cuda-10.1:release:build
+ - job: regressiontests:package
+
--- /dev/null
+# Test goal: Simple Clang build with no GPU
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: Clang
+# GPU: no
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: Debug
+# Compiler: Clang 8
+# MPI: thread_MPI
+# SIMD: AVX2_256
+# FFT: FFTW3
+# Parallelism nt/ntomp: 4/2
+
+gromacs:clang-8:configure:
+ extends:
+ - .gromacs:base:configure
+ - .use-clang:base
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
+ variables:
+ COMPILER_MAJOR_VERSION: 8
+
+gromacs:clang-8:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .before_script:default
+ - .use-ccache
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
+ needs:
+ - job: gromacs:clang-8:configure
+
+gromacs:clang-8:test:
+ extends:
+ - .gromacs:base:test
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
+ needs:
+ - job: gromacs:clang-8:build
+
+gromacs:clang-8:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-cuda-10.0
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-8:build
+ - job: regressiontests:prepare
+
--- /dev/null
+# Test goal: Clang build with MPI and double precision
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: Clang
+# GPU: no
+# MPI: OpenMPI
+# Features: double precision FP
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: Debug
+# Compiler: Clang 9
+# MPI: OpenMPI 3.1
+# SIMD: AVX2_256
+# FFT: FFTW3
+# Parallelism np/ntomp: 4/2
+
+gromacs:clang-9-mpi:configure:
+ extends:
+ - .gromacs:base:configure
+ - .use-clang:base
+ - .use-mpi
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ COMPILER_MAJOR_VERSION: 9
+ CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON
+
+gromacs:clang-9-mpi:build:
+ # Test using configuration: gromacs:clang-9-mpi:configure
+ # Test scope: build
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .before_script:default
+ - .use-ccache
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ needs:
+ - job: gromacs:clang-9-mpi:configure
+
+gromacs:clang-9-mpi:test:
+ extends:
+ - .gromacs:base:test
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-9-mpi:build
+
+gromacs:clang-9:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ REGRESSIONTEST_DOUBLE: "-double"
+ REGRESSIONTEST_PARALLEL: "-np"
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-9-mpi:build
+ - job: regressiontests:prepare
+
--- /dev/null
+# Test goal: Release build with Clang, MPI, and double-precision
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: Clang
+# MPI: OpenMPI
+# GPU: no
+# Features: double precision FP
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: RelWithAssert
+# Compiler: Clang 9
+# MPI: OpenMPI 3.1
+# SIMD: AVX2_256
+# FFT: FFTW3
+# Parallelism np/ntomp: 4/2
+
+gromacs:clang-9:release:configure:
+ extends:
+ - .gromacs:base:release:configure
+ - .use-clang:base
+ - .use-mpi
+ - .rules:nightly-only-for-release
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ COMPILER_MAJOR_VERSION: 9
+ RELEASE_BUILD_DIR: release-builds-clang
+ CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=ON"
+ CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
+ dependencies:
+ - archive:package
+ - regressiontests:package
+ - prepare-release-version
+
+gromacs:clang-9:release:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .before_script:default
+ - .use-ccache
+ - .rules:nightly-only-for-release
+ stage: release-build
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ BUILD_DIR: release-builds-clang
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
+ needs:
+ - job: gromacs:clang-9:release:configure
+
+gromacs:clang-9:release:test:
+ extends:
+ - .gromacs:base:test
+ - .rules:nightly-only-for-release
+ stage: release-tests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ BUILD_DIR: release-builds-clang
+ needs:
+ - job: gromacs:clang-9:release:configure
+ - job: gromacs:clang-9:release:build
+
+gromacs:clang-9:release:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:nightly-only-for-release
+ stage: release-tests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-9
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ BUILD_DIR: release-builds-clang
+ REGRESSIONTEST_DOUBLE: "-double"
+ REGRESSIONTEST_PARALLEL: "-np"
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-9:release:build
+ - job: regressiontests:package
+
--- /dev/null
+# Test goal: Clang AddressSanitizer build
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: Clang
+# Build type: ASAN
+# GPU: no
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Compiler: Clang 8
+# MPI: thread_MPI
+# SIMD: AVX2_256
+# FFT: FFTW3
+# Parallelism nt/ntomp: 4/2
+
+gromacs:clang-ASAN:configure:
+ extends:
+ - .gromacs:base:configure
+ - .use-clang:base
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ COMPILER_MAJOR_VERSION: 8
+ CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=ASAN"
+
+gromacs:clang-ASAN:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .use-clang:base
+ - .use-ccache
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-ASAN:configure
+
+gromacs:clang-ASAN:test:
+ extends:
+ - .gromacs:base:test
+ - .use-clang:base
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ CTEST_RUN_MODE: "ExperimentalMemCheck"
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-ASAN:build
+
+gromacs:clang-ASAN:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .use-clang:base
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-ASAN:build
+ - job: regressiontests:prepare
+
--- /dev/null
+# Test goal: Clang ThreadSanitizer
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: Clang
+# Build type: TSAN
+# GPU: None
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Compiler: Clang 8
+# MPI: thread_MPI
+# SIMD: AVX2_256
+# FFT: FFTW3
+# Parallelism nt/ntomp: 4/2
+
+gromacs:clang-TSAN:configure:
+ extends:
+ - .gromacs:base:configure
+ - .use-clang:base
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ COMPILER_MAJOR_VERSION: 8
+ CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=TSAN"
+
+gromacs:clang-TSAN:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .use-clang:base
+ - .use-ccache
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ needs:
+ - job: gromacs:clang-TSAN:configure
+
+gromacs:clang-TSAN:test:
+ extends:
+ - .gromacs:base:test
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ needs:
+ - job: gromacs:clang-TSAN:build
+
+gromacs:clang-TSAN:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-TSAN:build
+ - job: regressiontests:prepare
+
--- /dev/null
+# Test goal: Clang UndefinedBehaviorSanitizer build
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: Clang
+# Build type: UBSAN
+# GPU: no
+# Scope: configure, build, unit tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Compiler: Clang 8
+# MPI: thread_MPI
+# SIMD: AVX2_256
+# FFT: FFTW3
+# Parallelism nt/ntomp: 4/2
+
+gromacs:clang-UBSAN:configure:
+ extends:
+ - .gromacs:base:configure
+ - .use-clang:base
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ COMPILER_MAJOR_VERSION: 8
+ CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=UBSAN"
+
+gromacs:clang-UBSAN:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .use-clang:base
+ - .use-ccache
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-UBSAN:configure
+
+gromacs:clang-UBSAN:test:
+ extends:
+ - .gromacs:base:test
+ - .use-clang:base
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-UBSAN:build
+
--- /dev/null
+# Test goal: Clang static analyzer build
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: Clang
+# Build type: Static Analuzer
+# GPU: no
+# SIMD: no
+# FFT: fftpack
+# MPI: thread_MPI
+# Scope: configure, build
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Compiler: Clang 8
+
+gromacs:clang-static-analyzer:configure:
+ extends:
+ - .gromacs:base:configure
+ - .use-clang:base
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ CMAKE_COMPILER_SCRIPT: "-DCMAKE_CXX_COMPILER=/usr/local/libexec/c++-analyzer -DCMAKE_C_COMPILER=gcc"
+ CMAKE_EXTRA_OPTIONS: "-DGMX_CLANG_ANALYZER=ON -DGMX_OPENMP=OFF -DGMX_USE_RDTSCP=OFF -DGMX_FFT_LIBRARY=fftpack -DGMX_DEVELOPER_BUILD=ON"
+ CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
+
+gromacs:clang-static-analyzer:build:
+ extends:
+ - .variables:default
+ - .gromacs:static-analyzer-build
+ - .use-clang:base
+ - .use-ccache
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-llvm-8-tsan
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:clang-static-analyzer:configure
+
--- /dev/null
+# Test goal: newest GCC with OpenCL
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu newest supported
+# Compiler: GCC newest supported
+# GPU: OpenCL
+# FFT: CLFFT
+# HW: AMD GPU
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 20.04
+# Build type: Debug
+# Compiler: GCC 10
+# MPI: thread_MPI
+# SIMD: AVX2_256
+# Parallelism nt/ntomp: 4/2 (unit tests)
+# Parallelism nt/ntomp: 2/1 (regression tests)
+
+gromacs:gcc-10:configure:
+ extends:
+ - .gromacs:base:configure
+ - .use-gcc:base
+ - .use-opencl
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-10
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
+ CMAKE_EXTRA_OPTIONS: "-DGMX_EXTERNAL_CLFFT=ON"
+ COMPILER_MAJOR_VERSION: 10
+
+gromacs:gcc-10:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .before_script:default
+ - .use-ccache
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-10
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ needs:
+ - job: gromacs:gcc-10:configure
+
+gromacs:gcc-10:test:
+ extends:
+ - .gromacs:base:test
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-10
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:gcc-10:build
+
+gromacs:gcc-10:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-10
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ REGRESSIONTEST_PME_RANK_NUMBER: 0
+ REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
+ REGRESSIONTEST_OMP_RANK_NUMBER: 1
+ LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:gcc-10:build
+ - job: regressiontests:prepare
+
--- /dev/null
+# Test goal: old versions of GCC with CUDA; GPU communications with tMPI
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: GCC oldest supported
+# GPU: CUDA oldest supported
+# HW: NVIDIA GPU, dual NVIDIA GPU
+# MPI: thread_MPI
+# Features: GPU direct communications + update (unit tests)
+# Features: GPU direct communications + update (regression tests with dual GPU)
+# Features: GPU update (regression tests with dual GPU)
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: Debug
+# Compiler: GCC 7
+# GPU: CUDA 10.2
+# SIMD: SSE 4.1
+# FFT: FFTW3
+# Parallelism nt/ntomp: 4/2 (unit tests)
+# Parallelism nt/ntomp: 2/1 (regression tests)
+# Parallelism nt/ntomp: 4/1 (regression tests with dual GPU)
+
+gromacs:gcc-7-cuda-10.2:configure:
+ extends:
+ - .gromacs:base:configure
+ - .use-gcc:base
+ - .use-cuda
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
+ COMPILER_MAJOR_VERSION: 7
+
+gromacs:gcc-7-cuda-10.2:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .before_script:default
+ - .use-ccache
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ needs:
+ - job: gromacs:gcc-7-cuda-10.2:configure
+
+gromacs:gcc-7-cuda-10.2:test:
+ extends:
+ - .gromacs:base:test
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:gcc-7-cuda-10.2:build
+
+gromacs:gcc-7-cuda-10.2:test-gpucommupd:
+ extends:
+ - .gromacs:base:test
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ GMX_GPU_DD_COMMS: 1
+ GMX_GPU_PME_PP_COMMS: 1
+ GMX_FORCE_UPDATE_DEFAULT_GPU: 1
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:gcc-7-cuda-10.2:build
+
+gromacs:gcc-7-cuda-10.2:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ REGRESSIONTEST_PME_RANK_NUMBER: 0
+ REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
+ REGRESSIONTEST_OMP_RANK_NUMBER: 1
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:gcc-7-cuda-10.2:build
+ - job: regressiontests:prepare
+
+gromacs:gcc-7-cuda-10.2:regressiontest-gpucommupd-tMPI:
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
+ REGRESSIONTEST_PME_RANK_NUMBER: 0
+ REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
+ REGRESSIONTEST_OMP_RANK_NUMBER: 1
+ GMX_GPU_DD_COMMS: 1
+ GMX_GPU_PME_PP_COMMS: 1
+ GMX_FORCE_UPDATE_DEFAULT_GPU: 1
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:gcc-7-cuda-10.2:build
+ - job: regressiontests:prepare
+ artifacts:
+ paths:
+ - regressiontests
+ when: always
+ expire_in: 1 week
+
+gromacs:gcc-7-cuda-10.2:regressiontest-upd-tMPI:
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
+ variables:
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
+ REGRESSIONTEST_PME_RANK_NUMBER: 0
+ REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
+ REGRESSIONTEST_OMP_RANK_NUMBER: 1
+ GMX_FORCE_UPDATE_DEFAULT_GPU: 1
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:gcc-7-cuda-10.2:build
+ - job: regressiontests:prepare
+ artifacts:
+ paths:
+ - regressiontests
+ when: always
+ expire_in: 1 week
--- /dev/null
+# Test goal: GCC with newest CUDA; Mdrun-only build
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# GPU: CUDA newest supported
+# HW: NVIDIA GPU
+# Features: Mdrun-only build
+# Scope: configure, build, unit tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: RelWithAssert
+# Compiler: GCC 8
+# MPI: thread_MPI
+# GPU: CUDA 11.0
+# SIMD: AVX2_256
+# FFT: FFTW3
+# Parallelism nt/ntomp: 4/2 (unit tests)
+
+gromacs:gcc-8-cuda-11.0:release:configure:
+ extends:
+ - .gromacs:base:release:configure
+ - .use-gcc:base
+ - .use-mpi
+ - .use-cuda
+ - .rules:nightly-only-for-release
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ COMPILER_MAJOR_VERSION: 8
+ RELEASE_BUILD_DIR: release-builds-gcc
+ CMAKE_EXTRA_OPTIONS: "-DGMX_BUILD_MDRUN_ONLY=ON"
+ CMAKE_BUILD_TYPE_OPTIONS : "-DCMAKE_BUILD_TYPE=RelWithAssert"
+ CMAKE_REGRESSIONTEST_OPTIONS: ""
+ dependencies:
+ - archive:package
+ - regressiontests:package
+ - prepare-release-version
+
+gromacs:gcc-8-cuda-11.0:release:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .before_script:default
+ - .use-ccache
+ - .rules:nightly-only-for-release
+ stage: release-build
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ BUILD_DIR: release-builds-gcc
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
+ needs:
+ - job: gromacs:gcc-8-cuda-11.0:release:configure
+
+gromacs:gcc-8-cuda-11.0:release:test:
+ extends:
+ - .gromacs:base:test
+ - .rules:nightly-only-for-release
+ stage: release-tests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ BUILD_DIR: release-builds-gcc
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:gcc-8-cuda-11.0:release:configure
+ - job: gromacs:gcc-8-cuda-11.0:release:build
+
--- /dev/null
+# Test goal: CUDA GPU communications with OpenMPI
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# GPU: CUDA newest supported
+# HW: dual NVIDIA GPU
+# MPI: OpenMPI
+# Features: GPU direct communications + update (regression tests with dual GPU)
+# Scope: configure, build, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: RelWithDebInfo
+# Compiler: GCC 8
+# GPU: CUDA 11.0
+# SIMD: SSE 4.1
+# FFT: FFTW3
+# Parallelism np/ntomp: 4/1 (regression tests with dual GPU)
+
+gromacs:gcc-8-cuda-11.0:configureMPI:
+ extends:
+ - .gromacs:base:configure
+ - .use-gcc:base
+ - .use-cuda
+ - .use-mpi
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
+ COMPILER_MAJOR_VERSION: 8
+
+gromacs:gcc-8-cuda-11.0:buildMPI:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .before_script:default
+ - .use-ccache
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ needs:
+ - job: gromacs:gcc-8-cuda-11.0:configureMPI
+
+gromacs:gcc-8-cuda-11.0:regressiontest-gpucommupd-MPI:
+ # Test parallelism np/ntomp: 4/1
+ # Test parallelism GPU: direct communications, update
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-8-cuda-11.0
+ variables:
+ CMAKE: /usr/local/cmake-3.15.7/bin/cmake
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
+ REGRESSIONTEST_PME_RANK_NUMBER: 0
+ REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
+ REGRESSIONTEST_OMP_RANK_NUMBER: 1
+ REGRESSIONTEST_PARALLEL: "-np"
+ GMX_GPU_DD_COMMS: 1
+ GMX_GPU_PME_PP_COMMS: 1
+ GMX_FORCE_UPDATE_DEFAULT_GPU: 1
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:gcc-8-cuda-11.0:buildMPI
+ - job: regressiontests:prepare
+ artifacts:
+ paths:
+ - regressiontests
+ when: always
+ expire_in: 1 week
+
--- /dev/null
+# Test goal: Release build with GCC and OpenCL
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: GCC
+# GPU: OpenCL
+# HW: AMD GPU
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: RelWithAssert
+# Compiler: GCC 9
+# MPI: thread_MPI
+# SIMD: AVX2_256
+# FFT: FFTW3
+# Parallelism nt/ntomp: 4/2
+
+gromacs:gcc-9:release:configure:
+ extends:
+ - .gromacs:base:release:configure
+ - .use-gcc:base
+ - .use-opencl
+ - .rules:nightly-only-for-release
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-9
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ COMPILER_MAJOR_VERSION: 9
+ RELEASE_BUILD_DIR: release-builds-gcc
+ CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
+ dependencies:
+ - archive:package
+ - regressiontests:package
+ - prepare-release-version
+
+gromacs:gcc-9:release:build:
+ # Test using configuration: gromacs:gcc-9:release:configure
+ # Test scope: build
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .before_script:default
+ - .use-ccache
+ - .rules:nightly-only-for-release
+ stage: release-build
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ BUILD_DIR: release-builds-gcc
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-9
+ needs:
+ - job: gromacs:gcc-9:release:configure
+
+gromacs:gcc-9:release:test:
+ extends:
+ - .gromacs:base:test
+ - .rules:nightly-only-for-release
+ stage: release-tests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-9
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ BUILD_DIR: release-builds-gcc
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:gcc-9:release:configure
+ - job: gromacs:gcc-9:release:build
+
+gromacs:gcc-9:release:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .rules:nightly-only-for-release
+ stage: release-tests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-9
+ variables:
+ CMAKE: /usr/local/cmake-3.13.0/bin/cmake
+ BUILD_DIR: release-builds-gcc
+ KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
+ KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
+ LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
+ tags:
+ - k8s-scilifelab
+ needs:
+ - job: gromacs:gcc-9:release:build
+ - job: regressiontests:package
+
--- /dev/null
+# Test goal: Newest ICC CPU-only build
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: ICC newest supported
+# FFT: MKL
+# GPU: no
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: Debug
+# Compiler: ICC 2021.1
+# MPI: thread_MPI
+# SIMD: AVX2_256
+# Parallelism nt/ntomp: 4/2
+
+gromacs:icc-2021.1:configure:
+ # Test SIMD: AVX2_256
+ # Test FFT: MKL
+ # Test scope: configure
+ extends:
+ - .gromacs:base:configure
+ - .use-icc-oneapi:base
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ COMPILER_MAJOR_VERSION: 2021
+
+gromacs:icc-2021.1:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .use-icc-oneapi:base
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ needs:
+ - job: gromacs:icc-2021.1:configure
+
+gromacs:icc-2021.1:test:
+ extends:
+ - .gromacs:base:test
+ - .use-icc-oneapi:base
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ needs:
+ - job: gromacs:icc-2021.1:build
+
+gromacs:icc-2021.1:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .use-icc-oneapi:base
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ needs:
+ - job: gromacs:icc-2021.1:build
+ - job: regressiontests:prepare
+
--- /dev/null
+# Test goal: Newest ICPX build with OpenCL, release build
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: ICPX newest supported
+# Build type: RelWithAssert
+# FFT: MKL
+# GPU: OpenCL
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Compiler: ICPX 2021.1
+# MPI: thread_MPI
+# SIMD: AVX2_256
+# Parallelism nt/ntomp: 4/2 (unit tests)
+# Parallelism nt/ntomp: 2/1 (regression tests)
+
+gromacs:oneapi-2021.1.1-opencl:release:configure:
+ extends:
+ - .gromacs:base:release:configure
+ - .use-oneapi:base
+ - .use-opencl
+ - .rules:nightly-only-for-release
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ COMPILER_MAJOR_VERSION: 2021
+ RELEASE_BUILD_DIR: release-builds-oneapi
+
+gromacs:oneapi-2021.1.1-opencl:release:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .use-oneapi:base
+ - .use-opencl
+ - .use-ccache
+ - .rules:nightly-only-for-release
+ stage: release-build
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ BUILD_DIR: release-builds-oneapi
+ COMPILER_MAJOR_VERSION: 2021
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ needs:
+ - job: gromacs:oneapi-2021.1.1-opencl:release:configure
+
+gromacs:oneapi-2021.1.1-opencl:release:test:
+ extends:
+ - .gromacs:base:test
+ - .use-oneapi:base
+ - .rules:nightly-only-for-release
+ stage: release-tests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ BUILD_DIR: release-builds-oneapi
+ needs:
+ - job: gromacs:oneapi-2021.1.1-opencl:release:configure
+ - job: gromacs:oneapi-2021.1.1-opencl:release:build
+
+gromacs:oneapi-2021.1.1-opencl:release:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .use-oneapi:base
+ - .rules:nightly-only-for-release
+ stage: release-tests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ BUILD_DIR: release-builds-oneapi
+ REGRESSIONTEST_PME_RANK_NUMBER: 0
+ REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
+ REGRESSIONTEST_OMP_RANK_NUMBER: 1
+ needs:
+ - job: gromacs:oneapi-2021.1.1-opencl:release:build
+ - job: regressiontests:package
--- /dev/null
+# Test goal: Newest ICPX build with OpenCL
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: ICPX newest supported
+# FFT: MKL
+# GPU: OpenCL
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: Debug
+# Compiler: ICPX 2021.1
+# MPI: thread_MPI
+# SIMD: AVX2_256
+# Parallelism nt/ntomp: 4/2
+
+gromacs:oneapi-2021.1.1-opencl:configure:
+ extends:
+ - .gromacs:base:configure
+ - .use-oneapi:base
+ - .use-opencl
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ COMPILER_MAJOR_VERSION: 2021
+
+gromacs:oneapi-2021.1.1-opencl:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .use-ccache
+ - .use-oneapi:base
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ needs:
+ - job: gromacs:oneapi-2021.1.1-opencl:configure
+
+gromacs:oneapi-2021.1.1-opencl:test:
+ extends:
+ - .gromacs:base:test
+ - .use-oneapi:base
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ needs:
+ - job: gromacs:oneapi-2021.1.1-opencl:build
+
+gromacs:oneapi-2021.1.1-opencl:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .use-oneapi:base
+ - .rules:merge-requests
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ needs:
+ - job: gromacs:oneapi-2021.1.1-opencl:build
+ - job: regressiontests:prepare
+
--- /dev/null
+# Test goal: Newest ICPX build with SYCL
+# Test intents (should change rarely and conservatively):
+# OS: Ubuntu oldest supported
+# Compiler: ICPX newest supported
+# FFT: MKL
+# GPU: SYCL
+# Scope: configure, build, unit tests, regression tests
+# Test implementation choices (free to change as needed):
+# OS: Ubuntu 18.04
+# Build type: Debug
+# Compiler: ICPX 2021.1
+# MPI: thread_MPI
+# SIMD: AVX2_256
+# Parallelism nt/ntomp: 4/2
+
+gromacs:oneapi-2021.1.1-sycl:configure:
+ extends:
+ - .gromacs:base:configure
+ - .use-oneapi:base
+ - .use-sycl
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ COMPILER_MAJOR_VERSION: 2021
+
+gromacs:oneapi-2021.1.1-sycl:build:
+ extends:
+ - .variables:default
+ - .gromacs:base:build
+ - .use-ccache
+ - .use-oneapi:base
+ - .rules:merge-and-post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ needs:
+ - job: gromacs:oneapi-2021.1.1-sycl:configure
+
+gromacs:oneapi-2021.1.1-sycl:test:
+ extends:
+ - .gromacs:base:test
+ - .use-oneapi:base
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ needs:
+ - job: gromacs:oneapi-2021.1.1-sycl:build
+
+gromacs:oneapi-2021.1.1-sycl:regressiontest:
+ extends:
+ - .gromacs:base:regressiontest
+ - .use-oneapi:base
+ - .rules:post-merge-acceptance
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-oneapi-2021.1.1
+ variables:
+ CMAKE: /usr/local/cmake-3.17.2/bin/cmake
+ needs:
+ - job: gromacs:oneapi-2021.1.1-sycl:build
+ - job: regressiontests:prepare
+
appropriate value instead of ``xxx`` :
* ``-DCMAKE_C_COMPILER=xxx`` equal to the name of the C99 `Compiler`_ you wish to use (or the environment variable ``CC``)
-* ``-DCMAKE_CXX_COMPILER=xxx`` equal to the name of the C++98 `compiler`_ you wish to use (or the environment variable ``CXX``)
+* ``-DCMAKE_CXX_COMPILER=xxx`` equal to the name of the C++17 `compiler`_ you wish to use (or the environment variable ``CXX``)
* ``-DGMX_MPI=on`` to build using `MPI support`_ (generally good to combine with `building only mdrun`_)
* ``-DGMX_GPU=CUDA`` to build with NVIDIA CUDA support enabled.
* ``-DGMX_GPU=OpenCL`` to build with OpenCL_ support enabled.
``-DGMX_GPLUSPLUS_PATH=/path/to/g++``.
On Windows with the Intel compiler, the MSVC standard library is used,
-and at least MSVC 2017 15.7 is required. Load the enviroment variables with
+and at least MSVC 2017 15.7 is required. Load the environment variables with
vcvarsall.bat.
To build with clang and llvm's libcxx standard library, use