#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2015,2016, by the GROMACS development team, led by
+# Copyright (c) 2015,2016,2017, by the GROMACS development team, led by
# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
# and including many others, as listed in the AUTHORS file in the
# top-level source directory and at http://www.gromacs.org.
import os.path
+# These are accessible later in the script, just like other
+# declared options, via e.g. context.opts.release.
extra_options = {
'mdrun-only': Option.simple,
'static': Option.simple,
'thread-mpi': Option.bool,
'gpu': Option.bool,
'opencl': Option.bool,
- 'openmp': Option.bool
+ 'openmp': Option.bool,
+ 'nranks': Option.string,
+ 'npme': Option.string,
+ 'gpu_id': Option.string
}
+
extra_projects = [Project.REGRESSIONTESTS]
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'
context.run_cmd(cmd, shell=True, failure_message='Regression tests failed to execute')
-gcc-4.4 double no-openmp host=bs_centos63
-clang-3.4 gmxtest+"-npme 1 -nt 3" double no-openmp fftpack release host=bs_centos63
-clang-3.4 double no-openmp fftpack asan host=bs_centos63
-gcc-4.1 double no-openmp simd-sse2 host=bs_nix1004
-gcc-4.3 mpi simd-sse2 host=bs_nix1004
-gcc-4.5 no-openmp atlas mpi host=bs_nix64
-icc-12.1.2 no-openmp no-threadmpi host=bs_nix64
-gcc-4.7 no-openmp host=bs_nix64
-icc-12.1.2 double mkl release host=bs_nix64
-gcc-4.7 double no-threadmpi simd-sse4.1 release host=bs_nix64
-icc-15.0.0 gmxtest+"-ntomp 1" no-threadmpi host=bs_mac
-gcc-4.8 no-openmp no-threadmpi fftpack optimized host=bs_mac
-gcc-4.9 optimized host=bs_mac
-icc-14.0.3 Platform=Phi host=bs_mic
-icc-14.0.3 Platform=Phi optimized host=bs_mic
-clang-3.4 asan host=bs_mic
-msvc-2010 release host=bs_Win2008_64
-msvc-2010 double no-threadmpi fftpack cmake+GMX_PREFER_STATIC_LIBS=OFF release host=bs_Win2008_64
-icc-12.1.2 cmake+GMX_DLOPEN=OFF no-threadmpi fftpack release host=bs_Win2008_64
-clang-3.6 double no-openmp fftpack host=bs_nix1204
-gcc-4.7 gmxtest+"-nt 1" gpu cuda-4.2 double simd-sse4.1 host=bs_nix1204
-gcc-4.4 gpu cuda-4.0 mpi simd-avx_256 host=bs_nix1204
-gcc-4.5 gpu cuda-4.1 atlas mpi simd-sse4.1 host=bs_nix1204
-gcc-4.6 gpu cuda-5.0 no-threadmpi release host=bs_nix1204
-gcc-4.7 gpu cuda-5.5 atlas simd-sse2 release host=bs_nix1204
-gcc-4.4 double mpi simd-avx_256 host=bs_nix1310
-gcc-4.6 double no-threadmpi simd-avx_256 release host=bs_nix1310
-gcc-4.7 gmxtest+"-npme 1 -np 3" no-threadmpi mpi simd-avx2_256 release host=bs_nix1310
-gcc-4.7 gmxtest+"-npme 1 -nt 3 -gpu_id 12" gpu cuda-5.5 simd-sse4.1 release host=bs_nix1310
-clang-3.4 gmxtest+"-npme 1 -nt 3" double no-openmp simd-avx_256 release host=bs_nix1310
-gcc-4.9 tsan host=bs_nix1310
-gcc-4.9 double no-threadmpi optimized host=bs_nix1404
-gcc-4.7 double gmxtest+"-nt 1" host=bs_nix1404
-gcc-5.1 gmxtest+"-npme 1 -np 3" double no-threadmpi mpi host=bs_nix1404
-gcc-5.1 mpi release host=bs_nix1404
+# 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.
+
+# Test the mdrun-only build
+# TODO In combination with gmx from another build, arrange to run regressiontests
+clang-3.7 double mpi no-openmp fftpack mdrun-only
+
+# Test MPMD PME with thread-MPI
+# TODO Add double to this configuration if/when Carsten stablizes essentialdynamics tests
+gcc-5.2 npme=1 nranks=2 no-openmp fftpack simd=avx_128_fma release
+
+# Test non-default GMX_PREFER_STATIC_LIBS behavior
+# TODO enable this
+# msvc-2015 double no-threadmpi no-prefer-static-libs release
+
+# Test behaviour when dlopen is not present
+# TODO enable this
+# icc-16.0 no-dlopen no-threadmpi double mkl release
+
+# Test SSE4.1 SIMD
+# Test single-rank GPU
+gcc-4.8 nranks=1 gpu cuda-7.5 simd=sse4.1
+
+# Test MPMD PME with library MPI
+clang-3.4 npme=1 nranks=2 mpi
+
+# Test non-default use of mdrun -gpu_id
+# Test SSE2 SIMD
+gcc-4.8 gpu npme=1 nranks=2 gpu_id=2 cuda-7.5 simd=sse2 release
+
+# TODO
+# Re-enable Phi build
+# Test without TNG support
+# Test without hwloc support
+# Test with NVML support
+# Test statically linked hwloc support (if/when it can work well)
+# Test 3D DD (2D is partially covered in regressiontests)
+# Test own-fftw build (from local copy of the file)
+# Test mdrun -tunepme (e.g. with relaxed tolerances, for now)
+# Consider testing of other CMake option paths
+# Consider adding our ARM dev boards as slaves to improve cross-platform portability testing.
-gcc-4.6 gpu cuda-5.0 mpi openmp x11 cmake-2.8.8
+# 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.
+
+# 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
+
+# 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
+
+# Test with ThreadSanitizer
+# 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 older clang
+# Test double precision
+# Test with AddressSanitizer
+# Test without OpenMP
clang-3.4 double no-openmp fftpack asan
-# TODO move mdrun-only config to post-submit matrix
-clang-3.7 double mpi no-openmp fftpack mdrun-only
+
+# 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
+
+# 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
+
+# Test AVX_128_FMA SIMD
gcc-5.2 mpi openmp simd=avx_128_fma
+
+# 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
+# Test hwloc support
+# Test newest supported Ubuntu
+# Migrate ThreadSanitizer test off GPU build slave
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013,2014,2015,2016, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014,2015,2016,2017, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
int nnbl;
nbnxn_pairlist_t **nbl;
int coulkt, vdwkt = 0;
- int nb, nthreads;
+ int nb, nthreads gmx_unused;
nnbl = nbl_list->nnbl;
nbl = nbl_list->nbl;
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2012,2013,2014,2015,2016, by the GROMACS development team, led by
+ * Copyright (c) 2012,2013,2014,2015,2016,2017, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
int nnbl;
nbnxn_pairlist_t **nbl;
int coulkt, vdwkt = 0;
- int nb, nthreads;
+ int nb, nthreads gmx_unused;
nnbl = nbl_list->nnbl;
nbl = nbl_list->nbl;