# This matrix is intended to permit Jenkins:
# - nigtly testing of the GPU direct communations experimental features in the 2020 release
# - on-demand testing of the GPU direct communication code path
# This is neceassary due to:
# i) the limitations of the integration tests which only test the deafult code-path
# ii) limitations of the regresssion tests which are not able to rerun update with a
#     different offload mode unless the default is observed to be GPU.
#
# Comment line(s) preceding each configuration document the main
# intent behind that configuration, so that we can correctly judge
# whether to preserve that during maintenance decisions.
#
# Both configurations currently target bs_nix1204, for better load
# balance with pre-submit matrix, which makes heavier use of
# bs_nix1310 agent.

# Test an older version of CUDA
# Test MPI with CUDA
# Test multiple PP ranks with separate PME rank
# Test with thread-MPI (library MPI not supported initially)
# Test GPU comm features in the above combination
gcc-5 gpuhw=nvidia cuda-9.0 npme=1 nranks=3 thread-mpi openmp gpucomm

# Test newest gcc supported by newest CUDA at time of release
# Test multiple PP ranks without separate PME rank
# Test thread-MPI with CUDA
# Test GPU comm features in the above combination
gcc-8 gpuhw=nvidia nranks=2 gpu_id=1 cuda-10.1 thread-mpi openmp cmake-3.10.0 release-with-assert simd=avx2_256 hwloc libhwloc-2.0.4 gpucomm

# Test non-default use of mdrun -gpu_id
# Test GPU-sharing among 4 PP ranks
# Test no hwloc build, tests internal CPU topology detection (mainly for x86)
# Test GPU comm features in the above combination
gcc-7 gpuhw=nvidia nranks=4 gpu_id=1 cuda-10.0 no-hwloc release-with-assert gpucomm

# Test CUDA build on a agent with no CUDA devices
# Test without TNG support
# Test GPU comm features in the above combination
gcc-7 gpuhw=none cuda-10.0 openmp no-tng release-with-assert gpucomm

# Test OpenCL build with gpudev features
# Test GPU comm on the OpenCL path where it is unsupported
clang-8 openmp gpuhw=amd opencl-1.2 clFFT-2.14 simd=None gpucomm

# Test a non-GPU build with the gpucomm optiom set
gcc-8 double x11 no-tng fftpack simd=sse4.1 gpucomm
