Implement PaddedVector
authorMark Abraham <mark.j.abraham@gmail.com>
Mon, 17 Sep 2018 14:17:50 +0000 (16:17 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Mon, 8 Oct 2018 15:51:53 +0000 (17:51 +0200)
commit3043cd778ece7dc6425b0bfbb9902c45ab739679
treeb4990a124f97523e2533bfdd5f6ce6e794802bc9
parentc2ef7de5fafde4326ffef860210e7d7e61ff9308
Implement PaddedVector

Implements a vector-like container that maintains padding such that
SIMD memory operations will always use initialized memory. All use of
the padded form data takes place via an ArrayRef, so that this is
explicit at the point of creation of the view. The PaddedArrayRef view
creates some safety through strong typing, also.

Increased the timeout for TSAN tests, which now take longer. Since
there are now two special case configurations for testing where we
permit a longer timeout, simplified the way we implement the increase
for the OpenCL case.

Fixes #2642

Change-Id: Ibcafe161689f4a02f7aa6fd0410edec47300264e
55 files changed:
src/gromacs/applied-forces/tests/electricfield.cpp
src/gromacs/domdec/collect.cpp
src/gromacs/domdec/distribute.cpp
src/gromacs/domdec/distribute.h
src/gromacs/domdec/domdec_topology.cpp
src/gromacs/domdec/partition.cpp
src/gromacs/domdec/partition.h
src/gromacs/domdec/redistribute.cpp
src/gromacs/domdec/redistribute.h
src/gromacs/domdec/utility.cpp
src/gromacs/domdec/utility.h
src/gromacs/essentialdynamics/edsam.cpp
src/gromacs/ewald/pme-gpu-internal.cpp
src/gromacs/ewald/pme-gpu-types-host.h
src/gromacs/ewald/pme-only.cpp
src/gromacs/fileio/checkpoint.cpp
src/gromacs/fileio/tpxio.cpp
src/gromacs/gmxana/gmx_pme_error.cpp
src/gromacs/gmxpreprocess/grompp.cpp
src/gromacs/gpu_utils/hostallocator.h
src/gromacs/gpu_utils/tests/hostallocator.cpp
src/gromacs/imd/imd.cpp
src/gromacs/listed-forces/orires.cpp
src/gromacs/math/paddedvector.h
src/gromacs/math/tests/CMakeLists.txt
src/gromacs/math/tests/paddedvector.cpp [new file with mode: 0644]
src/gromacs/math/tests/testarrayrefs.h [new file with mode: 0644]
src/gromacs/mdlib/broadcaststructs.cpp
src/gromacs/mdlib/broadcaststructs.h
src/gromacs/mdlib/coupling.cpp
src/gromacs/mdlib/md_support.cpp
src/gromacs/mdlib/mdatoms.cpp
src/gromacs/mdlib/mdoutf.cpp
src/gromacs/mdlib/membed.cpp
src/gromacs/mdlib/shellfc.cpp
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdlib/trajectory_writing.cpp
src/gromacs/mdlib/update.cpp
src/gromacs/mdlib/update.h
src/gromacs/mdrun/md.cpp
src/gromacs/mdrun/minimize.cpp
src/gromacs/mdrun/replicaexchange.cpp
src/gromacs/mdrun/rerun.cpp
src/gromacs/mdrun/runner.cpp
src/gromacs/mdrun/tpi.cpp
src/gromacs/mdtypes/forcerec.h
src/gromacs/mdtypes/state.cpp
src/gromacs/mdtypes/state.h
src/gromacs/pulling/pull_rotation.cpp
src/gromacs/swap/swapcoords.cpp
src/gromacs/tools/convert_tpr.cpp
src/gromacs/tools/dump.cpp
src/gromacs/utility/real.h
src/programs/mdrun/tests/CMakeLists.txt
src/testutils/TestMacros.cmake