From d829923aa2dbb76d1b7276868e37af6dcaa8bbe4 Mon Sep 17 00:00:00 2001 From: "Joshua A. Anderson" Date: Mon, 3 Jun 2024 11:31:36 -0400 Subject: [PATCH 1/7] Update CI test matrix. --- .github/workflows/release.yml | 2 +- .../workflows/templates/configurations.yml | 30 +++--- .github/workflows/templates/workflow.yml | 2 +- .github/workflows/test.yml | 96 ++++++++----------- 4 files changed, 57 insertions(+), 73 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eaba8faca3..4507612bc8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,7 +36,7 @@ jobs: name: Build release tarball runs-on: ubuntu-latest container: - image: glotzerlab/ci:2024.03.01-ubuntu20.04 + image: glotzerlab/ci:2024.06.03-ubuntu20.04 steps: - name: Checkout diff --git a/.github/workflows/templates/configurations.yml b/.github/workflows/templates/configurations.yml index 5c6a18d09f..9f66fd9c0d 100644 --- a/.github/workflows/templates/configurations.yml +++ b/.github/workflows/templates/configurations.yml @@ -3,11 +3,11 @@ # - config: a string encoded list containing the docker image name and any number of build options. # - The build options are `mpi`, `tbb`, `llvm`, `nomd`, and `nohpmc`. unit_test_configurations: -- config: "[clang14_py311, mpi, tbb, llvm]" -- config: "[gcc13_py312]" -- config: "[gcc13_py312, nomd]" -- config: "[gcc13_py312, nohpmc]" -- config: "[gcc13_py312, nomd, nohpmc]" +- config: "[clang18_py312, mpi, tbb, llvm]" +- config: "[gcc14_py312]" +- config: "[gcc14_py312, nomd]" +- config: "[gcc14_py312, nohpmc]" +- config: "[gcc14_py312, nomd, nohpmc]" - config: "[cuda120_gcc11_py310, mpi, llvm, debug]" - config: "[cuda120_gcc11_py310, mpi, llvm]" - config: "[cuda120_gcc11_py310]" @@ -16,28 +16,24 @@ unit_test_configurations: # Configurations on which to run longer validation tests. Must be a subset of # `unit_test_configurations` validate_configurations: -- config: "[clang14_py311, mpi, tbb, llvm]" -- config: "[gcc13_py312]" +- config: "[clang18_py311, mpi, tbb, llvm]" +- config: "[gcc14_py312]" - config: "[cuda120_gcc11_py310, mpi, llvm]" - config: "[cuda120_gcc11_py310]" # Configurations to build and test only rarely, such as just before a release. # There should be no overlap between this list and `unit_test_configurations` release_test_configurations: -- config: "[gcc12_py311]" -- config: "[clang16_py311, mpi, llvm]" -- config: "[clang15_py311, mpi, llvm]" +- config: "[clang17_py312, mpi, llvm]" +- config: "[clang16_py312, mpi, llvm]" +- config: "[clang15_py312, mpi, llvm]" +- config: "[clang14_py311, mpi, llvm]" - config: "[clang13_py310, llvm]" - config: "[clang12_py310, llvm]" - config: "[clang11_py310, llvm]" +- config: "[gcc13_py312]" +- config: "[gcc12_py311]" - config: "[gcc11_py310]" - config: "[gcc10_py310]" - config: "[cuda118_gcc11_py310, mpi, llvm]" - config: "[cuda117_gcc11_py310, mpi, llvm]" -- config: "[cuda116_gcc9_py38, mpi, llvm]" -- config: "[cuda115_gcc9_py38, mpi, llvm]" -- config: "[cuda114_gcc9_py38, mpi, llvm]" -- config: "[cuda113_gcc9_py38, mpi, llvm]" -- config: "[cuda112_gcc9_py38, mpi, llvm]" -- config: "[cuda111_gcc9_py38, mpi, llvm]" -- config: "[clang10_py38, llvm]" diff --git a/.github/workflows/templates/workflow.yml b/.github/workflows/templates/workflow.yml index 50a4551c14..6d828a522e 100644 --- a/.github/workflows/templates/workflow.yml +++ b/.github/workflows/templates/workflow.yml @@ -1,5 +1,5 @@ <% block name %><% endblock %> -<% set container_prefix="glotzerlab/ci:2024.03.01" %> +<% set container_prefix="glotzerlab/ci:2024.06.03" %> <% block concurrency %> concurrency: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f1f62a94ad..64b4c65475 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -61,15 +61,15 @@ jobs: name: Build [${{ join(matrix.config, '_') }}] runs-on: ${{ matrix.build_runner }} container: - image: glotzerlab/ci:2024.03.01-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} strategy: matrix: include: - - {config: [clang14_py311, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang18_py312, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda120_gcc11_py310, mpi, llvm, debug], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } @@ -170,16 +170,16 @@ jobs: needs: build runs-on: ${{ matrix.test_runner }} container: - image: glotzerlab/ci:2024.03.01-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} options: ${{ matrix.test_docker_options }} -e CUDA_VISIBLE_DEVICES strategy: matrix: include: - - {config: [clang14_py311, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang18_py312, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda120_gcc11_py310, mpi, llvm, debug], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } @@ -231,16 +231,16 @@ jobs: needs: build runs-on: ${{ matrix.test_runner }} container: - image: glotzerlab/ci:2024.03.01-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} options: ${{ matrix.test_docker_options }} -e CUDA_VISIBLE_DEVICES strategy: matrix: include: - - {config: [clang14_py311, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang18_py312, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda120_gcc11_py310, mpi, llvm, debug], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } @@ -285,13 +285,13 @@ jobs: needs: build runs-on: ${{ matrix.test_runner }} container: - image: glotzerlab/ci:2024.03.01-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} options: ${{ matrix.test_docker_options }} -e CUDA_VISIBLE_DEVICES strategy: matrix: include: - - {config: [clang14_py311, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang18_py311, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda120_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } @@ -336,27 +336,23 @@ jobs: name: Build [${{ join(matrix.config, '_') }}] runs-on: ${{ matrix.build_runner }} container: - image: glotzerlab/ci:2024.03.01-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} strategy: matrix: include: - - {config: [gcc12_py311], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [clang16_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [clang15_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang17_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang16_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang15_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang14_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang13_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang12_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang11_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc12_py311], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc10_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda118_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda117_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda116_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda115_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda114_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda113_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda112_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda111_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [clang10_py38, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } if: ${{ contains(github.event.pull_request.labels.*.name, 'release') }} steps: @@ -450,28 +446,24 @@ jobs: needs: build_release runs-on: ${{ matrix.test_runner }} container: - image: glotzerlab/ci:2024.03.01-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} options: ${{ matrix.test_docker_options }} -e CUDA_VISIBLE_DEVICES strategy: matrix: include: - - {config: [gcc12_py311], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [clang16_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [clang15_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang17_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang16_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang15_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang14_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang13_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang12_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang11_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc12_py311], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc10_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda118_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda117_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda116_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda115_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda114_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda113_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda112_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda111_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [clang10_py38, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } if: ${{ contains(github.event.pull_request.labels.*.name, 'release') }} steps: @@ -520,28 +512,24 @@ jobs: needs: build_release runs-on: ${{ matrix.test_runner }} container: - image: glotzerlab/ci:2024.03.01-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} options: ${{ matrix.test_docker_options }} -e CUDA_VISIBLE_DEVICES strategy: matrix: include: - - {config: [gcc12_py311], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [clang16_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [clang15_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang17_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang16_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang15_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang14_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang13_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang12_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang11_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc12_py311], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc10_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda118_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda117_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda116_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda115_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda114_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda113_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda112_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [cuda111_gcc9_py38, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - - {config: [clang10_py38, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } if: ${{ contains(github.event.pull_request.labels.*.name, 'release') }} steps: From 311374b16a4db4f909d8637e3c08504a9e4de62d Mon Sep 17 00:00:00 2001 From: "Joshua A. Anderson" Date: Mon, 3 Jun 2024 12:36:05 -0400 Subject: [PATCH 2/7] Temporarily disable warnings as errors. --- .github/workflows/templates/test.yml | 8 ++++---- .github/workflows/test.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/templates/test.yml b/.github/workflows/templates/test.yml index bf7f5e6370..ee22907e05 100644 --- a/.github/workflows/templates/test.yml +++ b/.github/workflows/templates/test.yml @@ -219,10 +219,10 @@ jobs: build: << job(name='Build', run_tests=False, configurations=unit_test_configurations) >> steps: - - name: Set Werror on recent compilers - run: | - echo "CXXFLAGS=-Werror" >> $GITHUB_ENV - if: ${{ !startsWith(matrix.config[0], 'gcc7') }} + # - name: Set Werror on recent compilers + # run: | + # echo "CXXFLAGS=-Werror" >> $GITHUB_ENV + # if: ${{ !startsWith(matrix.config[0], 'gcc7') }} << prepare_steps >> << build_steps >> << upload_steps >> diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 64b4c65475..68106cb303 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -76,10 +76,10 @@ jobs: - {config: [gcc9_py39], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } steps: - - name: Set Werror on recent compilers - run: | - echo "CXXFLAGS=-Werror" >> $GITHUB_ENV - if: ${{ !startsWith(matrix.config[0], 'gcc7') }} + # - name: Set Werror on recent compilers + # run: | + # echo "CXXFLAGS=-Werror" >> $GITHUB_ENV + # if: ${{ !startsWith(matrix.config[0], 'gcc7') }} - name: Clean workspace run: ( shopt -s dotglob nullglob; rm -rf ./* ) shell: bash From 96956189d7b287252db14482e1dd987a54cbdeca Mon Sep 17 00:00:00 2001 From: "Joshua A. Anderson" Date: Mon, 3 Jun 2024 12:41:38 -0400 Subject: [PATCH 3/7] Build without llvm on clang18. --- .github/workflows/templates/configurations.yml | 4 ++-- .github/workflows/test.yml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/templates/configurations.yml b/.github/workflows/templates/configurations.yml index 9f66fd9c0d..f74aefbeea 100644 --- a/.github/workflows/templates/configurations.yml +++ b/.github/workflows/templates/configurations.yml @@ -3,7 +3,7 @@ # - config: a string encoded list containing the docker image name and any number of build options. # - The build options are `mpi`, `tbb`, `llvm`, `nomd`, and `nohpmc`. unit_test_configurations: -- config: "[clang18_py312, mpi, tbb, llvm]" +- config: "[clang18_py312, mpi, tbb]" - config: "[gcc14_py312]" - config: "[gcc14_py312, nomd]" - config: "[gcc14_py312, nohpmc]" @@ -16,7 +16,7 @@ unit_test_configurations: # Configurations on which to run longer validation tests. Must be a subset of # `unit_test_configurations` validate_configurations: -- config: "[clang18_py311, mpi, tbb, llvm]" +- config: "[clang18_py311, mpi, tbb]" - config: "[gcc14_py312]" - config: "[cuda120_gcc11_py310, mpi, llvm]" - config: "[cuda120_gcc11_py310]" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 68106cb303..a4e2a7a51a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -65,7 +65,7 @@ jobs: strategy: matrix: include: - - {config: [clang18_py312, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang18_py312, mpi, tbb], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc14_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc14_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } @@ -175,7 +175,7 @@ jobs: strategy: matrix: include: - - {config: [clang18_py312, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang18_py312, mpi, tbb], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc14_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc14_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } @@ -236,7 +236,7 @@ jobs: strategy: matrix: include: - - {config: [clang18_py312, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang18_py312, mpi, tbb], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc14_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc14_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } @@ -290,7 +290,7 @@ jobs: strategy: matrix: include: - - {config: [clang18_py311, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang18_py311, mpi, tbb], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda120_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } From c39148caab4b71dfbc36ea3279b73da95d9159eb Mon Sep 17 00:00:00 2001 From: "Joshua A. Anderson" Date: Mon, 3 Jun 2024 15:09:18 -0400 Subject: [PATCH 4/7] Fix numpy 2.0 errors in test_custom_force.py. --- hoomd/md/pytest/test_custom_force.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/hoomd/md/pytest/test_custom_force.py b/hoomd/md/pytest/test_custom_force.py index 0807727021..ad94d7170b 100644 --- a/hoomd/md/pytest/test_custom_force.py +++ b/hoomd/md/pytest/test_custom_force.py @@ -126,15 +126,22 @@ def set_forces(self, timestep): tags = local_snapshot.particles.tag force_arrays.force[:] = np.stack((tags * 1, tags * 2, tags * 3), axis=-1) - energy = local_snapshot.particles.tag * -10 + energy = local_snapshot.particles.tag.astype(np.float64) * -10.0 force_arrays.potential_energy[:] = energy + tags_float = tags.astype(np.float64) force_arrays.torque[:] = np.stack( - (tags * -3, tags * -2, tags * -1), axis=-1) + (tags_float * -3.0, tags_float * -2.0, tags_float * -1.0), + axis=-1) if force_arrays.virial.shape[0] != 0: - force_arrays.virial[:] = np.stack( - (tags * 1, tags * -2, tags * -3, tags * 4, tags * -5, - tags * 6), - axis=-1) + force_arrays.virial[:] = np.stack(( + tags_float * 1.0, + tags_float * -2.0, + tags_float * -3.0, + tags_float * 4.0, + tags_float * -5.0, + tags_float * 6.0, + ), + axis=-1) @pytest.mark.cpu From cd9ddd4266c5fc0383fc378b01d9147afa423cca Mon Sep 17 00:00:00 2001 From: "Joshua A. Anderson" Date: Tue, 4 Jun 2024 07:05:51 -0400 Subject: [PATCH 5/7] Require pybind 2.12 Needed for numpy 2.0 ABI. Compatible with numpy >= 1.19 --- BUILDING.rst | 6 +++--- CMake/hoomd/HOOMDPythonSetup.cmake | 2 +- hoomd-config.cmake.in | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/BUILDING.rst b/BUILDING.rst index c21a9146ae..364554c03b 100644 --- a/BUILDING.rst +++ b/BUILDING.rst @@ -78,9 +78,9 @@ Install prerequisites **General requirements:** - C++17 capable compiler (tested with ``gcc`` 9 - 13 and ``clang`` 10 - 16) -- Python >= 3.8 -- NumPy >= 1.17.3 -- pybind11 >= 2.6 +- Python >= 3.9 +- NumPy >= 1.19 +- pybind11 >= 2.12 - Eigen >= 3.2 - CMake >= 3.15 diff --git a/CMake/hoomd/HOOMDPythonSetup.cmake b/CMake/hoomd/HOOMDPythonSetup.cmake index 0c0e6ba69c..780344ee34 100644 --- a/CMake/hoomd/HOOMDPythonSetup.cmake +++ b/CMake/hoomd/HOOMDPythonSetup.cmake @@ -12,7 +12,7 @@ if (Python_FOUND) endif() endif() -find_package(pybind11 2.2 CONFIG REQUIRED) +find_package(pybind11 2.12 CONFIG REQUIRED) if (pybind11_FOUND) find_package_message(pybind11 "Found pybind11: ${pybind11_DIR} ${pybind11_INCLUDE_DIR} (version ${pybind11_VERSION})" "[${pybind11_DIR}][${pybind11_INCLUDE_DIR}]") diff --git a/hoomd-config.cmake.in b/hoomd-config.cmake.in index 1f4fb55f4b..8f67b5dd37 100644 --- a/hoomd-config.cmake.in +++ b/hoomd-config.cmake.in @@ -39,7 +39,7 @@ set(PYTHON_SITE_INSTALL_DIR "@PYTHON_SITE_INSTALL_DIR@") # configure python set(Python_FIND_UNVERSIONED_NAMES "FIRST") find_package(Python REQUIRED COMPONENTS Interpreter Development) -find_package(pybind11 2.2 CONFIG REQUIRED) +find_package(pybind11 2.12 CONFIG REQUIRED) find_package_message(pybind11 "Found pybind11: ${pybind11_DIR} ${pybind11_INCLUDE_DIR} (version ${pybind11_VERSION})" "[${pybind11_DIR}][${pybind11_INCLUDE_DIR}]") find_package(Eigen3 3.2 CONFIG REQUIRED) From 51b2bcb34fbfc726d2c0f67f855d1e61fa1a1058 Mon Sep 17 00:00:00 2001 From: "Joshua A. Anderson" Date: Tue, 4 Jun 2024 09:47:22 -0400 Subject: [PATCH 6/7] Run with images that have pybind11 2.12 For now, test the newer compilers on the release tag only. A future PR will deal with the compiler warnings on the new compilers. --- .github/workflows/templates/configurations.yml | 16 ++++++++-------- .github/workflows/templates/test.yml | 8 ++++---- .github/workflows/templates/workflow.yml | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/templates/configurations.yml b/.github/workflows/templates/configurations.yml index f74aefbeea..a25169f674 100644 --- a/.github/workflows/templates/configurations.yml +++ b/.github/workflows/templates/configurations.yml @@ -3,11 +3,11 @@ # - config: a string encoded list containing the docker image name and any number of build options. # - The build options are `mpi`, `tbb`, `llvm`, `nomd`, and `nohpmc`. unit_test_configurations: -- config: "[clang18_py312, mpi, tbb]" -- config: "[gcc14_py312]" -- config: "[gcc14_py312, nomd]" -- config: "[gcc14_py312, nohpmc]" -- config: "[gcc14_py312, nomd, nohpmc]" +- config: "[clang14_py312, mpi, tbb, llvm]" +- config: "[gcc13_py312]" +- config: "[gcc13_py312, nomd]" +- config: "[gcc13_py312, nohpmc]" +- config: "[gcc13_py312, nomd, nohpmc]" - config: "[cuda120_gcc11_py310, mpi, llvm, debug]" - config: "[cuda120_gcc11_py310, mpi, llvm]" - config: "[cuda120_gcc11_py310]" @@ -24,14 +24,14 @@ validate_configurations: # Configurations to build and test only rarely, such as just before a release. # There should be no overlap between this list and `unit_test_configurations` release_test_configurations: -- config: "[clang17_py312, mpi, llvm]" +- config: "[clang18_py312, mpi]" +- config: "[clang17_py312, mpi]" - config: "[clang16_py312, mpi, llvm]" - config: "[clang15_py312, mpi, llvm]" -- config: "[clang14_py311, mpi, llvm]" - config: "[clang13_py310, llvm]" - config: "[clang12_py310, llvm]" - config: "[clang11_py310, llvm]" -- config: "[gcc13_py312]" +- config: "[gcc14_py312]" - config: "[gcc12_py311]" - config: "[gcc11_py310]" - config: "[gcc10_py310]" diff --git a/.github/workflows/templates/test.yml b/.github/workflows/templates/test.yml index ee22907e05..bf7f5e6370 100644 --- a/.github/workflows/templates/test.yml +++ b/.github/workflows/templates/test.yml @@ -219,10 +219,10 @@ jobs: build: << job(name='Build', run_tests=False, configurations=unit_test_configurations) >> steps: - # - name: Set Werror on recent compilers - # run: | - # echo "CXXFLAGS=-Werror" >> $GITHUB_ENV - # if: ${{ !startsWith(matrix.config[0], 'gcc7') }} + - name: Set Werror on recent compilers + run: | + echo "CXXFLAGS=-Werror" >> $GITHUB_ENV + if: ${{ !startsWith(matrix.config[0], 'gcc7') }} << prepare_steps >> << build_steps >> << upload_steps >> diff --git a/.github/workflows/templates/workflow.yml b/.github/workflows/templates/workflow.yml index 6d828a522e..f0268bca93 100644 --- a/.github/workflows/templates/workflow.yml +++ b/.github/workflows/templates/workflow.yml @@ -1,5 +1,5 @@ <% block name %><% endblock %> -<% set container_prefix="glotzerlab/ci:2024.06.03" %> +<% set container_prefix="glotzerlab/ci:2024.06.04" %> <% block concurrency %> concurrency: From 9be61baf27100fafc06d65ff9a0f43fa346198c2 Mon Sep 17 00:00:00 2001 From: "Joshua A. Anderson" Date: Tue, 4 Jun 2024 09:55:22 -0400 Subject: [PATCH 7/7] Make workflow files. --- .github/workflows/release.yml | 2 +- .../workflows/templates/configurations.yml | 6 +- .github/workflows/test.yml | 74 +++++++++---------- 3 files changed, 41 insertions(+), 41 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4507612bc8..2a31363a83 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,7 +36,7 @@ jobs: name: Build release tarball runs-on: ubuntu-latest container: - image: glotzerlab/ci:2024.06.03-ubuntu20.04 + image: glotzerlab/ci:2024.06.04-ubuntu20.04 steps: - name: Checkout diff --git a/.github/workflows/templates/configurations.yml b/.github/workflows/templates/configurations.yml index a25169f674..8cf0c58a02 100644 --- a/.github/workflows/templates/configurations.yml +++ b/.github/workflows/templates/configurations.yml @@ -3,7 +3,7 @@ # - config: a string encoded list containing the docker image name and any number of build options. # - The build options are `mpi`, `tbb`, `llvm`, `nomd`, and `nohpmc`. unit_test_configurations: -- config: "[clang14_py312, mpi, tbb, llvm]" +- config: "[clang14_py311, mpi, tbb, llvm]" - config: "[gcc13_py312]" - config: "[gcc13_py312, nomd]" - config: "[gcc13_py312, nohpmc]" @@ -16,8 +16,8 @@ unit_test_configurations: # Configurations on which to run longer validation tests. Must be a subset of # `unit_test_configurations` validate_configurations: -- config: "[clang18_py311, mpi, tbb]" -- config: "[gcc14_py312]" +- config: "[clang14_py311, mpi, tbb, llvm]" +- config: "[gcc13_py312]" - config: "[cuda120_gcc11_py310, mpi, llvm]" - config: "[cuda120_gcc11_py310]" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a4e2a7a51a..4d4ed74f3a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -61,25 +61,25 @@ jobs: name: Build [${{ join(matrix.config, '_') }}] runs-on: ${{ matrix.build_runner }} container: - image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.04-${{ matrix.config[0] }} strategy: matrix: include: - - {config: [clang18_py312, mpi, tbb], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang14_py311, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda120_gcc11_py310, mpi, llvm, debug], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [gcc9_py39], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } steps: - # - name: Set Werror on recent compilers - # run: | - # echo "CXXFLAGS=-Werror" >> $GITHUB_ENV - # if: ${{ !startsWith(matrix.config[0], 'gcc7') }} + - name: Set Werror on recent compilers + run: | + echo "CXXFLAGS=-Werror" >> $GITHUB_ENV + if: ${{ !startsWith(matrix.config[0], 'gcc7') }} - name: Clean workspace run: ( shopt -s dotglob nullglob; rm -rf ./* ) shell: bash @@ -170,16 +170,16 @@ jobs: needs: build runs-on: ${{ matrix.test_runner }} container: - image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.04-${{ matrix.config[0] }} options: ${{ matrix.test_docker_options }} -e CUDA_VISIBLE_DEVICES strategy: matrix: include: - - {config: [clang18_py312, mpi, tbb], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang14_py311, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda120_gcc11_py310, mpi, llvm, debug], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } @@ -231,16 +231,16 @@ jobs: needs: build runs-on: ${{ matrix.test_runner }} container: - image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.04-${{ matrix.config[0] }} options: ${{ matrix.test_docker_options }} -e CUDA_VISIBLE_DEVICES strategy: matrix: include: - - {config: [clang18_py312, mpi, tbb], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang14_py311, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312, nomd], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312, nomd, nohpmc], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda120_gcc11_py310, mpi, llvm, debug], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } @@ -285,13 +285,13 @@ jobs: needs: build runs-on: ${{ matrix.test_runner }} container: - image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.04-${{ matrix.config[0] }} options: ${{ matrix.test_docker_options }} -e CUDA_VISIBLE_DEVICES strategy: matrix: include: - - {config: [clang18_py311, mpi, tbb], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang14_py311, mpi, tbb, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [cuda120_gcc11_py310, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } - {config: [cuda120_gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: [self-hosted,GPU], test_docker_options: '--gpus=all --device /dev/nvidia0 --device /dev/nvidia1 --device /dev/nvidia-uvm --device /dev/nvidia-uvm-tools --device /dev/nvidiactl' } @@ -336,18 +336,18 @@ jobs: name: Build [${{ join(matrix.config, '_') }}] runs-on: ${{ matrix.build_runner }} container: - image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.04-${{ matrix.config[0] }} strategy: matrix: include: - - {config: [clang17_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang18_py312, mpi], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang17_py312, mpi], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang16_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang15_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [clang14_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang13_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang12_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang11_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc12_py311], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc10_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } @@ -446,19 +446,19 @@ jobs: needs: build_release runs-on: ${{ matrix.test_runner }} container: - image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.04-${{ matrix.config[0] }} options: ${{ matrix.test_docker_options }} -e CUDA_VISIBLE_DEVICES strategy: matrix: include: - - {config: [clang17_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang18_py312, mpi], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang17_py312, mpi], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang16_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang15_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [clang14_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang13_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang12_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang11_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc12_py311], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc10_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } @@ -512,19 +512,19 @@ jobs: needs: build_release runs-on: ${{ matrix.test_runner }} container: - image: glotzerlab/ci:2024.06.03-${{ matrix.config[0] }} + image: glotzerlab/ci:2024.06.04-${{ matrix.config[0] }} options: ${{ matrix.test_docker_options }} -e CUDA_VISIBLE_DEVICES strategy: matrix: include: - - {config: [clang17_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang18_py312, mpi], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [clang17_py312, mpi], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang16_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang15_py312, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [clang14_py311, mpi, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang13_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang12_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [clang11_py310, llvm], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - - {config: [gcc13_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } + - {config: [gcc14_py312], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc12_py311], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc11_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' } - {config: [gcc10_py310], build_runner: [self-hosted,jetstream2,CPU], test_runner: ubuntu-latest, test_docker_options: '' }