691b82438b9ab4e2ecd506b853456f3d37655b38
[alexxy/gromacs.git] / admin / builds / pre-submit-matrix.txt
1 # Comment line(s) preceding each configuration document the main
2 # intent behind that configuration, so that we can correctly judge
3 # whether to preserve that during maintenance decisions.
4 #
5 # Other configurations might coincidentally test such configurations
6 # (e.g. because they are the current default), but it is appropriate
7 # to intend to teach each feature (or a feature combination) exactly
8 # once, and for the intent to be reflected precisely in the
9 # configuration syntax, so that the configurations are stable even
10 # if the defaults change in future.
11 #
12 # The phrase "at time of release" refers to either the initial
13 # GROMACS release from that branch, or the next expected release
14 # from that branch. (We will tend not to retroactively support
15 # newer infrastructure in CI, unless it's either easy or of
16 # high impact.)
17
18 # Test older gcc
19 # Test oldest supported CUDA
20 # Test oldest supported Ubuntu
21 # Test MPI with CUDA
22 # Test MPMD PME with library MPI
23 # Test recent cmake (3.7+), to cover minor FindCUDA changes from 3.7.0
24 gcc-4.8 gpu cuda-6.5 cmake-3.8.1 mpi npme=1 nranks=2 openmp
25
26 # Test non-default use of mdrun -gpu_id
27 # Test newest gcc supported by newest CUDA at time of release
28 # Test thread-MPI with CUDA
29 # Test older cmake version (< 3.7)
30 # Test SIMD implementation of pair search for GPU code-path
31 gcc-6 gpu gpu_id=1 cuda-9.1 thread-mpi openmp cmake-3.6.1 release-with-assert simd=avx2_256
32
33 # Test newest cmake at time of release
34 # Test with ThreadSanitizer (compiled without OpenMP, even though
35 #   this gcc was configured with --disable-linux-futex, because
36 #   Redmine #1850 is unresolved, which causes more suspected
37 #   false positives than races detected)
38 # Test fftpack fallback
39 gcc-7 tsan no-openmp fftpack cmake-3.10.0
40
41 # Test newest gcc at time of release
42 # Test gcc in double precision
43 # Test 128-bit SIMD in double precision (to cover SimdInt32 support better)
44 gcc-7 double mpi simd=avx_128_fma
45
46 # Test on MacOS (because gcc-6 is only available there)
47 # Test X11 build
48 gcc-6 x11
49
50 # Test oldest supported cmake
51 # Test older clang
52 # Test clang in double precision
53 # Test without OpenMP
54 # Test thread-MPI
55 # Test AVX_128_FMA SIMD + Double (Important for Simd4N=Simd4 and sizeof(SimdInt32)!=4*GMX_SIMD_REAL_WIDTH)
56 clang-3.4 double simd=avx_128_fma thread-mpi no-openmp fftpack cmake-3.4.3
57
58 # Test newest clang at time of release
59 # Test with AddressSanitizer (without OpenMP, see below)
60 clang-5 no-openmp asan
61
62 # Test oldest supported MSVC on Windows
63 # Test newest supported MSVC on Windows
64 msvc-2015 openmp release-with-assert
65
66 # Test newest icc at the time of release
67 # Test icc without SIMD in double precision in release mode
68 # Test MKL
69 # Test without any MPI
70 # Test on CentOS (because cmake-3.9.6 is available there)
71 icc-18 no-thread-mpi double openmp mkl cmake-3.9.6 simd=none release
72
73 # Test NVIDIA OpenCL
74 # Test MPI + OpenCL
75 # Test AVX2_256 SIMD
76 # Test icc with SIMD in mixed precision in release mode
77 icc-18 openmp opencl cuda-7.5 mpi release simd=avx2_256
78
79 # Test AMD OpenCL
80 # Test AVX_128_FMA SIMD
81 gcc-5 openmp simd=avx_128_fma opencl amdappsdk-3.0
82
83 # TODO
84 # Add OpenMP support to ASAN build (but libomp.so in clang-4 reports leaks, so might need a suitable build or suppression)
85 # Test hwloc support
86 # Test newest supported LTS Ubuntu
87 # Update gpu testing specifiers per https://redmine.gromacs.org/issues/2161
88 # Resolve Redmine #1850 so that ThreadSanitizer can test our OpenMP code
89 # Support icc 17
90 # Test AVX-512 when hardware is available