Use rvec4 for listed force buffer
commit8891ca4d213c6d72d9e7ece73b816529afa41e0b
authorBerk Hess <hess@kth.se>
Mon, 7 Dec 2015 20:25:05 +0000 (7 21:25 +0100)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Thu, 3 Mar 2016 20:29:32 +0000 (3 21:29 +0100)
tree604921d5db4481287b29c267baa8561c30294e61
parentd1a07e21a9e92e374ebd40da2c39ff223a9138e1
Use rvec4 for listed force buffer

To allow aligned 4-wide SIMD force reduction, changed the force
buffer passed to ifunc from rvec to rvec4.
Because the listed and normal force buffers now have a different
format, the listed force buffer reduction over threads also needs
to reduce the buffer of thread 0 and is thus now also used without
OpenMP threading. This extra cost is more than outweighed by the
faster listed force updates.
The current force updates in bonded.cpp will be replaced by SIMD
transposeScatter in a separate commit.

Change-Id: I9a9027d983efaf0e919634a55bf2c906aad1fa90
12 files changed:
src/gromacs/gmxana/gmx_disre.cpp
src/gromacs/listed-forces/bonded.cpp
src/gromacs/listed-forces/bonded.h
src/gromacs/listed-forces/disre.cpp
src/gromacs/listed-forces/listed-forces.cpp
src/gromacs/listed-forces/listed-internal.h
src/gromacs/listed-forces/manage-threading.cpp
src/gromacs/listed-forces/manage-threading.h
src/gromacs/listed-forces/orires.cpp
src/gromacs/listed-forces/pairs.cpp
src/gromacs/listed-forces/pairs.h
src/gromacs/topology/ifunc.h