Task #1876
Reorganize vector input passed to core MD routines
Description
The core MD routines need to be fast and many are currently being converted to use SIMD intrinsics. This means that the inputs (x, v, f, ?) need to be SIMD aligned, sometimes padded at the end. A peculiar, currently relevant, issue is that we need one element extra for unaligned 4-wide SIMD loads (which is not the same as padded up to a multiple of the SIMD width!), see:
https://gerrit.gromacs.org/#/c/5445/
To ensure these requirements, we need ways to check that the input to core MD routines have alignment and paddings. This probably means we can't pass plain rvecs to thing like do_force() or constrain(). I guess the proper way is to define an MD rvec object with its own allocator.
History
#1 Updated by Erik Lindahl about 5 years ago
This problem should already be solved: Use STL containers with the AlignedAllocator we already have in the code.
#2 Updated by Mark Abraham almost 5 years ago
- Target version changed from 2016 to future