Communication Spaces ==================== A Communication Space is the underlying message passing mechanism that sampik uses to perform communications, e.g. MPI or NCCL. Communication Spaces are used to specialize a ``sampik::Handle`` for a given backend. Handles wrap a backend's "communicator" objects and provide generic interfaces for retrieving information such as the size or rank of the underlying communicator. ``sampik::MPI`` --------------- ``sampik::MPI`` is a type of that "implements" the ``CommunicationSpace`` concept, representing communications that use MPI. ``sampik::NCCL`` ---------------- ``sampik::NCCL`` is a type of that "implements" the ``CommunicationSpace`` concept, representing communications that use NCCL.