ADIOS2
ADIOS2 copied to clipboard
Reuse SST buffers
SST requires contiguous buffers for data marshalling (because of its interface to data plane), so it uses the MallocV subclass of BufferV. While MallocV tries to behave reasonably, it must start at some size and grow with demands. This makes it vulnerable to the large-copy-on-realloc pattern that can be detrimental to performance. One way to avoid that would be to re-use buffers, on the assumption that data quantities will be relatively stable and the buffer for a prior timestep might be reused with little waste, this should avoid that detrimental pattern. However, this might also increase memory pressure in a situation where the queue had been large and is now small and there are a number of buffers waiting for reuse.