Paul Bauer [Mon, 17 Dec 2018 08:58:48 +0000 (09:58 +0100)]
Merge branch release-2018 into release-2019
Resolved Conflicts:
src/gromacs/ewald/pme-solve.cu
src/gromacs/mdlib/clincs.cpp
src/programs/mdrun/md.cpp
src/programs/mdrun/tests/CMakeLists.txt
Change-Id: I813b4ed7ecf8056db09ab749c367a3b5e204e701
Berk Hess [Thu, 13 Dec 2018 11:06:54 +0000 (12:06 +0100)]
Fix LINCS triangle constraining with OpenMP
LINCS would only apply double the iterations to constraints
in triangles when the last OpenMP task contained at least one such
triangle.
Fixes #2808
Change-Id: Ia9a402f3ada87dbf73f74eda943b3fa4bfb3559b
Paul Bauer [Thu, 6 Dec 2018 12:34:02 +0000 (13:34 +0100)]
GROMACS 2019 Release candidate
Updated regressiontest hash as usual.
Change-Id: Ia938ee4a936d21eac6beb5244a3f2fab87b35240
Berk Hess [Wed, 12 Dec 2018 09:23:46 +0000 (10:23 +0100)]
Fixed nullptr derefence in LINCS error
Somehow a dereferenced nullptr could be passed as a reference
to gmx_multisim_t to the Constraint factory function.
Changed the reference in the Constraint object to a pointer.
Fixed #2803
Change-Id: I4806069973067d27078a1324d18a406c7b3e227d
Magnus Lundborg [Tue, 11 Dec 2018 16:16:09 +0000 (17:16 +0100)]
Set HAVE_LMFIT properly
The HAVE_LMFIT was only set in the local scope.
Fixes #2800
Change-Id: I34bd3dc1896526c09c6808c7020d3a492c4c8f31
Berk Hess [Thu, 13 Dec 2018 10:59:49 +0000 (11:59 +0100)]
Fix LINCS triangle constraining with OpenMP
LINCS would only apply double the iterations to constraints
in triangles when the last OpenMP task contained at least one such
triangle.
Fixes #2808
Change-Id: I37a3d61c868f60387e536d3db3a4079deb6ae504
Szilárd Páll [Thu, 8 Nov 2018 02:14:26 +0000 (03:14 +0100)]
Enable ARMPL in the armclang build
Fixes #2685
Change-Id: I1827c1c55e533bd7ff82b452d77143cb6d04cc01
Roland Schulz [Thu, 13 Dec 2018 18:04:38 +0000 (10:04 -0800)]
Remove unused MdrunComparisonFixture
For 2018 branch it is unused. For 2019 branch it has been
rewritten (
c74114338714). Global variable causes SegFault
with ICC and GCC new C++ ABI (_GLIBCXX_USE_CXX11_ABI).
Fixes #2801
Change-Id: Ia41178aaa6e963b05cd4c1e52b8ca0d5946a569c
Szilárd Páll [Thu, 13 Dec 2018 15:54:15 +0000 (16:54 +0100)]
Avoid spurious timing in bonded GPU launch subcounter
Change-Id: I09d9e6bf1b61b9578b0a39b7e0d21ac63f865057
Szilárd Páll [Mon, 10 Dec 2018 23:50:18 +0000 (00:50 +0100)]
Document the FP exception in cuFFT 7.0
To document known issues relevant for developers, a new section is added
to the dev guide.
As a a first entry, this commit documents the FP exception that aborts
debug builds of mdrun that offload FFTs to an NVIDIA GPU with CUDA 7.0.
Fixes #2726
Change-Id: I60c7b92da2c703e0910644012a01a009b3df0a7a
Berk Hess [Mon, 10 Dec 2018 16:16:52 +0000 (17:16 +0100)]
Temporary fix for OpenCL PME gather
There is a race on the z-component of the PME forces in the OpenCL
force reduction in the gather kernel. This change avoid that race.
But a better solution is a different, more efficient reduction.
Refs #2737
Change-Id: I45068c9187873548dff585044d2c8541444e385c
Szilárd Páll [Mon, 10 Dec 2018 16:19:09 +0000 (17:19 +0100)]
Improve DLB report/note
- Added a newline preceding the DLB report on the stderr (there was
none)
- Added a common means to reduce load imbalance to the suggestions.
- Slight code modernization.
Change-Id: I86906f9d870bfd8ee8bb03ae5bd1fdf83a3349f0
Paul Bauer [Tue, 11 Dec 2018 08:25:42 +0000 (09:25 +0100)]
Properly check for MSVC in build script
Also added another check for mdrun only and static builds
to make sure the api is turned off in those cases as well.
Change-Id: If7f6fedfba8cd1b1f4c951bc246228c60771a11a
Szilárd Páll [Mon, 10 Dec 2018 00:09:13 +0000 (01:09 +0100)]
Tweak the bonded GPU energy copy/wait operations
Move the launch of device to host copy earlier and add wait cycle
counter around the operation that may block and lead to time spent
waiting rather than just a launch.
Change-Id: I241001fc0b60a8ae994f173bc3b38f0c4bbd8fff
Berk Hess [Fri, 7 Dec 2018 20:59:06 +0000 (21:59 +0100)]
Fix update groups with 2D/3D DLB
With a staggered DD grid update groups could end up in the wrong DD
cell. This caused a fatal error (no incorrect results).
his change reverts most of
d29cb9da which was a failed fix for #2712.
Also added a few const qualifiers and renames pos to cog for clarity.
Refs #2712
Fixes #2790
Change-Id: I1a589cccb6ea7048fb66ae867716549a1a615b7f
Berk Hess [Wed, 5 Dec 2018 15:18:35 +0000 (16:18 +0100)]
Make large PME grids work on GPU
With PME grids with z size larger than 511 too large blocks could
be launched causing a cryptic CUDA or OpenCL error.
Fixes #2779
Change-Id: Ib2376ae0e9d5a338084df8f3a2cf46ca1b711a6a
Berk Hess [Mon, 10 Dec 2018 12:26:46 +0000 (13:26 +0100)]
Document mdrun mdp option modification
Add documentation to the mdp section of the user guide for
mdrun modifying rcoulomb and fourier options.
Change-Id: Ifd8b374599713e959c9b3aac583961115cf3b638
Paul Bauer [Mon, 10 Dec 2018 14:59:11 +0000 (15:59 +0100)]
Disable gmxapi by default
Due to outstanding issues with the integration testing and tests failing
with large number of ranks, the gmxapi default has been changed to not
be build. In Jenkins, all supported builds still are still set to build
with GMXAPI enabled.
Refs #2765, #2722, #2756
Change-Id: I2cc42c461edc206aaa30be6cac3db0a52ccae991
Mark Abraham [Mon, 10 Dec 2018 02:00:47 +0000 (03:00 +0100)]
Make only mdrun report process ID
Recent change
367d003106 changed where mdrun reported the process ID,
but in so doing changed various tools to also report the process ID.
This made pdb2gmx tests non-reproducible.
Since the process ID is probably only of minor value to the user, and
probably only of value to users of mdrun, this change adds support for
allowing tools to choose to print the process ID while defaulting to
not reporting it.
Fixes #2794
Refs #2775
Change-Id: Icb6e97d4d7502f12e74cbaa2c1f1a969ba99b917
Pascal Merz [Sat, 20 Oct 2018 15:27:58 +0000 (17:27 +0200)]
Failproof signal conversion
When introducing the signal handlers, we decided to use scoped enums to
define the different simulation signals (changes Ia90778, I05ca7a,
I5dec05). In the SimulationSignal objects which actually get reduced,
these are stored as signed char. When the signals get handled, these
signed char are converted back to the scoped enums. Currently, this is
done using a static_cast.
Although in the current code, the signals get handled immediately after
being reduced, and signals are only set by master, there is no formal
guarantee that this is always true. If the signals get reduced multiple
times, or by different ranks, the signed char stored in the
SimulationSignal object could get larger than +1 / -1. In the old code,
this would not lead to problems, as it was just checked that the unsigned
char in the SimulationSignal was != 0 (or <0 / >0, for the stop signal).
In the new code, the signal handling would fail in this case, without
proper error message - the static_cast will not fail, but the following
comparison to the enum values will always fail. This commit introduces
a conversion function for each of the enums and explicity enum values
for the StopSignal to return to the failproof behavior of the old code.
Refs #1793
Change-Id: Iac8ea3946effba1797e16d8c918c7d49ce4dc828
Paul Bauer [Mon, 3 Dec 2018 15:32:41 +0000 (16:32 +0100)]
Make release notes html only
Refs #2783
Change-Id: Ifa2e5486e9f3d4be5369bd82f4f858c1ea54e22e
Paul Bauer [Mon, 3 Dec 2018 15:03:10 +0000 (16:03 +0100)]
Change toctree depth in PDF manual
It doesn't seem to be possible to set different toctree depths for the
HTML and PDF versions of the manual in Sphinx itself. To work around
this, I added the explicit depth to the LaTeX preamble.
Refs #2783
Change-Id: I74e00b339a014060567a9fd6aa875e7047165e66
Mark Abraham [Thu, 11 Oct 2018 15:10:29 +0000 (17:10 +0200)]
Fix POWER8 and POWER9 build
Tested with GCC 6.4.0 and 8.1.0 in debug and release modes,
with and without SIMD.
xlc is still not supported, e.g. because 16.1 cannot handle an
in-class member initializer list for a C-style array in the same
struct as a member initialized in a constructor initializer
list. Tested for this in the C++11 feature support tests, and we now
issue a descriptive error in this case.
Removed -mdirect-move from POWER8 flags because gcc warns about its
use.
Fixes #2748
Change-Id: I0dc68c12701f041b702063692703cc2e15e96d8e
boristim [Fri, 24 Aug 2018 16:59:32 +0000 (19:59 +0300)]
Updates to do_dssp
As posted by Boris Timofeev on redmine, do_dssp has been
broken before when encountering unknown residues.
This fixes the behaviour.
Refs #2599
Change-Id: I16f09ed33cf86c699a2667d101740ce0fc2c0919
Szilárd Páll [Mon, 15 Oct 2018 18:35:17 +0000 (20:35 +0200)]
Add Bonded GPU launch overhead cycle subcounter
ALso fixed missing counters around the transfer/clearing launch.
Change-Id: Ib3f18b8285b979b818ab79713253bc7f7bb89e2a
Szilárd Páll [Fri, 30 Nov 2018 17:18:01 +0000 (18:18 +0100)]
Swap the order of GPU bonded and nonbonded launch
In order to maximize the chance of the bonded kernel tails to overlap
as well as to avoid GPU idling during the scheduling gaps between these
kernels, this commit swaps the launch order of bonded and nonbonded work.
Refs #2677
Change-Id: Ia4e5e7279e7ea4cf575c76b5286cf10387258878
Szilárd Páll [Fri, 30 Nov 2018 17:12:50 +0000 (18:12 +0100)]
Fix conditional in nonlocal nbnxn GPU work skipping
The nbnxn nonlocal work, including coordinate buffer copy could be
skipped when the nonlocal pair list is empty. However this condition now
needs to also take into account that the bonded kernels also take the
same coordinates as input.
This change makes the non-local nbnxn copy depend both on whether there
is non-local nonbonded as well as bonded work on the current domain.
Fixes #2786
Change-Id: I217072c962226749b91f514e4a8070f042e35131
Szilárd Páll [Fri, 30 Nov 2018 16:48:27 +0000 (17:48 +0100)]
Split nbnxn input copy and kernel launch
The nonbonded x+q host-to-device copy and kernel launch is split into
two functions and called separately from do_force().
This will allow improving the bonded scheduling and better expressing a
missing bonded dependency (and fixing the related bug).
This change only moves code.
Refs #2677 #2786
Change-Id: Ie50e6a6b664f8400274b2f409eacb6c36f0908ba
Szilárd Páll [Mon, 3 Dec 2018 17:25:12 +0000 (18:25 +0100)]
Correct thread count in the PME GPU reduction
The host-side force reduction has been moved into the PME module, so the
thread count is now changed to be the PME module's thread count.
Change-Id: Ib313c7afe1384b3cec7a999273afba79c3de8c46
Berk Hess [Mon, 3 Dec 2018 12:59:53 +0000 (13:59 +0100)]
Add update groups to parallelization docs
Refs #2784
Change-Id: I12dfabbab9cff08d9154ac5258aeb790906c72f0
Berk Hess [Wed, 5 Dec 2018 08:54:07 +0000 (09:54 +0100)]
Make large PME grids work on GPU
With PME grids with z size larger than 511 too large blocks could
be launched causing a cryptic CUDA error.
Fixes #2779
Change-Id: I0833609f64ad2e0ad6b7a799cf2b693f2dec3939
Mark Abraham [Wed, 28 Nov 2018 11:46:15 +0000 (12:46 +0100)]
Move responsibility for PME reduction to its module
We no longer need temporary energy and virial variables that gcc 7 and
8 warn about in release mode. Earlier efforts to avoid these warnings
made pme.h depend on config.h, which is not desirable.
This made possible minor simplifications to testing code.
Noted some TODOs and added some comments. Removed a completed TODO
that had been left behind.
Fixes #2503
Refs #2863
Change-Id: I9a6c5b12ef5c27bd003d3ab9eeeaa75e9574b2dc
Paul Bauer [Thu, 29 Nov 2018 13:47:45 +0000 (14:47 +0100)]
Fix energy history reading
The energy history could be read as a nullptr from a checkpoint file,
leading to issues when trying to restart a simulation. Fixed the logic
issue and added an assertion to catch it in the future.
Also removed redundant comparisons to nullptr.
Fixes #2781
Change-Id: I99ce1a2b932046cab6918ec24b267fc8ff3850ad
Paul Bauer [Thu, 29 Nov 2018 16:14:54 +0000 (17:14 +0100)]
Recreate flowchart figure
The flowchart figure gave issues because of old text rendering, making
the generation of the png for the website difficult. Recreated the
figure with new text and a larger size.
Fixes #2782
Change-Id: Ia1787c6fb46f5fad80b4d43b693aed51c6a899dc
Paul Bauer [Thu, 29 Nov 2018 14:37:40 +0000 (15:37 +0100)]
More fixes for ImageMagick test script
When rebuilding a tree the lookup for ImageMagick would fail and the
script would thus disable the generation of the reference manual.
Improved the logic to avoid this.
Change-Id: I38185569309a4336ee071875b3d8c74990e295e3
Viacheslav Bolnykh [Wed, 28 Nov 2018 11:14:19 +0000 (12:14 +0100)]
Added reference-manual entry for MiMiC
Added the documentation entry describing the way to set up
and run the QM/MM simulation with MiMiC, plus cross references
to install guide and mdp options documentation.
Fixes #2691
Change-Id: Id600c621d24bb41f99b02ddb8bacb175a6bac520
Paul Bauer [Thu, 29 Nov 2018 13:42:49 +0000 (14:42 +0100)]
Fix energy history reading
The energy history could be read as a nullptr from a checkpoint file,
leading to issues when trying to restart a simulation. Fixed the logic
issue and added an assertion to catch it in the future.
Also removed redundant comparisons to nullptr.
Separate commit on 2018 as per #2770.
Refs #2781
Change-Id: Ic584dc92c110065c1650cc1ab0d7ff0a8960fb3a
Magnus Lundborg [Fri, 23 Nov 2018 13:11:37 +0000 (14:11 +0100)]
Make pull with COM from previous step work with MPI
There was no communication between the ranks, which caused
crashes with MPI and tMPI. This fixes that.
Minor clean-ups of pull with COM from previous step as well.
Fixes #2769
Change-Id: I3b321872ffd4b295c4e97029d8d54872b3674ac4
Paul Bauer [Wed, 28 Nov 2018 13:39:53 +0000 (14:39 +0100)]
Make Imagemagick availability more visible
Changes the message type for the gmxTestImagemagick test to be a warning
when GMX_BUILD_MANUAL is ON, to make sure users see that there may be an
issue with building the full documentation.
Also change the test script to see if the new file actually gets
created, instead of checking the return code.
Refs #2778
Change-Id: I52ca5e0143bad396d0e6cfe610dac1bb13621e5f
Mark Abraham [Thu, 29 Nov 2018 08:18:07 +0000 (09:18 +0100)]
Removed erronous manual variable handling
CMake variables of different type can mask each othe's scope, so got
rid of this useless leftover.
Change-Id: I4e72e1da3952f008d9a37e0d8e35be5efa1ddd14
Paul Bauer [Tue, 27 Nov 2018 14:00:20 +0000 (15:00 +0100)]
Fix reference manual image sizes
Fixes #2778
Change-Id: Ib48afe91a938cadb7ca6b7a89ea6cb18cf9874eb
Paul Bauer [Tue, 27 Nov 2018 13:35:30 +0000 (14:35 +0100)]
Fix reference manual doc build
The CMake for building the reference manual was not really stable
because the value for having ImageMagick convert was set in different
places. This fixes the issue and makes the reason for not building it
hopefully more clear.
Change-Id: I7c9bb695e1dac37b83cdc82a2c0bdb53700a1156
Paul Bauer [Fri, 23 Nov 2018 12:57:13 +0000 (13:57 +0100)]
Fix gcc-8 warnings
Changed copying of temporary file names to use gmx::Path, changed
copying of C character arrays to use std::copy. Annotated code where
safer string copying was needed.
Did not try to fix the warnings in tng.
Fixes #2683
Change-Id: I431b55dfa39a654fb9f20a78470f190da7666993
Mark Abraham [Thu, 1 Nov 2018 11:49:03 +0000 (12:49 +0100)]
Introduce GpuBonded
This pimpl-ed class hides the GPU implementation details from
the high-level calling code.
Moved all GPU bonded force-calculation management code into the same
source file, separating them from the kernel definition and launch
file, which may help improve compilation time also.
Bound the kernel launch parameters for device buffers to GpuBonded
directly after neighbour search, for simplicity and efficiency. That
call now comes slightly later in the search-step call sequence.
Separated the launch of the energies transfer and the function
that waits upon, preparing for future reorganization.
Introduced HostStdVector to decrease verbosity of GpuBonded::Impl
declaration.
Now that there is no reason to have the stream member of
GpuBondedLists as a void *, removed the excess indirection that
introduced.
Moved symbols into gmx namespace per style. Used the appropriate
inclusion guards on helper .cuh files.
Noted several TODOs for follow up work.
Refs #2724
Change-Id: I612d8f0f973e6cfcc33a8176ba9f2525297542c4
Szilárd Páll [Thu, 8 Nov 2018 02:03:21 +0000 (03:03 +0100)]
Add ARMPL support to admin script
Change-Id: I934baaada6ca2f7d26671ee720394c0ffb8add29
Szilárd Páll [Mon, 29 Oct 2018 13:59:21 +0000 (14:59 +0100)]
Add tweaks to support ARMPL for FFTs
Support added through the FFTW compatibilty layer; the FFTW guru
interface is not implemented in ARMPL, so this is disabled in builds
that use ARMPL. The detection is basic and it is used only for these
purposes, the lirbary and header location needs to be passed manually
(we prefer ARM to implement a Find module).
Fixes #2684
Change-Id: I5afd7c200e2d02ac699bb668d14f0a85bf0a2369
Paul Bauer [Thu, 22 Nov 2018 10:45:33 +0000 (11:45 +0100)]
Fix newline printing in -v output
Fixes #2741
Change-Id: Iede2003df78f60c4e7189f338bb32d008c05aaa3
Berk Hess [Mon, 26 Nov 2018 10:55:13 +0000 (11:55 +0100)]
Fix FP exception in pull code
There was a, harmless, floating point exception the pull COM parallel
reduction when a COM was not needed for a certain pull group. Now the
(unused) data is cleared.
Also made naming of the buffer consistent and introduced a constant
for the buffer stride instead on misusing DIM.
Fixes #2776
Change-Id: I4ef532f9a1ce6439eac94fa9b789d5259df38d88
Mark Abraham [Thu, 22 Nov 2018 11:32:21 +0000 (12:32 +0100)]
Clean up initial log output
The rank count was incorrect when thread-MPI has not yet spawned
threads. It could only be fixed if we would have made that choice
before we open the log file, but we want to be able to report problems
to the log file from hardware detection or tpr reading which occur
before rank choice.
Host name, rank count and rank ID are all reported later, alongside
other such information, so there is no need to duplicate and
complicate our code.
PID is now reported later alongside other similar information. The log
file output looks reasonable, aligned, etc.
Noted TODO for future clean up.
Fixes #2775
Change-Id: Ifda6c44bfe28628934f4614e20eeeef436d80707
Mark Abraham [Thu, 1 Nov 2018 11:49:03 +0000 (12:49 +0100)]
Introduce PpForceWorkload
Assigns responsibility for knowing what work is required for the force
calculation of an MD step to a single object. Moved actual control of
executing any necessary CUDA bonded work to the new schedule
object. Changed low-level routines to assert when invalid calls are
made, because only one place should control whether work is done.
This prepares for making GpuBondedLists an opaque type, when
bonded_gpu_have_interactions will not be able to be an inline
function.
Refs #2724, #2574
Change-Id: Ie59b790c54170692b0221f5eb3812643ba6f61d6
Paul Bauer [Thu, 22 Nov 2018 09:11:00 +0000 (10:11 +0100)]
Prepare for 2019 release candidate
Change-Id: I4b7a302e182c4a74c9c825d98dcf014f2b324e24
Paul Bauer [Mon, 19 Nov 2018 09:01:10 +0000 (10:01 +0100)]
GROMACS 2019 third beta release
Updated regressiontest hash as usual.
Change-Id: I431b0c0cb82ad3943fb6111b37b7ac5f843e1872
Paul Bauer [Wed, 21 Nov 2018 09:46:29 +0000 (10:46 +0100)]
Merge branch release-2018 into release-2019
Several changes addressing known issues have not
been brought forward, either because they are
inappropriate or the bug is already fixed in
release-2019 branch.
Resolved Conflicts:
admin/builds/gromacs.py
admin/builds/post-submit-matrix.txt
cmake/gmxVersionInfo.cmake
docs/CMakeLists.txt
src/gromacs/mdlib/minimize.cpp
src/gromacs/mdlib/shellfc.cpp
src/gromacs/topology/mtop_util.cpp
src/programs/mdrun/md.cpp
src/programs/mdrun/mdrun.cpp
src/programs/mdrun/runner.cpp
src/testutils/testinit.cpp
Change-Id: Ia18b43854925fb2c6e1bf4256b99bd8f42359f68
Mark Abraham [Tue, 20 Nov 2018 11:51:43 +0000 (12:51 +0100)]
Partial revert of "Fix inefficient shell minimization"
This reverts the minimize.cpp part of commit
5749eb1c9934c3597f140b793c7b374610a56335. That would likely affect
large systems instead, and those are likely more common targets for
normal mode analysis.
Change-Id: Ia586beb7b47480499907352a96175bd1dda29684
Joe Jordan [Mon, 19 Nov 2018 08:46:30 +0000 (09:46 +0100)]
fix unused variable warning from gmxapi compilation
Fixes #2768
Change-Id: I8c77dd19f15df6f365122e25680e9d0a553cb36c
Mark Abraham [Fri, 9 Nov 2018 07:12:26 +0000 (08:12 +0100)]
Fix inefficient shell minimization
In
5268b73d6cd, a bug was introduced when a shallow copy was used
instead of the former deep copy. However, in the original code some
pointers were used as "short-cuts", which is not neccessary. Those
pointers have been removed, and now the shell-code position vectors
are fully initialized at allocation time.
In order to get reproducible normal modes the delta x used for
computing derivatives was reduced.
Fixes #2705
Change-Id: Iad8a0b0793304e2c10d9abf3a180cfe9bdc85c4c
David van der Spoel [Sun, 18 Nov 2018 13:55:16 +0000 (14:55 +0100)]
Added citation for new analysis functionality.
Change-Id: I91e90c5b00db740cfc072cd65ada2c5f9c70941c
M. Eric Irrgang [Fri, 16 Nov 2018 13:40:31 +0000 (16:40 +0300)]
Expand gmxapi testing to include thread-MPI.
Some tests were disabled when GMX_THREAD_MPI was set because they were
not able to handle the GROMACS testing framework. These exclusions are
no longer necessary because the tests have been ported to use the mdrun
test fixtures.
Change-Id: I2a91d992031605ab4144eed774a2af55367565d8
M. Eric Irrgang [Fri, 16 Nov 2018 13:27:14 +0000 (16:27 +0300)]
Remove extraneous CMake config.
The generated gmxapi-config.cmake package config file had an unused
variable definition due to an extraneous option to
`configure_package_config_file()`
Change-Id: I67a70fa21cea92fa0de6ed7ebb49877aaf11cc89
Berk Hess [Fri, 16 Nov 2018 09:47:37 +0000 (10:47 +0100)]
grompp now checks tau-p>=2*tau-t with NH+PR
Added check to avoid resonances when combining Nose-Hoover and
Parrinello-Rahman coupling algorithms.
Fixes #2749
Change-Id: I061d5021ba5f9c3a68336d623c06843be9addbde
Paul Bauer [Thu, 15 Nov 2018 13:29:44 +0000 (14:29 +0100)]
Refine FindSphinx
The FindSphinx function would not work on older versions of sphinx,
because the output from the program changed between versions. Modified
the detection logic to cover both cases.
Fixes #2751
Change-Id: I84525c5b9237d369fd78ac59b763e063456571e2
M. Eric Irrgang [Tue, 13 Nov 2018 12:43:32 +0000 (15:43 +0300)]
Note GMX_ENABLE_CCACHE in build system docs.
Added to the list in "Variables affecting compilation/linking".
Fixes #2743
Change-Id: I1a3184fbda1d879db60fea2333bc4f7db95b0277
Mark Abraham [Thu, 15 Nov 2018 16:37:21 +0000 (10:37 -0600)]
Fix checkpoint restart of tpr with infinite step count
The recent fix of #2717 did not account for the way a user's .tpr file
can require an infinite number of steps by using the special value
-1. Such special values are difficult to remember when maintaining the
code, so we should tend to avoid introducing them.
Fixes #2757
Change-Id: I6570c4f4e7d63b2375dbb595a514c9e709f18856
Paul Bauer [Thu, 4 Oct 2018 09:52:48 +0000 (11:52 +0200)]
Rework GMXAPI tests
Changed the tests to use a test fixture and only generate the tpr files
during the actual tests.
Fixes #2664
Change-Id: Ic8a0c1c5eed2189abb9006cb45097d1acd41d175
Mark Abraham [Thu, 15 Nov 2018 05:17:30 +0000 (23:17 -0600)]
Relax arbitrary tolerance on rerun test
Fixes #2759
Change-Id: Iaff0893d495d198b55f0d3fb27484005cb2a9b6b
Mark Abraham [Mon, 5 Nov 2018 22:28:44 +0000 (23:28 +0100)]
Fix OpenCL mdrun from installed path
Previously we could dump all the headers and source files in the
share/gromacs/opencl directory, because they all came from the NB
module. Now that we have code in the gpu_utils module used by both
Ewald and NB modules, that is not an option. So we may as well use the
same approach for the pbcutil and high-level NBNXN headers also.
Change-Id: I894e6a8032547077bb5198cc6c40f65916d1b17f
Alan Gray [Wed, 14 Nov 2018 15:19:36 +0000 (07:19 -0800)]
Added Alan and Jon to List of Contributers
Change-Id: I7609963e4d124056beab69546f1402bf60e967cd
Mark Abraham [Fri, 9 Nov 2018 04:06:12 +0000 (05:06 +0100)]
More warning suppressions for QMMM code
These are typically not configured, and the resulting dead code and
possible noreturn attributes are more trouble than they are worth,
particularly when other compilers then get confused.
Change-Id: I2b374aa66feef55b518517d1c752f2b65b7a9d2b
M. Eric Irrgang [Tue, 13 Nov 2018 13:07:00 +0000 (16:07 +0300)]
Note GMXAPI CMake variables and build targets.
`build-system.rst` is a good place to note CMake variables and targets,
but the `GMXAPI` option, and the `Gromacs::gmxapi`, `gmxapi-cppdocs`,
and `gmxapi-cppdocs-dev` CMake targets, were not mentioned there.
Also, changes the names of the targets to use hyphens instead of
underscores for word separators.
Fixes #2744
Change-Id: I19db4a4124b125a4a0678c90b946d5fe3bc2e21c
Paul Bauer [Wed, 7 Nov 2018 09:23:16 +0000 (10:23 +0100)]
Update to prepare for 2018.5 point release
Change-Id: If5d058821024fe3e0110b7501b154e508a12149c
Joe Jordan [Mon, 12 Nov 2018 15:48:27 +0000 (16:48 +0100)]
Add coolquotes
Change-Id: Ifcbbb45f531612454bd080f91b247817530f78e0
Paul Bauer [Wed, 7 Nov 2018 09:16:41 +0000 (10:16 +0100)]
Version 2018.4
Add release notes for change that was missing them.
Change-Id: I56d76f87d967221d037869ca5b93400b67fcd42d
Viacheslav Bolnykh [Fri, 9 Nov 2018 16:33:45 +0000 (17:33 +0100)]
Fixing segfault in parallel MiMiC QM/MM runs
Removed unnecessary copy of coordinate array from global state to
the local one that was causing memory corruption.
Fixes #2753
Change-Id: I6d0bc6edfabc1444d7d24eb2d5401b6ff174a57d
David van der Spoel [Sat, 10 Nov 2018 06:00:24 +0000 (07:00 +0100)]
Fix entropy calculation in gmx anaeig
gmx anaeig reads eigenvectors produced by gmx covar and
can compute entropy according to Schlitter's formula or
based on the quasiharmonic method. If the number of
eigenvectors is not consistent with the number of atoms
the entropy calculation could use uninitialized variables.
Added a warning when this happens.
Fixes #2668
Change-Id: I4f265212ce0a7bf82e25e1aa6f9cbb544c45db3f
Mark Abraham [Thu, 8 Nov 2018 16:13:25 +0000 (17:13 +0100)]
Disabled FPE checking for non-release builds
This means that Jenkins will no longer give any reports, false or
true, from floating-point exceptions. Test binaries can still have FPE
checking enabled manually, however.
The content of this change should not be merged into the release-2019
branch.
Fixes #2750
Change-Id: I12c5e1a08e43e48cb7012edb6d5e8aea08baddc8
David van der Spoel [Wed, 31 Oct 2018 12:06:06 +0000 (13:06 +0100)]
Change get_atom_index to allow multiple molecules.
Make gromacs take into account atoms in all molecules.
This allows Hessian matrix creation to work over all
molecules in a simulation. An update to the regression
tests has been submitted as well.
During fixing of the problem, another problem surfaced in
the normal mode calculations to do with ordering of atoms
which is fixed here as well.
Fixes #2720
Change-Id: I9fc2dd05cb1c67d46b6d4c3d9139e6b3bed72f17
Paul Bauer [Thu, 8 Nov 2018 15:18:25 +0000 (16:18 +0100)]
Give error when rerun with identical file names
Fixes #2634
Change-Id: If3985274b3e74910c9ddefbddcfb52d1b01a3fba
Paul Bauer [Mon, 29 Oct 2018 11:24:06 +0000 (12:24 +0100)]
Issue fatal error if checkpoint does not suit the .tpr
If the step number in the checkpoint is out of range for that
described in the .tpr, then the user has provided mismatching
inputs. We do not intend then to be able to address this with the
mdrun -nsteps option.
Fixes #2717
Change-Id: I827bdc1b92ee69bf6287e2fd552ace7583b62028
Paul Bauer [Wed, 31 Oct 2018 15:32:00 +0000 (16:32 +0100)]
Actually fix gmx helix segmentation fault
The residue indexing in hxprops was wrong because the residue indices
used for residue name lookup were wrong.
Added some documentation to clarify what this code does.
Fixes #2701
Change-Id: Ie6c002be6ff2139f6af27c7b891a180338ae5b20
Berk Hess [Tue, 6 Nov 2018 14:03:32 +0000 (15:03 +0100)]
Fix bug with DD for dims without PBC
When using DD along dimensions without PBC, many pair forces could
be missing. This would not cause silent errors, except when only
running a few steps.
Fixes #2736
Change-Id: Ia256b907e25eef811e1c8f348dc0a78aaddb5610
Mark Abraham [Thu, 8 Nov 2018 09:45:14 +0000 (10:45 +0100)]
Pragma warning suppressins for icc+windows
Recent use of a pragma didn't cover this case relevant to post-submit
testing.
Change-Id: I3740548c22590688a5872474941151df8e536021
Szilárd Páll [Mon, 5 Nov 2018 18:28:32 +0000 (19:28 +0100)]
Re-enable the armclang post-submit build
bs_overdrive_1000 has been fixed and upgraded to ARM HPC toolkit 18.4.
The gcc build stays disabled as it still emits a warning.
Change-Id: I384a8ca083b5252988c1a48a63111f27f681c753
Mark Abraham [Wed, 7 Nov 2018 12:37:14 +0000 (13:37 +0100)]
Suppress clang warnings about QMMM code
These are typically not configured, and the resulting dead code and
possible noreturn attributes are more trouble than they are worth,
particularly when other compilers then get confused.
Change-Id: Idf51ee7c0a8c34d71d204db405f18704002acb58
Paul Bauer [Tue, 6 Nov 2018 12:28:10 +0000 (13:28 +0100)]
Mark new cmake variables advanced
Fixes #2738
Change-Id: I481a2e8f06055e8b1b69ab60e75bbbeaabad8355
Szilárd Páll [Thu, 1 Nov 2018 15:59:30 +0000 (16:59 +0100)]
Eliminate macro that expands to variable in PME GPU
The PME_SPREADGATHER_THREADS_PER_ATOM expanded to a statement containing
variables that needed to be declared. This has been eliminated and the
order constant is used through a constexpr.
Added consistency checks to make sure that the PME order stored in the
data structures matches the constant in question.
Also converted a few more macros to constexpr.
Change-Id: I73efea25c2da7cbde40df961f8bfae7e364bd74d
Szilárd Páll [Wed, 31 Oct 2018 20:04:02 +0000 (21:04 +0100)]
Ensure minimum exec width of the PME OpenCL kernels
This change adds checks to make sure that we don't execute incorrect
kernels in the case of the rare event if the Intel OpenCL compiler
decides to generate spread or gather kernels for 8-wide execution.
Refs #2516 #2520
Change-Id: I7ab33accebe908a56eb194e8245dfcfa6f817324
Paul Bauer [Tue, 6 Nov 2018 16:06:24 +0000 (17:06 +0100)]
Add global directory for simulation test inputs
Adds the ability to testfilemanager to use input files from a global
defined directory that is set at CMake time and contains the input files
for tpr file generation in the tests.
When a file is not found in the current directory, the code searches
the global archive for it and finally falls back to the current
directory if no file extension was given.
Example case is given for the tool test that needs a pdb and a top file.
Change-Id: Ic94f4a4d0d451024b435bf2900360aa60cd01b11
Paul Bauer [Tue, 6 Nov 2018 15:49:55 +0000 (16:49 +0100)]
Fix wrong branch for regressiontests
Change-Id: Ibcc447ceafa9e861c4db264d2a49cb2b5a659da0
Paul Bauer [Tue, 6 Nov 2018 11:28:26 +0000 (12:28 +0100)]
Prepare for beta3
Change-Id: I8d9b574f2a513154decd294a3c8ffd011ef1ab16
Paul Bauer [Thu, 1 Nov 2018 08:56:11 +0000 (09:56 +0100)]
GROMACS 2019 second beta release
Updated regressiontest hash to build release tarballs.
Change-Id: I0e2f2aadd0490e4481ffbf07691e4962b93647e1
Mark Abraham [Mon, 5 Nov 2018 17:53:03 +0000 (18:53 +0100)]
Make PME OpenCL enabled only for AMD devices
Other vendor devices have known issues, but fixes
are not yet complete.
Refs #2702, #2719
Change-Id: I0d443229ffe4cee3bb4029f57502f9c7fba2574d
Mark Abraham [Mon, 5 Nov 2018 13:41:32 +0000 (14:41 +0100)]
Remove source file with no content
Visual Studio + icc warns that nothing can link to anything in this
source file.
Also updated the CMake for this module to use our newer idioms.
Fixes #2732
Change-Id: I5cfe81aabc6ee80a6c0044cc219b1a121293aded
Paul Bauer [Mon, 5 Nov 2018 13:18:36 +0000 (14:18 +0100)]
Fix non ascii characters in manual references
Change-Id: I1c50b58df39a1ffca4b4782482da6642ad129556
Paul Bauer [Wed, 24 Oct 2018 07:20:15 +0000 (09:20 +0200)]
Make QM/MM code always compile
Brought all the old interfaces back to a state where they can always
compile regardless of the build configuration, and give fatal errors
if used from a configuration that didn't support the method.
When configured, this should work as before, but we have no ability to
test that in Jenkins.
Added some necessary const correctness.
Did QM/MM preparation all in the same place, to simplify runner.cpp
Added deprecation status to release notes.
Refs #2706, #2569
Change-Id: I4a6566c60bfbf27a7b1916be1874b36987fb7da5
Alexey Shvetsov [Mon, 22 Oct 2018 19:22:30 +0000 (22:22 +0300)]
Disable -Wno-missing-prototypes
The warning is valid for C++
The -Wno-missing-prototypes flag is valid for C++ files with clang,
but not with other compilers.
Change-Id: I85aecc92129b6db482ccff3ef5f6af5a8551ace7
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
Paul Bauer [Tue, 23 Oct 2018 15:12:37 +0000 (17:12 +0200)]
Give more info when trying to build manual
The manual build would fail with cryptic reasons when Sphinx was not
available because the include was not properly set.
Also set up Sphinx detection to be verbose so that users will have it
easier to see whether they can build the docs or not.
Building the docs will not work now when using Python3.
Add test script to check if ImageMagick convert actually works or not.
Refs #2709
Change-Id: I1c49d683d971a5bf0b0ce217f7e9ecd60603e6e6
Paul Bauer [Mon, 5 Nov 2018 12:25:04 +0000 (13:25 +0100)]
Fix formatting issue
Clang static analyser complained about extra semi-colons that are fixed
here.
Change-Id: I1e39a0db64aaba88293cb26c87d8d55293797694
Mark Abraham [Thu, 1 Nov 2018 14:06:53 +0000 (15:06 +0100)]
Quiet unused variable warnings
gcc 4.8 in debug mode warns about unused manager variables
Change-Id: I84b9729036c929a14550357d82321f7122462e04
Berk Hess [Sat, 27 Oct 2018 21:19:17 +0000 (23:19 +0200)]
Fix broken update groups
With 2D/3D domain decomposition, atoms in an update group could end
up in different DD cells due to different rounding.
Also added an assertion on atoms in constraint being in the same
cell when atoms are in the reverse top, as that was violated with
this bug.
Fixes #2712
Change-Id: Ic9ea10d6a20c46b89d1fa9e0aacfcc5037903428
Mark Abraham [Wed, 31 Oct 2018 17:17:14 +0000 (18:17 +0100)]
Stop using hwloc on old ARM slave
We're not sure what the problem is, but it will never be
a priority to fix it.
Fixes #2284
Change-Id: I20d7662004baeba36c4b89294457da4c36128c50