It may be time to add C++ templated APIs. These would support any trivially copyable type for the scalar operations and collectives.