Attributes are local to the process and specific to the communicator to which they are attached.
Typically, such an attribute will be a pointer to a structure that contains further information, or a handle to an MPI object. Such attribute can be a handle to an MPI object, or just an integer-valued attribute. Attributes are scalar values, equal in size to, or larger than a C-language pointer. Attributes can always hold an MPI handle. The caching interface defined here represents that attributes be stored by MPI opaquely within a communicator.