alexxy/gromacs.git
8 years agoMerge branch release-5-0 into release-5-1
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

8 years agoChanged norm(...) > 0 condition to norm2(...) > 0 in init_ekindata()
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

8 years agoImproved/enlarged Fig. 4.9 in manual for better readability
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

8 years agoRe-generated eps for figure 4.8
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

8 years agoRe-enable LJ-PME + Lorentz-Berthelot on GPUs
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

8 years agoMerge branch release-5-0 into release-5-1
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

8 years agoFix incorrect cmap parsing
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

8 years agoFix incorrect cmap parsing
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

8 years agoBumped patch number to prepare for future 5.1.3 release
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

8 years agoVersion 5.1.2
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

8 years agoFix mdrun removing Verlet buffer with EM
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

8 years agoFix grompp not warning when .mdp values have wrong types
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

8 years agoFix SETTLE error handling
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

8 years agoMerge release-5-0 into release-5-1
Mark Abraham [Wed, 3 Feb 2016 12:06:25 +0000 (13:06 +0100)]
Merge release-5-0 into release-5-1

Change-Id: I12e0bd25b9b114d0977401e8032078d7cfdd78cf

8 years agoFix dEkin/dl handling with multiple ranks
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

8 years agoFix TPI ignoring PME mesh contributions.
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

8 years agoAdd check for double perturbation
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

8 years agoFix LINCS triangle constraint thread issue
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

8 years agoAdd OpenCL source file types to copyright checker
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

8 years agoUpdate pair-list buffer manual
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

8 years agoAdd suggestions for updating binutils
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

8 years agoFix default for GMX_USE_NVML
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

8 years agoFix duplicate LaTeX equation label
Mark Abraham [Sun, 24 Jan 2016 11:15:48 +0000 (12:15 +0100)]
Fix duplicate LaTeX equation label

Change-Id: Ib4e54923b2987d176c2299c0b4db58d13c7482fa

8 years agoFix exact continuation from non-energy steps
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

8 years agoFix energy file continuation with md-vv
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

8 years agoUpdate references to HTML and online documentation
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

8 years agoDocument limitations on 32-bit Linux
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

8 years agoFix energy average with continuation
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

8 years agoMade g_tune_pme work with -cpi -deffnm combination
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

8 years agoAdd missing initialization in nbnxn_pairlist_t
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

8 years agoAllowed NVML support to be toggled
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

8 years agoMerge branch release-5-0 into release-5-1
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

8 years agoFix PME load balancing skipping a setup
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

8 years agoAvoid more C++ bindings for MPI
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

8 years agoDocument how potential-switch works
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

8 years agoStop using UNDEFINED as name of a symbol
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

8 years agoBackport md-vv fixes
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

8 years agoCorrect vector check of gmx check
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

8 years agoFix some OpenCL issues
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

8 years agoImprove documentation on OpenCL issue with NVIDIA
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.

8 years agoBring performance estimation up to date
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

8 years agoRequire Nose-Hoover with MTTK
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

8 years agoAdResS: lost performance tweak
Christoph Junghans [Mon, 30 Nov 2015 18:06:05 +0000 (11:06 -0700)]
AdResS: lost performance tweak

Change-Id: I164bc6a60f62d117fef83844da74c3707455a980

8 years agoFix bug with pull group weights
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

8 years agoStop global communication depending on integrator
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

8 years agoMerge branch 'release-5-0' into release-5-1
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

8 years agoFix Trotter integration
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

8 years agoRotate Figure 8.2 in manual.
Elton Carvalho [Wed, 25 Nov 2015 21:35:47 +0000 (18:35 -0300)]
Rotate Figure 8.2 in manual.

Fixes #1865

Change-Id: I4bd006fa691481179d4eec4299d9cc5d18db6e3f

8 years agoFix error in multi-sim communication
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

8 years agoRemoved mdrun fatal_error with P3M-AD
Berk Hess [Thu, 19 Nov 2015 13:02:44 +0000 (14:02 +0100)]
Removed mdrun fatal_error with P3M-AD

Change-Id: I43f988622aa77f504e9d5ca0693f5758b0e59c5c

8 years agoFixed -npstring command line argument in gmx tune_pme
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

8 years agoFix walltime measurement with bgclang
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

8 years agoMerge release-5-0 into release-5-1
Mark Abraham [Wed, 11 Nov 2015 15:50:05 +0000 (16:50 +0100)]
Merge release-5-0 into release-5-1

Change-Id: I292a7eab69893472723338b44b4653f725f7294f

8 years agoBump patch version to prepare for 5.1.2
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

8 years agoCorrect LINCS dHdl contribution
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

8 years agoVersion 5.1.1
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

8 years agoTweak NVML-related messages
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

8 years agoFix intermolecular interactions with small mols
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

8 years agoFix signal type
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

8 years agoSuppress warnings when we have OpenCL 2.0 support
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

8 years agoAvoid using incompatible NVML version
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

8 years agoQuiet FindNVML
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

8 years agoUse include_directories(SYSTEM ...) consistently
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

8 years agoMerge "Merge release-5-0 into release-5-1" into release-5-1
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

8 years agoFix cycle subcounters
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

8 years agoRemoved dihedrals from GLY .rtp entry.
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

8 years agoAdd CUDA nvcc >=7.0 support
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

8 years agoCorrect CUDA version comparisons
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

8 years agoFixed nbnxn_4xN performance regression
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

8 years agoFix reset error message
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

8 years agoMerge release-5-0 into release-5-1
Mark Abraham [Wed, 14 Oct 2015 15:10:46 +0000 (17:10 +0200)]
Merge release-5-0 into release-5-1

Change-Id: I6cdeb2f67b4a0f6c84db9ca086b5600c47320cf0

8 years agoVersion bumps after release
Mark Abraham [Wed, 14 Oct 2015 15:06:18 +0000 (17:06 +0200)]
Version bumps after release

Change-Id: Ic5e45220d2b44bcf74e66a32990d3ff1eb39722c

8 years agoVersion 5.0.7
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

8 years agoMake bash completions work with bash --posix
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

8 years agoMerge branch release-4-6 into release-5-0
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

8 years agoFix for lack of COM removal for md-vv
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

8 years agoFix bugs with intermol interactions and DD
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

8 years agoFixed FFTW detection status message location
Mark Abraham [Wed, 7 Oct 2015 09:45:34 +0000 (11:45 +0200)]
Fixed FFTW detection status message location

Change-Id: If1814c3c59c0f93e01b3a91843ecd102103d938d

8 years agoMerge release-5-0 into release-5-1
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

8 years agoFix FindFFTW behaviour
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

8 years agoFix mdrun -nb auto -rerun with GPU and energy groups
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

8 years agoFix -seltype option for C++ tools
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

8 years agoFixed a bug in computational electrophysiology with DD
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

8 years agoFixes bug in the computation of Coefficient of Thermal Expansion
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

8 years agoFix reaction-field warning message
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

8 years agoFix broken OpenCL detection
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

8 years agoFix OpenCL build
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

8 years agoDetect incorrect cycle counting
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

8 years agoAdd GROMACS 5 paper to paper lists
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

8 years agoAvoid integer overflow in gmx_wham by using gmx_int64_t.
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

8 years agoHarden FindSphinx.cmake
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

8 years agoFix for expanded ensemble.
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

8 years agoBump patch version to prepare for 5.1.1
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

8 years agoVersion 5.1
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

8 years agoMake mdrun -nt work again
Berk Hess [Wed, 12 Aug 2015 12:23:37 +0000 (14:23 +0200)]
Make mdrun -nt work again

Moved several thread count checks and assignments to a new
check_and_update_hw_opt_3 to clarify the options processing.
Also reorganized the PME thread count checks to avoid unclear
error messages for corner cases.

Renamed bOMP to bHasOmpSupport for clarity.

Converted assert calls to GMX_RELEASE_ASSERT (and added new ones).

Fixes #1803.

Change-Id: I35005d60d4981fa7c223449aaa53b663d4d13e1d

8 years agoAvoid segmentation fault in gmx chi.
Justin Lemkul [Fri, 14 Aug 2015 00:28:21 +0000 (20:28 -0400)]
Avoid segmentation fault in gmx chi.

If a system containing a custom residue is being analyzed, gmx chi
would seg fault if that residue was not in residuetypes.dat. This
can occur, for instance, when the topology is created in some
directory and analysis in another, or if the analysis is done on
a different machine.

Fixes #1802

Change-Id: I85df855381c8e233020fd1e1f73165d4e1215ab9

8 years agoMake it easier to find selection help
Mark Abraham [Thu, 13 Aug 2015 12:10:33 +0000 (14:10 +0200)]
Make it easier to find selection help

Now the command-line reference part of the user guide has a TOC entry
that has the magic work "selection" in it.

Fixes #1805

Change-Id: Ib99840ab1f3fd72a52f28ffa1e06ee1242fa4310

8 years agoMake it easier to find selection help
Mark Abraham [Thu, 13 Aug 2015 11:59:58 +0000 (13:59 +0200)]
Make it easier to find selection help

Fixes #1805

Change-Id: Ie09baa75601f6ba3e8e514f78e3bae34e7327f86

8 years agoRe-enable multi-GPU support in OpenCL for thread MPI
Mark Abraham [Wed, 12 Aug 2015 12:50:17 +0000 (14:50 +0200)]
Re-enable multi-GPU support in OpenCL for thread MPI

There was no known problem with thread MPI when I disabled it. Real
MPI segfaults at context creation time with the AMD runtime and more
than one rank on a node. Made this possible, and updated docs.

Also updated some other docs and OpenCL TODOs.

Change-Id: I32a4eb5e02176999587feff7a2754f40029adaa8

8 years agoDocumentation fixes
Mark Abraham [Tue, 11 Aug 2015 15:41:40 +0000 (17:41 +0200)]
Documentation fixes

Change-Id: Ifc9fbcc6ed8214154915120067c080826d108b3f