Add regression tests for gpucomm paths
[alexxy/gromacs.git] / admin / gitlab-ci / gromacs.gitlab-ci.yml
1 # Build, test, and install variously configured GROMACS installations.
2
3 # Initial build that always needs to pass before follow-up stages run
4 simple-build:
5   extends:
6     - .variables:default
7     - .use-ccache
8     - .use-clang:base
9     - .rules:basic-push
10   stage: pre-build
11   image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
12   variables:
13     KUBERNETES_CPU_LIMIT: 8
14     KUBERNETES_CPU_REQUEST: 4
15     KUBERNETES_MEMORY_REQUEST: 8Gi
16     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
17     CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
18     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
19     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
20     CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
21     CMAKE_GMXAPI_OPTIONS: "-DGMX_PYTHON_PACKAGE=OFF"
22     COMPILER_MAJOR_VERSION: 9
23     BUILD_DIR: simple-build
24   script:
25     - echo $CMAKE_COMPILER_SCRIPT
26     - echo $CMAKE_EXTRA_OPTIONS
27     - echo $CMAKE_SIMD_OPTIONS
28     - echo $CMAKE_GPU_OPTIONS
29     - echo $CMAKE_MPI_OPTIONS
30     - echo $CMAKE_PRECISION_OPTIONS
31     - echo $CMAKE_BUILD_TYPE_OPTIONS
32     - echo $CMAKE_GMXAPI_OPTIONS
33     - if [[ -d $BUILD_DIR ]] ; then
34       echo "Cleaning up build directory" ;
35       rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
36       else
37       echo "Preparing new build directory" ;
38       mkdir $BUILD_DIR ;
39       fi
40     - cd $BUILD_DIR
41     - cmake ..
42       -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
43       $CMAKE_COMPILER_SCRIPT
44       $CMAKE_EXTRA_OPTIONS
45       $CMAKE_SIMD_OPTIONS
46       $CMAKE_MPI_OPTIONS
47       $CMAKE_PRECISION_OPTIONS
48       $CMAKE_BUILD_TYPE_OPTIONS
49       $CMAKE_GPU_OPTIONS
50       $CMAKE_GMXAPI_OPTIONS
51       -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
52       2>&1 | tee cmakeLog.log
53     - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
54     - if [ -s cmakeErrors.log  ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
55     - cmake --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log
56     - cmake --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log
57     - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log
58       | grep -v "CMake" | tee buildErrors.log || true
59     - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true
60     - cmake --build . --target install 2>&1 | tee installBuildLogFile.log
61     - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
62     - ctest -D ExperimentalTest --output-on-failure | tee ctestLog.log || true
63     - awk '/The following tests FAILED/,/^Errors while running CTest|^$/'
64       ctestLog.log | tee ctestErrors.log
65     - xsltproc $CI_PROJECT_DIR/scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > JUnitTestResults.xml
66     - if [ -s ctestErrors.log ] ; then
67       echo "Error during running ctest";
68       exit 1;
69       fi
70     - cd ..
71   artifacts:
72     reports:
73       junit: $BUILD_DIR/JUnitTestResults.xml
74     paths:
75       - $BUILD_DIR/*log
76     when: always
77     expire_in: 1 week
78
79 # Jobs running in first pre-build stage
80
81 .gromacs:base:configure:
82   extends:
83     - .variables:default
84   stage: configure-build
85   cache: {}
86   variables:
87     KUBERNETES_CPU_LIMIT: 1
88     KUBERNETES_CPU_REQUEST: 1
89     KUBERNETES_MEMORY_REQUEST: 2Gi
90     CMAKE_COMPILER_SCRIPT: ""
91     CMAKE_EXTRA_OPTIONS: ""
92     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
93     CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
94     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
95     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=Debug"
96     CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
97   script:
98     - echo $CMAKE_COMPILER_SCRIPT
99     - echo $CMAKE_EXTRA_OPTIONS
100     - echo $CMAKE_SIMD_OPTIONS
101     - echo $CMAKE_GPU_OPTIONS
102     - echo $CMAKE_MPI_OPTIONS
103     - echo $CMAKE_PRECISION_OPTIONS
104     - echo $CMAKE_BUILD_TYPE_OPTIONS
105     - echo $CMAKE_GMXAPI_OPTIONS
106     - if [[ -d $BUILD_DIR ]] ; then
107       rm -rf $BUILD_DIR && mkdir $BUILD_DIR ;
108       else
109       echo "Preparing new build directory" ;
110       mkdir $BUILD_DIR ;
111       fi
112     - cd $BUILD_DIR
113     - cmake ..
114       -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
115       $CMAKE_COMPILER_SCRIPT
116       $CMAKE_EXTRA_OPTIONS
117       $CMAKE_SIMD_OPTIONS
118       $CMAKE_MPI_OPTIONS
119       $CMAKE_PRECISION_OPTIONS
120       $CMAKE_BUILD_TYPE_OPTIONS
121       $CMAKE_GPU_OPTIONS
122       $CMAKE_GMXAPI_OPTIONS
123       -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR -DGMX_COMPILER_WARNINGS=ON
124       2>&1 | tee cmakeLog.log
125     - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
126     - if [ -s cmakeErrors.log  ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
127     - cd ..
128   artifacts:
129     when: always
130     paths:
131       - $BUILD_DIR
132
133 .gromacs:base:release:configure:
134   extends:
135     - .variables:default
136   stage: release-configure
137   cache: {}
138   variables:
139     KUBERNETES_CPU_LIMIT: 1
140     KUBERNETES_CPU_REQUEST: 1
141     KUBERNETES_MEMORY_REQUEST: 2Gi
142     CMAKE_COMPILER_SCRIPT: ""
143     CMAKE_EXTRA_OPTIONS: ""
144     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
145     CMAKE_MPI_OPTIONS: "-DGMX_THREAD_MPI=ON"
146     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=OFF"
147     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
148     CMAKE_GPU_OPTIONS: "-DGMX_GPU=OFF"
149     CMAKE_REGRESSIONTEST_OPTIONS: "-DREGRESSIONTEST_PATH=../\\$RELEASE_REGRESSIONTESTS"
150     RELEASE_BUILD_DIR: release-builds
151     RELEASE_SOURCE: release-source-from-tarball
152     RELEASE_REGRESSIONTESTS: release-regressiontests-from-tarball
153   script:
154     - VERSION=`cat version.json |
155       python3 -c "import json,sys; print(json.load(sys.stdin)['version'])"`
156     - if [[ $GROMACS_RELEASE != "true" ]] ; then
157       VERSION=$VERSION-dev ;
158       fi
159     - SOURCENAME=gromacs-$VERSION
160     - SOURCETARBALL=$SOURCENAME.tar.gz
161     - REGTESTNAME=regressiontests-$VERSION
162     - REGTESTTARBALL=$REGTESTNAME.tar.gz
163     - echo "$SOURCETARBALL"
164     - echo "$REGTESTTARBALL"
165     - RELEASE_TARBALLS=release-tarballs
166     - rm -rf $RELEASE_TARBALLS $RELEASE_SOURCE $RELEASE_REGRESSIONTESTS && mkdir $RELEASE_TARBALLS
167     - mv $SOURCETARBALL $RELEASE_TARBALLS
168     - mv $REGTESTTARBALL $RELEASE_TARBALLS
169     - cd $RELEASE_TARBALLS
170     # We rename the source and regressiontest directories
171     # to have names for them that don't change for different versions.
172     - tar -xf $SOURCETARBALL
173     - mv $SOURCENAME ../$RELEASE_SOURCE
174     - tar -xf $REGTESTTARBALL
175     - mv $REGTESTNAME ../$RELEASE_REGRESSIONTESTS
176     - rm $SOURCETARBALL $REGTESTTARBALL
177     - cd ..
178     - echo $CMAKE_COMPILER_SCRIPT
179     - echo $CMAKE_EXTRA_OPTIONS
180     - echo $CMAKE_SIMD_OPTIONS
181     - echo $CMAKE_GPU_OPTIONS
182     - echo $CMAKE_MPI_OPTIONS
183     - echo $CMAKE_PRECISION_OPTIONS
184     - echo $CMAKE_BUILD_TYPE_OPTIONS
185     - echo $CMAKE_GMXAPI_OPTIONS
186     - if [[ -d $RELEASE_BUILD_DIR ]] ; then
187       echo "Cleaning up build directory" ;
188       rm -rf $RELEASE_BUILD_DIR && mkdir $RELEASE_BUILD_DIR ;
189       else
190       echo "Preparing new build directory" ;
191       mkdir $RELEASE_BUILD_DIR ;
192       fi
193     - cd $RELEASE_BUILD_DIR
194     - cmake ../$RELEASE_SOURCE/
195       -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
196       $CMAKE_COMPILER_SCRIPT
197       $CMAKE_EXTRA_OPTIONS
198       $CMAKE_SIMD_OPTIONS
199       $CMAKE_MPI_OPTIONS
200       $CMAKE_PRECISION_OPTIONS
201       $CMAKE_BUILD_TYPE_OPTIONS
202       $CMAKE_GPU_OPTIONS
203       $CMAKE_GMXAPI_OPTIONS
204       $CMAKE_REGRESSIONTEST_OPTIONS
205       -DCMAKE_INSTALL_PREFIX=../$INSTALL_DIR
206       2>&1 | tee cmakeLog.log
207     - awk '/CMake Warning/,/^--|^$/' cmakeLog.log | tee cmakeErrors.log
208     - if [ -s cmakeErrors.log  ] ; then echo "Found CMake warning while processing build"; cat cmakeErrors.log ; exit 1; fi
209     - cd ..
210   artifacts:
211     when: always
212     paths:
213       - $RELEASE_BUILD_DIR
214       - $RELEASE_REGRESSIONTESTS
215       - $RELEASE_SOURCE
216
217 # Templates for configuration stage
218
219 gromacs:gcc-7:configure:
220   extends:
221     - .gromacs:base:configure
222     - .use-gcc:base
223     - .use-opencl
224     - .rules:merge-requests
225   image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
226   variables:
227     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
228     CMAKE_EXTRA_OPTIONS: "-DGMX_EXTERNAL_CLFFT=ON"
229     COMPILER_MAJOR_VERSION: 7
230
231 gromacs:gcc-8-cuda-11.0:configure:
232   extends:
233     - .gromacs:base:configure
234     - .use-gcc:base
235     - .use-cuda
236     - .rules:merge-requests
237   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
238   variables:
239     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
240     COMPILER_MAJOR_VERSION: 8
241
242 gromacs:gcc-8-cuda-11.0:configureMPI:
243   extends:
244     - .gromacs:base:configure
245     - .use-gcc:base
246     - .use-cuda
247     - .use-mpi
248     - .rules:merge-requests
249   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
250   variables:
251     CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=SSE4.1"
252     COMPILER_MAJOR_VERSION: 8
253
254 gromacs:clang-TSAN:configure:
255   extends:
256     - .gromacs:base:configure
257     - .use-clang:base
258     - .rules:merge-requests
259   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
260   variables:
261     COMPILER_MAJOR_VERSION: 8
262     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=TSAN"
263
264 gromacs:clang-8:configure:
265   extends:
266     - .gromacs:base:configure
267     - .use-clang:base
268     - .rules:merge-requests
269   image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
270   variables:
271     COMPILER_MAJOR_VERSION: 8
272
273 gromacs:clang-9-mpi:configure:
274   extends:
275    - .gromacs:base:configure
276    - .use-clang:base
277    - .use-mpi
278    - .rules:merge-requests
279   image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
280   variables:
281     COMPILER_MAJOR_VERSION: 9
282     CMAKE_PRECISION_OPTIONS: -DGMX_DOUBLE=ON
283
284 gromacs:clang-static-analyzer:configure:
285   extends:
286     - .gromacs:base:configure
287     - .use-clang:base
288     - .rules:merge-requests
289   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
290   variables:
291      CMAKE_COMPILER_SCRIPT: "-DCMAKE_CXX_COMPILER=/usr/local/libexec/c++-analyzer -DCMAKE_C_COMPILER=gcc"
292      CMAKE_EXTRA_OPTIONS: "-DGMX_CLANG_ANALYZER=ON -DGMX_OPENMP=OFF -DGMX_USE_RDTSCP=OFF -DGMX_FFT_LIBRARY=fftpack -DGMX_DEVELOPER_BUILD=ON"
293      CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=None"
294
295 gromacs:clang-ASAN:configure:
296   extends:
297     - .gromacs:base:configure
298     - .use-clang:base
299     - .rules:merge-requests
300   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
301   variables:
302     COMPILER_MAJOR_VERSION: 8
303     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=ASAN"
304
305 gromacs:oneapi-2021.1-beta08-opencl:configure:
306   extends:
307    - .gromacs:base:configure
308    - .use-oneapi:base
309    - .use-opencl
310    - .rules:merge-requests
311   image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
312   variables:
313     COMPILER_MAJOR_VERSION: 2021
314
315 gromacs:clang-UBSAN:configure:
316   extends:
317     - .gromacs:base:configure
318     - .use-clang:base
319     - .rules:merge-requests
320   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
321   variables:
322     COMPILER_MAJOR_VERSION: 8
323     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=UBSAN"
324
325 gromacs:gcc-8-cuda-11.0:release:configure:
326   extends:
327     - .gromacs:base:release:configure
328     - .use-gcc:base
329     - .use-mpi
330     - .use-cuda
331     - .rules:nightly-only-for-release
332   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
333   variables:
334     COMPILER_MAJOR_VERSION: 8
335     RELEASE_BUILD_DIR: release-builds-gcc
336     CMAKE_EXTRA_OPTIONS: "-DGMX_BUILD_MDRUN_ONLY=ON"
337     CMAKE_BUILD_TYPE_OPTIONS : "-DCMAKE_BUILD_TYPE=RelWithAssert"
338     CMAKE_REGRESSIONTEST_OPTIONS: ""
339   dependencies:
340     - archive:package
341     - regressiontests:package
342     - prepare-release-version
343
344 gromacs:gcc-7:release:configure:
345   extends:
346     - .gromacs:base:release:configure
347     - .use-gcc:base
348     - .use-opencl
349     - .rules:nightly-only-for-release
350   image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
351   variables:
352     COMPILER_MAJOR_VERSION: 7
353     CMAKE_EXTRA_OPTIONS: "-DGMX_EXTERNAL_CLFFT=ON"
354     RELEASE_BUILD_DIR: release-builds-gcc
355     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
356   dependencies:
357     - archive:package
358     - regressiontests:package
359     - prepare-release-version
360
361 gromacs:clang-9:release:configure:
362   extends:
363     - .gromacs:base:release:configure
364     - .use-clang:base
365     - .use-mpi
366     - .rules:nightly-only-for-release
367   image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
368   variables:
369     COMPILER_MAJOR_VERSION: 9
370     RELEASE_BUILD_DIR: release-builds-clang
371     CMAKE_PRECISION_OPTIONS: "-DGMX_DOUBLE=ON"
372     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
373   dependencies:
374     - archive:package
375     - regressiontests:package
376     - prepare-release-version
377
378 gromacs:clang-8-cuda-10.1:release:configure:
379   extends:
380     - .gromacs:base:release:configure
381     - .use-clang:base
382     - .use-cuda
383     - .rules:nightly-only-for-release
384   image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master
385   variables:
386     COMPILER_MAJOR_VERSION: 8
387     RELEASE_BUILD_DIR: release-builds-clang
388     CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
389
390 gromacs:oneapi-2021.1-beta08-opencl:release:configure:
391   extends:
392    - .gromacs:base:release:configure
393    - .use-oneapi:base
394    - .use-opencl
395    - .rules:nightly-only-for-release
396   image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
397   variables:
398     COMPILER_MAJOR_VERSION: 2021
399     RELEASE_BUILD_DIR: release-builds-oneapi
400
401 # Jobs running during build stage
402
403 .gromacs:base:build:
404   stage: build
405   script:
406     - cd $BUILD_DIR
407     - cmake --build . -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee buildLogFile.log
408     - cmake --build . --target tests -- -j$KUBERNETES_CPU_LIMIT 2>&1 | tee testBuildLogFile.log
409     - awk '/warning/,/warning.*generated|^$/' buildLogFile.log testBuildLogFile.log
410       | grep -v "CMake" | tee buildErrors.log || true
411     - grep "cannot be built" buildLogFile.log testBuildLogFile.log | tee -a buildErrors.log || true
412     - cmake --build . --target install 2>&1 | tee installBuildLogFile.log
413     - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
414     - for file in `find . -mindepth 1 -name "*.o" ! -type l` ; do echo $file ; rm $file ; done 2>&1 > remove-build-objects.log
415     - cd ..
416   artifacts:
417     when: always
418     paths:
419       - $BUILD_DIR
420       - $INSTALL_DIR/
421
422 .gromacs:static-analyzer-build:
423   stage: build
424   script:
425     - cd $BUILD_DIR
426     - scan-build -o scan_html cmake --build . -- -j8 2>&1 | tee buildLogFile.log
427     - awk '/warning/,/warning.*generated|^$/' buildLogFile.log
428       | grep -v "CMake" | tee buildErrors.log || true
429     - grep "cannot be built" buildLogFile.log | tee -a buildErrors.log || true
430     - if [ -s buildErrors.log ] ; then echo "Found compiler warning during build"; cat buildErrors.log; exit 1; fi
431     - cd ..
432   artifacts:
433     when: always
434     paths:
435       - $BUILD_DIR/scan_html
436
437 gromacs:gcc-7:build:
438   extends:
439     - .variables:default
440     - .gromacs:base:build
441     - .before_script:default
442     - .use-ccache
443     - .rules:merge-requests
444   image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
445   needs:
446     - job: gromacs:gcc-7:configure
447       artifacts: true
448
449 gromacs:gcc-8-cuda-11.0:build:
450   extends:
451     - .variables:default
452     - .gromacs:base:build
453     - .before_script:default
454     - .use-ccache
455     - .rules:merge-requests
456   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
457   needs:
458     - job: gromacs:gcc-8-cuda-11.0:configure
459
460 gromacs:gcc-8-cuda-11.0:buildMPI:
461   extends:
462     - .variables:default
463     - .gromacs:base:build
464     - .before_script:default
465     - .use-ccache
466     - .rules:merge-requests
467   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
468   needs:
469     - job: gromacs:gcc-8-cuda-11.0:configureMPI
470
471 gromacs:clang-TSAN:build:
472   extends:
473     - .variables:default
474     - .gromacs:base:build
475     - .use-clang:base
476     - .use-ccache
477     - .rules:merge-requests
478   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
479   needs:
480     - job: gromacs:clang-TSAN:configure
481
482 gromacs:clang-ASAN:build:
483   extends:
484     - .variables:default
485     - .gromacs:base:build
486     - .use-clang:base
487     - .use-ccache
488     - .rules:merge-requests
489   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
490   tags:
491     - k8s-scilifelab
492   needs:
493     - job: gromacs:clang-ASAN:configure
494
495 gromacs:clang-UBSAN:build:
496   extends:
497     - .variables:default
498     - .gromacs:base:build
499     - .use-clang:base
500     - .use-ccache
501     - .rules:merge-requests
502   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
503   tags:
504     - k8s-scilifelab
505   needs:
506     - job: gromacs:clang-UBSAN:configure
507
508 gromacs:clang-static-analyzer:build:
509   extends:
510     - .variables:default
511     - .gromacs:static-analyzer-build
512     - .use-clang:base
513     - .use-ccache
514     - .rules:merge-requests
515   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
516   tags:
517     - k8s-scilifelab
518   needs:
519     - job: gromacs:clang-static-analyzer:configure
520
521 gromacs:clang-8:build:
522   extends:
523     - .variables:default
524     - .gromacs:base:build
525     - .before_script:default
526     - .use-ccache
527     - .rules:merge-requests
528   image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
529   needs:
530     - job: gromacs:clang-8:configure
531
532 gromacs:oneapi-2021.1-beta08-opencl:build:
533   extends:
534     - .variables:default
535     - .gromacs:base:build
536     - .use-ccache
537     - .use-oneapi:base
538     - .rules:merge-requests
539   image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
540   needs:
541     - job: gromacs:oneapi-2021.1-beta08-opencl:configure
542
543 gromacs:clang-9-mpi:build:
544   extends:
545     - .variables:default
546     - .gromacs:base:build
547     - .before_script:default
548     - .use-ccache
549     - .rules:merge-requests
550   image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
551   needs:
552     - job: gromacs:clang-9-mpi:configure
553
554 gromacs:gcc-8-cuda-11.0:release:build:
555   extends:
556     - .variables:default  
557     - .gromacs:base:build
558     - .before_script:default
559     - .use-ccache
560     - .rules:nightly-only-for-release
561   stage: release-build
562   variables:
563     BUILD_DIR: release-builds-gcc
564   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
565   needs:
566     - job: gromacs:gcc-8-cuda-11.0:release:configure
567
568 gromacs:gcc-7:release:build:
569   extends:
570     - .variables:default
571     - .gromacs:base:build
572     - .before_script:default
573     - .use-ccache
574     - .rules:nightly-only-for-release
575   stage: release-build
576   variables:
577     BUILD_DIR: release-builds-gcc
578   image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
579   needs:
580     - job: gromacs:gcc-7:release:configure
581
582 gromacs:clang-9:release:build:
583   extends:
584     - .variables:default
585     - .gromacs:base:build
586     - .before_script:default
587     - .use-ccache
588     - .rules:nightly-only-for-release
589   stage: release-build
590   variables:
591     BUILD_DIR: release-builds-clang
592   image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
593   needs:
594     - job: gromacs:clang-9:release:configure
595
596 gromacs:clang-8-cuda-10.1:release:build:
597   extends:
598     - .variables:default
599     - .gromacs:base:build
600     - .before_script:default
601     - .use-ccache
602     - .rules:nightly-only-for-release
603   stage: release-build
604   variables:
605     BUILD_DIR: release-builds-clang
606   image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master
607   needs:
608     - job: gromacs:clang-8-cuda-10.1:release:configure
609
610 gromacs:oneapi-2021.1-beta08-opencl:release:build:
611   extends:
612     - .variables:default
613     - .gromacs:base:build
614     - .use-oneapi:base
615     - .use-opencl
616     - .use-ccache
617     - .rules:nightly-only-for-release
618   stage: release-build
619   variables:
620     BUILD_DIR: release-builds-oneapi
621     COMPILER_MAJOR_VERSION: 2021
622   image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
623   needs:
624     - job: gromacs:oneapi-2021.1-beta08-opencl:release:configure
625
626 # Jobs running during test stage
627
628 .gromacs:base:test:
629   extends:
630     - .variables:default
631   stage: test
632   cache: {}
633   retry:
634     max: 1
635   variables:
636     CTEST_RUN_MODE: "ExperimentalTest"
637   script:
638     - cd $BUILD_DIR
639     - export UBSAN_OPTIONS=halt_on_error=1:print_stacktrace=1:suppressions=$CI_PROJECT_DIR/admin/ubsan-suppressions.txt
640     # Needed to run MPI enabled code in the docker images, until we set up different users
641     - export OMPI_ALLOW_RUN_AS_ROOT=1
642     - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
643     - 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"
644     # If $GMX_TEST_REQUIRED_NUMBER_OF_DEVICES is not set and we have GPUs, set it
645     - if [ -z $GMX_TEST_REQUIRED_NUMBER_OF_DEVICES ] && [ -n $KUBERNETES_EXTENDED_RESOURCE_NAME ] ; then
646       if grep -q '/gpu$' <<< "$KUBERNETES_EXTENDED_RESOURCE_NAME"; then
647       echo "export GMX_TEST_REQUIRED_NUMBER_OF_DEVICES=\"$KUBERNETES_EXTENDED_RESOURCE_LIMIT\"";
648       export GMX_TEST_REQUIRED_NUMBER_OF_DEVICES="$KUBERNETES_EXTENDED_RESOURCE_LIMIT";
649       fi
650       fi
651     - if grep -qF 'nvidia.com/gpu' <<< "$KUBERNETES_EXTENDED_RESOURCE_NAME"; then
652       nvidia-smi || true;
653       fi
654     - ctest -D $CTEST_RUN_MODE --output-on-failure | tee ctestLog.log || true
655     - awk '/The following tests FAILED/,/^Errors while running CTest|^$/'
656       ctestLog.log | tee ctestErrors.log
657     - xsltproc $CI_PROJECT_DIR/scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/*.xml > JUnitTestResults.xml
658     - if [ -s ctestErrors.log ] ; then
659       echo "Error during running ctest";
660       exit 1;
661       fi
662     - cd ..
663   artifacts:
664     reports:
665       junit: $BUILD_DIR/JUnitTestResults.xml
666     paths:
667       - $BUILD_DIR/Testing
668       - $BUILD_DIR/tests
669     when: always
670     expire_in: 1 week
671
672 .gromacs:base:regressiontest:
673   extends:
674     - .variables:default
675   variables:
676     KUBERNETES_CPU_LIMIT: 4
677     KUBERNETES_CPU_REQUEST: 4
678     KUBERNETES_MEMORY_REQUEST: 4Gi
679     REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
680     REGRESSIONTEST_OMP_RANK_NUMBER: 2
681     REGRESSIONTEST_PME_RANK_NUMBER: 1
682     REGRESSIONTEST_MPI_RUN_COMMAND: ""
683     REGRESSIONTEST_DOUBLE: ""
684     REGRESSIONTEST_PARALLEL: "-nt"
685   stage: test
686   cache: {}
687   retry:
688     max: 1
689   script:
690     - export LSAN_OPTIONS="suppressions=$CI_PROJECT_DIR/admin/lsan-suppressions.txt:print_suppressions=0"
691     - 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"
692     # Needed to run MPI enabled code in the docker images, until we set up different users
693     - export OMPI_ALLOW_RUN_AS_ROOT=1
694     - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
695     - tar xzf gmx-regressiontests.tar.gz
696     - source $INSTALL_DIR/bin/GMXRC
697     - cd regressiontests
698     - 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
699   artifacts:
700     paths:
701       - regressiontests/gmxtest.xml
702     when: always
703     expire_in: 1 week
704
705 gromacs:gcc-7:test:
706   extends:
707     - .gromacs:base:test
708     - .rules:merge-requests
709   image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
710   variables:
711     KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
712     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
713     LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
714   tags:
715     - k8s-scilifelab
716   needs:
717     - job: gromacs:gcc-7:build
718
719 gromacs:gcc-8-cuda-11.0:test:
720   extends:
721     - .gromacs:base:test
722     - .rules:merge-requests
723   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
724   variables:
725     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
726     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
727   tags:
728     - k8s-scilifelab
729   needs:
730     - job: gromacs:gcc-8-cuda-11.0:build
731
732 gromacs:gcc-8-cuda-11.0:test-gpucommupd:
733   extends:
734     - .gromacs:base:test
735     - .rules:merge-requests
736   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
737   variables:
738     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
739     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
740     GMX_GPU_DD_COMMS: 1
741     GMX_GPU_PME_PP_COMMS: 1
742     GMX_FORCE_UPDATE_DEFAULT_GPU: 1
743   tags:
744     - k8s-scilifelab
745   needs:
746     - job: gromacs:gcc-8-cuda-11.0:build
747
748 gromacs:clang-8:test:
749   extends:
750     - .gromacs:base:test
751     - .rules:merge-requests
752   image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
753   needs:
754     - job: gromacs:clang-8:build
755
756 gromacs:clang-TSAN:test:
757   extends:
758     - .gromacs:base:test
759     - .rules:merge-requests
760   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
761   needs:
762     - job: gromacs:clang-TSAN:build
763
764 gromacs:clang-ASAN:test:
765   extends:
766     - .gromacs:base:test
767     - .use-clang:base
768     - .rules:merge-requests
769   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
770   variables:
771     CTEST_RUN_MODE: "ExperimentalMemCheck"
772   tags:
773     - k8s-scilifelab
774   needs:
775     - job: gromacs:clang-ASAN:build
776
777 gromacs:clang-UBSAN:test:
778   extends:
779     - .gromacs:base:test
780     - .use-clang:base
781     - .rules:merge-requests
782   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
783   tags:
784     - k8s-scilifelab
785   needs:
786     - job: gromacs:clang-UBSAN:build
787
788 gromacs:oneapi-2021.1-beta08-opencl:test:
789   extends:
790     - .gromacs:base:test
791     - .use-oneapi:base
792     - .rules:merge-requests
793   image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
794   needs:
795     - job: gromacs:oneapi-2021.1-beta08-opencl:build
796
797 gromacs:clang-9-mpi:test:
798   extends:
799     - .gromacs:base:test
800     - .rules:merge-requests
801   image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
802   tags:
803     - k8s-scilifelab
804   needs:
805     - job: gromacs:clang-9-mpi:build
806
807 gromacs:gcc-7:regressiontest:
808   extends:
809     - .gromacs:base:regressiontest
810     - .rules:merge-requests
811   image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
812   variables:
813     KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
814     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
815     REGRESSIONTEST_PME_RANK_NUMBER: 0
816     REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
817     REGRESSIONTEST_OMP_RANK_NUMBER: 1
818     LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
819   tags:
820     - k8s-scilifelab
821   needs:
822     - job: gromacs:gcc-7:build
823     - job: regressiontests:prepare
824
825 gromacs:gcc-8-cuda-11.0:regressiontest:
826   extends:
827     - .gromacs:base:regressiontest
828     - .rules:merge-requests
829   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
830   variables:
831     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
832     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
833     REGRESSIONTEST_PME_RANK_NUMBER: 0
834     REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
835     REGRESSIONTEST_OMP_RANK_NUMBER: 1
836   tags:
837     - k8s-scilifelab
838   needs:
839     - job: gromacs:gcc-8-cuda-11.0:build
840     - job: regressiontests:prepare
841
842 gromacs:gcc-8-cuda-11.0:regressiontest-gpucommupd-tMPI:
843   extends:
844     - .gromacs:base:regressiontest
845     - .rules:merge-requests
846   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
847   variables:
848     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
849     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
850     REGRESSIONTEST_PME_RANK_NUMBER: 0
851     REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
852     REGRESSIONTEST_OMP_RANK_NUMBER: 1
853     GMX_GPU_DD_COMMS: 1
854     GMX_GPU_PME_PP_COMMS: 1
855     GMX_FORCE_UPDATE_DEFAULT_GPU: 1
856   tags:
857     - k8s-scilifelab
858   needs:
859     - job: gromacs:gcc-8-cuda-11.0:build
860     - job: regressiontests:prepare
861   artifacts:
862     paths:
863       - regressiontests
864     when: always
865     expire_in: 1 week
866
867 gromacs:gcc-8-cuda-11.0:regressiontest-gpucommupd-MPI:
868   extends:
869     - .gromacs:base:regressiontest
870     - .rules:merge-requests
871   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
872   variables:
873     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
874     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
875     REGRESSIONTEST_PME_RANK_NUMBER: 0
876     REGRESSIONTEST_TOTAL_RANK_NUMBER: 4
877     REGRESSIONTEST_OMP_RANK_NUMBER: 1
878     REGRESSIONTEST_PARALLEL: "-np"
879     GMX_GPU_DD_COMMS: 1  
880     GMX_GPU_PME_PP_COMMS: 1
881     GMX_FORCE_UPDATE_DEFAULT_GPU: 1
882   tags:
883     - k8s-scilifelab
884   needs:
885     - job: gromacs:gcc-8-cuda-11.0:buildMPI
886     - job: regressiontests:prepare
887   artifacts:
888     paths:
889       - regressiontests
890     when: always
891     expire_in: 1 week
892
893 gromacs:clang-8:regressiontest:
894   extends:
895     - .gromacs:base:regressiontest
896     - .rules:merge-requests
897   image: gromacs/cmake-3.15.7-llvm-8-intelopencl-openmpi:2020
898   tags:
899     - k8s-scilifelab
900   needs:
901     - job: gromacs:clang-8:build
902     - job: regressiontests:prepare
903
904 gromacs:clang-TSAN:regressiontest:
905   extends:
906     - .gromacs:base:regressiontest
907     - .rules:merge-requests
908   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
909   tags:
910     - k8s-scilifelab
911   needs:
912     - job: gromacs:clang-TSAN:build
913     - job: regressiontests:prepare
914
915 gromacs:clang-ASAN:regressiontest:
916   extends:
917     - .gromacs:base:regressiontest
918     - .use-clang:base
919     - .rules:merge-requests
920   image: gromacs/cmake-3.13.0-llvm-8-tsan-master
921   tags:
922     - k8s-scilifelab
923   needs:
924     - job: gromacs:clang-ASAN:build
925     - job: regressiontests:prepare
926
927 gromacs:clang-9:regressiontest:
928   extends:
929     - .gromacs:base:regressiontest
930     - .rules:merge-requests
931   image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
932   variables:
933     REGRESSIONTEST_DOUBLE: "-double"
934     REGRESSIONTEST_PARALLEL: "-np"
935   tags:
936     - k8s-scilifelab
937   needs:
938     - job: gromacs:clang-9-mpi:build
939     - job: regressiontests:prepare
940
941 gromacs:oneapi-2021.1-beta08-opencl:regressiontest:
942   extends:
943     - .gromacs:base:regressiontest
944     - .use-oneapi:base
945     - .rules:merge-requests
946   image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
947   needs:
948     - job: gromacs:oneapi-2021.1-beta08-opencl:build
949     - job: regressiontests:prepare
950
951 gromacs:gcc-8-cuda-11.0:release:test:
952   extends:
953     - .gromacs:base:test
954     - .rules:nightly-only-for-release
955   stage: release-tests
956   image: gromacs/cmake-3.15.7-gcc-8-cuda-11.0-nvidiaopencl-clfft-openmpi-master
957   variables:
958     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
959     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
960     BUILD_DIR: release-builds-gcc
961   tags:
962     - k8s-scilifelab
963   needs:
964     - job: gromacs:gcc-8-cuda-11.0:release:configure
965     - job: gromacs:gcc-8-cuda-11.0:release:build
966
967 gromacs:gcc-7:release:test:
968   extends:
969     - .gromacs:base:test
970     - .rules:nightly-only-for-release
971   stage: release-tests
972   image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
973   variables:
974     BUILD_DIR: release-builds-gcc
975     KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
976     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
977     LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
978   tags:
979     - k8s-scilifelab
980   needs:
981     - job: gromacs:gcc-7:release:configure
982     - job: gromacs:gcc-7:release:build
983
984 gromacs:clang-9:release:test:
985   extends:
986     - .gromacs:base:test
987     - .rules:nightly-only-for-release
988   stage: release-tests
989   image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
990   variables:
991     BUILD_DIR: release-builds-clang
992   needs:
993     - job: gromacs:clang-9:release:configure
994     - job: gromacs:clang-9:release:build
995
996 gromacs:clang-8-cuda-10.1:release:test:
997   extends:
998     - .gromacs:base:test
999     - .rules:nightly-only-for-release
1000   stage: release-tests
1001   image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master
1002   variables:
1003     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
1004     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
1005     BUILD_DIR: release-builds-clang
1006   tags:
1007     - k8s-scilifelab
1008   needs:
1009     - job: gromacs:clang-8-cuda-10.1:release:configure
1010     - job: gromacs:clang-8-cuda-10.1:release:build
1011
1012 gromacs:oneapi-2021.1-beta08-opencl:release:test:
1013   extends:
1014     - .gromacs:base:test
1015     - .use-oneapi:base
1016     - .rules:nightly-only-for-release
1017   stage: release-tests
1018   image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
1019   variables:
1020     BUILD_DIR: release-builds-oneapi
1021   needs:
1022     - job: gromacs:oneapi-2021.1-beta08-opencl:release:configure
1023     - job: gromacs:oneapi-2021.1-beta08-opencl:release:build
1024
1025 gromacs:gcc-7:release:regressiontest:
1026   extends:
1027     - .gromacs:base:regressiontest
1028     - .rules:nightly-only-for-release
1029   stage: release-tests
1030   image: gromacs/cmake-3.13.0-gcc-7-amdopencl-clfft-openmpi-master
1031   variables:
1032     BUILD_DIR: release-builds-gcc
1033     KUBERNETES_EXTENDED_RESOURCE_NAME: "amd.com/gpu"
1034     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
1035     LD_LIBRARY_PATH: "/opt/rocm-3.5.0/opencl/lib"
1036   tags:
1037     - k8s-scilifelab
1038   needs:
1039     - job: gromacs:gcc-7:release:build
1040     - job: regressiontests:package
1041
1042 gromacs:clang-9:release:regressiontest:
1043   extends:
1044     - .gromacs:base:regressiontest
1045     - .rules:nightly-only-for-release
1046   stage: release-tests
1047   image: gromacs/cmake-3.15.7-llvm-9-openmpi-master
1048   variables:
1049     BUILD_DIR: release-builds-clang
1050     REGRESSIONTEST_DOUBLE: "-double"
1051     REGRESSIONTEST_PARALLEL: "-np"
1052   tags:
1053     - k8s-scilifelab
1054   needs:
1055     - job: gromacs:clang-9:release:build
1056     - job: regressiontests:package
1057
1058 gromacs:clang-8-cuda-10.1:release:regressiontest:
1059   extends:
1060     - .gromacs:base:regressiontest
1061     - .rules:nightly-only-for-release
1062   stage: release-tests
1063   image: gromacs/cmake-3.15.7-llvm-8-cuda-10.1-openmpi-master
1064   variables:
1065     BUILD_DIR: release-builds-clang
1066     KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
1067     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 1
1068     REGRESSIONTEST_PME_RANK_NUMBER: 0
1069     REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
1070     REGRESSIONTEST_OMP_RANK_NUMBER: 1
1071   tags:
1072     - k8s-scilifelab
1073   needs:
1074     - job: gromacs:clang-8-cuda-10.1:release:build
1075     - job: regressiontests:package
1076
1077 gromacs:oneapi-2021.1-beta08-opencl:release:regressiontest:
1078   extends:
1079     - .gromacs:base:regressiontest
1080     - .use-oneapi:base
1081     - .rules:nightly-only-for-release
1082   stage: release-tests
1083   image: gromacs/cmake-3.17.2-oneapi-2021.1-beta08-master
1084   variables:
1085     BUILD_DIR: release-builds-oneapi
1086     REGRESSIONTEST_PME_RANK_NUMBER: 0
1087     REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
1088     REGRESSIONTEST_OMP_RANK_NUMBER: 1
1089   needs:
1090     - job: gromacs:oneapi-2021.1-beta08-opencl:release:build
1091     - job: regressiontests:package