Update CMake requirement to 3.16.3
[alexxy/gromacs.git] / admin / gitlab-ci / gromacs.matrix / gromacs.gcc-7-cuda-10.2.gitlab-ci.yml
1 # Test goal: old versions of GCC with CUDA; GPU communications with tMPI
2 # Test intents (should change rarely and conservatively):
3 #   OS: Ubuntu oldest supported
4 #   Compiler: GCC oldest supported
5 #   GPU: CUDA oldest supported
6 #   HW: NVIDIA GPU, dual NVIDIA GPU
7 #   MPI: thread_MPI
8 #   Features: GPU direct communications + update (unit tests)
9 #   Features: GPU direct communications + update (regression tests with dual GPU)
10 #   Features: GPU update (regression tests with dual GPU)
11 #   Scope: configure, build, unit tests, regression tests
12 # Test implementation choices (free to change as needed):
13 #   OS: Ubuntu 18.04
14 #   Build type: Debug
15 #   Compiler: GCC 7
16 #   GPU: CUDA 10.2
17 #   SIMD: SSE 4.1
18 #   FFT: FFTW3
19 #   Parallelism nt/ntomp: 4/2 (unit tests)
20 #   Parallelism nt/ntomp: 2/1 (regression tests)
21 #   Parallelism nt/ntomp: 4/1 (regression tests with dual GPU)
22
23 gromacs:gcc-7-cuda-10.2:configure:
24   extends:
25     - .gromacs:base:configure
26     - .use-gcc:base
27     - .use-cuda
28     - .rules:merge-and-post-merge-acceptance
29   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
30   variables:
31     CMAKE: /usr/local/cmake-3.17.2/bin/cmake
32     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
33     COMPILER_MAJOR_VERSION: 7
34
35 gromacs:gcc-7-cuda-10.2:build:
36   extends:
37     - .variables:default
38     - .gromacs:base:build
39     - .before_script:default
40     - .use-ccache
41     - .rules:merge-and-post-merge-acceptance
42   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
43   variables:
44     CMAKE: /usr/local/cmake-3.17.2/bin/cmake
45   needs:
46     - job: gromacs:gcc-7-cuda-10.2:configure
47
48 gromacs:gcc-7-cuda-10.2:test:
49   extends:
50     - .gromacs:base:test
51     - .rules:merge-requests
52   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
53   variables:
54     CMAKE: /usr/local/cmake-3.17.2/bin/cmake
55     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
56     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
57   tags:
58     - k8s-scilifelab
59   needs:
60     - job: gromacs:gcc-7-cuda-10.2:build
61
62 gromacs:gcc-7-cuda-10.2:test-gpucommupd:
63   extends:
64     - .gromacs:base:test
65     - .rules:post-merge-acceptance
66   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
67   variables:
68     CMAKE: /usr/local/cmake-3.17.2/bin/cmake
69     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
70     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
71     GMX_GPU_DD_COMMS: 1
72     GMX_GPU_PME_PP_COMMS: 1
73     GMX_FORCE_UPDATE_DEFAULT_GPU: 1
74   tags:
75     - k8s-scilifelab
76   needs:
77     - job: gromacs:gcc-7-cuda-10.2:build
78
79 gromacs:gcc-7-cuda-10.2:regressiontest:
80   extends:
81     - .gromacs:base:regressiontest
82     - .rules:merge-requests
83   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
84   variables:
85     CMAKE: /usr/local/cmake-3.17.2/bin/cmake
86     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
87     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
88     REGRESSIONTEST_PME_RANK_NUMBER: 0
89     REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
90     REGRESSIONTEST_OMP_RANK_NUMBER: 1
91   tags:
92     - k8s-scilifelab
93   needs:
94     - job: gromacs:gcc-7-cuda-10.2:build
95     - job: regressiontests:prepare
96
97 gromacs:gcc-7-cuda-10.2:regressiontest-gpucommupd-tMPI:
98   extends:
99     - .gromacs:base:regressiontest
100     - .rules:post-merge-acceptance
101   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
102   variables:
103     CMAKE: /usr/local/cmake-3.17.2/bin/cmake
104     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
105     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
106     REGRESSIONTEST_PME_RANK_NUMBER: 0
107     REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
108     REGRESSIONTEST_OMP_RANK_NUMBER: 1
109     GMX_GPU_DD_COMMS: 1
110     GMX_GPU_PME_PP_COMMS: 1
111     GMX_FORCE_UPDATE_DEFAULT_GPU: 1
112   tags:
113     - k8s-scilifelab
114   needs:
115     - job: gromacs:gcc-7-cuda-10.2:build
116     - job: regressiontests:prepare
117   artifacts:
118     paths:
119       - regressiontests
120     when: always
121     expire_in: 1 week
122
123 gromacs:gcc-7-cuda-10.2:regressiontest-upd-tMPI:
124   extends:
125     - .gromacs:base:regressiontest
126     - .rules:post-merge-acceptance
127   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-18.04-gcc-7-cuda-10.2
128   variables:
129     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
130     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
131     REGRESSIONTEST_PME_RANK_NUMBER: 0
132     REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
133     REGRESSIONTEST_OMP_RANK_NUMBER: 1
134     GMX_FORCE_UPDATE_DEFAULT_GPU: 1
135   tags:
136     - k8s-scilifelab
137   needs:
138     - job: gromacs:gcc-7-cuda-10.2:build
139     - job: regressiontests:prepare
140   artifacts:
141     paths:
142       - regressiontests
143     when: always
144     expire_in: 1 week