Merge branch release-2016
authorMark Abraham <mark.j.abraham@gmail.com>
Tue, 9 May 2017 11:06:37 +0000 (13:06 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Tue, 9 May 2017 16:09:39 +0000 (18:09 +0200)
Change-Id: I4c632a9ac632f73afe4e9ac43f31dcc5f4b520fc

1  2 
admin/builds/gromacs.py
admin/builds/pre-submit-matrix.txt
cmake/gmxManageSimd.cmake

index 659d0b61283d02ba42e670f29de1c0710eccd481,ceefaf9c46be5c6528303a3aaebfd4db3ebd5cf1..c517f5fdd347c1becfb131e4508cbe713c30e696
@@@ -182,21 -184,21 +188,23 @@@ def do_build(context)
                  # not explicitly set
                  cmd += ' -ntomp 2'
  
-             if context.opts.gpu:
-                 if context.opts.mpi or use_tmpi:
-                     gpu_id = '01' # for (T)MPI use the two GT 640-s
-                 else:
-                     gpu_id = '0' # use GPU #0 by default
-                 cmd += ' -gpu_id ' + gpu_id
+             if context.opts.gpu_id:
+                 cmd += ' -gpu_id ' + context.opts.gpu_id
+             if context.opts.nranks:
+                 nranks = context.opts.nranks
+             else:
+                 nranks = '2'
+             if context.opts.npme:
+                 cmd += ' -npme ' + context.opts.npme
  
-             # TODO: Add options to influence this (should be now local to the build
-             # script).
              if context.opts.mpi:
-                 cmd += ' -np 2'
+                 cmd += ' -np ' + nranks
              elif use_tmpi:
-                 cmd += ' -nt 2'
+                 cmd += ' -nt ' + nranks
              if context.opts.double:
                  cmd += ' -double'
 +            if context.opts.asan:
 +                context.env.set_env_var('ASAN_OPTIONS', 'detect_leaks=0')
              context.run_cmd(cmd, shell=True, failure_message='Regression tests failed to execute')
index 68f051ce69d279c41c455309e884674801ebc025,257ade2cedc920250639c0b2673d01442e78a6bf..7e9cb67fa8d96fdc6cc869d5fb262d069964e0c1
@@@ -1,14 -1,62 +1,77 @@@
- gcc-4.8 gpu cuda-6.5 mpi openmp x11
- gcc-4.8 gpu cuda-8.0 openmp release
+ # 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.
++#
++# The phrase "at time of release" refers to either the initial
++# GROMACS release from that branch, or the next expected release
++# from that branch. (We will tend not to retroactively support
++# newer infrastructure in CI, unless it's either easy or of
++# high impact.)
+ # Test older gcc
+ # Test oldest supported CUDA
 -# Test oldest supported cmake
+ # Test oldest supported Ubuntu
+ # Test X11 build
+ # Test MPI with CUDA
+ # Test MPMD PME with library MPI
 -gcc-4.6 gpu cuda-5.0 mpi npme=1 nranks=2 openmp x11 cmake-2.8.8
++gcc-4.8 gpu cuda-6.5 mpi npme=1 nranks=2 openmp x11
+ # Test newest gcc supported by newest CUDA at time of release
+ # Test thread-MPI with CUDA
 -gcc-4.8 gpu cuda-7.5 openmp release
++gcc-5.4 gpu cuda-8.0 openmp release
 -# Test with ThreadSanitizer
++# Test with ThreadSanitizer (without OpenMP, because of Redmine #1850)
+ # Test AVX2_256 SIMD
+ # Test fftpack fallback
  gcc-4.9 tsan fftpack simd=avx2_256
+ # Test newest gcc at time of release
+ # Test on MacOS
  gcc-6.1 double
 -# Test with AddressSanitizer
+ # Test older clang
+ # Test double precision
 -clang-3.4 double no-openmp fftpack asan
+ # Test without OpenMP
- clang-3.8 no-openmp asan cmake-3.4.3
- # TODO move mdrun-only config to post-submit matrix
- clang-3.7 double mpi no-openmp fftpack mdrun-only cmake-3.4.3
 +clang-3.4 double no-openmp fftpack
++
++# Test newer clang
++# Test with AddressSanitizer
++clang-3.8 no-openmp asan
+ # Test oldest supported MSVC on Windows
+ # Test newest supported MSVC on Windows
  msvc-2015 openmp release
+ # Test oldest supported icc on Windows
+ # Test newest supported icc on Windows
  icc-16.0 msvc-2015 fftpack
- icc-16.0 no-thread-mpi openmp mkl simd=avx_256
- gcc-5.1 mpi openmp cmake-3.4.3
- gcc-4.8 openmp opencl cuda-8.0 mpi release
- gcc-5.2 openmp opencl simd=avx_128_fma amdappsdk-3.0
+ # Test newest cmake at time of release
+ # Test MKL
+ # Test without any MPI
+ # Test on CentOS
 -icc-16.0 no-thread-mpi openmp mkl cmake-3.3.2 simd=avx_256
++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.2 mpi openmp simd=avx_128_fma
++gcc-5.2 mpi openmp simd=avx_128_fma cmake-3.4.3
+ # Test NVIDIA OpenCL
+ # Test MPI + OpenCL
+ gcc-4.8 openmp opencl cuda-7.5 mpi release
+ # Test AMD OpenCL
+ gcc-5.2 openmp opencl amdappsdk-3.0
+ # TODO
 -# When merging to master branch, make a configuration use bs_nix1204
 -# When merging to master branch, note TODO to support updated compilers and cmake for release-2017
++# 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 clang 4.0 for release-2017, and move e.g. ASAN build to it, e.g. to bs_nix-amd
++# Add testing for support for gcc 7 for release-2017, e.g. to bs_mac
++# Add OpenMP support to a clang build
++# Add OpenMP support to ASAN build
+ # Test hwloc support
 -# Test newest supported Ubuntu
++# 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 gcc and clang specifiers per https://redmine.gromacs.org/issues/2161
++# Update gpu testing specifiers per https://redmine.gromacs.org/issues/2161
Simple merge