alexxy/gromacs.git
9 years agoMerge release-4-6 into release-5-0
Roland Schulz [Thu, 12 Feb 2015 10:10:31 +0000 (05:10 -0500)]
Merge release-4-6 into release-5-0

Conflicts:
src/gromacs/mdlib/pme.c (just copyright)

Change-Id: I419b260004806229c6eb9f993413b480041f20cc

9 years agoRe-fixed PME bug with high OpenMP thread count
Berk Hess [Fri, 6 Feb 2015 13:05:44 +0000 (14:05 +0100)]
Re-fixed PME bug with high OpenMP thread count

    PME energies and forces could be incorrect with combined MPI+OpenMP
    parallelization. This would, only, happen when
    pmegrids->nthread_comm[YY] >= 2, which can only occur with high OpenMP
    thread count with multiple prime factors that are large wrt the grid.
    It's unlikely that this issue affected production runs.
    This bug was fixed in 27189bba, but 6ba80a26 broke it again.

    Fixes #1572.

Change-Id: Ic01bed4193062f8ca885fcb6bf347f2ef0de909f

9 years agoCorrect CUDA kernel energy flag
Berk Hess [Mon, 2 Feb 2015 14:11:11 +0000 (15:11 +0100)]
Correct CUDA kernel energy flag

The CUDA kernels calculated energies based on the GMX_FORCE_VIRIAL
flag. This did not cause errors, since (currently) GMX_FORCE_ENERGY
is always set when the virial flag is set. But using the latter flag
gives a small performance improvement when using pressure coupling.

Change-Id: If874e651058dc06c464f0fa810b17ba83146c9a3

9 years agoAvoid near-silent generation of zero energies
Mark Abraham [Fri, 23 Jan 2015 14:28:01 +0000 (15:28 +0100)]
Avoid near-silent generation of zero energies

There is note printed about this case for Verlet+GPU+energy groups,
and this is OK for normal simulations because the decomposition of the
energy into groups is unimportant. However, a user doing such a rerun
is probably seeking the energy decomposition, and in that case getting
zeroes is unexpected behaviour.

Instead, default to not using GPUs with mdrun -rerun -nb auto and more
than one energy group. In that case with mdrun -rerun -nb gpu, give a
fatal error and suggest the probable solutions.

Change-Id: I3006ed3ded31620d4faf4fc4a24cc85e9322c5c2

9 years agoFix use of simd.h
Mark Abraham [Mon, 19 Jan 2015 10:55:35 +0000 (11:55 +0100)]
Fix use of simd.h

TPI correctness check was inactive.

Use of SIMD preprocessor symbols in forcerec.c was OK because it got
simd.h from nbnxn_simd.h, but also fixed the erroneous use of
transitive inclusion of simd.h just in case that helps someone.

Fixes #1673

Change-Id: Iaf42a4ec420139485de3e509662ca0892fa662c5

9 years agoUpdate FindCUDA work-around
Mark Abraham [Fri, 23 Jan 2015 12:33:48 +0000 (13:33 +0100)]
Update FindCUDA work-around

My patch for this issue is in the latest 3.1.1 release for
CMake after all.

Change-Id: I925f58b02b1f2056de84e53d37584051244e770e

9 years agoCorrected RDTSCP warning text
Berk Hess [Wed, 21 Jan 2015 11:33:40 +0000 (12:33 +0100)]
Corrected RDTSCP warning text

Change-Id: If66e2d3535df8bb96be29e628546ebb8706afd57

9 years agoFix BlueGene/Q build with recent CMake
Mark Abraham [Mon, 5 Jan 2015 08:24:06 +0000 (08:24 +0000)]
Fix BlueGene/Q build with recent CMake

Works around broken FindCUDA.cmake in CMake 3.0 and 3.1, when cross
compiling, when the (optional) CMAKE_SYSTEM_PROCESSOR is not set.

Change-Id: I130ac95a84d4a67a7dbf6164ea93c37cda61066a

9 years agoFix allocation issue with VV integrator
Berk Hess [Mon, 12 Jan 2015 14:24:35 +0000 (15:24 +0100)]
Fix allocation issue with VV integrator

Allocation of temp buffers for VV and VVAK now uses state->natoms
instead of top_global->natoms.
Fixes #1669.

Change-Id: I64947405c138f601db7daa4f9628a04cff9fa8bb

9 years agoFix and suppress warnings on BlueGene/Q
Mark Abraham [Tue, 9 Dec 2014 12:42:15 +0000 (13:42 +0100)]
Fix and suppress warnings on BlueGene/Q

Extended the solution of I7158e16557 to the Program() function.

Suppressed warning about memory limits during compilation

Change-Id: Ib48fd7614817b8729fce0b0add9b7d68ce5608ff

9 years agoHandle ivec* correctly in DD error message
Mark Abraham [Thu, 8 Jan 2015 18:37:46 +0000 (19:37 +0100)]
Handle ivec* correctly in DD error message

Fixes #1659

Change-Id: I2d0f666801c61fb1ecb56048cd8a776f42d272ee

9 years agoFixed pbc=xy + 2 walls + Verlet scheme
Berk Hess [Mon, 15 Dec 2014 19:31:44 +0000 (20:31 +0100)]
Fixed pbc=xy + 2 walls + Verlet scheme

Fixes #1660.

Change-Id: Id28f5d164c24d9bc6cb80faa8f4cba5e95262995

9 years agoFix bug FE + GPU + 2/3D domain decomposition
Berk Hess [Wed, 17 Dec 2014 10:26:21 +0000 (11:26 +0100)]
Fix bug FE + GPU + 2/3D domain decomposition

Fixes #1661

Change-Id: Ia84f6c1219a2052df0ed1c5c4d7f66c37ed7f67b

9 years agoFix CMP0054 cmake 3.1.0 warnings
Roland Schulz [Tue, 28 Oct 2014 21:49:08 +0000 (17:49 -0400)]
Fix CMP0054 cmake 3.1.0 warnings

Change-Id: I5d91289a543240fa6f493b7f7738522f3c268c07

9 years agoVersion bumps after new release
Mark Abraham [Wed, 1 Oct 2014 12:31:12 +0000 (14:31 +0200)]
Version bumps after new release

Numbers bumped, -dev tag replaced.

Change-Id: I59bbe346656f1892e154f899bac361fcfeea65a1

9 years agoVersion 5.0.4
Mark Abraham [Tue, 9 Dec 2014 10:42:34 +0000 (11:42 +0100)]
Version 5.0.4

Removed -dev tags from versions. Bumped regressiontest hash.

Change-Id: Idcb1c288b0119c17a9ad644179e96c4734a798f6

9 years agoMerge "Merge release-4-6 into release-5-0" into release-5-0
Mark Abraham [Mon, 15 Dec 2014 17:57:47 +0000 (18:57 +0100)]
Merge "Merge release-4-6 into release-5-0" into release-5-0

9 years agoMerge release-4-6 into release-5-0
Mark Abraham [Thu, 11 Dec 2014 11:22:00 +0000 (12:22 +0100)]
Merge release-4-6 into release-5-0

Change-Id: I952a9b8dd61c0eb7456c640997093a1a5fea8fc3

9 years agoAdded grompp error for pulling to negative distance
Berk Hess [Thu, 11 Dec 2014 10:13:34 +0000 (11:13 +0100)]
Added grompp error for pulling to negative distance

Change-Id: Ida5f449709c95e7c89cff32957b9e57bc9d68212

9 years agoFix nstep command line override print
Szilard Pall [Wed, 10 Dec 2014 16:49:07 +0000 (17:49 +0100)]
Fix nstep command line override print

The commit addresses two issues:
- printing negative simulation length with "-nsteps -1";
- eliminates rounding when converting a non-integer time-step value from
  fs to ps units.

Fixes #1633

Change-Id: If1aac7e0f4e8e37f3e9777fa4eaa79744f3ccd65

9 years agoFix recent bug with trilinic 1D DD
Berk Hess [Mon, 8 Dec 2014 21:18:35 +0000 (22:18 +0100)]
Fix recent bug with trilinic 1D DD

A recent bug-fix (c8d919a3) for triclinic 1D domain decompostion
introduced a bug for boxes with box[YY][XX]!=0.
Fixes #1656.
Refs #1631.

Change-Id: I06b9376212390b73e90a3ce9704dee2bad9693fb

9 years agoVersion bumps after new release
Mark Abraham [Wed, 1 Oct 2014 12:31:12 +0000 (14:31 +0200)]
Version bumps after new release

Numbers bumped, -dev tag replaced.

Change-Id: I823a0a79a805c67988a461d891771ff999c6548f

9 years agoVersion 5.0.3
Mark Abraham [Tue, 9 Dec 2014 10:42:34 +0000 (11:42 +0100)]
Version 5.0.3

Removed -dev tags from versions. Bumped regressiontest hash.

Change-Id: Ieb2588deeb5c866d621af7cbe7e5709ac6f53220

9 years agoMake tune_pme understand the "-nsteps" option. Fixes #1650
Carsten Kutzner [Wed, 3 Dec 2014 10:34:38 +0000 (11:34 +0100)]
Make tune_pme understand the "-nsteps" option. Fixes #1650

All command line arguments that tune_pme does not understand are passed over
to mdrun. For a quick sanity check the mdrun options are used together with the
additional option "-nsteps 1", which then appears twice on the command line.

The solution is to let tune_pme understand the "-nsteps" argument, so that it
only occurs on the mdrun command line at launch time. The option for that was
already there but before called "-simsteps".

Change-Id: I8362ced75e67b0e28b4a5e1bd427ae6ae4e0e758

9 years agoFixed pull coord init with rate!=0, t_start!=0
Berk Hess [Tue, 2 Dec 2014 10:14:22 +0000 (11:14 +0100)]
Fixed pull coord init with rate!=0, t_start!=0

When the start time of a simulation is non-zero a pull setup with
coordinates with rate!=0 and pull-start, grompp would generate
incorrect pull init reference values.
Also fixed the layout of the grompp pull coord information table.

Change-Id: I992a40b098853aba0922ec1d596430eb229d64a8

9 years agoFix group-scheme bug with changing LJ parameters in FE
Mark Abraham [Mon, 13 Oct 2014 10:12:40 +0000 (12:12 +0200)]
Fix group-scheme bug with changing LJ parameters in FE

We don't optimize for the case when we have only changed one of charge
or type, so the other vector must always be valid even when it is not
changing. The logic of calling ewald_LRcorrection didn't do this
correctly, perhaps because the construction logic in md2atoms was
unclear.

Changed name, origin and logic for bFreeEnergy to
bHaveChargeOrTypePerturbed to better reflect the correct usage and
meaning. Avoided testing any pointers for NULL - we should use
explicit control-flow constructs.

Fixes #1596

Change-Id: I61172681048075d3022bd6c4b781c6c9153eeadd

9 years agoAdded PBC note to comm-mode=angular warning
Berk Hess [Tue, 2 Dec 2014 09:41:21 +0000 (10:41 +0100)]
Added PBC note to comm-mode=angular warning

Change-Id: Id397d51c05512427414aa7decea55fed83ff42ac

9 years agoFixed a typo in the manual.
Carsten Kutzner [Mon, 8 Dec 2014 16:34:58 +0000 (17:34 +0100)]
Fixed a typo in the manual.

Using > in Latex text mode gave an upside-down question mark instead...
Also used math mode in expression before, which seems more appropriate.

Change-Id: Iefce4768545e899e922e4fa932c67d222927cefe

9 years agoClarified grompp pull error messages
Berk Hess [Tue, 2 Dec 2014 08:08:45 +0000 (09:08 +0100)]
Clarified grompp pull error messages

Change-Id: If0df3fcd0d034c4b4ced04eb32ed7bb74e596776

9 years agoAvoid race on dvdl with Verlet+OpenMP+LINCS+FE+VV
Berk Hess [Wed, 26 Nov 2014 20:17:12 +0000 (21:17 +0100)]
Avoid race on dvdl with Verlet+OpenMP+LINCS+FE+VV

Also restructured the dH/dlambda reduction in do_lincs (used for
coordinates and not affected by the race issue) to work similar
do the do_lincsp code and properly use thread parallelization.
Fixes #1647.

Change-Id: I4eeb131018abca88b3635932491d99a779e16037

9 years agoAdded warning for unnecessary soft-core
Berk Hess [Thu, 13 Nov 2014 11:30:33 +0000 (12:30 +0100)]
Added warning for unnecessary soft-core

The sc-coul mdp option is, presently, only active with lambda states.
grompp now issues a warning when using soft-core without Van der Waals
decoupling without lambda states.
Also fixed an incorrect twin-range grompp check with PME.

Refs #1421.

Change-Id: I0605fe0f735d69f96f478612a00434eccef6232f

9 years agoFixed typo in amber99sb-ildn force field
Christian Wennberg [Mon, 24 Nov 2014 13:55:47 +0000 (14:55 +0100)]
Fixed typo in amber99sb-ildn force field

Torsion calculations for N- and C-terminus ILE tries to find a non-existing atom type

Change-Id: Ibdc6ecc88e0c4da304b97f092d0a908451e12ac4

9 years agoRemove use of interaction_mask_indices on BG/Q
Mark Abraham [Wed, 12 Nov 2014 02:41:15 +0000 (02:41 +0000)]
Remove use of interaction_mask_indices on BG/Q

This field was degrading cache performance ~1% on x86. It probably
made little difference on BG/Q, because the extra integer operations
can use the second instruction-issue port, assuming the use of OpenMP
to use more than one hardware thread per core. Overall, this code is
about 1% faster on BG/Q.

Minor fix to the gmx_load_simd_4xn_interactions() function that looks
up the exclusion masks, so that new non-x86 platforms won't silently
fail for want of an implementation of this function.

Minor simplication to always pass simd_interaction_indices to
gmx_load_simd_4xn_interactions(), since it is only used on BG/Q and
then it is non-null.

Change-Id: I140a11607810e9cf08b702cae0b48426c3592fec

9 years agoMerge branch release-4-6 into release-5-0
Mark Abraham [Thu, 27 Nov 2014 17:04:46 +0000 (18:04 +0100)]
Merge branch release-4-6 into release-5-0

Conflicts:
src/gromacs/gmxpreprocess/readir.c
(added content at same point in both branches)

Change-Id: I9df7cef8c2e4920461fb3d84806c58cf07c645e2

9 years agoFix clang with boost 1.46.1 and 1.47
Roland Schulz [Wed, 26 Nov 2014 21:19:18 +0000 (16:19 -0500)]
Fix clang with boost 1.46.1 and 1.47

Change-Id: I53b9fcb1bcf553ea128f7edb2d15bec87fd4f9e9

9 years agoFix problem with mixed affinity mask on different nodes.
Ake Sandgren [Thu, 2 Oct 2014 15:29:46 +0000 (17:29 +0200)]
Fix problem with mixed affinity mask on different nodes.

If task distribution (with slurm for instance) causes both fully
allocated and not-fully allocated nodes to be assigned to the job then
there may be tasks with a all-cores affinity mask and tasks with a
not-all-cores affinity masks.

Fixes #1613

Change-Id: I71c0daa43a5dd42da57bfd09037806ce1d9334b5

9 years agoFixed triclinic 1xNx1 domain decomposition
Berk Hess [Fri, 24 Oct 2014 13:42:38 +0000 (15:42 +0200)]
Fixed triclinic 1xNx1 domain decomposition

With the Verlet scheme, 1D triclinic domain decomposition along
dimension y produces incorrect bounding boxes for the non-bonded grid.
This led to a lot of missing non-bonded interactions, which quickly
crashes any simulation affected by this.
Fixes #1631.

Change-Id: I9bd1fc9d983be839e0c9a8e62d47f6cf17684a03

9 years agoFixed twin-range + freeze + constraints
Berk Hess [Mon, 24 Nov 2014 14:36:13 +0000 (15:36 +0100)]
Fixed twin-range + freeze + constraints

With twin-range cut-offs, atoms which are both frozen and constrained
would experience very large or NaN forces, leading to constraint
warnings and errors.
Fixes #1639.

Change-Id: I1871a87054fec1149c9ed75872451df79a8ac2d2

9 years agoAvoid NaN in rlist buffer calculation
Berk Hess [Thu, 16 Oct 2014 12:03:49 +0000 (14:03 +0200)]
Avoid NaN in rlist buffer calculation

With constraints on large masses and very low tolerance, the Verlet
buffer calculation could produce 1/0. This could lead to a somewhat
too smaller buffer.
Also added a missing scaling factor to the contribution of the third
derivative of the potential. This issue only caused a minor
overestimate for systems with constraints and without electrostatics.

Change-Id: I97e9d428a83f1b4954012ebd39bc49d397574f8c

9 years agoWhen writing TNG the input must contain molecule data.
Magnus Lundborg [Fri, 24 Oct 2014 08:24:22 +0000 (10:24 +0200)]
When writing TNG the input must contain molecule data.

When using trjcat to write TNG the input must also be TNG since
no tpr file is used.

Fixes #1626

Change-Id: I060e0174f9a471e134a4a899f83afaf02f4fce00

9 years agoAdded warnings for ewald-geometry and surface-epsilon
David van der Spoel [Sun, 23 Nov 2014 11:01:02 +0000 (12:01 +0100)]
Added warnings for ewald-geometry and surface-epsilon

ewald-geometry and surface-epsilon require the system dipole,
which will be incorrect when charge groups with net charge cross pbc.
grompp now checks and warns for this.
Refs #1645.

Change-Id: I02e317cbddb47256f942312ec53c5bab2b13be2a

9 years agoCorrected parameter for sorting on search grid
Berk Hess [Fri, 31 Oct 2014 18:10:13 +0000 (19:10 +0100)]
Corrected parameter for sorting on search grid

The nbnxn grid search sorting range parameter used the whole box
height instead of the local DD cell height with domain decomposition
along z. This could not cause errors, but the search used O(N^2) time
with more than 4 domains along z, instead of O(N).

Change-Id: I324df6b15635a5ecff7c8bfeb124fdb933e5f845

9 years agoFix DD bonded interaction range print
Berk Hess [Fri, 17 Oct 2014 13:33:46 +0000 (15:33 +0200)]
Fix DD bonded interaction range print

A recent fix caused the DD setup printing of the maximum bonded
distance to instead print the max of the bonded and the list buffer
to the log file. This was a printing issue only.
Refs #1607.

Change-Id: I685e2e5e07f2f1a0a39c5eef4264a77ddfcecb31

9 years agoUpdated some .mdp file variables to use "-" instead of deprecated "_"
Carsten Kutzner [Wed, 5 Nov 2014 14:53:34 +0000 (15:53 +0100)]
Updated some .mdp file variables to use "-" instead of deprecated "_"

In the .mdp file, now a minus sign instead of an underline is
generally used. Some sections of the manual still listed .mdp
variable names in the old notation.

- three manual sections (pulling, enforced rotation and computational
  electrophysiology) now use "-" instead of "_" in .mdp file variable
  names
- updated output of rotation code to reflect this up-to-date notation
- no functional changes are in this patch

Change-Id: I7b00193d3e3d549ce8c9a728b307280c0bdd35ce

9 years agoRemoved spurious GLY dihedral in AMBER03.
Justin Lemkul [Wed, 29 Oct 2014 13:10:36 +0000 (09:10 -0400)]
Removed spurious GLY dihedral in AMBER03.

Fixes #1632

Change-Id: I7302e42558454d546e14d7784077fb72c0dbfad7

9 years agoFixed typo in cmake warning.
Viveca Lindahl [Fri, 31 Oct 2014 17:09:10 +0000 (18:09 +0100)]
Fixed typo in cmake warning.

Change-Id: Id096ed65567fa671dce40970948b6435d9c357a0

9 years agoBackport valgrind suppression
Roland Schulz [Sun, 9 Nov 2014 07:42:58 +0000 (02:42 -0500)]
Backport valgrind suppression

Was added to master by 106ca9e6 and is now also required by
Jenkins for 5.0. Unclear what triggered that it is required.

Change-Id: I272600716fc986fe77a03fb86da827ba40d17adf

9 years agoImprove analysis nbsearch grid mapping
Teemu Murtola [Sat, 23 Aug 2014 03:27:24 +0000 (06:27 +0300)]
Improve analysis nbsearch grid mapping

Now the analysis neighborhood search implements its own version of
put_atoms_in_triclinic_unitcell().  While computing the index of the
correct grid cell, it is relatively easy to produce also the coordinates
that lay within that cell instead of using a separate call.  This
provides two benefits:
 - It avoids rare rounding problems if put_atoms_in_triclinic_unitcell()
   would put the atom right at the edge of the box, but the mapping code
   would consider it outside the box, causing out-of-range grid cell
   index to be generated.
 - It allows to customize the grid mapping more freely (e.g., to create
   grids that are not periodic).

Backported from master with minor changes, fixes #1611.  Kept commit
message the same; the second point will be only relevant for master.

Change-Id: Ib7602fa49a1b8f7882a63843322786b3e51e8e32
(cherry-picked from b3e2e82 in master)

9 years agoAvoid common.h inclusion in CUDA code
Teemu Murtola [Tue, 28 Oct 2014 04:21:59 +0000 (06:21 +0200)]
Avoid common.h inclusion in CUDA code

This is solved nicer in master with I943f90f, but there is little value
in backporting that compared to the effort, since more or less all
changes from there would conflict.  This may fix compilation problems
with some nvcc/boost combinations.

Change-Id: I82a26c60d366bfe5fdbcfd8a17bffdb1139ce017

9 years agoRemoved f_novirsum reduction in Verlet scheme
Berk Hess [Wed, 15 Oct 2014 11:24:14 +0000 (13:24 +0200)]
Removed f_novirsum reduction in Verlet scheme

There is a reduction over MPI ranks (dd_move_f) for fr->f_novirsum
for the exclusion correction of PME, which should not contribute
to the virial. But with the Verlet scheme this is unnecessary,
since the exclusions fully are handled in the non-bonded kernels.

Change-Id: I65b3dc90cf01de7b33e955074dfa32bd1940f781

9 years agoFix order of ED/swap blocks during checkpoint reading.
Carsten Kutzner [Tue, 14 Oct 2014 08:56:14 +0000 (10:56 +0200)]
Fix order of ED/swap blocks during checkpoint reading.

For some reason the order of reading the swap state and the essential
dynamics (ED) state were mixed up in read_checkpoint(), which lead to
unreadable state files if both ED and swap functionality were used.
This fix changes the order of those blocks to be consistent with
write_checkpoint().

Change-Id: Ie234486b990861decef9e00fc5125f867001f814

9 years agoExtend gmock to turn off socket listener
Mark Abraham [Fri, 17 Oct 2014 15:50:12 +0000 (17:50 +0200)]
Extend gmock to turn off socket listener

On Linux, you'd generally expect this feature to work, but on Cray the
linker warns that the use of getaddrinfo() would require linking a
shared library at runtime. That never happens because we don't use the
socket listener feature, but we don't want people stressing over that
at build time.

Change-Id: I9c358a2923d7563809d471f2ea1767cf2e8bbe25

9 years agoMerge release-4-6 into release-5-0
Mark Abraham [Mon, 13 Oct 2014 10:02:59 +0000 (12:02 +0200)]
Merge release-4-6 into release-5-0

Change-Id: I08dc9d5e776480e7686a159cfcd981ba46c510ad

9 years agoFixes issue with vsiten and Verlet buffers
Berk Hess [Fri, 3 Oct 2014 12:00:38 +0000 (14:00 +0200)]
Fixes issue with vsiten and Verlet buffers

Commit 0336ab2d only fixed part of the vsiten issue in the Verlet
buffer calculation code. Parameters were read from incorrect memory
locations, which could lead to a segmentation fault or incorrect
masses for vsiten particles. It unlikely that this affected results.
Part of #1579.

Change-Id: I76cdb94e34194d2f6d49d98a49486ce1df76d91a

9 years agoFix trjconv -split not closing files
Mark Abraham [Mon, 6 Oct 2014 17:48:43 +0000 (19:48 +0200)]
Fix trjconv -split not closing files

With long trajectories, the number of file handles will run out.

Change-Id: I9f6e20ddb836250431460ff6ed918ec74f2699ee

9 years agoVersion bumps after new release
Mark Abraham [Wed, 1 Oct 2014 12:31:12 +0000 (14:31 +0200)]
Version bumps after new release

Numbers bumped, -dev tag replaced.

Change-Id: I9aa220cc837b126ad694786178901db336d7121d

9 years agoVersion 5.0.2
Mark Abraham [Wed, 1 Oct 2014 08:39:40 +0000 (10:39 +0200)]
Version 5.0.2

Removed -dev tags from versions. regressiontest repo has not changed
since 5.0.1, but somehow the hash differs from the one used then.

Change-Id: I0f632262e4dd11875479d4f6a0c932169a699eb9

9 years agoAllow gmx tune_pme to skip the check for command-line health
Carsten Kutzner [Tue, 30 Sep 2014 09:40:52 +0000 (11:40 +0200)]
Allow gmx tune_pme to skip the check for command-line health

Therefore, this patch adds the "-check" command line option, which is
TRUE by default, but can be switched to FALSE in problematic cases.
Documented its main use case in the error message that it would
circumvent.

Also corrected a few typos.

Fixes part of #1609

Change-Id: Id1cadd620438c36c123ff075c9a98ea7d1534d4d

9 years agoFix incorrect LJ cut-off with GPU + PME tuning
Szilard Pall [Fri, 26 Sep 2014 09:53:35 +0000 (11:53 +0200)]
Fix incorrect LJ cut-off with GPU + PME tuning

Due to the mismatch of the macro used in generating and implementing the
twin cut-off CUDA kernels (used with PP-PME load balancing), the VdW
cut-off check was not generated and the (larger) electrostatics cut-off
was enforced instead, causing incorrect results with PME tuning.

Fixes #1603

Change-Id: I43ae19968b30843cfe407e927a5cf0bd35c62881

9 years agoAvoid DLB with overloaded PME ranks
Berk Hess [Fri, 5 Sep 2014 08:29:04 +0000 (10:29 +0200)]
Avoid DLB with overloaded PME ranks

When separate PME ranks have more load than the PP ranks, DLB can
not improve improve performance. It will actually make it worse,
because the PME x/f redistribution time goes up. Now with -dlb=auto
DLB is not turned on in this situation.
Also DLB is not activated during PME tuning with GPUs and separate
PME nodes, since it then nearly always deteriorates the performance.

Change-Id: I1f5e649a9562fdca9ba538196f41a12feb0a4a24

9 years agoAdded GPU local wait to load balancing
Berk Hess [Thu, 11 Sep 2014 13:02:14 +0000 (15:02 +0200)]
Added GPU local wait to load balancing

The GPU local wait time was not included in the load imbalance timing.
This could lead to incorrect load imbalance reporting and dynamic
load balancing, especially with CUDA stream priorities.
Note that we can't accurately measure the GPU time, when it finishes
during dd_move_f.

Change-Id: If4bb0f867593450cc025c8593672b0569397b1d6

9 years agoAvoid using function calls in OpenMP directives
Erik Lindahl [Tue, 12 Aug 2014 12:15:30 +0000 (14:15 +0200)]
Avoid using function calls in OpenMP directives

The direct calls to gmx_omp_nthreads_get() that were
included in some OpenMP pragmas caused memory
corruption and later segfaults on PGI compilers. This
is likely a compiler bug, but we can work around it
by assigning the function return value to a variable
that we use in the pragma.

Such variables are unused when OpenMP is not in use, which might
offend some compiler some time, so adding a gmx_unused attribute is
useful. However, uncrustify needs to be taught about our custom
attributes, which is also done here.

Change-Id: I3b482bdc2401b40a043975ffd4a741f65efd0cfc

9 years agoDomain decomposition now checks the rlist buffer
Berk Hess [Mon, 29 Sep 2014 09:39:43 +0000 (11:39 +0200)]
Domain decomposition now checks the rlist buffer

When a large pair-list buffer, which will appear with large nstlist,
atoms are allowed to displace the buffer size, i.e. a lot, in nstlist
steps. The limit this puts on the DD cell size is now checked.
Also updated cg_move_error, which now no longer prints the old atom
coordinates with the Verlet scheme, where the "old" coordinates are
actually the new ones.
Fixes #1607.

Change-Id: I784afa5ee620b51f555f4d1107f38cbbae2c55d1

9 years agoClarify GCC+Win+AVX warning
Roland Schulz [Sat, 20 Sep 2014 16:30:33 +0000 (12:30 -0400)]
Clarify GCC+Win+AVX warning

Message was accidentally not printed for Cygwin.
Message was printed even for GCC version which are OK.

Change-Id: I4560908317919bc36f33f6e430e6b7a34853ae73

9 years agoSIMD acceleration for RB dihedrals
Berk Hess [Thu, 25 Sep 2014 18:35:55 +0000 (20:35 +0200)]
SIMD acceleration for RB dihedrals

RB dihedrals now use SIMD acceleration analogous to proper dihedrals
when no energy and virial is required. This also significantly
improves load balancing (issues) for systems with proper+RB dihedrals.
Refs #1598.

Change-Id: I07000125d19db45fc35e1a0c28149c8a19443680

9 years agoMerge "Merge release-4-6 into release-5-0" into release-5-0
Mark Abraham [Mon, 29 Sep 2014 15:31:09 +0000 (17:31 +0200)]
Merge "Merge release-4-6 into release-5-0" into release-5-0

9 years agoAvoid PME tuning decreasing rcoulomb
Berk Hess [Fri, 26 Sep 2014 18:47:47 +0000 (20:47 +0200)]
Avoid PME tuning decreasing rcoulomb

With mdrun input with the grid much finer than fourier-spacing,
PME tuning could reduce rcoulomb below the starting value.
Fixes #1606.

Change-Id: I3ae7fe38a4240251aadb96336199b306fc7dce40

9 years agoMerge release-4-6 into release-5-0
Roland Schulz [Mon, 29 Sep 2014 14:47:53 +0000 (10:47 -0400)]
Merge release-4-6 into release-5-0

Change-Id: Ie72eccf57febab7b7ac8092ce55988b9cb2737af

9 years agoFix calc_grid avoiding PME grid factor 84
Berk Hess [Fri, 26 Sep 2014 18:38:29 +0000 (20:38 +0200)]
Fix calc_grid avoiding PME grid factor 84

Due to an indexing issue, it was unlikely that calc_grid, and thus
grompp, would choose a PME grid of 84*2^n and instead use a factor 96.
For a cubic box, this could increase the FFT cost by a factor 1.5.
Fixes #1605.

Change-Id: I8d6a85a98267af053b66867722fc5626ef907964

9 years agoFix incorrect assertion statement
Szilárd Páll [Thu, 25 Sep 2014 22:49:12 +0000 (00:49 +0200)]
Fix incorrect assertion statement

Copy-paste bug that was totally harmless as we've always had more
electrostatics than VdW kernel types, but it did render the assertion
incorrect.

Change-Id: I996bef6342cbb9bb8ce8994f38cac61924f6af1f

9 years agoFixes potential bug in neighborsearching.
David van der Spoel [Mon, 22 Sep 2014 11:05:20 +0000 (13:05 +0200)]
Fixes potential bug in neighborsearching.

From put_in_list we first call new_i_nblist, then add some
j particles and then close_i_nblist

In new_i_nblist the number of i particles is typically
increased by one, that is nblist->nri is increased.

However, in case that there are no j particles, the nri
is not decreased again, which can lead to reading garbage
data from e.g. nblist->jjindex. In addition there is a
left-over variable (len) that computes the number of
j particles added, but this value is not used.

Change-Id: I38601a6865f6a4d879bec55246deded40943afb7

9 years agoFix message about incorrect usage of dihedral type 9
Roland Schulz [Mon, 22 Sep 2014 17:31:41 +0000 (13:31 -0400)]
Fix message about incorrect usage of dihedral type 9

The warning printed the wrong type number: 4 instead of 9. Also it
didn't clarify that 9 only combines consecutive lines.

Change-Id: Ie65a050c978f162acf9f9a2329dde286c068438c

9 years agoFix RelWithDebInfo name bugs, and use full optimization.
Erik Lindahl [Sat, 20 Sep 2014 12:12:02 +0000 (14:12 +0200)]
Fix RelWithDebInfo name bugs, and use full optimization.

Gromacs was previously using a different name (RelWithDebugInfo) in
a few places, which caused the build types not to match, and
flags did not propagate correctly. Second, we now add our own
optimization flags at the end of the flag variables, to make it more
likely they override the CMake default choices. Otherwise, the -O2
flag at the end of the default RelWithDebInfo flags might revert our flags.

Change-Id: I4b7e220fbb2d625416e939e71d44412601394c0f

9 years agoMerge branch release-4-6 into release-5-0
Mark Abraham [Thu, 18 Sep 2014 09:53:17 +0000 (11:53 +0200)]
Merge branch release-4-6 into release-5-0

Conflicts:
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_data_mgmt.cu

Change in release-4-6 was in a function already removed in
release-5-0, so omitted.

Change-Id: I58f745308357211d517ffdb58381ce5fb1a5dceb

9 years agoFix double linkage for tests
Roland Schulz [Tue, 16 Sep 2014 00:08:19 +0000 (20:08 -0400)]
Fix double linkage for tests

cmake automatically adds libraries required by a required library to the
exe linker flags. If the same dependent library is also added for the exe
and it is listed first for the exe, cmake links twice for static libs
(for a cyclic dependency it would be required and cmake can't know).
Under certain conditions (e.g. ICC 15 with static libraries and offload
enabled) this can cause linker errors. We don't have a cyclic dependency
and thus by listing libgromacs after testutils we avoid the potential
problematic double linking. Also fixes that TESTUTILS_LIBS contains
the transitive dependencies, because that is not necessary (they are anyhow
added automatically).

Change-Id: I0327b2dba0538a2c6652c484fd7be7ae4a6cfb5b

9 years agoAdd missing quotes
Roland Schulz [Fri, 5 Sep 2014 08:26:43 +0000 (04:26 -0400)]
Add missing quotes

Change-Id: Id7568da106b707365c0b30c58a4b7b321f9181f4

9 years agoFix shared libs for Mingw
Roland Schulz [Fri, 5 Sep 2014 08:28:07 +0000 (04:28 -0400)]
Fix shared libs for Mingw

Change-Id: Ib25e6b2a34080632e1d531da3194680cc8c6825b

9 years agoRemove no-inline-max-size and suppress remark
Roland Schulz [Wed, 17 Sep 2014 17:39:29 +0000 (13:39 -0400)]
Remove no-inline-max-size and suppress remark

To avoid the remark that inlining isn't possible I added the flag
in d28edf2a07dcf11. This causes slow compile and should be avoided.
Instead suppress the remark.

TODO (for later): Check whether the additional inlining can improve
permance and consider enable it for release build.

Change-Id: I5866fcc5865fb44ca3dca0cf217e0cab2afbea0c

9 years agoValgrind suppression for OS X 10.9
Roland Schulz [Wed, 17 Sep 2014 00:50:24 +0000 (20:50 -0400)]
Valgrind suppression for OS X 10.9

Change-Id: Ib8d0e6c151ed68a0e80d9d724e167e2838556b2c

9 years agoFix warnings for ICC 15
Roland Schulz [Wed, 10 Sep 2014 17:06:49 +0000 (13:06 -0400)]
Fix warnings for ICC 15

Also add comment decribing all suppressed warnings

Change-Id: Ib347a2ec1e4b890b8f115c56b1a982f9123a0adf

9 years agoRemove documentation references to optimize-fft
Mark Abraham [Thu, 11 Sep 2014 12:30:27 +0000 (14:30 +0200)]
Remove documentation references to optimize-fft

The functionality was removed before 5.0 was released

Change-Id: I97d55338f7026b0410c4bdec52a42ac8c24016de

9 years agoEnable static anon namespace workaround on pathscale
Erik Lindahl [Sun, 7 Sep 2014 18:29:44 +0000 (11:29 -0700)]
Enable static anon namespace workaround on pathscale

The pathscale compilers suffer from the same static
anon namespace bug as the intel ones. Since the bug
is no longer Intel-specific, the INTEL_ prefix in
the macro has been removed.

Change-Id: Id87c9386cb831ba43ae05b2006dcfd0f1bf06be8

9 years agoFix malformed CUDA version macro check
Szilárd Páll [Tue, 9 Sep 2014 21:35:26 +0000 (23:35 +0200)]
Fix malformed CUDA version macro check

The CUDA_VERSION macro check is incorrect in two places. The first is
harmless as it is related to legacy CUDA 3.2 version's reporting. The
second occurrence affects the check that enables stream priorities and
due to the incorrect check, with CUDA 5.5 priorities have not been used.

Fixes #1594

Change-Id: Icf781d41549c39b6b913c11bb11d4dc4e9f3be9c

9 years agoFixed DD state collection issue
Berk Hess [Tue, 9 Sep 2014 12:35:52 +0000 (14:35 +0200)]
Fixed DD state collection issue

Collecting the cg distribution state to the master (for output
of replica exchange) could go wrong when the DD was out of sync.
This code path was probably never executed.

Change-Id: I14b41c15ddc827a46f7c6448fb7bd90414f8e210

9 years agoCheck for implicit solvent + Verlet scheme
Berk Hess [Mon, 8 Sep 2014 07:36:04 +0000 (09:36 +0200)]
Check for implicit solvent + Verlet scheme

Fixed #1570

Change-Id: I8734c2dc99d3bc3e0a79ae043d86854446f3b495

9 years agoFix build for external boost 1.56.0
Roland Schulz [Fri, 5 Sep 2014 18:46:47 +0000 (14:46 -0400)]
Fix build for external boost 1.56.0

exception/detail/attribute_noreturn.hpp has been removed in 1.56. We
shouldn't have used a detail header in the first place. In master
we can use GMX_ATTRIBUTE_NORETURN but 5.0.x it is defined only
for code analysis not for compilers.

Change-Id: I6f26d6ddc62c73f583d324f7c794a499c274b394

9 years agoVersion bumps after new release
Mark Abraham [Fri, 5 Sep 2014 12:21:56 +0000 (14:21 +0200)]
Version bumps after new release

Numbers bumped, -dev tag replaced.

Change-Id: Ie5d579a360e935743e99577e0d01779569156893

9 years agoVersion 5.0.1
Mark Abraham [Fri, 5 Sep 2014 12:20:27 +0000 (14:20 +0200)]
Version 5.0.1

Bumped version numbers to remove -dev tags, bumped regressiontest
md5sum.

Change-Id: I1ec0a9b850a796d44e89025b742521ff48d8f482

9 years agoAdd Mingw warnings
Roland Schulz [Wed, 3 Sep 2014 21:48:23 +0000 (17:48 -0400)]
Add Mingw warnings

Change-Id: I8825ee1948fe03be751f09bc87db050f89fa49bd

9 years agoK-computer specific modifications
Erik Lindahl [Wed, 30 Jul 2014 13:06:50 +0000 (15:06 +0200)]
K-computer specific modifications

This commit implements most of the K-computer-
specific changes for Gromacs-5.0. The HPC-ACE
SIMD module has been added since we need the
exponentials for LJPME, and there are also some
fixes to the LJPME nonbonded accelerated group
kernels that prevented them from compiling.
The SIMD unit tests have been modified to avoid
making assumptions about the internal storage
being single or double, since HPC-ACE only
supports double. The toolchain files have
been updated and moved to the platform subdir,
and we now have a separate module to handle
Gromacs-specific flags and settings for K.

Change-Id: I5b832809b5dd52ef4b72f6cd41b1b3da1c036a57

9 years agocmake: missing quote
Christoph Junghans [Wed, 3 Sep 2014 23:15:12 +0000 (17:15 -0600)]
cmake: missing quote

Found on my old MacBook, where CMAKE_BUILD_TYPE is empty by default.

Change-Id: Icf63666f4b4c3f18214ba091819b0238d7f4a225

9 years agoFix MingW build
Roland Schulz [Mon, 1 Sep 2014 02:25:26 +0000 (22:25 -0400)]
Fix MingW build

Change-Id: Id6025838e274305266f0f90eda2ddbb48355d792

9 years agoFixed sc_power==48 crash in single precision
Erik Lindahl [Tue, 2 Sep 2014 09:01:20 +0000 (11:01 +0200)]
Fixed sc_power==48 crash in single precision

A few summation variables in the free energy kernel
need to be double to avoid overflows for 48th power
softcore interactions.

Fixes #1580.

Change-Id: I3263e9eb83515ebaf9f6c04fd0e57ae179933d4e

9 years agoFix mis-use of fabs in LAPACK
Mark Abraham [Wed, 20 Aug 2014 08:20:21 +0000 (10:20 +0200)]
Fix mis-use of fabs in LAPACK

clang-3.5 warns that fabs is not the right approach.

Change-Id: Ib7125fcad2f4fda99abf7b67f296f24d84cb34be
(cherry picked from commit d9c0e416e180cdd7e0a158d8d9b9e1fe59ef89b7)

9 years agoMore hacking to get the template to detect and build
Mark Abraham [Tue, 2 Sep 2014 15:40:56 +0000 (17:40 +0200)]
More hacking to get the template to detect and build

Change-Id: Ifa945dedfcd70a571171fb156d5eaad37e1d761c

9 years agoFix that TNG tests were not run
Roland Schulz [Thu, 28 Aug 2014 19:38:24 +0000 (15:38 -0400)]
Fix that TNG tests were not run

Missing config.h meant there were not run.

Also fix rerun test without zlib. The input is zlib compressed and thus should
only be tested if zlib support is available.

Change-Id: Ia80abcb7584f698512578652621cb16c16e4188a

9 years agoFixed preprocessor error for AVX_128_FMA simd
Erik Lindahl [Tue, 2 Sep 2014 16:58:12 +0000 (18:58 +0200)]
Fixed preprocessor error for AVX_128_FMA simd

Some endifs appear to have been left when we
removed the MSVC-specific macros.

Change-Id: If5dcb9269348f2a34f2c37efb0856925bb473940

9 years agoFix formatting of fatal errors in g_bar
Erik Lindahl [Mon, 28 Jul 2014 18:49:22 +0000 (20:49 +0200)]
Fix formatting of fatal errors in g_bar

The lambda value has changed from a floating
point number into a complicated vector, so we
now have a small routine that formats the contents
of this vector for the fatal error routines.

Fixes #1531.

Change-Id: I41f7d27c16a76879d6f1f7dc669655d755c1ce3d

9 years agoFix PRINT_ALLOC_KB output
Roland Schulz [Tue, 26 Aug 2014 19:10:10 +0000 (15:10 -0400)]
Fix PRINT_ALLOC_KB output

Only an issue when compiled with -DPRINT_ALLOC_KB

Change-Id: I0fed328ba8e8f943ece3b38f63ce5b6cf84f0f5e

9 years agoTNG Fix for GMX_DOUBLE builds and where ZLIB is not available.
Magnus Lundborg [Tue, 26 Aug 2014 12:02:06 +0000 (14:02 +0200)]
TNG Fix for GMX_DOUBLE builds and where ZLIB is not available.

Also includes a check that the user name can be retrieved
before trying to set it.

Change-Id: I51d4ab2e590752980953d1926d4bea56fe1beffa