Kevin Boyd [Thu, 20 Dec 2018 23:38:56 +0000 (18:38 -0500)]
Call wallcycle counter cleanup function
Cleans leak from unfreed wallcycle at end of mdrunner
Change-Id: I18c9a4eb961c1480230dda98c02f75e3796aa3b4
Kevin Boyd [Fri, 21 Dec 2018 00:37:18 +0000 (19:37 -0500)]
Fix leak in legacymdrunoptions
Free gmx_output_env_t in class destructor
Change-Id: I4eb6520ac56a9469c2949893888bcc2db21b647b
Kevin Boyd [Wed, 19 Dec 2018 02:08:00 +0000 (21:08 -0500)]
Fix small leak in forcerec
Change-Id: I09890bffdd88eaa5d691bd3584735787e2c626ad
Christian Blau [Thu, 29 Nov 2018 10:07:03 +0000 (11:07 +0100)]
mdspan - basic accessor policy
Executes the canonical memory access, given a linear index, where memory
index positions from an intial pointer is adressed.
Change-Id: Ia44ccf78e8c9d1604220ebb1636099ebae48cc4a
Christian Blau [Tue, 4 Dec 2018 11:10:21 +0000 (12:10 +0100)]
mdspan - mapping for right layout
Introduces a mapping from multdimensional integer space [0...N0) x .. x
[0..Nm) to one-dimensional integers N. In the mdspan context, this will
be used in a later patch to evaluate the memory offset to address
elements in multdimensional arrays.
The layout_right for mdspan, indexes multidimensional arrays with the
fastest changing dimension last, i.e., C-style, row-major for
two-dimensional arrays.
Change-Id: I0f9950bd4a40543c2cad6fe5b2bd668bb42d6784
David van der Spoel [Wed, 5 Dec 2018 14:55:13 +0000 (15:55 +0100)]
Removed t_topology from gmx msd
Removed t_topology but needed to introduce some new code from
block.h and topologyinformation.h to make it work.
Part of #1862
Change-Id: If7f7e2ac1cbcf1f87cb1032fb7ebf8624063baef
Paul Bauer [Wed, 19 Dec 2018 05:27:01 +0000 (06:27 +0100)]
Merge "Merge release-2019 branch into master"
Szilárd Páll [Tue, 18 Dec 2018 16:30:28 +0000 (17:30 +0100)]
Merge release-2019 branch into master
Change-Id: Ie08781a0f40b2c92321e605db91d047a4451d2b2
Berk Hess [Tue, 11 Dec 2018 16:04:19 +0000 (17:04 +0100)]
Use std::vector in LINCS
All manually managed pointers in the LINCS code have been replaced
by std::vector. To limit the size of this change, some plain pointers
have been retained for access.
Change-Id: Ida6365bd9334b1871bc35e3c2b3066c242d2878a
Szilárd Páll [Mon, 9 Apr 2018 17:23:03 +0000 (19:23 +0200)]
Fix GMX_BUILD_OWN_FFTW_URL CMake cache entry type
The type of the GMX_BUILD_OWN_FFTW_URL cache entry was set to "PATH"
and as a result CMake was expecting its content to be a directory.
This commit changes the type to "STRING" and as a result the '////'
workaround in the default fftw URL and custom URLs can now be passed on
the command line which previously did not work as CMake interpreted most
inputs as relative file system paths and converted them to absolute
ones.
Change-Id: I6ed3920d7816b686a031c1a3aee5acd25d7b4692
Paul Bauer [Sat, 15 Dec 2018 17:12:07 +0000 (18:12 +0100)]
Add matrix entry to test external FFTW build
Added build option and configuration to test building GROMACS with
GMX_BUILD_ONW_FFTW to catch associated issues.
Refs #2809
Change-Id: I6c8a9fc415be5386c8b336c3f4dabdac49680130
Paul Bauer [Sat, 15 Dec 2018 16:19:37 +0000 (17:19 +0100)]
Fix FFTW build
Fixed the build with GMX_BUILD_OWN_FFTW terminating with a linker issue.
Fixes #2809
Change-Id: Ie1323601da220bf28d7cb00d33b520b66d9de05f
Kevin Boyd [Sat, 15 Dec 2018 23:43:43 +0000 (18:43 -0500)]
Fix memory leaks in ns cleanup
Added some missing sfrees to cleanup function
refs #2693
Change-Id: I1e1455794778139d3a3866e00c05f4ed97aea07c
Kevin Boyd [Sun, 16 Dec 2018 00:25:19 +0000 (19:25 -0500)]
Fix memory leak at end of do_md
Without domain decomposition, the atomtypes field of localtop is
dynamically allocated and needs freeing after mdrun
Refs #2693
Change-Id: I45d18c503a87832332868e7fb9b63720548f243c
Paul Bauer [Thu, 16 Nov 2017 08:52:18 +0000 (09:52 +0100)]
Copy parallelisation info from old webpage
Copied the information for parallelisation from old webpage
to the user guide. Removed some redundant information.
Refs #2297, #2146, #2656
Change-Id: Id472ab779a6e2ca982b117a95429898a0277dc23
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
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 [Thu, 6 Dec 2018 10:09:56 +0000 (11:09 +0100)]
Use more const references in topology code
Change-Id: I8fd2e443c0c5cf1ca19714efd175b8e7132dbe2c
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
David van der Spoel [Fri, 23 Nov 2018 21:05:22 +0000 (22:05 +0100)]
Added new testing code for normal mode analysis.
Part of #2771
Change-Id: Ifb44841b36be5076fe8d77d5982876f881fdc69b
Berk Hess [Mon, 3 Dec 2018 12:59:53 +0000 (13:59 +0100)]
Add update groups to parallelization docs
Refs #2784
Change-Id: I12dfabbab9cff08d9154ac5258aeb790906c72f0
David van der Spoel [Fri, 30 Nov 2018 14:10:57 +0000 (15:10 +0100)]
Small update to mdrun tests.
To be able to run tests with different cut-offs new
variable rcoulomb and rvdw are introduced.
To be able to do high precision tests (normal mode
analysis) g96 files can be read now.
Change-Id: I9265022f516b66815aa7bc516b71918fdc6f417a
Christian Blau [Tue, 4 Dec 2018 10:46:31 +0000 (11:46 +0100)]
mdspan - extents of multidimensional arrays.
Extents describe the number of elements along a certain dimension, a
multidimensional index space of rank R. This is equivalent to the
Cartesian product space of integer intervals [0, N_0) x [0, N_1) x ... x
[0,N_{R-1} )
The extents class distinguishes between extents known at compile time
(static) or at run time (dynamic). Static extents are templated to allow
compile time indexing evaluation (part of later patch).
Confer to P0009r8 of the Library Evolution Working Group and
mdspan.extents
Source code copied and modified from Oakridge National Labs repository.
https://github.com/ORNL/cpp-proposals-pub/tree/master/P0009/reference-implementation/include/experimental/bits
Refers #2281
Change-Id: I5301f172fa1d891bcf929a70e3765a2c52b3d8b8
David van der Spoel [Tue, 4 Dec 2018 10:30:54 +0000 (11:30 +0100)]
Removed gmx morph
Part of #1323
Change-Id: Ife56a50e61e4859fa20a39a1be59e828d511fd09
David van der Spoel [Tue, 4 Dec 2018 10:14:36 +0000 (11:14 +0100)]
Removed gmx dyndom
Part of #1323
Change-Id: I07f5cfed364e13fbd6a8b6e0fc94b4b15ef67589
David van der Spoel [Tue, 4 Dec 2018 10:09:48 +0000 (11:09 +0100)]
Removed gmx anadock
Part of #1323
Change-Id: I77c04e08a8245db38530e9aa4113447cc02672a8
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
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
Mark Abraham [Thu, 22 Nov 2018 15:55:10 +0000 (16:55 +0100)]
Merge "Merge branch 'release-2019'"
Christian Blau [Thu, 22 Nov 2018 10:19:05 +0000 (11:19 +0100)]
mdspan - basic infrastructure
Setting up directory to contain a stripped-down and modified-for-GROMACS
version of a reference implementation of the LEWG P0009 proposal,
revision 8:
"mdspan: A Non-Owning Multidimensional Array Reference"
Original code is available at
https://github.com/ORNL/cpp-proposals-pub/tree/master/P0009/reference-implementation/include/experimental
Refers to #2281
Change-Id: I4b8dee54e923d269d38e1f71c4e89526768ef42e
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
David van der Spoel [Wed, 21 Nov 2018 18:39:51 +0000 (19:39 +0100)]
Merge branch 'release-2019'
Change-Id: Ia4dafd57f56f97eae4c7660f27fe761086be25c5
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
M. Eric Irrgang [Fri, 16 Nov 2018 12:42:59 +0000 (15:42 +0300)]
Bump gmxapi version number for 2020 development cycle.
Refs #2764
Change-Id: Ib0b1e4408250748dd41356894eb482917e669f0c
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
Mark Abraham [Tue, 20 Nov 2018 04:56:28 +0000 (05:56 +0100)]
Merge "Merge release-2019 into master"
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
Roland Schulz [Thu, 15 Nov 2018 04:43:48 +0000 (20:43 -0800)]
Merge release-2019 into master
Trivial conflicts in:
cmake/gmxVersionInfo.cmake
src/gromacs/listed-forces/manage-threading.cpp
src/gromacs/utility/coolstuff.cpp
Change-Id: Ic23b55432a22a4a79da09e72b609615d2b421128
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 14:16:17 +0000 (17:16 +0300)]
Convert unhelpful assertion to better documentation.
The gmxapi::Context does not yet have a rigorous way to manage
initialization of simulations that may or may not have already
partially run. Its currently handling of checkpoint files relies on
assumptions of behavior that is observed, but not guaranteed. A static
assertion reminded developers to double-check assumptions as GROMACS
evolves, but not in a particularly good or helpful way.
Remove unhelpful logic. Improve comments. Make a "to do" and provide
reference to potential further discussion.
Change-Id: I9a2e0bd8768ae8a4036c43694f97e0261fb3709a
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 [Tue, 13 Nov 2018 11:18:39 +0000 (12:18 +0100)]
Add cool quote
Change-Id: I74654103982d563f707d61f902f1f87502327d25
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
Kevin Boyd [Sun, 4 Nov 2018 16:52:19 +0000 (11:52 -0500)]
Add testing utility for in-place modification of input files
Adds setModifiableInput and setInputAndOutputFile as options to
the command line testing utility. This is useful for tools such as
gmx solvate and gmx genion which when given "-p topol.top", modify
the topology in place.
refs #2731
Change-Id: Ibdd0462ea7bcfd6f05ee7b7f96618c0fd6457d80
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