LINCS thread tasks can now be independent
authorBerk Hess <hess@kth.se>
Thu, 19 Feb 2015 14:27:09 +0000 (15:27 +0100)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Sat, 16 May 2015 22:02:44 +0000 (00:02 +0200)
commitb23fad4be3871942cc5e4cf9a6dac311f51005bb
treeca1fe289ad51f86841980e4143970d7e4cb2572c
parentb0b95f77e10bc3ad5e3ae39a6418f8191fac6e8f
LINCS thread tasks can now be independent

With very locally coupled constraints, such as H-bonds only
constraints, the LINCS OpenMP tasks are now independent. This means
that no OpenMP barriers are required, which can significantly speed
up LINCS.
Additionally triangle constraints (which are present in e.g. OH groups
when using pdb2gmx -vsite) are now divided over thread tasks instead
of done by the master thread only. This slightly improves load
balancing and removes two thread barriers.

Change-Id: Ibbafd9c10f51d35a87e9784a0650d849c0d1c1e5
src/gromacs/mdlib/clincs.cpp