Merge branch release-2019
authorMark Abraham <mark.j.abraham@gmail.com>
Wed, 2 Jan 2019 10:56:32 +0000 (11:56 +0100)
committerPaul Bauer <paul.bauer.q@gmail.com>
Wed, 2 Jan 2019 11:22:29 +0000 (12:22 +0100)
Change-Id: I71d9bc751e14f821392f802ee9222b864f1e69b6

23 files changed:
1  2 
CMakeLists.txt
admin/builds/gromacs.py
cmake/gmxManageClangCudaConfig.cmake
cmake/gmxManageNvccConfig.cmake
cmake/gmxVersionInfo.cmake
docs/CMakeLists.txt
docs/release-notes/index.rst
src/api/cpp/tests/CMakeLists.txt
src/api/cpp/workflow/tests/CMakeLists.txt
src/config.h.cmakein
src/gromacs/gpu_utils/gpu_utils.cpp
src/gromacs/gpu_utils/gpu_utils.cu
src/gromacs/gpu_utils/gpu_utils.h
src/gromacs/gpu_utils/gpu_utils_ocl.cpp
src/gromacs/gpu_utils/oclraii.h
src/gromacs/mdlib/md_support.cpp
src/gromacs/mdlib/md_support.h
src/gromacs/mdlib/update.cpp
src/gromacs/mdrun/md.cpp
src/gromacs/mdrun/runner.cpp
src/gromacs/taskassignment/decidegpuusage.cpp
src/gromacs/taskassignment/decidegpuusage.h
src/gromacs/timing/cyclecounter.cpp

diff --cc CMakeLists.txt
index 90c253920d1af8a3b8baf8ea236835354fb7702f,0191097c78c1962b53da399b1b797a01739ccc36..59dc5a7f42ca2389623b01de96af763450d21d1c
@@@ -1,7 -1,7 +1,7 @@@
  #
  # This file is part of the GROMACS molecular simulation package.
  #
--# Copyright (c) 2009,2010,2011,2012,2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++# Copyright (c) 2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019, 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.
index c4776b7b27863eb13e8f754f16fb94b4a78cf6bc,b1bde7ad28d666f7d0ff9e0cfb97ed7ee46d79fc..ec6fa73a5cd74e0decd1ce2e6f9823ef91ec49ca
@@@ -1,7 -1,7 +1,7 @@@
  #
  # This file is part of the GROMACS molecular simulation package.
  #
--# Copyright (c) 2015,2016,2017,2018, by the GROMACS development team, led by
++# Copyright (c) 2015,2016,2017,2018,2019, 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.
index 542674d56c477a2240838c20a622df33ade1899c,c06a4ca710404a4eb9a6e80fb75bb2a7280172f8..4d8f45510801f1219fe175135a2096ef4af4ed75
@@@ -1,7 -1,7 +1,7 @@@
  #
  # This file is part of the GROMACS molecular simulation package.
  #
--# Copyright (c) 2017,2018, by the GROMACS development team, led by
++# Copyright (c) 2017,2018,2019, 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.
index 5704baaff32c09f663d799ee232fcae60859af77,ba338394bbdefc0b69234e37d83fd378ff6840d4..8a021d67ac5a57151fb9a8597e4b2732a8016bac
@@@ -1,7 -1,7 +1,7 @@@
  #
  # This file is part of the GROMACS molecular simulation package.
  #
--# Copyright (c) 2012,2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++# Copyright (c) 2012,2013,2014,2015,2016,2017,2018,2019, 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.
index 00c28c65a07f50895a41fb3b903a255deb55362b,970a572d7b56cd01744d21865b21a5974de991cb..6531d44d3eeaa86b592cb307a71d206532043094
@@@ -1,7 -1,7 +1,7 @@@
  #
  # This file is part of the GROMACS molecular simulation package.
  #
--# Copyright (c) 2014,2015,2016,2017,2018, by the GROMACS development team, led by
++# Copyright (c) 2014,2015,2016,2017,2018,2019, 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.
index 5c4fc632c7c67abc8838564c64c7f4b6b86324b2,dff9e6cd2e053c3e096b34f1ff59934fd9a6b62b..e9742372813c54b8746bf16972bc9f0e0c0fe821
@@@ -1,7 -1,7 +1,7 @@@
  #
  # This file is part of the GROMACS molecular simulation package.
  #
--# Copyright (c) 2014,2015,2016,2017,2018, by the GROMACS development team, led by
++# Copyright (c) 2014,2015,2016,2017,2018,2019, 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.
@@@ -367,15 -367,7 +367,16 @@@ if (SPHINX_FOUND
          how-to/visualize.rst
          install-guide/index.rst
          release-notes/index.rst
 +        release-notes/highlights.rst
 +        release-notes/features.rst
 +        release-notes/performance.rst
 +        release-notes/tools.rst
 +        release-notes/bugs-fixed.rst
 +        release-notes/removed-functionality.rst
 +        release-notes/deprecated-functionality.rst
 +        release-notes/portability.rst
 +        release-notes/miscellaneous.rst
+         release-notes/2019/2019.1.rst
          release-notes/2019/major/highlights.rst
          release-notes/2019/major/features.rst
          release-notes/2019/major/performance.rst
Simple merge
index 726ce22753b5a04e814c144548a098ac7fd1196f,17f35a123c46f76d5e3be2cb8e4738cec0204b76..c4c733d253ff8aba4895e088c9b294a0b14716b9
@@@ -1,7 -1,7 +1,7 @@@
  #
  # This file is part of the GROMACS molecular simulation package.
  #
--# Copyright (c) 2018, by the GROMACS development team, led by
++# Copyright (c) 2018,2019, 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.
index 80f3e448319d8383b90f3759525fd21aace26709,5f75ee5b4fb20d35b28849229146d1feea406d3c..b37ecdb7d2aa48b0048d3d5e9a330f890307bd41
@@@ -1,7 -1,7 +1,7 @@@
  #
  # This file is part of the GROMACS molecular simulation package.
  #
--# Copyright (c) 2018, by the GROMACS development team, led by
++# Copyright (c) 2018,2019, 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.
index 5fdeeb61f10cb78a02c86724c8d1e73f0712188f,c685f264b5e4b23cbc7669b87e945dc1be873a54..2723c0511756b5cb27af8358be7d799c07fd595f
@@@ -1,7 -1,7 +1,7 @@@
  /*
   * This file is part of the GROMACS molecular simulation package.
   *
-- * Copyright (c) 2009,2010,2011,2012,2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019, 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.
index 753c5d88484c8d3fe15e184db592688d8d4683d3,905de06b728ce30fa7a2f511ed92f5fab6bb7dbc..7105b498c2ec16ef74aaf77eddcb0ff938ee925d
@@@ -1,7 -1,7 +1,7 @@@
  /*
   * This file is part of the GROMACS molecular simulation package.
   *
-- * Copyright (c) 2014,2015,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2014,2015,2017,2018,2019, 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.
index 307cdcd99d90c02daccc48791ecc43a61e33cb68,56047d32c2ac78a04c91b9bd20368d8bc250fc81..9fbde4f09aa287368e70c8abb5ff6be091f6c4eb
@@@ -1,7 -1,7 +1,7 @@@
  /*
   * This file is part of the GROMACS molecular simulation package.
   *
-- * Copyright (c) 2010,2011,2012,2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2010,2011,2012,2013,2014,2015,2016,2017,2018,2019, 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.
index 69e8ee410cb2ca205c01049f021f68b00410a10f,88058dba56b38a065d5edd1e9aae7172561136f1..6755f1c587929412e3d8ce0f7ab26a4e84184618
@@@ -3,7 -3,7 +3,7 @@@
   *
   * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
   * Copyright (c) 2001-2010, The GROMACS development team.
-- * Copyright (c) 2012,2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2012,2013,2014,2015,2016,2017,2018,2019, 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.
index a9fea0d2840cef5c4b59761d34e7d2007c55e087,ea49214e7a026b2aed24b8323d7ccb4bdf287319..83536a257113b5abeab70085377ff92ad0b7c0ac
@@@ -1,7 -1,7 +1,7 @@@
  /*
   * This file is part of the GROMACS molecular simulation package.
   *
-- * Copyright (c) 2012,2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2012,2013,2014,2015,2016,2017,2018,2019, 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.
index 0000000000000000000000000000000000000000,c541623217f740852ef737942784646438cb6c24..227ba844e536cd541ff12cfaf993538aa4c409f4
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,138 +1,138 @@@
 - * Copyright (c) 2018, by the GROMACS development team, led by
+ /*
+  * This file is part of the GROMACS molecular simulation package.
+  *
++ * Copyright (c) 2018,2019, 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.
+  *
+  * GROMACS is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public License
+  * as published by the Free Software Foundation; either version 2.1
+  * of the License, or (at your option) any later version.
+  *
+  * GROMACS is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with GROMACS; if not, see
+  * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+  *
+  * If you want to redistribute modifications to GROMACS, please
+  * consider that scientific software is very special. Version
+  * control is crucial - bugs must be traceable. We will be happy to
+  * consider code for inclusion in the official distribution, but
+  * derived work must not be called official GROMACS. Details are found
+  * in the README & COPYING files - if they are missing, get the
+  * official version at http://www.gromacs.org.
+  *
+  * To help us fund GROMACS development, we humbly ask that you cite
+  * the research papers on the package. Check out http://www.gromacs.org.
+  */
+ /*! \libinternal \file
+  * \brief Declare RAII helpers for OpenCL types, along with
+  * supporting type traits.
+  *
+  * \author Mark Abraham <mark.j.abraham@gmail.com>
+  * \inlibraryapi
+  */
+ #ifndef GMX_GPU_UTILS_OCLRAII_H
+ #define GMX_GPU_UTILS_OCLRAII_H
+ #include "gromacs/gpu_utils/gmxopencl.h"
+ namespace gmx
+ {
+ /*! \libinternal \brief Stub for OpenCL type traits */
+ template <typename cl_type>
+ struct OpenClTraits;
+ /*! \libinternal \brief Implements common trait infrastructure for OpenCL types. */
+ template <typename cl_type>
+ struct OpenClTraitsBase
+ {
+     //! Type of the function that will release a handle of this type.
+     using ReleaserType = cl_int(*)(cl_type);
+ };
+ /*! \libinternal \brief Implements traits for cl_context. */
+ template <>
+ struct OpenClTraits<cl_context> : public OpenClTraitsBase<cl_context>
+ {
+     //! Function that will release a handle of this type.
+     static constexpr ReleaserType releaser = clReleaseContext;
+ };
+ /*! \libinternal \brief Implements traits for cl_command_queue. */
+ template <>
+ struct OpenClTraits<cl_command_queue> : public OpenClTraitsBase<cl_command_queue>
+ {
+     //! Function that will release a handle of this type.
+     static constexpr ReleaserType releaser = clReleaseCommandQueue;
+ };
+ /*! \libinternal \brief Implements traits for cl_program. */
+ template <>
+ struct OpenClTraits<cl_program> : public OpenClTraitsBase<cl_program>
+ {
+     //! Function that will release a handle of this type.
+     static constexpr ReleaserType releaser = clReleaseProgram;
+ };
+ /*! \libinternal \brief Implements traits for cl_kernel. */
+ template <>
+ struct OpenClTraits<cl_kernel> : public OpenClTraitsBase<cl_kernel>
+ {
+     //! Function that will release a handle of this type.
+     static constexpr ReleaserType releaser = clReleaseKernel;
+ };
+ /*! \libinternal \brief Wrapper of OpenCL type \c cl_type to implement RAII.
+  *
+  * Works by calling the releaser function associated with cl_type
+  * by OpenClTraits.
+  *
+  * Simple copying and assignment are not supported, because there's no
+  * need for that, and would require OpenCL API calls for deep copies
+  * if they were needed. Move and move assignment are fine, however. */
+ template <typename cl_type>
+ class ClHandle
+ {
+     public:
+         //! Constructor that takes an already created handle.
+         explicit ClHandle(cl_type handle) : handle_(handle) {}
+         //! Destructor that calls the releaser associated with cl_type.
+         ~ClHandle() { OpenClTraits<cl_type>::releaser(handle_); }
+         //! Deleted default constructor.
+         ClHandle()                            = delete;
+         //! Deleted assignment operator.
+         ClHandle &operator=(const ClHandle &) = delete;
+         //! Deleted copy constructor.
+         ClHandle(const ClHandle &)            = delete;
+         //! Default move assignment operator.
+         ClHandle &operator=(ClHandle &&)      = default;
+         //! Default copy constructor.
+         ClHandle(ClHandle &&)                 = default;
+         /*! \brief Convenience conversion operator so the wrapper type
+          * can simply convert to the wrapped type. */
+         operator cl_type() const { return handle_; }
+     private:
+         //! The wrapped object.
+         cl_type handle_;
+ };
+ //! Convenience declarations.
+ /*! @{ */
+ using ClContext      = ClHandle<cl_context>;
+ using ClCommandQueue = ClHandle<cl_command_queue>;
+ using ClProgram      = ClHandle<cl_program>;
+ using ClKernel       = ClHandle<cl_kernel>;
+ /*! @} */
+ } // namespace
+ #endif
index 85fac9fa337f725876684c61f46b8c78f9630e23,2069668f825ad96a769946eb973f127b6ca77281..f87fe607c78bb4a3e948d70e9fd10fdcae56a969
@@@ -3,7 -3,7 +3,7 @@@
   *
   * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
   * Copyright (c) 2001-2004, The GROMACS development team.
-- * Copyright (c) 2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2013,2014,2015,2016,2017,2018,2019, 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.
index 5e57ce7c19906e6fab79023a62c2d7113c791401,b45012de168ee48eb9d001805d8ad4e06ca90389..eb6c45d615ceeef5f7d98b885a33a65458b6a4fe
@@@ -3,7 -3,7 +3,7 @@@
   *
   * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
   * Copyright (c) 2001-2004, The GROMACS development team.
-- * Copyright (c) 2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2013,2014,2015,2016,2017,2018,2019, 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.
index 80aba49efa53b8d1f1d02cdd4309c62aba835495,af0e485c75713fe5e221bf3fcb09213a955b8671..2f6c8aedf45f1b367b34a8eb436d3deaff6e89fc
@@@ -3,7 -3,7 +3,7 @@@
   *
   * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
   * Copyright (c) 2001-2004, The GROMACS development team.
-- * Copyright (c) 2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2013,2014,2015,2016,2017,2018,2019, 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.
index 050eb74284e51bdc810545131d7d775866fb6db0,a49a15df53a4246970f4f4a00e542f1c9a7cedbe..7da1d2e46bf8176fb3a516ef755c00629ab87d99
@@@ -3,7 -3,7 +3,7 @@@
   *
   * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
   * Copyright (c) 2001-2004, The GROMACS development team.
-- * Copyright (c) 2011,2012,2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2011,2012,2013,2014,2015,2016,2017,2018,2019, 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.
index 81ae467a68d7c03153a299c4578d95495b51852b,110c9e3c3720b31a89c1e9317dd674f2383000cd..6f2657b02f3f6c2ccab52eec797b154dc164972d
@@@ -3,7 -3,7 +3,7 @@@
   *
   * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
   * Copyright (c) 2001-2004, The GROMACS development team.
-- * Copyright (c) 2011,2012,2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2011,2012,2013,2014,2015,2016,2017,2018,2019, 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.
index 4488f8d5893dc47df9cbda9e294669a9b52c2ec0,8e74f9b0872cebae8854770b08175478032226d3..b10f236a1e61247a3d2e771e00780fab42083120
@@@ -1,7 -1,7 +1,7 @@@
  /*
   * This file is part of the GROMACS molecular simulation package.
   *
-- * Copyright (c) 2015,2016,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2015,2016,2017,2018,2019, 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.
index 3f67d36f3dd278e09508bcab74f08474e54b900e,34e61ffa9284bafb42da9d761200548990e33906..ac2fe27478218d17c854e43ad788fb9073f12e98
@@@ -1,7 -1,7 +1,7 @@@
  /*
   * This file is part of the GROMACS molecular simulation package.
   *
-- * Copyright (c) 2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2017,2018,2019, 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.
index 46757699746271b829c049a49ab2027b0cb399f5,b5644feae4b6b7509c5b53b2b9ae5f0668f84218..6778a9d48463a70ff78d145820fde57e24877d42
@@@ -2,7 -2,7 +2,7 @@@
   * This file is part of the GROMACS molecular simulation package.
   *
   * Copyright (c) 1991-2006 David van der Spoel, Erik Lindahl, Berk Hess, University of Groningen.
-  * Copyright (c) 2013,2014,2015,2016,2017, by the GROMACS development team, led by
 - * Copyright (c) 2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
++ * Copyright (c) 2013,2014,2015,2016,2017,2018,2019, 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.