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
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
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
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
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
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
Mark Abraham [Tue, 11 Aug 2015 15:41:40 +0000 (17:41 +0200)]
Documentation fixes
Change-Id: Ifc9fbcc6ed8214154915120067c080826d108b3f
Szilard Pall [Wed, 22 Jul 2015 15:06:01 +0000 (17:06 +0200)]
add clFlush to kick of OpenCL work
The OpenCL standard specifies clFlush as a necessary step which issues
all enqueued commands ensuring CPU-GPU concurrency which otherwise is
not guaranteed. For this reason three flushes are added to dispatch work
in the queue.
Additionally the specs (v1.2 sec 5.13) state that a flush is required in
the inter-stream synchronization case.
In total four flushes are added, their overhead seems to be small.
Fixes #1784
Change-Id: Ia287998c2716e21708979d6e8d261f853e39d4ef
Mark Abraham [Wed, 12 Aug 2015 18:18:31 +0000 (20:18 +0200)]
Avoid FP exception with empty .mdp file
The default value for nsteps is zero, which used to lead to division
by zero in the above case. Refactored to avoid that.
Added a basic test case for grompp with an empty .mdp file (which
causes all default settings to be used). It is not optimal that the
mdrun integration test machinery is recycled for this, but
re-implementing or refactoring that to avoid the ugliness is not great
for a release branch.
Noted some TODOs. Renamed some variables for clarity.
Change-Id: I5c98c4f460f658277490b11f7fb5629d6fa84a08
Mark Abraham [Wed, 12 Aug 2015 20:31:08 +0000 (22:31 +0200)]
Add documentation for energygrps with GPUs
There's other documentation for this, but it's hard to cross-reference
everything.
Change-Id: I400f5cd8179428d0c0c340efd6314404e273be43
Mark Abraham [Tue, 11 Aug 2015 12:49:48 +0000 (14:49 +0200)]
Add to author lists
In particular, Jiri implemented much of the NVML support in GROMACS 5,
and has made other contributions to the GROMACS CUDA support over the
years.
Change-Id: I605eea83c50ccd2516779ecbe9397d00324dc40b
Erik Lindahl [Wed, 5 Aug 2015 15:48:44 +0000 (17:48 +0200)]
Prevent AMD OpenCL on OS X prior to 10.10.4
OS X release 10.9.x has been confirmed to produce invalid OpenCL
kernels for AMD (but correct for NVIDIA), and we have tested that
it is fixed in 10.10.4. The fix might actually have appeared
already in 10.10.3, but it's not worth tracking down the exact
point since 10.10.5 is already out.
This change will issue a CMake warning when compiling GROMACS
on earlier OS X releases, and at runtime we check the version
again and mark AMD GPUs as incompatible.
Also fixed docs about the length of time JIT compilation takes
on AMD.
Refs #1783
Change-Id: I0202faea60c39daae6621d2bb9ba828aab5532a0
Erik Lindahl [Fri, 7 Aug 2015 21:19:48 +0000 (23:19 +0200)]
Fix for processors being offline on Arm
Use the number of configured rather than online CPUs.
We will still get a warning about failures when trying to
pin to offline CPUs, which hurts performance slightly.
To fix this, we also check if there is a mismatch between
configured and online processors and warn the user that
they should force all their processors online
for better performance.
Change-Id: Iebdf0d5b820edcd7d06859a2b814adf06589ef96
Mark Abraham [Fri, 7 Aug 2015 22:21:16 +0000 (00:21 +0200)]
Abort if PME tuning is active and counters reset
Triggering counter reset (in various ways) could happen at a
non-nstlist step, which provokes a software inconsistency error in
5.1. This is reveals that all recent releases have permitted reset
while tuning was active, which is useless and potentially wrong.
Introduced a getter pme_loadbal_is_active, so that the fatal error
can be issued when conditions for counter reset are satisfied
and PME load balancing is still active.
Noted a TODO to have the load-balancing module use its own getter in
future; such a refactoring is probably fine, but worth avoiding in a
bugfix branch. Noted a TODO to make a counter-reset module, consider
alternative solutions to #1781, and other clean-up. Documented some
stuff.
Fixes #1781
Change-Id: I912e3da837bd32280f295ad98cc6b8170f4d2d81
James W. Barnett [Thu, 6 Aug 2015 16:20:21 +0000 (11:20 -0500)]
Fix some stuff in user and install guide
Some code was not showing up correctly. Remove prompt ('%') for some
code. Add gmx prefix where missing. Fixed some typos.
Change-Id: I7e2352e340547e4eb5794b8de323fce540709a89
Mark Abraham [Fri, 7 Aug 2015 21:40:18 +0000 (23:40 +0200)]
Require tune_pme to take -mdrun parameter
The transition away from many binaries in 5.0, and the removal of
symlinks in 5.1 mean there is even less chance that a sensible default
command line for calling mdrun can be provided. In general, mdrun
might be in either precision, with or without MPI, with or without
some custom suffix, inside the wrapper binary or from an mdrun-only
build, or from a custom directory.
Thus, the user is now required to say what command to call to run the
simulation they want to optimize. The MDRUN environment variable
remains as an undocumented and deprecated convenience feature for 5.1.
Fixes #1754
Change-Id: Ia2c278732ef2a79d7304967b230149eca4597888
Mark Abraham [Sat, 8 Aug 2015 13:56:03 +0000 (15:56 +0200)]
Merge branch release-5-0 into release-5-1
No conflicts
Change-Id: I551220310b529542d4cc3635815101cf53b325ec
James W. Barnett [Thu, 6 Aug 2015 13:44:24 +0000 (08:44 -0500)]
Fix some phrases that were not appearing in manual
Some phrases were in the index tag in the manual and not being
actually displayed. For example, "\index{potential function}s" only
displayed the letter "s". This should be "potential
functions\index{potential function}". This adds the appropriate
phrases next to the index tag.
Change-Id: Ia8e308f00a2542c1ee8c52fb017ba38926407876
Mark Abraham [Thu, 6 Aug 2015 21:12:39 +0000 (23:12 +0200)]
Fix docs of ftypes of dihedrals
The ftype indices for restricted dihedrals and combined
bending-torsion interactions were documented the wrong way around.
Fixes #1796
Change-Id: I5d3c52cc0f326c9e379efe50d0841940d51e4894
Mark Abraham [Wed, 5 Aug 2015 13:31:09 +0000 (15:31 +0200)]
Fix FindNVML.cmake
Change-Id: I4ed1a1ba20e74b9fb2bd0abbafc87caedc0c1c2f
Erik Lindahl [Wed, 5 Aug 2015 19:27:22 +0000 (21:27 +0200)]
Avoid using C++11-specific data() of std::vector
Replaced the data() method of std::vector with the
adress of the first element.
Change-Id: I9b6340b4823fb65c7f284a5e8c972caaa24930b1
Mark Abraham [Tue, 7 Jul 2015 12:11:11 +0000 (14:11 +0200)]
Fix thread-affinity checking
Merge commit
e3d1a22325113 introduced HAVE_SCHED_AFFINITY to master
after it was renamed from HAVE_SCHED_GETAFFINITY in
8b7f2d16750 in
release-5-0. But in master, another use of HAVE_SCHED_GETAFFINITY had
already occured in
15d71933ab5, and we didn't notice the problem in
the merge. Found while converting the source file to C++ in master,
when compilers complained about the unused symbols. More good reasons
for -Wundef, -Wunused, C++ conversions, and minimizing refactoring in
release branches.
Change-Id: Idbdf03de3da87bd76be29c8e1c96045531cd3c4e
Mark Abraham [Wed, 5 Aug 2015 15:29:13 +0000 (17:29 +0200)]
Fix em dash in new reference
This sometimes gets rendered badly
Change-Id: I2f6570cecb66777270c099b272b296c16800a43d
Erik Lindahl [Wed, 5 Aug 2015 15:57:08 +0000 (17:57 +0200)]
Fix PGI compiler flag
Work around compiler crashes by removing inter-procedural analysis.
Removed the extra -fastsse option which is identical to the -fast
option already added for release build types. Updated the warning
about not recommending PGI for now.
Change-Id: I0a43e19f3035a44330d8d32bb557639357100aa8
Mark Abraham [Tue, 4 Aug 2015 12:31:06 +0000 (14:31 +0200)]
Merge release-5-0 into release-5-1
Change-Id: If110ea29e1756bf6c0b18d3d3852ee4099641ea1
Mark Abraham [Mon, 3 Aug 2015 14:08:19 +0000 (16:08 +0200)]
Fix use of wrongly-named GCC minor-version variable
Change-Id: I878eec93f09077b7410c95183bb462c9ddf1c50b
Mark Abraham [Mon, 3 Aug 2015 13:56:40 +0000 (15:56 +0200)]
Fix possible linking of libxml2 to zlib
Not all linking scenarios can do the right thing with a naked -lz, so
we should use the zlib that was already found, which will be a full
path to the library.
Change-Id: Ie63278ea4db2c16bcf92aaa804530da7996ab6f1
Mark Abraham [Sun, 26 Jul 2015 11:51:46 +0000 (13:51 +0200)]
Merge branch release-5-0 into release-5-1
Conflicts:
CMakeLists.txt
Version numbering management code has moved to new home, nothing
needs to change here from the bumps to numbering in release-5-0
branch.
Change-Id: I8e45709c83d5c181900cca50b2ccba489630bbe7
Mark Abraham [Tue, 7 Jul 2015 12:45:06 +0000 (14:45 +0200)]
Stop mdrun printing potentially undefined value
Variable pv is only defined with conditions that need not be identical
with the presence of pressure coupling. Definitely compilers aren't
sure about it.
Change-Id: I80670e12b799c7f476caa565ef7ce9c3e38b0686
Mark Abraham [Sun, 26 Jul 2015 09:31:00 +0000 (11:31 +0200)]
Version bumps after new release
Change-Id: Icfa27c2f62f4eb83cc57102e8b9239e1d8891e38
Mark Abraham [Fri, 24 Jul 2015 13:57:42 +0000 (15:57 +0200)]
Version 5.0.6
Removed -dev tags from versions. Bumped regressiontest hash.
Change-Id: Ie86dd0d7a375c3fc86d59f59494c03bf350fde38
Teemu Murtola [Mon, 20 Jul 2015 04:15:46 +0000 (07:15 +0300)]
Merge release-5-0 into release-5-1
Conflicts:
src/gromacs/gmxpreprocess/grompp.c (adjacent changes, took both)
Additionally, added a declaration for a variable in sasa.cpp that had
been removed from enclosing scopes.
Change-Id: I15c10ef00416aa1f791a58b97d79669efab9a1c5
Mark Abraham [Mon, 13 Jul 2015 12:16:42 +0000 (14:16 +0200)]
Update advice about grompp -t
grompp -t state.cpt does not copy coupling-algorithm state from a .cpt
into the new .tpr, even though it can still do so from grompp -e.
Refs #1775
Change-Id: I8c4d68fc8d3750b79f30c0f77115c80e1f3cf9b3
Carlo Camilloni [Thu, 16 Jul 2015 14:16:47 +0000 (16:16 +0200)]
Fixed gmx sasa output residue numbering
gmx sasa with -or was writing the wrong residue numbers
Change-Id: I52b13f1eeec2ee028e5ec580139c0290df7b69c9
Erik Lindahl [Mon, 13 Jul 2015 10:10:29 +0000 (12:10 +0200)]
Fix incorrect warning about only using single core
check_resource_division_efficiency() warned that only
a single core could be used, even when one of
thread-MPI or OpenMP support was present, but not both.
Fixes #1776.
Change-Id: I6ac98954c2ef74ed860750627f7a1b9f0710561e
Carsten Kutzner [Wed, 15 Jul 2015 13:31:59 +0000 (15:31 +0200)]
Removed information about obsolete .edo file format
Essential dynamics output is written to edsam.xvg file since version 4.6
Change-Id: I0daca58fab1ebc953e8799de7e1667c4956b460e
James W. Barnett [Tue, 14 Jul 2015 23:24:40 +0000 (18:24 -0500)]
Implement zsh shell completions.
zsh completions when gmx prefix was used were not implemented. Use zsh builtin
bashcompinit to use the bash completions. Remove 'shopt -s extglob'
from gmx-completion.bash and place it in GMXRC.bash, since it is incompatible
with zsh. gmx-completion.bash and gmx-completion-gmx.bash can now be used for
completions in both bash and zsh.
Change-Id: Ib8f3cf0535d39e91a6b31933f41aa7548755b351
James W. Barnett [Mon, 13 Jul 2015 02:29:39 +0000 (21:29 -0500)]
Update example old mdp file in user guide.
Update mdp file in user guide. Remove obsolete parameters, and choose parameters
that will not give error and warning by default. Also remove the contents of
mdout.mdp, since the user can easily retrieve that with the given command, and
the file is now much larger. Add note on parameters being dependent on force
fields. Fixes #1774.
Change-Id: I2d5f1cfcf933275f95352c25891ee0792944212c