Aleksei Iupinov [Tue, 13 Feb 2018 16:49:40 +0000 (17:49 +0100)]
Replace *_free_buffered calls by freeDeviceBuffer
Change-Id: Iaabd4b6655615294943254a29a65507af7567ade
Mark Abraham [Fri, 16 Feb 2018 12:25:41 +0000 (13:25 +0100)]
Merge branch release-2018 into master
Trivial conflict in checkpoint.cpp from fixing whether a return value
was ignored.
Change-Id: Ie2006eeee1118b32d1a46e47191db45b454a4ecd
Aleksei Iupinov [Thu, 15 Feb 2018 12:27:48 +0000 (13:27 +0100)]
Fix PME for large systems with Fermi GPUs
PME spread/gather CUDA kernel scheduling did not account for
compute capability limitations. Realistically this has only
caused it to fail on CC 2.x with input systems larger than
2^18 ~= 262k atoms. This is now fixed for all CUDA architectures.
Fixes #2409
Change-Id: I59295b5d53a341d08a221aebb52e1db9f1e80107
Mark Abraham [Thu, 25 Jan 2018 20:37:06 +0000 (21:37 +0100)]
Use struct for checkpoint header contents
Also cleaned up some memory handling for strings in the header.
Change-Id: I3837844afdf863de263dbc8d2e88071ca50e23fb
Aleksei Iupinov [Tue, 19 Dec 2017 17:42:09 +0000 (18:42 +0100)]
Update FFTW build to 3.3.7
Refs #2358
Change-Id: Ifc4f1b289836c37d2f5edbfabfe26592d761b0ee
Aleksei Iupinov [Mon, 12 Feb 2018 09:16:15 +0000 (10:16 +0100)]
Add freeDeviceBuffer GPU utility function
This allows to make the GPU pairlist deletion code look same
for CUDA and OpenCL. More cleanup TODOs are left.
Change-Id: I4f7775ae2bda65b69696f7aacdb1d3fea9c62ac5
Aleksei Iupinov [Thu, 15 Feb 2018 14:19:33 +0000 (15:19 +0100)]
Add the missing comma in the quote
This was printed as:
GROMACS reminds you: "It's just B I O L O G Y, can't you see?Joe Jackson" ((null))
Change-Id: I69e86ecda8930fffeeab3a54f2f015339fd9b345
Mark Abraham [Thu, 25 Jan 2018 20:58:43 +0000 (21:58 +0100)]
Remove read_checkpoint_state
Left over after its caller was removed in
8850750d352d
Change-Id: Iee119c38443e113263515e2e82351e5b2ee6546f
Berk Hess [Wed, 14 Feb 2018 09:17:59 +0000 (10:17 +0100)]
Remove support for tpx version before 58/gmx4.0
Change-Id: I2e5d7f23e9a6825c30a6687099a27e73857a59cd
Mark Abraham [Thu, 25 Jan 2018 10:56:41 +0000 (11:56 +0100)]
Use std::vector for checkpoint outputfiles
Change-Id: Ic547bc12dccd4c1f539a1d08a53326c39e035948
Mark Abraham [Wed, 14 Feb 2018 12:54:33 +0000 (13:54 +0100)]
Merge branch release-2016 into release-2018
This patch has already been incorporated into release-2018
Change-Id: I088c0d44b5620b3eb575e8a1d0a05adeefaee2cc
Berk Hess [Tue, 13 Feb 2018 10:40:28 +0000 (11:40 +0100)]
Fix range bug in add_selection_groups in tngio.cpp
If there were more molecule blocks than types in the topology,
atoms from the later blocks could be missing in selections written
to tng.
Change-Id: I8bf840b2f019ca9b3c2ccefcf48da866bf8ec559
Aleksei Iupinov [Wed, 14 Feb 2018 11:20:06 +0000 (12:20 +0100)]
Replace the remaining EXPECT_DEATH with EXPECT_DEATH_IF_SUPPORTED
Change-Id: Ibce3d4f240bf3552893762b74206d8e54575d18d
Aleksei Iupinov [Thu, 8 Feb 2018 18:03:19 +0000 (19:03 +0100)]
Add DeviceBuffer as a typedef for cl_mem/device ponter
It is applied to unify the pairlist structure.
Change-Id: I81f78dca2a356ffc7b7638047d29ea29e20c689e
Mark Abraham [Thu, 25 Jan 2018 08:34:45 +0000 (09:34 +0100)]
Fix bug in checkpoint error checking
Change-Id: I91a185913356a42949596d8f4ca34ec2394c24a5
Szilárd Páll [Mon, 12 Feb 2018 19:51:21 +0000 (20:51 +0100)]
Remove barriers preventing texture reference races
These barriers only prevent races on the texture references which can't
happen anymore.
Change-Id: I31ba03f2045643e56ce3272f91a6a0c85a83e88e
Berk Hess [Tue, 13 Feb 2018 11:55:35 +0000 (12:55 +0100)]
Fix grompp net charge check
The grompp check for the net charge would ignore molecule blocks
at the end when molecule types are used in multiple, non consecutive
molecule blocks.
Fixes #2407
Change-Id: I4e7c6c609da99025174f180f9d4037ac9f9fd7fc
Berk Hess [Tue, 13 Feb 2018 11:55:35 +0000 (12:55 +0100)]
Fix grompp net charge check
The grompp check for the net charge would ignore molecule blocks
at the end when molecule types are used in multiple, non consecutive
molecule blocks.
Fixes #2407
Change-Id: I4e7c6c609da99025174f180f9d4037ac9f9fd7fc
Mark Abraham [Tue, 13 Feb 2018 07:11:35 +0000 (08:11 +0100)]
Prepare release notes for 2018.1
Change-Id: I342130c590bff57df1369d488fb98491e936f78f
Mark Abraham [Tue, 13 Feb 2018 16:11:19 +0000 (17:11 +0100)]
Use death test only when supported
In build farms for bioconda and DebiChem, some environments don't
support death tests, so hopefully if we use the GoogleTest machinery
to avoid using them when not supported we can avoid issues in such
environments.
Refs #2405
Change-Id: I17efe3b620b162d615b91a5f5cd4c8bd458143a5
Aleksei Iupinov [Tue, 13 Feb 2018 14:44:27 +0000 (15:44 +0100)]
Move GPU traits into separate headers
Avoid using templated traits struct in favor of simplicity,
as CUDA/OpenCL code being isolated suffices for now.
Change-Id: I2c43edb7cff2d3711141abf044e5fedd76e4444d
Mark Abraham [Sun, 21 Jan 2018 18:26:14 +0000 (19:26 +0100)]
Separate multisim from commrec
Changed default value for nmultidir variable.
Called done_commrec.
Change-Id: Ie5f531389d682b9a619b5fc6314cb687f1a68828
Szilárd Páll [Mon, 12 Feb 2018 13:26:46 +0000 (14:26 +0100)]
Remove single/multi compilation unit switching logic
The reason for needing the single compilation unit support for the
nonbonded kernels has now eliminated with the removal of the CUDA
texture reference support, so all switching logic and consistency
checks are now removed. The CMake cache variable and include statements
that allow using multiple compilation units is still kept for now.
Change-Id: I9f6e6491805aba7202cbe65865fbceb173e20cce
Szilárd Páll [Thu, 8 Feb 2018 20:20:45 +0000 (21:20 +0100)]
Remove texture reference support in the CUDA
Only required for legacy CC 2.0 / Fermi hardware we drop support to
simplify code and improve maintainability. The impact on the Fermi
support will only be performance (as direct memory fetch will be used).
Additionally, all builds will use multiple complication units now,
single compilation unit support has been kept for now and will be
removed later (if it simplifies code).
Follow-up expected/made possible:
- remove single compilation unit mode for CC 2.0;
- remove barrier that protects from race cleanup in
pme-load-balancing.cpp;
- merge regular and Fermi NB kernels.
Change-Id: Ic3677b7beaff1b4b9dc927d955940f7e779c2a41
Aleksei Iupinov [Thu, 1 Feb 2018 15:21:59 +0000 (16:21 +0100)]
Fix the include guard
Change-Id: If943efbd859211309be50d1d0cb25c53523bbbf5
Mark Abraham [Thu, 1 Feb 2018 12:30:24 +0000 (13:30 +0100)]
Remove commrec from hardware detection
This is preparatory refactoring for aspects of #2395
The OpenCL logic was ineffective, because duty is not yet decided, and
anyway we might soon want the detection on PME-only ranks.
Replaced the thread-MPI single-rank assertion with a more direct
implementation.
Minimized contents of detecthardware.h
Refs #2395
Change-Id: I03af65805bd14515a0213d511ae8cdb627c2f05c
Mark Abraham [Fri, 26 Jan 2018 12:47:20 +0000 (13:47 +0100)]
Analyse threads on node before setting affinities
This prepares for future refactoring. It just extracts a function,
names variables related to thread count less cryptically, and adds
Doxygen. Possibly the analysis function could move to a more central
point later.
Change-Id: Ie624ba3ff86d5d5dbce9d2aba02199cd8e6714ea
Mark Abraham [Fri, 9 Feb 2018 10:14:09 +0000 (11:14 +0100)]
Fix reading old force field files
Old force field files that contain fields suitable for explicit
solvent still need to be readable. grompp could already still read the
directives in old force field files and ignore them. However, when
they are read, grompp still needs to understand that they are in a
valid place within the .top file structure. While any place is now
valid (because the contents are ignored), it is simplest to keep the
former requirement, since all files that worked with older GROMACS had
to conform with that requirement.
That requirement was removed in the patch that removed implicit
solvent support Ib241555ff3d8, and it should not have been removed.
I left a comment noting that this is a legacy constraint, not a
necessary one. But probably we'll rewrite topology handling before we
would ever care.
Fixes #2406
Change-Id: Ice11fd34963f7b2a3d5a3b66545c53587d834952
Aleksei Iupinov [Fri, 9 Feb 2018 11:14:19 +0000 (12:14 +0100)]
Revert "Enable debug FP exceptions without TPI, not with TPI"
This reverts commit
9aca3e2865d0cae8283df00f20fbe4b33927d854 until
most issues at #2404 are presumed to be fixed.
Change-Id: I5c3b248f2f265794837a6cf980ed4917108a54bb
Mark Abraham [Fri, 9 Feb 2018 10:34:15 +0000 (11:34 +0100)]
Merge branch release-2018
Change-Id: I2524a854b75c0100ab821c4512339f3768ed4428
Mark Abraham [Tue, 6 Feb 2018 16:22:16 +0000 (17:22 +0100)]
Use more portable python shebangs
Per https://www.python.org/dev/peps/pep-0394/#recommendation, we
should use env, and point it at python2. When we either make them 2/3
or just-3 compatible, this should change.
Some distros (notable Arch Linux) already point python at python3 so
we should choose to be explicit, and thus somewhat portable.
Fixes #2401
Change-Id: Icf98e04660c798d10b167f971b20698e0741994a
Mark Abraham [Thu, 8 Feb 2018 17:45:26 +0000 (18:45 +0100)]
Merge "Merge branch release-2016 into release-2018" into release-2018
Mark Abraham [Thu, 8 Feb 2018 16:55:11 +0000 (17:55 +0100)]
Merge branch release-2016 into release-2018
Resolved conflicts in commit matrices by implementing the same logical
change as in release-2016 (move msvc+icc config to post-submit matrix)
in release-2018.
Change-Id: Id5d731e37e54b8c3896763d0a4ca496f99612f0f
Berk Hess [Wed, 24 Jan 2018 15:26:08 +0000 (16:26 +0100)]
Use SIMD bondeds without perturbed interactions
With free-energy, but without perturbed bonded interactions,
we would use the SIMD accelerated bondeds functions.
Change-Id: I67bdb0cba9c6ec20b076576af940d2be51fa6c9f
Aleksei Iupinov [Thu, 8 Feb 2018 15:12:14 +0000 (16:12 +0100)]
Always run the essential dynamics tests
Change-Id: Ice24b0217d55d3c19ebdcb6b25a3f2f3539c31ef
Aleksei Iupinov [Mon, 5 Feb 2018 14:49:15 +0000 (15:49 +0100)]
Enable debug FP exceptions without TPI, not with TPI
This was broken since I2a152a752079ca4. A FIXME is marked
to resolve interaction with the hidden command line switch
"-fpexcept".
Change-Id: I4b270233db34f19766d1bc4dda1725d7fcf9e897
Mark Abraham [Thu, 8 Feb 2018 12:18:00 +0000 (13:18 +0100)]
Merge "Merge branch 'release-2018' into master"
Aleksei Iupinov [Thu, 8 Feb 2018 10:47:06 +0000 (11:47 +0100)]
Merge branch 'release-2018' into master
Manually modified:
src/programs/mdrun/md.cpp (to uncomment done_ebin())
Change-Id: Ic3887c40668f69e69ee8da15d210721b8bd3e95f
Berk Hess [Wed, 7 Feb 2018 12:15:19 +0000 (13:15 +0100)]
Allow bonds with distance=0
We should allow overlapping atoms in harmonic bonds. But the code
would cause a floating point exception and incorrect free-energy
derivatives.
Note that using sqrt(x) instead of x*invsqrt(x) is faster on Intel.
Change-Id: I87dd1e84f8f526ac40e482bccc94d89e33a1d112
Prashanth Kanduri [Mon, 18 Dec 2017 09:05:04 +0000 (10:05 +0100)]
Cleaning up do_force_cutsVERLET function from wallcycle calls
Change-Id: I50bead1f0760e2f61f5002d33bba8fc6e85692b5
Aleksei Iupinov [Tue, 6 Feb 2018 10:37:09 +0000 (11:37 +0100)]
Remove unnecessary includes from domdec.h
Change-Id: I0d1e1d8ebc52a60b3b939525b61952980b46d673
Aleksei Iupinov [Tue, 6 Feb 2018 15:29:43 +0000 (16:29 +0100)]
Zero unused values to silence the warning
Change-Id: I8419a823e9a94434c3c534da4bf98ca79ff6ead7
Mark Abraham [Wed, 31 Jan 2018 07:48:16 +0000 (08:48 +0100)]
Prevent log file energy average printing dividing by zero
If there's not enough data for averages, skip the average printing
entirely. In principle, pr_ebin could be called from elsewhere than
print_ebin, so now we print "N/A" rather than "nan" or segfaulting.
Added some const correctness. Added some tests. Unfortunately they
currently have to write a file to disk, but we should have the test
before refactoring it to run in memory. The tests needed to be able
to clean up their memory, so runner can now also call done_ebin
but for stability we'll leave that off for now.
TODO When merging to master branch enable the call to done_ebin
in runner().
Fixes #2394
Change-Id: Id2e151664dd4553e49880f96bdd90aacc945f992
Mark Abraham [Tue, 6 Feb 2018 07:52:13 +0000 (08:52 +0100)]
Use isfinite unambiguously
Patch provdied by Veselin Kolev
Fixes #2400
Change-Id: I1923998a2288e20cb339e7fc59210cbf9ac5bfa8
Aleksei Iupinov [Mon, 5 Feb 2018 11:31:57 +0000 (12:31 +0100)]
Only setup Ewald in the generic group kernel if it's used
Helps to not divide by garbage values.
Change-Id: I67999c56b2ce6105d154e7f90b137f67bafd4673
Berk Hess [Mon, 5 Feb 2018 15:05:23 +0000 (16:05 +0100)]
Set cutoff modifiers in forcerec
The cutoff modifiers were not copied from interaction_const_t
to forcerec_t which meant only the generic kernels was used with
the group scheme.
Fixes #2399
Change-Id: I2890cbd55e648e434ad3817edc4e5fe4c5697162
Aleksei Iupinov [Mon, 5 Feb 2018 10:08:06 +0000 (11:08 +0100)]
Make ndx files optional in SimulationRunner
Change-Id: Ib1010097d2dce75a6fdac49bb3b3c5aa3e4c4b8f
Aleksei Iupinov [Mon, 5 Feb 2018 09:59:54 +0000 (10:59 +0100)]
Remove mdpInputFileName_ from SimulationRunner, per TODO
Change Ib6511a338935b14be was the prerequisite.
Change-Id: Ief8717d45c5948a7666b232dd7ea3f1863823671
Berk Hess [Mon, 5 Feb 2018 09:38:22 +0000 (10:38 +0100)]
Fix assertion failure in TPI
Fixes #2398
Change-Id: I89ddde7bdb6c061411160009df1f87e7c2cef0a1
Aleksei Iupinov [Fri, 26 Jan 2018 15:22:33 +0000 (16:22 +0100)]
Don't print impossible CUDA version numbers in absence of GPUs
As results of CUDA version API calls are not checked for success
when printing the gmx binary information header, values of the
non-initialized variables were printed on nodes with no GPUs
(e.g. "CUDA runtime: 32.96"). This change makes the gmx print
"N/A" as a CUDA version string in case of CUDA API error.
Change-Id: Ia5856badb5e5e536f50d1a028163743b4bf93107
Aleksei Iupinov [Thu, 1 Feb 2018 16:39:10 +0000 (17:39 +0100)]
Fix input MDP contents for swap and IMD tests
Change I7a9a7c60591 moved the input MDP contents from files
to std::string's, and in doing so butchered the line breaks
for no good reason, silently breaking the tests.
This is now fixed, using C++11 raw string literals.
Change-Id: Ia4abc26ce67fdebba5f830c2461743b38d944956
Aleksei Iupinov [Tue, 30 Jan 2018 13:26:15 +0000 (14:26 +0100)]
Check for GTEST_IS_THREADSAFE being defined
Change I0d847bc24 updated GTest library to version 1.8.0,
which added GTEST_IS_THREADSAFE to the list of macros that
can only be defined to 1, or undefined. This change corrects
the check of the macro.
Change-Id: I6e2f9bb30a9128bc85a1b5f38c73d21b65dd61f7
Paul Bauer [Tue, 30 Jan 2018 12:13:26 +0000 (13:13 +0100)]
Add information for n2t file format
Refs #2130, #2146
Change-Id: I21acf300d5a9336b0c11d82d6e2f4d10fc1ef212
Mark Abraham [Sat, 20 Jan 2018 16:14:23 +0000 (17:14 +0100)]
Replace macros for multi-sim
This now use static inline functions.
Change-Id: Ib80c4912690aee9ea2d06266eca143a6a7638b34
Mark Abraham [Thu, 23 Feb 2017 16:07:20 +0000 (17:07 +0100)]
Update GoogleTest to 1.8.0
This is the first new release in several years. It introduces some new
features that may prove useful. It no longer requires work-arounds for
newer gcc versions. It fixes several issues that we had worked around
ourselves. Several other fixes have been transferred to the updated
versions.
This version incorporates the documentation (but only for this
version) because that can be useful for GROMACS developers,
particularly to have available offline.
Change-Id: I0d847bc2490935e0ddc3170b674d7460a5a08506
Berk Hess [Thu, 25 Jan 2018 09:39:41 +0000 (10:39 +0100)]
Removed unused flag PCA_CAN_READ_NODE
Change-Id: Ie3f5fca1208991688179c9acba698bda419a056e
Mark Abraham [Sat, 27 Jan 2018 07:54:44 +0000 (08:54 +0100)]
Remove unused declaration
Found by pre-release clang 6
Change-Id: Ibea53009ea71f295123c5c533e6478ae9f4a5da2
Mark Abraham [Wed, 24 Jan 2018 15:30:33 +0000 (16:30 +0100)]
Remove unused fields of t_commrec
Change-Id: I7704117ca1c51c5e5ad50514d53c0bb0c508de43
Mark Abraham [Thu, 25 Jan 2018 07:23:00 +0000 (08:23 +0100)]
Reduced includes of common headers in headers
This makes it faster to recompile after refactoring
those headers.
Change-Id: I882eb29b23b3a983a9209243a9667b3ed77cdd66
Mark Abraham [Thu, 18 Jan 2018 19:47:53 +0000 (20:47 +0100)]
Removed mdrun -multi
mdrun -multidir remains, and works better.
Moved some of the control logic into init_multisystem, particularly
because it was duplicated, and wrong in both versions.
Reduced scope of nmultisim.
Removed documentation.
Removed comment in mdrun.cpp that wasn't in English, has been there
for a very long time, and doesn't seem likely to be accurate or
useful.
Change-Id: I711330bde6ee001cbc60645beecf18e6b7d5fae4
Mark Abraham [Thu, 18 Jan 2018 19:44:20 +0000 (20:44 +0100)]
Change multi-sim tests to use -multidir
The former use of -multi is deprecated.
The need to make directories for -multidir makes it more clear that
simulation runner should not be a thing made and owned by the test
fixture.
Change-Id: Ib6511a338935b14beed0c23a683f9dd2a66a164e
Aleksei Iupinov [Wed, 24 Jan 2018 13:49:48 +0000 (14:49 +0100)]
Remove unused fields per TODO
Change-Id: Ia895f83254a0ad8a500304660f39f9d2e384ae6d
Mark Abraham [Wed, 24 Jan 2018 07:49:27 +0000 (08:49 +0100)]
Remove gmx_inline
C++ supports the inline keyword, and we should prefer to
use standard things where possible.
Removed the include of the relevant header in the two places where
that was now possible.
Change-Id: Ia709e3b55d83d01459706580fc337aaa275a6330
Mark Abraham [Wed, 24 Jan 2018 08:13:19 +0000 (09:13 +0100)]
Teach include sorter to ignore cmake-test files
Change-Id: Ie08c0ab7a03fcd1016347f534b518ff51863da98
Mark Abraham [Wed, 24 Jan 2018 13:23:00 +0000 (14:23 +0100)]
Move Windows icc config to post-submit testing
The front end and standard library for this build are the same as the
msvc config, so there is not a great deal of coverage added by this
config. Post-submit does not use this slave at all. Only running one
job per matrix on this slave will permit us to use only one executor
on it, which might reduce the number of strange failures and hangups.
Fixes #2387
Change-Id: Iedc421b7f4ea6d74f0b4cbd5cc88ea958b427213
Mark Abraham [Tue, 23 Jan 2018 22:00:28 +0000 (23:00 +0100)]
Replace gmx_bool with bool in bitmask functions
These functions never stored to a variable of type gmx_bool, so there
is not even a theoretical downside to using a proper bool.
Change-Id: If0f5f1fffe6badb3bb6c777f04365cd6c403ebdc
Mark Abraham [Mon, 15 Jan 2018 13:01:44 +0000 (14:01 +0100)]
Remove support for implicit solvation
Mdp files with implicit-solvent = no can still be read, and formerly
valid related fields are now ignored, so that default mdp files from
previous versions of GROMACS will work. Anything else for the
implciit-solvent mdp value gives an error in grompp.
grompp can now only write a tpr file that has a false value for
ir->implicit_solvent, but can read older versions. When mdrun is
presented with an older tpr file that did such a simulation, it
refuses to run, presenting a useful error message. Such tpr files are
still useful for other purposes, so can still be read, except that the
fields specific to these methods are ignored.
grompp now ignores the topology directives for related parameters,
which means that force-field folders that are the same as, or
modifications of folders formerly supported by GROMACS still
work. However, the versions currently distributed have none of those
fields.
The group-scheme kernels have been removed, and generation
infrastructure updated so that they do generate the code that's in the
repo. However, now that the python generation scripts no longer
generate GB kernels, the dictionary ordering changes, which changes
the generated output. That output is not sensitive to the order of the
declarations or data-structure elements, so this is only a cosmetic
issue.
Documentation has been removed.
Unit tests on .mdp file handling have had to be updated.
Also removed unused enbcoul enumeration
Refs #1500
Refs #1971
Fixes #1054
Change-Id: Ib241555ff3d8e60012ba0e628ab0f9a3f91eca9e
Mark Abraham [Mon, 15 Jan 2018 13:01:44 +0000 (14:01 +0100)]
Remove topology support for implicit solvation
Refs #1500
Refs #1971
Change-Id: I75d05d52ea1d528f63f2249da62f0bcfca4274d2
Aleksei Iupinov [Tue, 16 Jan 2018 16:31:58 +0000 (17:31 +0100)]
Test the mixed mode PME with walls and box scaling
Refs #2385
Change-Id: I42281dd6b3da30c777a0819d97c1d85e69049674
Aleksei Iupinov [Tue, 16 Jan 2018 15:09:01 +0000 (16:09 +0100)]
Test PME CPU/GPU with walls and box scaling
Change-Id: I34f9a1b3a20b25b9cb577f074e08ccddad9f1b2e
Aleksei Iupinov [Fri, 12 Jan 2018 16:16:57 +0000 (17:16 +0100)]
Wrap the PME testing loop in a method for extensibility
Also clarify the XML reference data step tag.
Change-Id: I04eee98d92221f4e0e2fa23fa1180896858f1add
Mark Abraham [Sun, 24 Dec 2017 05:53:27 +0000 (16:53 +1100)]
Preliminary cleanup before removing ifdef cplusplus
Several files used more complex organization, which is best resolved
manually before we do some scripted refactoring.
Converted two all-vs-all kernels to C++ so that smalloc.h could be
converted. We'll anyway remove those kernels some time soon.
Change-Id: I49549cff19effa91bf0400ab706d582b13017309
Roland Schulz [Sat, 20 Jan 2018 01:22:59 +0000 (17:22 -0800)]
AVX512: copysign
Change-Id: I336b9096d83f7dc74ec53d233df8c2ad75a51ed1
Roland Schulz [Fri, 19 Jan 2018 21:23:27 +0000 (14:23 -0700)]
AVX512 GCC 5.3 work-around
GCC 5.3 has bug in overload resolution causing the AVX512
and scalar function to become ambiguous.
Change-Id: I1db4696f19c05c9eb3a97320a8c6c5b41823cca9
Aleksei Iupinov [Thu, 18 Jan 2018 11:13:00 +0000 (12:13 +0100)]
Add a death test for the duplicate inputrec keys checking
That was fixed in Idc66145af.
Refs #2386
Change-Id: I4c726989da646ffa5343f4bcdea51dfdf049ef6c
Mark Abraham [Fri, 19 Jan 2018 14:55:18 +0000 (15:55 +0100)]
Merge "Merge branch 'release-2018' into master"
Aleksei Iupinov [Fri, 19 Jan 2018 10:05:20 +0000 (11:05 +0100)]
Rename class BiasReader to struct BiasOutputSetup
Change-Id: Id3b2eb7405b88633914be50d3c41c7ced861238d
Mark Abraham [Fri, 19 Jan 2018 11:14:33 +0000 (12:14 +0100)]
Add dev-guide docs for automatic update of regressiontests
Change-Id: I28e907157cfc7e428841030f4605fed02def390b
Aleksei Iupinov [Fri, 12 Jan 2018 13:23:41 +0000 (14:23 +0100)]
Move the temporary file MPI workaround into the base mdrun test class
Change-Id: Ic3fb0f42dde408b6f26944ffc59366d21c5086e3
Aleksei Iupinov [Thu, 18 Jan 2018 11:36:22 +0000 (12:36 +0100)]
Make the reference data variables local in GetIrTest
Change-Id: Ief12dd273b7d1099eb01d025cec7fde1efdc5aeb
Aleksei Iupinov [Fri, 19 Jan 2018 10:42:17 +0000 (11:42 +0100)]
Merge branch 'release-2018' into master
Change-Id: I77f2ee791cfe08a3d162605e14b411a18244b4c3
Mark Abraham [Mon, 8 Jan 2018 08:22:16 +0000 (09:22 +0100)]
Fixes for issues found by clang 6
Change-Id: Ibdaad0a36d30659f2f9fa8bf142d311bc1f38b2d
Roland Schulz [Thu, 18 Jan 2018 22:13:03 +0000 (14:13 -0800)]
Remove incorrect release-note entry
Change was reverted before the release.
Change-Id: Id46ba251edc9a44cd62275d03ecfe15d5230cfd9
Aleksei Iupinov [Tue, 28 Nov 2017 14:14:40 +0000 (15:14 +0100)]
Got rid of manual memory management in the PME overlap structures
Also moved a couple of fields (send_id, recv_id) to the proper
place.
Change-Id: I372d82b703349c65fd86257795d958a8b38c98b8
Mark Abraham [Wed, 17 Jan 2018 14:21:05 +0000 (15:21 +0100)]
Bump version numbers for 2019 development
Change-Id: I5c89b5266d122ba63017a2d7d84b9da1c0066040
Roland Schulz [Fri, 12 Jan 2018 02:00:58 +0000 (18:00 -0800)]
Avoid dynamic STL containers in global init
For global variables (and static class members) using dynamic containers
causes issues if using LD_PRELOAD to load different libgromacs.
Change-Id: I7bc20b8305fdf5cfedd43d0e1351d9327cdca332
Aleksei Iupinov [Fri, 12 Jan 2018 11:09:42 +0000 (12:09 +0100)]
Re-enable multi-rank PME tests (with the file race fixed in parent)
Also remove the MPI_Barrier call, which was the previous
attempt at fixing the issue.
Change-Id: I2deb6b77abe2b8719a8b4d50410e92427cbbbd85
Mark Abraham [Tue, 16 Jan 2018 18:58:56 +0000 (19:58 +0100)]
Remove support for BlueGene
These systems are nearly at end of life, and are starting to be
decommissioned. Plus regressiontests haven't passed since about
version 5.1.
Accordingly, QPX SIMD is no longer supported, since only the
BlueGene/Q A2 cores implemented it.
Our cpuinfo code can still detect this platform, because that
does no harm, but we now fall back to GMX_SIMD_ACTIVE=None.
Docs and build system have been updated accordingly.
There is an aspect of the Verlet scheme that was originally
implemented for BlueGene/Q (namely simd_interaction_array), but this
is now also used by the no-SIMD build, so remains in the code.
Change-Id: I1a680671bfab56f94d9fadb2e8f751ba429e5894
Berk Hess [Fri, 12 Jan 2018 14:23:40 +0000 (15:23 +0100)]
Fix COMM removal on part of the system
COMM removal requested for part of the system acted on the whole
system.
Fixes #2381
Change-Id: Ic36ce0d261dd9b5aeceef1803f6a97e6a9ca8716
Paul Bauer [Fri, 27 Oct 2017 14:49:03 +0000 (16:49 +0200)]
Add contribution information to webpage
We'll need a link from a high-level page on the new website to these
details, but the details and cross-links make sense to have as part of
the developer guide.
Change-Id: I0839367662804fe75cd18479db5335644f787176
Mark Abraham [Wed, 17 Jan 2018 13:23:27 +0000 (14:23 +0100)]
Port thread-MPI to compile as C++
Change-Id: Ie184dcd672af99e2cea400465b9a1112bfd0d923
Berk Hess [Thu, 18 Jan 2018 10:51:36 +0000 (11:51 +0100)]
Add check in grompp to avoid assertion failure
With an mdp file with a parameter present with both the current name
and the old name which automatically gets replaced, an assertion
would fail. Now a fatal error is issued.
Fixes #2386
Change-Id: Idc66145afaca6a1e0cb868dd6aba2405e2dd7171
Aleksei Iupinov [Tue, 16 Jan 2018 17:08:57 +0000 (18:08 +0100)]
Fix box scaling in PME mixed mode
A TODO is left to test and handle this better in master.
Fixes #2385
Change-Id: I34d01d3ea6802f624888a1fd85eef72711a82f2f
Berk Hess [Wed, 17 Jan 2018 13:55:44 +0000 (14:55 +0100)]
Replace stderr prints in filenm.cpp by asserts
Refs #2377
Change-Id: Iec556bf03b613e27c6b98e09577801f4d0701d06
Aleksei Iupinov [Wed, 17 Jan 2018 12:29:47 +0000 (13:29 +0100)]
Merge branch 'release-2018' into master
Change-Id: I101621e6fca6729cc42cd7eb6678c1471ccf6ef2
Berk Hess [Tue, 16 Jan 2018 14:13:08 +0000 (15:13 +0100)]
Re-enable GPU with walls and 1 energy group
With a single non-bonded energy groups and walls we can use a GPU
for non-bonded calculations.
Change-Id: I95e72d6acc8852091bb269b350cdbf67f56e19fc
Mark Abraham [Tue, 16 Jan 2018 16:30:35 +0000 (17:30 +0100)]
Merge "Merge release-2018 into master"
Roland Schulz [Fri, 12 Jan 2018 01:58:30 +0000 (17:58 -0800)]
Merge release-2018 into master
Change-Id: I197f817d0b54392bc1198536e39e74baacad3e96
Berk Hess [Tue, 16 Jan 2018 13:02:37 +0000 (14:02 +0100)]
Remove tumbling ice-cube warning with SD
With SD there is friction, so ice cubes will not tumble.
Change-Id: Ibe91856529c26386e3f3683f95b574a9c6e7a875
Aleksei Iupinov [Fri, 12 Jan 2018 10:55:17 +0000 (11:55 +0100)]
Always write the input MDP file for testing just before the grompp call
This should hopefully help avoid the race issue that was
briefly observed with the multi-rank PME test
(the input MDP was occasionally garbled by multiple writes).
Change-Id: Ib624825f79a3dc7b6d3f5e81d8e6b5907f27b35a