Skip to content

Make UG message buffer work with aligned types

We stumbled over a problem when trying to communicate dense, fixed-size Eigen matrices:

The UG message buffer calls the copy assignment operator on all communicated data to copy it into its internal void* buffer. This can fail for types that assume alignment during copy operations, as there are no alignment guarantees on the internal buffer.

The implementation only works for POD types anyway (as their raw memory representation is communicated via MPI), so we just do the same when writing to and reading from the buffer, which solves the problem.

Merge request reports