More updates to testing matrix
authorMark Abraham <mark.j.abraham@gmail.com>
Mon, 15 May 2017 15:17:36 +0000 (17:17 +0200)
committerKasson <kasson@gmail.com>
Thu, 13 Jul 2017 15:11:41 +0000 (17:11 +0200)
Covered newest cmake, while ensuring that we test the new
and old FindCUDA modules.

Added new configuration to target gcc-7.

Moved x11 responsibility to a non-GPU configuration.

Moved a simd responsbility off the tsan configuration, which has
a TODO to get moved off the GPU build slave. Updated it to gcc-7
which should be useful.

Consolidated three jobs that built on bs_nix-amd into two.

Fixed minor issues with possible sprintf over-run or snprintf
truncation, and possible use of uninitialized pointers.

Fixed release matrix use of gcc-[567] versions. The release-2016
branch usess older compiler versions.

Change-Id: Iafd6a440fd763ef6c645bb094579e0ec6875621b

admin/builds/post-submit-matrix.txt
admin/builds/pre-submit-matrix.txt
admin/builds/release-matrix.txt
src/gromacs/fileio/trxio.cpp
src/gromacs/gmxana/gmx_densorder.cpp
src/gromacs/gmxana/gmx_hydorder.cpp
src/gromacs/timing/wallcycle.cpp

index c839021f815ae4d676d7a56d8a38a3323280e655..882afaa878656ff9cfa99f898eb9f536688d83bb 100644 (file)
@@ -23,7 +23,7 @@ clang-3.7 double mpi no-openmp fftpack mdrun-only
 
 # Test MPMD PME with thread-MPI
 # TODO Add double to this configuration if/when we stablize the essentialdynamics tests
-gcc-5 npme=1 nranks=2 no-openmp fftpack simd=avx_128_fma release
+gcc-7 npme=1 nranks=2 no-openmp fftpack release
 
 # Test non-default GMX_PREFER_STATIC_LIBS behavior
 # TODO enable this
@@ -38,7 +38,7 @@ gcc-5 npme=1 nranks=2 no-openmp fftpack simd=avx_128_fma release
 gcc-4.8 nranks=1 gpu cuda-7.5 simd=sse4.1
 
 # Test MPMD PME with library MPI
-clang-4 npme=1 nranks=2 mpi
+clang-4 simd=avx_128_fma npme=1 nranks=2 mpi
 
 # Test non-default use of mdrun -gpu_id
 # Test SSE2 SIMD
index d3500728f3e32425cdfaa9fd1584166b05c2eb31..10a2ac9b85988729491ea45e6e8017505808afa3 100644 (file)
 # Test older gcc
 # Test oldest supported CUDA
 # Test oldest supported Ubuntu
-# Test X11 build
 # Test MPI with CUDA
 # Test MPMD PME with library MPI
-gcc-4.8 gpu cuda-6.5 mpi npme=1 nranks=2 openmp x11
+# Test cmake FindCUDA functionality introduced in 3.8
+gcc-4.8 gpu cuda-6.5 cmake-3.8.1 mpi npme=1 nranks=2 openmp
 
 # Test newest gcc supported by newest CUDA at time of release
 # Test thread-MPI with CUDA
+# Test cmake version from before new FindCUDA support (in 3.8)
 # Test SIMD implementation of pair search for GPU code-path
-gcc-5 gpu cuda-8.0 thread-mpi openmp release simd=avx2_256
+gcc-5 gpu cuda-8.0 thread-mpi openmp cmake-3.6.1 release simd=avx2_256
 
-# Test with ThreadSanitizer (without OpenMP, because of Redmine #1850)
-# Test AVX2_256 SIMD
+# Test with ThreadSanitizer (compiled without OpenMP, even though
+#   this gcc was configured with --disable-linux-futex, because
+#   Redmine #1850 is unresolved, which causes more suspected
+#   false positives than races detected)
 # Test fftpack fallback
-gcc-4.9 tsan fftpack simd=avx2_256
+gcc-7 tsan no-openmp fftpack
 
 # Test newest gcc at time of release
+gcc-7 mpi
+
 # Test on MacOS (because gcc-6 is only available there)
-gcc-6 double
+# Test X11 build
+gcc-6 double x11
 
+# Test oldest supported cmake
 # Test older clang
 # Test double precision
 # Test without OpenMP
 # Test thread-MPI
-clang-3.4 double thread-mpi no-openmp fftpack
+clang-3.4 double thread-mpi no-openmp fftpack cmake-3.4.3
 
 # Test newest clang at time of release
 # Test with AddressSanitizer (without OpenMP, see below)
@@ -59,26 +66,21 @@ icc-16.0 msvc-2015 fftpack
 # Test MKL
 # Test without any MPI
 # Test on CentOS (because icc-16.0 is only available there)
-icc-16.0 no-thread-mpi openmp mkl cmake-3.6.1 simd=avx_256
-
-# Test oldest supported cmake
-# Test AVX_128_FMA SIMD
-gcc-5 mpi openmp simd=avx_128_fma cmake-3.4.3
+icc-16.0 no-thread-mpi openmp mkl cmake-3.8.1 simd=avx_256
 
 # Test NVIDIA OpenCL
 # Test MPI + OpenCL
-gcc-4.8 openmp opencl cuda-7.5 mpi release
+# Test AVX2_256 SIMD
+gcc-4.8 openmp opencl cuda-7.5 mpi release simd=avx2_256
 
 # Test AMD OpenCL
-gcc-5 openmp opencl amdappsdk-3.0
+# Test AVX_128_FMA SIMD
+gcc-5 openmp simd=avx_128_fma opencl amdappsdk-3.0
 
 # TODO
-# Add testing for support for cmake 3.8 for release-2017, e.g. to bs_mic and a CUDA slave (for the new CUDA support)
-# Add testing for support for gcc 7 for release-2017, e.g. to bs_mac
 # Add OpenMP support to a clang build, e.g. on a CUDA slave
 # Add OpenMP support to ASAN build (but libomp.so in clang-4 reports leaks, so might need a suitable build or suppression)
 # Test hwloc support
 # Test newest supported LTS Ubuntu
-# Migrate ThreadSanitizer test off GPU build slave
-# Explore adding openmp to ThreadSanitizer configuration, perhaps can avoid Redmine #1850 if done differently
 # Update gpu testing specifiers per https://redmine.gromacs.org/issues/2161
+# Resolve Redmine #1850 so that ThreadSanitizer can test our OpenMP code
\ No newline at end of file
index 36e4df93ad61b8a83150c1ebc80c1a9b95a0a052..d357c0b4e373d7b6a5dadea8726f7e4f8feb5520 100644 (file)
@@ -1,6 +1,6 @@
 # These configurations will be used to build and test the tarballs
 # before the release.
 gcc-4.8 mpi mdrun-only
-gcc-6.1 static
-gcc-5.1 double
+gcc-6 static
+gcc-5 double
 clang-3.4 static double
index 42540681f167c9f6cec1eb229d486c6301fe1878..8c03614008473739088513240be0b26bdfdc782a 100644 (file)
@@ -935,7 +935,7 @@ gmx_bool read_next_frame(const gmx_output_env_t *oenv, t_trxstatus *status, t_tr
 int read_first_frame(const gmx_output_env_t *oenv, t_trxstatus **status,
                      const char *fn, t_trxframe *fr, int flags)
 {
-    t_fileio      *fio;
+    t_fileio      *fio = nullptr;
     gmx_bool       bFirst, bOK;
     int            ftp   = fn2ftp(fn);
 
index beb764c348bd9b02ccd317a558c3af4625800ba5..e329e11f0762c75d3454a0421efc1c21b2e4f76c 100644 (file)
@@ -532,7 +532,7 @@ static void interfaces_txy (real ****Densmap, int xslices, int yslices, int zsli
 
 static void writesurftoxpms(t_interf ***surf1, t_interf ***surf2, int tblocks, int xbins, int ybins, int zbins, real bw, real bwz, char **outfiles, int maplevels )
 {
-    char   numbuf[13];
+    char   numbuf[STRLEN];
     int    n, i, j;
     real **profile1, **profile2;
     real   max1, max2, min1, min2, *xticks, *yticks;
index 88877f682c38dc2cbda55b37de316180e3aa01a5..e3b7d45061f1b5f9030284d6228bfbf15791f9f4 100644 (file)
@@ -449,7 +449,7 @@ static void calc_tetra_order_interface(const char *fnNDX, const char *fnTPS, con
 static void writesurftoxpms(real ***surf, int tblocks, int xbins, int ybins, real bw, char **outfiles, int maplevels )
 {
 
-    char   numbuf[8];
+    char   numbuf[STRLEN];
     int    n, i, j;
     real **profile1, **profile2;
     real   max1, max2, min1, min2, *xticks, *yticks;
index 57fe28bfb336ec6c8aa43b4ca05c6be7492463af..6b18f2dbfb8476c89f7e0e0681a4debcfb8242e1 100644 (file)
@@ -606,9 +606,9 @@ static void print_cycles(FILE *fplog, double c2t, const char *name,
                          int nnodes, int nthreads,
                          int ncalls, double c_sum, double tot)
 {
-    char   nnodes_str[6];
-    char   nthreads_str[6];
-    char   ncalls_str[11];
+    char   nnodes_str[STRLEN];
+    char   nthreads_str[STRLEN];
+    char   ncalls_str[STRLEN];
     double wallt;
     double percentage = (tot > 0.) ? (100. * c_sum / tot) : 0.;