Communicators
Programming interface
All types and functions in this section are declared in the
oneapi::dal::spmd::preview
namespace and are available via inclusion of the
header file from specified backend.Communicator
A base implementation of the communicator concept.
The communicator type and all of its subtypes are reference-counted:
- The instance stores a pointer to the communicator implementation that holds all property values and data.
- The reference count indicates how many communicator objects refer to the same implementation.
- The communicator increments the reference count for it to be equal to the number of communicator objects sharing the same implementation.
- The communicator decrements the reference count when the communicator goes out of the scope. If the reference count is zero, the communicator frees its implementation.
USM and non-USM memory usage
There are two types of memory access:
- USM memory access (both USM and non-USM pointers can be used)
- Host, or non-USM, memory access (only non-USM pointers can be used)
Use one of the following tags to select a memory access type:
- device_memory_access::none
- Assumes only non-USM pointers are used for a collective operation.
- device_memory_access::usm
- Both USM and non-USM can be used. Pointer type is controlled by the use ofsycl::queueobject as a first parameter for collective operations. The use ofsycl::queueobject is obligatory for USM pointers.
Request
Request is an object to control asynchronous communication.
Reducion operations
The following reduction operations are supported:
- Max
- Min
- Sum