Test with gcc 8 and cuda 10
authorMark Abraham <mark.j.abraham@gmail.com>
Wed, 3 Oct 2018 22:01:25 +0000 (00:01 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Sun, 7 Oct 2018 11:10:15 +0000 (13:10 +0200)
They're not supported together but we can efficiently update the
testing matrix just once.

Now using the internal XDR on Darwin because gcc 8 warns about casts
that are technically invalid because of the way xdrproc_t is defined
on Darwin, but not a problem in practice.

Refs #2629

Change-Id: Ia6e272cb208ad8f79c8655199aafc95007d2a605

CMakeLists.txt
admin/builds/post-submit-matrix.txt
admin/builds/pre-submit-matrix.txt
admin/builds/release-matrix.txt

index a69bedb9624c27576ba04403cee96d5dfe32cce9..5782ea0a2e459a49d6324c2dc16fab04348d0b67 100644 (file)
@@ -691,7 +691,15 @@ check_include_file_cxx(regex     HAVE_CXX11_REGEX)
 
 include(gmxTestXDR)
 gmx_test_xdr(GMX_SYSTEM_XDR)
-if(NOT GMX_SYSTEM_XDR)
+# Darwin has system XDR, but it uses a three-argument flavour of
+# xdrproc_t that it guarantees will still work if you pass the normal
+# two-argument xdr filters, but gcc 8 warns about the cast necessary
+# to do that, so it's simpler to just use our own XDR library.
+#
+# TODO It would be better to craft a cmake test which fails if such
+# XDR operations cause warnings, and succeeds otherwise, because it is
+# generally preferable to use system libraries where possible.
+if(NOT GMX_SYSTEM_XDR OR CMAKE_SYSTEM_NAME STREQUAL "Darwin")
     set(GMX_INTERNAL_XDR 1)
 endif()
 
index 5dc395d1498ea848287a6a8636c42f2ddb40cee4..1a3731b388b9b9c6a164d5c37e297090180c097e 100644 (file)
@@ -41,7 +41,7 @@ icc-18 simd=sse2 double mkl release-with-assert
 # Test SSE4.1 SIMD
 # Test single-rank GPU
 # Test clang + OpenMP + CUDA
-clang-4 simd=sse4.1 openmp nranks=1 gpuhw=nvidia cuda-8.0 clang_cuda
+clang-4 simd=sse4.1 openmp nranks=1 gpuhw=nvidia cuda-10.0 clang_cuda
 
 # Test MPMD PME with library MPI
 # Test clang + OpenMP
index d1a9cd16e469fc916d13b96ebe768abd6440fe6e..b70e100967af9f308cfac7deae9d1400150ae2da 100644 (file)
@@ -30,19 +30,19 @@ gcc-4.8 gpuhw=nvidia cuda-7.0 cmake-3.8.1 mpi npme=1 nranks=2 openmp
 # Test thread-MPI with CUDA
 # Test older cmake version (< 3.7)
 # Test SIMD implementation of pair search for GPU code-path
-gcc-7 gpuhw=nvidia gpu_id=1 cuda-9.2 thread-mpi openmp cmake-3.6.1 release-with-assert simd=avx2_256
+gcc-7 gpuhw=nvidia gpu_id=1 cuda-10.0 thread-mpi openmp cmake-3.6.1 release-with-assert simd=avx2_256
 
 # Test with libcxx
 # Test with ThreadSanitizer + OpenMP + SIMD
 clang-7 no-hwloc tsan libcxx-7 openmp cmake-3.12.1 simd=avx2_256
 
-# Test on MacOS (the gcc-6 and/or x11 flags implicitly steer jobs to the OSX agent)
+# Test on MacOS (the gcc-8 and/or x11 flags implicitly steer jobs to the OSX agent)
 # Test X11 build
 # Test gcc in double precision
 # Test without TNG support
 # Test 128-bit SIMD in double precision (to cover SimdInt32 support better)
 # Test fftpack fallback
-gcc-6 double x11 no-tng fftpack simd=sse4.1
+gcc-8 double x11 no-tng fftpack simd=sse4.1
 
 # Test oldest supported cmake
 # Test older clang
@@ -82,13 +82,11 @@ gcc-6 openmp gpuhw=nvidia opencl-1.2 clFFT-2.14 mpi simd=avx2_256
 # Test AMD OpenCL
 # Test external clFFT (for build speed)
 # Test AVX_128_FMA SIMD
-gcc-5 openmp simd=avx_128_fma gpuhw=amd opencl-1.2 clFFT-2.14
+# Test newest gcc at time of release
+gcc-8 openmp simd=avx_128_fma gpuhw=amd opencl-1.2 clFFT-2.14
 
 # TODO
 # Add OpenMP support to ASAN build (but libomp.so in clang-4 reports leaks, so might need a suitable build or suppression)
 # Test hwloc-2 support
 # Test newest supported LTS Ubuntu
 # Test AVX-512 when hardware is available
-# Update to test gcc 8
-# Update to test clang 7
-# Update to test CUDA 10
index 2565b6ba25e4dc6f0a16f37f9ac57dad19eceaeb..f17f5e98134cbe4a4ab7febfbf67eb9c68abd1fc 100644 (file)
@@ -27,7 +27,7 @@ gcc-4.8 mpi mdrun-only release cmake-3.8.1
 
 # Test static linking with gcc
 # Test newest gcc at time of release
-gcc-7 static release
+gcc-8 static release
 
 # Test double precision
 # Test with newest supported Intel compiler
@@ -38,10 +38,10 @@ icc-18 double release
 # Test newest supported clang version
 clang-5 static double release cmake-3.6.1
 
-# Test with CUDA GPU support
-gcc-5 gpuhw=nvidia cuda-8.0 release
+# Test with GPU support
+# Test with newest CUDA at time of release
+gcc-5 gpuhw=nvidia cuda-10.0 release
 
 # TODO items
 # Avoid specifying cmake versions just to move jobs away from bs_nix-amd
 # Add an OpenCL GPU build
-# Update to test gcc 8