Mark Abraham [Fri, 11 Mar 2016 00:37:02 +0000 (01:37 +0100)]
Merge branch release-5-0 into release-5-1
Change-Id: Icb8d7bc8d5639a824fe5f45e72eede3ec7b9d3c9
Berk Hess [Wed, 9 Mar 2016 22:09:51 +0000 (23:09 +0100)]
Fix Ewald 3DC dipole with Verlet scheme
With the Verlet scheme, the dipole for the Ewald 3DC correction was
summed twice over the PP-ranks at non-NS steps, leads to a correction
that was a factor #PP-ranks too high.
Fixes #1916.
Change-Id: Iefda70ea42f1b6a4c6bd4cbc7c0982114282c15c
Mark Abraham [Wed, 10 Feb 2016 08:03:52 +0000 (09:03 +0100)]
Make both ftp and http links for source download
Apparently some people aren't allowed to use ftp.
Change-Id: Ia9270a2692ca3e95569f1de938f1ba0a8fab1a5f
Berk Hess [Thu, 18 Feb 2016 07:52:32 +0000 (08:52 +0100)]
Fix excessive list splitting
Due to a possible integer overflow, the pair list splitting code could
end up over-splitting pair lists and causing large performance
degradation. Due to the larger processor count, runs using AMD GPUs,
using 100k+ simulation systems are more prone to suffer from the issue.
Fixes #1904
Change-Id: I29139ec80aa75c78fa93de0858f7c60cdae88d5b
Carsten Kutzner [Wed, 17 Feb 2016 16:43:39 +0000 (17:43 +0100)]
Small update to reference manual
This line was so long that the last word was not even on the page.
Added a space so that proper text wrapping is now possible.
Change-Id: I074174a500039b47ef93896fa742f24d6f65baac
Mark Abraham [Fri, 12 Feb 2016 14:12:21 +0000 (15:12 +0100)]
Updated reference manual text about PME tuning
Also removed some junk that has long been commented out.
Change-Id: I0d1d962bd1d41fb35131c64b2c5d77edf36c8791
Mark Abraham [Tue, 16 Feb 2016 15:17:46 +0000 (16:17 +0100)]
Merge branch release-5-0 into release-5-1
Change-Id: I4268a1ced2a874dc2844decf6c2853590230ad30
Carsten Kutzner [Tue, 16 Feb 2016 12:32:19 +0000 (13:32 +0100)]
Changed norm(...) > 0 condition to norm2(...) > 0 in init_ekindata()
Fixes issue #1856 on K computer
Change-Id: Ib4f301f17124077bb6cc2aa6b955d01ccdcaec1b
Carsten Kutzner [Tue, 16 Feb 2016 13:06:40 +0000 (14:06 +0100)]
Improved/enlarged Fig. 4.9 in manual for better readability
- Made the whole figure somewhat larger
- Made the axis text larger
- Added/updated the units:
- kJ mole-1 -> kJ mol-1
- added degree unit
- Changed plot type from .eps to .pdf
Change-Id: Ibc77c661ed89d9c814d3e2da8490f8b472c4c828
Mark Abraham [Sun, 14 Feb 2016 17:42:44 +0000 (18:42 +0100)]
Re-generated eps for figure 4.8
A user noticed that it was hard to distinguish between i and j in
subst-im, which turns out to be from an inappropriate bounding box in
the eps version of it. Regenerated all three eps components of Figure
4.8, which gives a satisfactory final appearance.
Change-Id: I9b9b6787a4da2bcdcf343e3b7cb94a43f11b623b
Szilárd Páll [Thu, 11 Feb 2016 22:52:07 +0000 (23:52 +0100)]
Re-enable LJ-PME + Lorentz-Berthelot on GPUs
We do have GPU kernels which were enabled in 5.1.0, but got disabled
with some refactoring before 5.1.1.
Change-Id: I6752ec9fe561f5c4c0cd14f59c73f4d42f7ff948
Mark Abraham [Mon, 8 Feb 2016 07:41:24 +0000 (08:41 +0100)]
Merge branch release-5-0 into release-5-1
Change-Id: I7795992dcc576dbe9b8cb42db0e95981c2a2e255
Berk Hess [Fri, 5 Feb 2016 09:28:37 +0000 (10:28 +0100)]
Fix incorrect cmap parsing
The cmap parsing in grompp expected exactly one space between
atomtypes and would silently corrupt the cmap parameters when more
than one space was present.
Also added cmap comparison to gmx check.
Fixes #1898.
Change-Id: If5911ce78bdec2a15dbcda7c2437dd6cae86c0ae
Berk Hess [Fri, 5 Feb 2016 09:28:37 +0000 (10:28 +0100)]
Fix incorrect cmap parsing
The cmap parsing in grompp expected exactly one space between
atomtypes and would silently corrupt the cmap parameters when more
than one space was present.
Also added cmap comparison to gmx check.
Fixes #1898.
Change-Id: If5911ce78bdec2a15dbcda7c2437dd6cae86c0ae
Mark Abraham [Mon, 25 Jan 2016 06:42:56 +0000 (07:42 +0100)]
Bumped patch number to prepare for future 5.1.3 release
Change-Id: I5bca94dc9fe07bfbde62fb224c4b093a208ce928
Mark Abraham [Mon, 25 Jan 2016 06:42:12 +0000 (07:42 +0100)]
Version 5.1.2
Bumped minor soversion and regressiontest hash
Change-Id: I96c9b43b862046106540afac52e1f72bf58525c0
Berk Hess [Mon, 1 Feb 2016 12:40:51 +0000 (13:40 +0100)]
Fix mdrun removing Verlet buffer with EM
With energy minimization, grompp by default adds a Verlet buffer
of 5% to rlist, but mdrun erroneously removed this.
Added checks to prevent future misuse of calc_verlet_buffer_size.
Fixes #1896.
Change-Id: I4d16d48857494ebc6240842ed04571562de771b6
Mark Abraham [Wed, 27 Jan 2016 14:14:19 +0000 (15:14 +0100)]
Fix grompp not warning when .mdp values have wrong types
With old code, e.g. init_lambda_state = 0.35 was silently
interpreted as 0.
Added some comments and TODOs.
Added unit tests for some simple parts of the the functionality that
needed to be fixed. Extended the interface of warninp_t to permit
sound testing.
Fixes #1893
Change-Id: I425798daa8ed3a391cde49ba4a2d3d352d682f8f
Berk Hess [Tue, 2 Feb 2016 14:01:05 +0000 (15:01 +0100)]
Fix SETTLE error handling
With OpenMP threading only SETTLE errors detected by the last OpenMP
thread were processed.
Also made SETTLE errors fatal, there is no use of generating warnings
and continuing a simulation after a SETTLE error. This only causes
confusion for users, since the run will usually terminate with
a confusing error message instead.
Change-Id: Ieb76d9bb0d74087c544124b0c548be4c5698b16c
Mark Abraham [Wed, 3 Feb 2016 12:06:25 +0000 (13:06 +0100)]
Merge release-5-0 into release-5-1
Change-Id: I12e0bd25b9b114d0977401e8032078d7cfdd78cf
Mark Abraham [Thu, 14 Jan 2016 18:54:07 +0000 (19:54 +0100)]
Fix dEkin/dl handling with multiple ranks
With non-vv integrators, enerd->dekindl was computed at
nstglobalcomm-1 step, but not accumulated across ranks unless bGStat
also happened to be true. Then at the next (ie nstglobalcomm) step,
bGStat and bEkinhOld were true, so calc_ke_part copied the values into
enerd->ekindl_old. These were then not accumulated, so sum_ekin
averaged the accumulated enerd->ekind with the non-accumulated
enerd->ekind_old to store in enerd->dvdl_lin[efptMASS]. So, it seems
likely that mass-perturbed free-energy calculations with multiple
ranks have been broken with (at least) non-vv integrators for a long
time (perhaps since
031a8b58f).
Fixes #1873
Change-Id: I262e3cfc97a50e1a343563134c7ba89539bba59a
Berk Hess [Fri, 29 Jan 2016 16:30:28 +0000 (17:30 +0100)]
Fix TPI ignoring PME mesh contributions.
The GMX_PME_CALC_POT flag was ignored in the PME code, effectively
zeroing the PME mesh contribution to test particle insertion energies.
Fixes #1895.
Change-Id: Ieda2b4496c374cc02b3ad22aa512d8b6eaa35189
Berk Hess [Tue, 26 Jan 2016 09:19:41 +0000 (10:19 +0100)]
Add check for double perturbation
Added a check for changes atom charges and/or types through both
the topology and the couple-moltype option. The couple-moltype
option would override the topology settins for decoupled states.
Fixes #1892.
Change-Id: Ia3d4c0b175af0ad12b189c1b728aee25603afd4f
Berk Hess [Mon, 16 Nov 2015 22:50:08 +0000 (23:50 +0100)]
Fix LINCS triangle constraint thread issue
With triangle constraints, a OpenMP thread barrier could be missing
under certain conditions. A debug build produced an assertion failure.
This was unlikely to happen without DD, but quite likely with DD.
This bug will have had minimal effect on the results.
Fixes #1853
Change-Id: I6ad1a75ce89ef1e753a7567868a76c2fd891f729
Mark Abraham [Wed, 27 Jan 2016 22:19:37 +0000 (23:19 +0100)]
Add OpenCL source file types to copyright checker
Also stopped the include sorter giving an error for template.cpp.
Change-Id: I9e995f6788ff3c7e9b0c3b24fa31750b6a2c6290
Berk Hess [Fri, 22 Jan 2016 09:36:40 +0000 (10:36 +0100)]
Update pair-list buffer manual
Several corrections and updates to the manual section that explains
the pair-list buffer estimation:
* Clarified the role of i and j particles in the equations
* Added missing factors t and t^2 for several sigmas
* Added missing term in expansion in intermediate result
* Added text explaining the approximations made
* Rewrote the paragraph on how constrained particles are handled,
which matched the code in 4.6, not 5.1 (or 5.0)
Note that the code and code documentation are correct and up to date.
Change-Id: Iaf707f1c5faeebd6b9b099753735a1c61b903f9c
Mark Abraham [Mon, 25 Jan 2016 06:32:41 +0000 (07:32 +0100)]
Add suggestions for updating binutils
CentOS seems to ship with an old binutils, as well as compiler. Other
distros probably also do this. Install guide and cmake messages now
explicitly suggest updating such infrastructure.
Change-Id: Ieefd188e508d83d248a149d313190e7989e70557
Mark Abraham [Tue, 26 Jan 2016 17:42:43 +0000 (18:42 +0100)]
Fix default for GMX_USE_NVML
NVML_FOUND is the result of the detection, which should
be the default for GMX_USE_NVML.
Refs #1835
Change-Id: I0fd640d4c431242e47e147bd5f33c9bdec176010
Mark Abraham [Sun, 24 Jan 2016 11:15:48 +0000 (12:15 +0100)]
Fix duplicate LaTeX equation label
Change-Id: Ib4e54923b2987d176c2299c0b4db58d13c7482fa
Berk Hess [Mon, 18 Jan 2016 15:22:25 +0000 (16:22 +0100)]
Fix exact continuation from non-energy steps
At continuation of a run, from e.g. checkpoint file, the energy of
the first step would be printed to log file. This caused different
code paths to be used, which prevents exact continuation of runs.
Now the print to log at the first step is skipped when starting from
a checkpoint file (unless step % nstlog == 0).
Fixes #1888.
Change-Id: I9edc1efa884d1995cf03d9f4c2a60c675849c354
Berk Hess [Mon, 18 Jan 2016 14:37:56 +0000 (15:37 +0100)]
Fix energy file continuation with md-vv
When continuing a run from a checkpoint file, The Velocity Verlet
integrators would not account for the energy or step of the first
step and not write an energy frame if this happened to be an
nstenergy step.
Change-Id: I7f40d9fa57acd5bdeaac8230a4e31b27897ff69c
Mark Abraham [Wed, 20 Jan 2016 21:56:20 +0000 (22:56 +0100)]
Update references to HTML and online documentation
Fixes #1891
Change-Id: Ie2bce55ffa7ac64b2530d70694e60de2c22cb32f
Teemu Murtola [Mon, 18 Jan 2016 16:30:54 +0000 (17:30 +0100)]
Document limitations on 32-bit Linux
Large file support does not currently work on 32-bit Linux,
so document this in the install guide.
Related to #1834
Change-Id: I8a3dcf1c2d2423eefc44d4ac1dc366c5f8753c31
Berk Hess [Fri, 15 Jan 2016 09:47:19 +0000 (10:47 +0100)]
Fix energy average with continuation
When continuing a run from a checkpoint file, the energies at
the restart step would always be added to the sum for the averages
in the energy file, even when the restart step was not a multiple
of nstcalcenergy. Now energy file are binary identical without
and with restarts.
Refs #1888.
Change-Id: If6a92a5cb2554a6b79854ebc3ff9b437bf7fbe7f
Carsten Kutzner [Thu, 3 Dec 2015 12:18:59 +0000 (13:18 +0100)]
Made g_tune_pme work with -cpi -deffnm combination
Using -deffnm with g_tune_pme would not work with checkpoint restarts
since the file names used for the benchmark output files (-bo...) could clash
with output file names expected by the checkpoint file when appending.
Fixed it by using the -deffnm option only at launch time,
but not for benchmarking.
Also added the -bo and -bx output files to the files that need to be
deleted after the benchmark test run, so that there is slightly less
clutter in the output directory after tuning.
Change-Id: Ibec8553be7ddf482a831308454e2db9e1fc1d8aa
Ansgar Esztermann [Wed, 20 Jan 2016 11:08:01 +0000 (12:08 +0100)]
Add missing initialization in nbnxn_pairlist_t
In nbnxn_init_pairlist(), nbl->sci is left uninitialised. This can
pose a problem when it is later passed to nbnxn_realloc_void().
In the current code the pairlist is allocated with snew(), which
should properly initialize all entries, but this seems to
(mysteriously) cause trouble with a version of glibc2.12.
Refs #1890.
Change-Id: I5d483366fab8fd013ed15f6a82e3212d13ba2ded
Mark Abraham [Tue, 12 Jan 2016 14:47:37 +0000 (15:47 +0100)]
Allowed NVML support to be toggled
A new CMake advanced option GMX_USE_NVML takes its default value from
the result of the NVML detection, thus by default NVML support is on
only if the detection succeeds. It can be turned off or on at will,
but when set on, it will give a fatal error if the detection did not
succeed.
Split the NVML section of the install guide into its own paragraph.
Fixes #1835
Change-Id: Ic1bf025fcd807eb701d0b52afe35b11b2d75f402
Mark Abraham [Tue, 12 Jan 2016 14:18:06 +0000 (15:18 +0100)]
Merge branch release-5-0 into release-5-1
Change-Id: I49ca6d8edc18c764eff368cd396873385f11ea9c
Berk Hess [Mon, 4 Jan 2016 14:06:46 +0000 (15:06 +0100)]
Fix PME load balancing skipping a setup
During stage 0 of the PME tuning we only time every second setup.
In stage 1 only a reduced range of setups is considered. If the tpr
setup (setup index 0) was not part of this reduced range, the first
setup in the range would never be timed. This could lead to choosing
a non-bonded cut-off that was longer than optimal.
Fixes #1880
Also fixed two conditionals (but this had no effect on the settings).
Change-Id: Id9f361d23e3294e41553b39ae8e8f37ceb80bbe5
Mark Abraham [Thu, 7 Jan 2016 17:31:11 +0000 (18:31 +0100)]
Avoid more C++ bindings for MPI
This avoids picking up the C++ bindings from SGI's MPT.
Change-Id: Ie8d30a6d59f04a6b69ac9ccf29aa5db631a2b3cb
Mark Abraham [Tue, 5 Jan 2016 18:20:40 +0000 (19:20 +0100)]
Document how potential-switch works
Adjusted the notation in the force-switch section to make clear the
difference between the two.
Change-Id: Iadd62faefe94726fd33a0d429950e9525b23bf98
Mark Abraham [Thu, 7 Jan 2016 10:51:15 +0000 (11:51 +0100)]
Stop using UNDEFINED as name of a symbol
Apparently SGI's MPT MPI library defines this symbol, breaking the
compilation. We don't need to use it anyway.
Change-Id: I2b795252937339de49a75ba497c6741ec8019a74
Mark Abraham [Thu, 7 Jan 2016 09:18:07 +0000 (10:18 +0100)]
Backport md-vv fixes
This corrects non-Trotter md-vv temperature-coupling behaviour, and
fixes the first step of md-vv pressure-coupling volume integration
after restarts.
Refs #1883
Change-Id: I8d807c8430bf4c18b0a4800af62d7f10839b7d59
Berk Hess [Tue, 24 Nov 2015 10:20:55 +0000 (11:20 +0100)]
Correct vector check of gmx check
The check of vector components relative to the RMS vector component
incorrectly scaled the absolute tolerance instead of the relative.
Also different vectors were compared in several different ways.
Now all vectors are checked with the same procedure.
Change-Id: If7c188c9ce433fbd4aa9bb5051197de4bfa6edaf
Mark Abraham [Tue, 8 Dec 2015 03:01:33 +0000 (04:01 +0100)]
Fix some OpenCL issues
Added routine to convert error codes into more helpful
diagnostics. Called it in one place that needed some troubleshooting,
but an overhaul of OpenCL error handling is needed (in master branch).
Introduced new OpenCL control variable to indicate when there is a
non-local event upon which it is valid to wait, since it is an error
to wait upon an ocl_event that was never returned by an API call.
Converted mdrun integration tests to rely on the improved automated
resource assignment in 5.1, because that copes better with the
limitations of the OpenCL implementation.
Worked around limitation where real MPI + OpenCL can't use more than
one GPU on a node, by disabling GPU support for that test case.
Fixed inappropriate use of mdrun -nt, where the number of thread-MPI
ranks was intended.
Updated install guide.
Fixes #1871
Change-Id: I11e6b2bdb6f7f91489f3ec0d671081d99661fa62
Szilard Pall [Fri, 18 Dec 2015 15:58:34 +0000 (16:58 +0100)]
Improve documentation on OpenCL issue with NVIDIA
Added reference to the known to be buggy OpenCL runtime versions (r349)
and version of the single release that has been shown to not exhibit the
issues.
Change-Id: I2a1d9bee988824df22d3b1e5a362a653c1d041cc
TODO: Wait for feedback from NVIDIA before merge.
Berk Hess [Mon, 30 Nov 2015 16:50:19 +0000 (17:50 +0100)]
Bring performance estimation up to date
The performance estimation code for estimating the PME/PP load
and the optimal DD grid setup used outdated numbers.
We now estimate using actual cycle counts on Haswell and esimate
for other architectures through a scaling factor that takes into
account the SIMD width and FMA.
The DD grid automation now ignores PBC cost for exclusions with
the Verlet scheme and the for angles and dihedrals with SIMD.
The effect of this is a more reliable PME load estimate that's
now a factor 1.4 to 1.7 higher on Haswell.
The DD grid automation will now often choose a setup that better
matches the PME `decomposition and reduce the PME redist cost.
Change-Id: I5daa6a6856f2b09ba6d17fda0eea800b816d21e4
Mark Abraham [Mon, 30 Nov 2015 22:25:40 +0000 (23:25 +0100)]
Require Nose-Hoover with MTTK
Nothing else was ever supported, and could segfault if reference
temperatures in the .mdp file were zero because there was no
thermostat.
Change-Id: Id0dc1302832c306d43dc809f032b850236849580
Christoph Junghans [Mon, 30 Nov 2015 18:06:05 +0000 (11:06 -0700)]
AdResS: lost performance tweak
Change-Id: I164bc6a60f62d117fef83844da74c3707455a980
Berk Hess [Fri, 11 Dec 2015 15:36:43 +0000 (16:36 +0100)]
Fix bug with pull group weights
Using pull-group?-weights would set all pull indices to 0.
Fixes #1878
Change-Id: Iff4c4ef9814313f948fbec3279d5815ce96216ef
Mark Abraham [Mon, 23 Nov 2015 16:01:00 +0000 (17:01 +0100)]
Stop global communication depending on integrator
In
488464e7, we removed the iterative case for the md-vv
integrator. This exposed a bug that I suspect has been there ever
since the first implementation of md-vv. Whether we do reduction on
the force virial should depend only on whether the main loop asked for
it, because we're planning to calculate quantities that need it,
e.g. pressure. Further discussion on Redmine.
Fixes #1858
Change-Id: I0fbce62a9732dac186aec687445dcb848151c4fd
Mark Abraham [Tue, 8 Dec 2015 07:45:22 +0000 (18:45 +1100)]
Merge branch 'release-5-0' into release-5-1
Conflicts:
src/gromacs/mdlib/coupling.cpp
Trivial conflict from removing unused variables in release-5-1, but
adding one in release-5-0, resolved by combining both logical changes.
Change-Id: Ib3e762bec8699465d47cbc364fecb424b23aec11
Mark Abraham [Tue, 1 Dec 2015 03:11:04 +0000 (04:11 +0100)]
Fix Trotter integration
Re-using the iteration variable in an inner scope could have produced
any manner of nonsense. Luckily it was only broken for md-vv with NPT
and more than one temperature-coupling group.
Fixes #1872
Change-Id: If22849e40a0253ba1fa4bbc1dba78b80d17cf4d1
Elton Carvalho [Wed, 25 Nov 2015 21:35:47 +0000 (18:35 -0300)]
Rotate Figure 8.2 in manual.
Fixes #1865
Change-Id: I4bd006fa691481179d4eec4299d9cc5d18db6e3f
Mark Abraham [Tue, 24 Nov 2015 16:08:03 +0000 (17:08 +0100)]
Fix error in multi-sim communication
I lost the [0] in converting the old code, and there was not enough
testing coverage to find it.
Fixes #1848
Change-Id: Ifb9ffaf5a525537231b1f4e848bba3ef0873a077
Berk Hess [Thu, 19 Nov 2015 13:02:44 +0000 (14:02 +0100)]
Removed mdrun fatal_error with P3M-AD
Change-Id: I43f988622aa77f504e9d5ca0693f5758b0e59c5c
Carsten Kutzner [Tue, 17 Nov 2015 11:32:22 +0000 (12:32 +0100)]
Fixed -npstring command line argument in gmx tune_pme
The old format "-npstring -n" would be interpreted as two command
line options by the parser. Therefore, now the syntax is adapted
to "-npstring n" and the minus sign is added later when the mdrun
command line is constructed.
Change-Id: I97b96a2985c3376f60297d336c7914bb48e21e41
Mark Abraham [Thu, 12 Nov 2015 07:10:37 +0000 (07:10 +0000)]
Fix walltime measurement with bgclang
BlueGeneQ + xlc was fine
BlueGeneQ + bgclang clock_gettime doesn't work properly, leading to
checkpoints every nstlist steps.
Change-Id: I8c58da39be7dd19a8aea2715b418586c42feba46
Mark Abraham [Wed, 11 Nov 2015 15:50:05 +0000 (16:50 +0100)]
Merge release-5-0 into release-5-1
Change-Id: I292a7eab69893472723338b44b4653f725f7294f
Mark Abraham [Tue, 10 Nov 2015 15:16:38 +0000 (16:16 +0100)]
Bump patch version to prepare for 5.1.2
Change-Id: Iefe307be5b3085555e7850566111dc2903b686db
Berk Hess [Mon, 9 Nov 2015 14:52:10 +0000 (15:52 +0100)]
Correct LINCS dHdl contribution
The LINCS constraint contribution to dH/dlambda was missing a factor
1/delta_t^2 and thus orders of magnitude too small.
Fixes #1851
Change-Id: I864726d9a86a34207d2a02ad0803874fbfb33966
Mark Abraham [Fri, 30 Oct 2015 09:24:06 +0000 (10:24 +0100)]
Version 5.1.1
Bumpd SOVERSION_MINOR and REGRESSIONTEST_MD5SUM per policy
Documented the two historical values of SOVERSION_MAJOR
Change-Id: I50662a762a1af9a39f94ec9a18e0afe48cb8424d
Szilard Pall [Wed, 21 Oct 2015 00:06:43 +0000 (02:06 +0200)]
Tweak NVML-related messages
Reworded and added hints related to fixing/working around the issues
presented to the user.
Change-Id: I1e6fc424404aca71ca1ae2788a06541e202b8184
Berk Hess [Mon, 2 Nov 2015 09:33:43 +0000 (10:33 +0100)]
Fix intermolecular interactions with small mols
Fixed intermolecular interactions not being assigned with domain
decomposition for system with only single charge group molecules.
Change-Id: I49e55d0461c4b1f92077d047072c31b22a5b397b
Szilard Pall [Mon, 2 Nov 2015 00:23:09 +0000 (01:23 +0100)]
Fix signal type
The signal array type has been changed from into to char, but this can
not safely hold the negative values associated with the signaling
indicating to stop at next step. This has likely led to broken
signaling on platforms where the char implementation does not use a
signed 8-bit integer. To fix this issue "signed char" is used now.
Change-Id: If2ca213c979815ff3ab868cb0f7c8281abc2be50
Mark Abraham [Wed, 28 Oct 2015 15:03:47 +0000 (16:03 +0100)]
Suppress warnings when we have OpenCL 2.0 support
OpenCL 2.0 headers apply deprecation compiler attributes to various
functions present in earlier OpenCL versions. We have to use those
functions because we support OpenCL 1.1. So we use the OpenCL
mechanism to declare our intention, which suppresses the compiler
warnings.
Change-Id: I237b8bdd88fe575e127436b078da6d0c83d44d87
Szilard Pall [Thu, 8 Oct 2015 15:20:29 +0000 (17:20 +0200)]
Avoid using incompatible NVML version
This change introduces a check on the NVML API version in order to avoid
compilation issues when old driver/NVML versions are picked up.
Moved macro handling NVML errors to the only file they are issued.
Made the requirement for including nvml.h in gpu_utils.cu explicit.
Refactored handling of clock support so that we don't have to compile
three different ways merely to detect syntax errors.
Fixes #1838
Change-Id: Ibb7a9f7cc80aa9e9476a455d0b6192451a038088
Szilard Pall [Wed, 21 Oct 2015 19:13:12 +0000 (21:13 +0200)]
Quiet FindNVML
Eliminates the note about unsuccessful NVML detection that appears
after the first cmake run.
Change-Id: I1c1cd979d51cfff18f36fe361574ad97056a225c
Teemu Murtola [Sun, 18 Oct 2015 03:13:57 +0000 (06:13 +0300)]
Use include_directories(SYSTEM ...) consistently
Apparently, at least some compilers treat -isystem differently from -I
in that no matter what the order on the command line is, -I always takes
precedence. This means that some of the
include_directories(BEFORE SYSTEM ...)
did not work correctly, and in particular GMX_EXTERNAL_BOOST=OFF was
broken. Likely also #1539 was (again) broken.
Make all includes that come from outside the source tree use SYSTEM, so
that the include directory for internal boost still takes precedence
over them.
Fixes #1844.
Change-Id: Ib536c24a0d13c6538f78daac145dc8d38135819d
Erik Lindahl [Thu, 22 Oct 2015 13:13:00 +0000 (15:13 +0200)]
Merge "Merge release-5-0 into release-5-1" into release-5-1
Mark Abraham [Sat, 17 Oct 2015 10:24:56 +0000 (12:24 +0200)]
Fix cycle subcounters
The MPI receive buffer has to be as long as the send buffer, but the
problem can only be seen if you compile with the subcounters on.
Refs #1821
Change-Id: I3326db7f0b07ee76a8f029ac58825ea4f3b0b401
Justin Lemkul [Thu, 15 Oct 2015 11:40:40 +0000 (07:40 -0400)]
Removed dihedrals from GLY .rtp entry.
This is the only FF file that uses these dihedrals for GLY,
which prevent the generation of a topology involving GLY-PRO
because of the assumption that +H exists. Removing all explicit
[dihedrals] to conform to the same format as all other AMBER FF.
Change-Id: Iccce7d7d8351390ebea717f161e17a4179e15077
Szilárd Páll [Tue, 29 Sep 2015 00:06:09 +0000 (02:06 +0200)]
Add CUDA nvcc >=7.0 support
With CUDA 7.x, there is a few % performance benefit to using sm_52
arch as target instead of JIT-ed compute_50, mostly relevant with
the newly released v7.5 (as v7.0 has other regressions which make it
slower).
This change adds a single new target architecture (5.2) and changes
the virtual architecture included in the binary from 5.0 to 5.2 with
new enough nvcc to make 5.1.x versions future-proof when new hardware is
released.
Change-Id: I062cc48a151da3ab15b0508f4ebd59d95880ae9a
Szilárd Páll [Mon, 28 Sep 2015 23:48:39 +0000 (01:48 +0200)]
Correct CUDA version comparisons
CMake's VERSION_LESS/GREATER operator does component-by-component
integer comparison and hence, the dummy CUDA version values with
".999"'s (used to work around the lack of <=/>= were)
resulted in incorrect conditionals.
As a result some binary code has not been generated. The conditional
has now been changed to avoid dummy version numbers.
Change-Id: Id7aad6b0c5eb4d98e37eb096b1f4dd5e02a07932
Berk Hess [Tue, 13 Oct 2015 13:54:58 +0000 (15:54 +0200)]
Fixed nbnxn_4xN performance regression
Commit
8e92fd67 changed the 2xNN kernel to use gmx_simd_blendnotzero_r
and the 4xN kernel to use gmx_simd_blendv_r. Making the 4xN kernel
consistent with the 2xNN kernel improves the performance with AVX2
with 4% and 3% for the RF and PME kernels, respectively.
Change-Id: Iac334865c2b2340493639300d07e7ab9c78e129f
Szilard Pall [Thu, 15 Oct 2015 00:53:36 +0000 (02:53 +0200)]
Fix reset error message
The '%' preceding the format specifier was missing.
Change-Id: I160b1036ba7daae72fe127f4644b9f4940effdc9
Mark Abraham [Wed, 14 Oct 2015 15:10:46 +0000 (17:10 +0200)]
Merge release-5-0 into release-5-1
Change-Id: I6cdeb2f67b4a0f6c84db9ca086b5600c47320cf0
Mark Abraham [Wed, 14 Oct 2015 15:06:18 +0000 (17:06 +0200)]
Version bumps after release
Change-Id: Ic5e45220d2b44bcf74e66a32990d3ff1eb39722c
Mark Abraham [Wed, 7 Oct 2015 16:00:27 +0000 (18:00 +0200)]
Version 5.0.7
Removed -dev tags from versions. Bumped regressiontest hash.
Change-Id: I48dc392775665ed43553e0c8c7b2da76d3224b2e
Teemu Murtola [Wed, 14 Oct 2015 03:58:56 +0000 (06:58 +0300)]
Make bash completions work with bash --posix
Replace dashes in generated function names with underscores.
Related to #1840.
Change-Id: I0c74ba16f552f55900f99f11aa01ae830350f93c
Mark Abraham [Tue, 13 Oct 2015 14:43:26 +0000 (16:43 +0200)]
Merge branch release-4-6 into release-5-0
Change-Id: I7c730d296a7ee100cc8dd697a53f6ce3d7068614
Michael Shirts [Sat, 23 May 2015 02:31:11 +0000 (22:31 -0400)]
Fix for lack of COM removal for md-vv
At some point, we seemed to have lost COM removal for md-vv! Currently, putting in into 4.6,
will need to be merged forward. Replaces https://gerrit.gromacs.org/#/c/4467/, which was
first checked into master, rather than 4.6.
Fixes #1651
Change-Id: I7776f4ad9b5b9458f294171f52b3581a04691250
Berk Hess [Fri, 11 Sep 2015 15:26:23 +0000 (17:26 +0200)]
Fix bugs with intermol interactions and DD
Fixed two array access issues with the combination of intermolecular
interactions with domain decomposition when special bonded
communication was used. This could not lead to silent errors.
Added intermolecular interactions to the DD maximum distance check.
Disabled (fatal error) the above combination with charge groups.
Also fixed longest 2-body interaction distance print in case the
longest distance is in an exclusion.
Fixes #1820
Change-Id: Ic48d313edbc9779219832a185a903627f39b3102
Mark Abraham [Wed, 7 Oct 2015 09:45:34 +0000 (11:45 +0200)]
Fixed FFTW detection status message location
Change-Id: If1814c3c59c0f93e01b3a91843ecd102103d938d
Mark Abraham [Mon, 5 Oct 2015 19:36:02 +0000 (21:36 +0200)]
Merge release-5-0 into release-5-1
Conflicts:
cmake/gmxManageFFTLibraries.cmake
Fixes from release-5-0 goes in only one branch of the refactoring in
release-5-1 that separate the own-fftw build from an installed-fftw
build.
docs/manual/monster.bib
Insertions in both branches, both retained
src/gromacs/gmxana/gmx_wham.cpp
Fixed formatting of copyrighted years.
src/programs/mdrun/mdrun.cpp
Relocation of please_cite() calls was adjacent to removal of bSepPot,
trivial resolution
Change-Id: I9d6116534775906d74ddbd45925176a21b5afcd9
Mark Abraham [Tue, 22 Sep 2015 14:46:08 +0000 (16:46 +0200)]
Fix FindFFTW behaviour
FFTW 3.3.5 with --enable-avx* will enable any useful 128-bit
SIMD flavours by default. (See Erik's
579cec9a6 in their repo.) Our
detection code will observe this, and will be silent.
With earlier FFTW, if we're doing a GROMACS AVX build, and we have
FFTW SIMD, and not SSE(2) SIMD, then we want to warn the user to
reconfigure FFTW to add SSE support. Made this behaviour correct, and
minimized the necessary infrastructure for it.
Added detection support for some other SIMD-support symbols that
are present in the FFTW repo for upcoming hardware.
Fixes #1809
Change-Id: If586250895664581316505a5595da7442e789f8d
Mark Abraham [Tue, 15 Sep 2015 10:01:41 +0000 (12:01 +0200)]
Fix mdrun -nb auto -rerun with GPU and energy groups
inputrec was being used after calloc, but before being read from the
.tpr file. This meant mdrun -nb auto -rerun behaved as if -nb gpu has
been used (gave a fatal error).
Moved the code that regulates whether GPUs are supported (e.g. with
Verlet+energy groups) into the new function
nbnxn_gpu_acceleration_supported(), so it can be used consistently
with other such checks. Split the old nbnxn_acceleration_supported()
into nbnxn_gpu_acceleration_supported() and nbnxn_simd_supported(),
which seems a bit simpler given that the old code was called twice,
with different constant values for bGPU.
Made the thread-MPI launch code aware of bUseGPU, so that we can call
nbnxn_gpu_acceleration_supported once and do all the things correctly.
The fatal error for mdrun -nb gpu -rerun with energy groups is now
issued by SIMMASTER in runner.cpp, rather than in md.cpp.
Despite appearances, this change doesn't alter much mdrun behaviour,
except as mentioned for -rerun, and that GPU detection is now run
for mdrun -rerun when we will not end up using those GPUs.
Fixes #1823
Change-Id: I324d23ce98b0041dad148db8eac744c5dd5f66fb
Teemu Murtola [Fri, 25 Sep 2015 09:39:57 +0000 (12:39 +0300)]
Fix -seltype option for C++ tools
Because of a misthought in the logic of how to check whether onlyAtoms()
was specified for all SelectionOptions, the -seltype option was never
enabled for any tool (since 5.0).
Change-Id: I365afdc53524f0a237654a603be1c051b8e55dc9
Carsten Kutzner [Mon, 28 Sep 2015 13:09:57 +0000 (15:09 +0200)]
Fixed a bug in computational electrophysiology with DD
With domain decomposition, the non-master nodes did not correctly
compute the center of "broken" water molecules chosen for position exchanges.
This would lead to a crash soon after such a water was exchanged with
an ion. The problem was in the init_swapcoords() routine, which passed
an empty box vector on the non-master nodes and therefore got the
wrong PBC information except on master.
Change-Id: I94715e0dfb58a206e27f45a6ab149c7b808d06c1
David van der Spoel [Fri, 18 Sep 2015 15:11:57 +0000 (17:11 +0200)]
Fixes bug in the computation of Coefficient of Thermal Expansion
Between release-4-6 and release-5 an bug was introduced calling the
routine analyse_ener with the wrong flag. The flag bFluct can be set
to subtract the average before computing the ACF (which is a remnant
from old code which is being fixed in patch
https://gerrit.gromacs.org/#/c/4310/).
As a result of the incorrect usage of this flag to analyse_ener the stored
energy would be modified yielding an incorrect
Coefficient of Thermal Expansion. (By passing the -nmol option which is needed
for fluctuation property calculations the wrong option would be activated).
Change-Id: I303206c3118c2d5bb499ba4c04a94fe9de2c7992
Mark Abraham [Sat, 26 Sep 2015 10:20:43 +0000 (12:20 +0200)]
Fix reaction-field warning message
The whole-function scope of err_buf combines with the inexpressive
macro CHECK to mean that we can give a warning using the error message
of the previous check.
Change-Id: Id9882994eee5ee5a0844f4adfb5d29a0042d51d5
Szilard Pall [Wed, 16 Sep 2015 13:50:51 +0000 (15:50 +0200)]
Fix broken OpenCL detection
The OpenCL device compatibility test broke in
c66e8fa for all platforms
other than OS X. This change makes the OpenCL code functional again.
Change-Id: Iebb015549e952c24ccb8c2118721a11064e036f2
Szilard Pall [Tue, 15 Sep 2015 20:03:04 +0000 (22:03 +0200)]
Fix OpenCL build
A spurious semicolon in CMake code broke the OpenCL build
which this changes fixes.
Fixes #1824
Change-Id: I38a7d343184aff61718be43e17f23bec3c1eee4d
Berk Hess [Mon, 14 Sep 2015 13:01:48 +0000 (15:01 +0200)]
Detect incorrect cycle counting
When threads are not pinned to cores, the wallcycle counting can get
messed up on machines where the cycle counters are not synchronized
between the cores. Since it's difficult to detect thread pinning on
all architectures and without pinning the counting can be correct on
synchronized machines, we try to detect incorrect counters. We only
detect negative cycle counts, but that should catch nearly all cases.
When we deteced an invalid count, we ignore the cycles counted and do
not print the cycle accounting table. Dynamic load balancing is never
disabled, because a few incorrect load measurements do not cause
problems here.
Fixes #1821
Change-Id: I076ad685a043f1f0b913a9b089ebea43a62534f5
Mark Abraham [Fri, 28 Aug 2015 19:05:34 +0000 (21:05 +0200)]
Add GROMACS 5 paper to paper lists
Also call to please_cite, and cite both recent papers
in the reference manual
Change-Id: I5e7a81690a1d0fbea0147d8a2a5f281f7b5d4aab
Béla Voß [Thu, 27 Aug 2015 11:34:16 +0000 (13:34 +0200)]
Avoid integer overflow in gmx_wham by using gmx_int64_t.
somce gmx_wham internally uses femtoseconds, a cast to int can lead to
overflows in microsecond timescale simulations.
Change-Id: Ib7589c3c1ce47b29b3ada458b85bf577b41996d1
Mark Abraham [Wed, 19 Aug 2015 14:05:54 +0000 (16:05 +0200)]
Harden FindSphinx.cmake
If execute_process failed somehow, then SPHINX_VERSION_OUTPUT_VARIABLE
could be empty. If so, we want the detection to work, and to report
that a valid Sphinx was not found. This changes makes sure the
string() command is valid CMake.
Change-Id: I0d6f483d15776402504c77689b5228b094dd605f
Michael Shirts [Tue, 18 Aug 2015 01:44:27 +0000 (19:44 -0600)]
Fix for expanded ensemble.
The frequency of evaluation of lambda-dependent free energies was
not being adjusted to short frequencies of expanded ensemble calculations; it was just
being set again to the frequency of calculating the energies in the dhdl file.
Not caught previously since nstdhdl and nstexpanded were the same in previous tests.
Change-Id: Ia4bca7d035fec0bf80131a14007442f1e38f60f1
Mark Abraham [Fri, 14 Aug 2015 13:14:19 +0000 (15:14 +0200)]
Bump patch version to prepare for 5.1.1
Change-Id: I1baa0f3adc26ed85b186086c7536c76c9b090b30
Mark Abraham [Thu, 13 Aug 2015 11:33:23 +0000 (13:33 +0200)]
Version 5.1
Removed "-rc1" tag per policy. Bumped regressiontest hash.
Documented when LIBRARY_SOVERSION_MAJOR should typically be increased.
Change-Id: I98dc8206669724702f391de29bf68ed240bb1b48