Attribute merging needs to remove duplicates to reduce global metadata
Created by: pnorbert
adios 1.x only outputs attributes from rank 0. adios 2.x merges attributes from all processors since it needs to support individual streams in independent IO. The attributes, per-definiton, must be the same value on each processor. Even if they differ, there is no way in the API to get different attribute values of different processes. There is no point having them N times in the global metadata.
Is the merging needed at all in independent IO? Otherwise, why not just skip this step, like in adios 1.x?
If we do merging, we need to store only a single attribute value for any attribute showing up in the list. This would be more robust, as it allows defining an attribute on some processor rank != 0. That would be lost in adios 1.x.