Merge release-5-0 into release-5-1
authorMark Abraham <mark.j.abraham@gmail.com>
Mon, 5 Oct 2015 19:36:02 +0000 (21:36 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Mon, 5 Oct 2015 20:20:44 +0000 (22:20 +0200)
Conflicts:
cmake/gmxManageFFTLibraries.cmake
Fixes from release-5-0 goes in only one branch of the refactoring in
release-5-1 that separate the own-fftw build from an installed-fftw
build.

docs/manual/monster.bib
Insertions in both branches, both retained

src/gromacs/gmxana/gmx_wham.cpp
Fixed formatting of copyrighted years.

src/programs/mdrun/mdrun.cpp
Relocation of please_cite() calls was adjacent to removal of bSepPot,
trivial resolution

Change-Id: I9d6116534775906d74ddbd45925176a21b5afcd9

1  2 
cmake/FindFFTW.cmake
cmake/gmxManageFFTLibraries.cmake
docs/manual/gromacs.tex
docs/manual/monster.bib
src/gromacs/gmxana/dlist.c
src/gromacs/gmxana/gmx_energy.c
src/gromacs/gmxana/gmx_wham.cpp
src/gromacs/gmxlib/copyrite.cpp
src/gromacs/swap/swapcoords.cpp
src/programs/mdrun/runner.cpp

Simple merge
index fdd63bca94f258d402a7c3899f3b4c705d9981e3,6f9c440b07fd4d5782646460e6a7dcbcb1ac78cd..90fdcd37bcf94a315a7a3d32245a5ff3481043c6
@@@ -59,44 -59,52 +59,48 @@@ gmx_dependent_cache_variable
      PATH ""
      MKL_MANUALLY)
  if(${GMX_FFT_LIBRARY} STREQUAL "FFTW3")
 +    # ${FFTW} must be in upper case
      if(GMX_DOUBLE)
 -        set(FFTW fftw)
 +        set(FFTW "FFTW")
      else()
 -        set(FFTW fftwf)
 +        set(FFTW "FFTWF")
      endif()
  
 -    # Note that these calls are expected to function the same way,
 -    # particularly with respect to setting CMake variables that
 -    # record the presence of particular FFTW SIMD support.
 -    # TODO There is no need for this requirement, all the remaining
 -    # code here can be refactored to have just one check of
 -    # GMX_BUILD_OWN_FFTW, which simplifies both code paths.
      if(GMX_BUILD_OWN_FFTW)
 -      add_subdirectory(src/contrib/fftw)
 +        add_subdirectory(src/contrib/fftw)
 +        include_directories(BEFORE ${${FFTW}_INCLUDE_DIRS})
 +        # libgmxfftw is always built static, so libgromacs does not
 +        # have a dependency on anything, so PKG_FFT should be empty
 +        set(PKG_FFT "")
 +        set(FFT_STATUS_MESSAGE "Using external FFT library - FFTW3 build managed by GROMACS")
      else()
 -      find_package(FFTW COMPONENTS ${FFTW})
 -    endif()
 +        string(TOLOWER "${FFTW}" LOWERFFTW)
 +        find_package(FFTW COMPONENTS ${LOWERFFTW})
  
 -    string(TOUPPER "${FFTW}" FFTW)
 -    if(NOT ${FFTW}_FOUND)
 -      MESSAGE(FATAL_ERROR "Cannot find FFTW 3 (with correct precision - libfftw3f for mixed-precision GROMACS or libfftw3 for double-precision GROMACS). Either choose the right precision, choose another FFT(W) library (-DGMX_FFT_LIBRARY), enable the advanced option to let GROMACS build FFTW 3 for you (-GMX_BUILD_OWN_FFTW=ON), or use the really slow GROMACS built-in fftpack library (-DGMX_FFT_LIBRARY=fftpack).")
 -    endif()
 +        if(NOT ${FFTW}_FOUND)
 +            MESSAGE(FATAL_ERROR "Cannot find FFTW 3 (with correct precision - libfftw3f for mixed-precision GROMACS or libfftw3 for double-precision GROMACS). Either choose the right precision, choose another FFT(W) library (-DGMX_FFT_LIBRARY), enable the advanced option to let GROMACS build FFTW 3 for you (-DGMX_BUILD_OWN_FFTW=ON), or use the really slow GROMACS built-in fftpack library (-DGMX_FFT_LIBRARY=fftpack).")
 +        endif()
  
 -    set(PKG_FFT "${${FFTW}_PKG}")
 -    if (GMX_BUILD_OWN_FFTW)
 -        include_directories(BEFORE ${${FFTW}_INCLUDE_DIRS})
 -    else()
 +        set(PKG_FFT "${${FFTW}_PKG}")
          include_directories(${${FFTW}_INCLUDE_DIRS})
 -    endif()
 -    set(FFT_LIBRARIES ${${FFTW}_LIBRARIES})
 -    set(GMX_FFT_FFTW3 1)
  
 -    if ((${GMX_SIMD} MATCHES "SSE" OR ${GMX_SIMD} MATCHES "AVX") AND NOT ${FFTW}_HAVE_SIMD)
 -      message(WARNING "The fftw library found is compiled without SIMD support, which makes it slow. Consider recompiling it or contact your admin")
 -    else()
 -      if(${GMX_SIMD} MATCHES "AVX" AND NOT (${FFTW}_HAVE_SSE OR ${FFTW}_HAVE_SSE2))
 -        # If we end up here we have an AVX Gromacs build, and FFTW
 -        # with SIMD. FFTW 3.3.5 will have the behaviour that
 -        # configuring with AVX support also adds SSE support, which is
 -        # what we want. There is no good way to detect the FFTW
 -        # version, however.
 -        message(WARNING "The FFTW library was compiled with neither --enable-sse nor --enable-sse2; those would have enabled SSE(2) SIMD instructions. This will give suboptimal performance. You should (re)compile the FFTW library with both SSE2 and AVX instruction support (use both --enable-sse2 and --enable-avx). More recent versions of FFTW compile support for such narrower SIMD by default.")
 +        if ((${GMX_SIMD} MATCHES "SSE" OR ${GMX_SIMD} MATCHES "AVX") AND NOT ${FFTW}_HAVE_SIMD)
 +            message(WARNING "The fftw library found is compiled without SIMD support, which makes it slow. Consider recompiling it or contact your admin")
 +        else()
-             if(${GMX_SIMD} MATCHES "AVX" AND NOT (${FFTW}_HAVE_SSE OR ${FFTW}_HAVE_SSE2 OR ${FFTW}_HAVE_AVX_128 OR ${FFTW}_HAVE_AVX2_128))
-                 # If we end up here we have an AVX Gromacs build, and FFTW with SIMD, but no 128-bit SIMD, this means AVX is enabled for FFTW.
-                 message(WARNING "The FFTW library was compiled with neither --enable-sse nor --enable-sse2; those would have enabled SSE(2) SIMD instructions. This will give suboptimal performance. You should (re)compile the FFTW library with both SSE2 and AVX instruction support (use both --enable-sse2 and --enable-avx). The FFTW library will determine at runtime which SIMD instruction set is fastest for different parts of the FFTs.")
++            if(${GMX_SIMD} MATCHES "AVX" AND NOT (${FFTW}_HAVE_SSE OR ${FFTW}_HAVE_SSE2))
++                # If we end up here we have an AVX Gromacs build, and FFTW
++                # with SIMD. FFTW 3.3.5 will have the behaviour that
++                # configuring with AVX support also adds SSE support, which is
++                # what we want. There is no good way to detect the FFTW
++                # version, however.
++                message(WARNING "The FFTW library was compiled with neither --enable-sse nor --enable-sse2; those would have enabled SSE(2) SIMD instructions. This will give suboptimal performance. You should (re)compile the FFTW library with both SSE2 and AVX instruction support (use both --enable-sse2 and --enable-avx). More recent versions of FFTW compile support for such narrower SIMD by default.")
 +            endif()
++            set(FFT_STATUS_MESSAGE "Using external FFT library - FFTW3")
          endif()
-         set(FFT_STATUS_MESSAGE "Using external FFT library - FFTW3")
      endif()
  
 -    set(FFT_STATUS_MESSAGE "Using external FFT library - FFTW3")
 +    set(FFT_LIBRARIES ${${FFTW}_LIBRARIES})
 +    set(GMX_FFT_FFTW3 1)
  elseif(${GMX_FFT_LIBRARY} STREQUAL "MKL")
      # Intel 11 and up makes life somewhat easy if you just want to use
      # all their stuff. It's not easy if you only want some of their
Simple merge
index a7ba8b5b9d613a2afa11ec1211c008e5db42666b,b6e0bf868a87903f2907d66501aefda9dba4e541..970cf315bea6127ac8f269b120a628202e4a4cdd
@@@ -8692,52 -8692,26 +8692,76 @@@ keywords = {CHARMM, force field, molecu
  year = {2000},
  }
  
+ @incollection {Pall2015,
+ author = {P{\'a}ll, Szil{\'a}rd and Abraham, Mark James and Kutzner, Carsten and Hess, Berk and Lindahl, Erik},
+ title = { Tackling Exascale Software Challenges in Molecular Dynamics Simulati\
+ ons with {GROMACS} },
+ booktitle = {Solving Software Challenges for Exascale },
+ editor = { Markidis, Stephano and Laure, Erwin },
+ pages = { 3--27 },
+ year = { 2015 },
+ volume = { 8759 },
+ publisher = { Springer International Publishing Switzerland },
+ address = { London }
+ }
+ @article {Abraham2015,
+ author = { Abraham, Mark James and Murtola, Teemu and Schulz, Roland and P{\'a}ll, Szil{\'a}rd and Smith, Jeremy C. and Hess, Berk and Lindahl, Erik },
+ title = { {GROMACS}: High performance molecular simulations through multi-level parallelism from laptops to supercomputers },
+ journal = { {SoftwareX} },
+ volume = { 1--2 },
+ publisher = { John Wiley & Sons, Inc. },
+ pages = { 19--25 },
+ year = { 2015 },
+ doi = "http://dx.doi.org/10.1016/j.softx.2015.06.001"
+ }
++
 +@Misc{lmfit,
 +  author =    {Joachim Wuttke},
 +  title =     {lmfit},
 +  howpublished = {http://apps.jcns.fz-juelich.de/doku/sc/lmfit},
 +  year =      2013}
 +
 +@Article{Steen-Saethre2014a,
 +  author =       {B. Steen-S{\ae}thre and A. C. Hoffmann and D. van der Spoel},
 +  title =        {Order Parameters and Algorithmic Approaches for Detection and Demarcation of Interfaces in Hydrate−Fluid and Ice−Fluid Systems},
 +  journal =      {J. Chem. Theor. Comput.},
 +  year =         2014,
 +  volume =    10,
 +  pages =     {5606-5615}}
 +
 +@Article{ Wensink2003a,
 +  author =     "E. J. W. Wensink and A. C. Hoffmann and P. J. {van
 +                  Maaren} and D. {van der Spoel}",
 +  title =      "Dynamic properties of water/alcohol mixtures studied
 +                  by computer simulation",
 +  journal =    BTjcp,
 +  year =       2003,
 +  volume =     119,
 +  pages =      "7308-7317"
 +}
 +
 +@Article{Guo2002b,
 +  author =       {Guang-Jun Guo and Yi-Gang Zhang and Keith Refson  and Ya-Juan Zhao},
 +  title =        {Viscosity and stress autocorrelation function in supercooled water: a molecular dynamics study},
 +  journal =      {Mol. Phys.},
 +  year =         2002,
 +  volume =    100,
 +  pages =     {2617-2627}}
 +  
 +@Article{Fanourgakis2012a,
 +  author =       {George S. Fanourgakis and J. S. Medina and R. Prosmiti},
 +  title =        {Determining the Bulk Viscosity of Rigid Water Models},
 +  journal =      {J. Phys. Chem. A},
 +  year =         2012,
 +  volume =    116,
 +  pages =     {2564-2570}}
 +
 +@Article{Palmer1994a,
 +  author =       {B. J. Palmer},
 +  title =        {Transverse-current autocorrelation-function calculations of the shear viscosity for molecular liquids.},
 +  journal =      {Phys. Rev. E},
 +  year =         1994,
 +  volume =    49,
 +  pages =     {359-366}}
 +
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index cd696963004a82943f1b1863832aa2882847d73d,b951255d7c875af3938ab8740abf8035d537cf75..796333ebe211bbea2632945f76d86eb2d31095b3
@@@ -651,18 -1156,6 +651,19 @@@ int mdrunner(gmx_hw_opt_t *hw_opt
       * global for this process (MPI rank). */
      hwinfo = gmx_detect_hardware(fplog, cr, bTryUseGPU);
  
 +    gmx_print_detected_hardware(fplog, cr, hwinfo);
 +
 +    if (fplog != NULL)
 +    {
 +        /* Print references after all software/hardware printing */
++        please_cite(fplog, "Abraham2015");
 +        please_cite(fplog, "Pall2015");
 +        please_cite(fplog, "Pronk2013");
 +        please_cite(fplog, "Hess2008b");
 +        please_cite(fplog, "Spoel2005a");
 +        please_cite(fplog, "Lindahl2001a");
 +        please_cite(fplog, "Berendsen95a");
 +    }
  
      snew(state, 1);
      if (SIMMASTER(cr))