Intel® oneAPI Collective Communications Library (oneCCL) Developer Guide and Reference
A newer version of this document is available. Customers should click here to go to the newest version.
Visible to Intel only — GUID: GUID-06187979-EEBE-4244-8662-DFEC6964A48C
Point-To-Point Operations
Point-to-point operations enable direct communication between two specific entities, facilitating data exchange, synchronization, and coordination within a parallel computing environment.
The following point-to-point operations are available in oneCCL:
send
recv
send
send is a blocking point-to-point communication operation that transfers data from a designated memory buffer (buf) to a specific peer rank.
event CCL_API send(void *buf, size_t count, datatype dtype, int peer, const communicator &comm, const stream &stream, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event> &deps = {});
Parameters
buf - A buffer with dtype count elements that contains the data to be sent.
count - The number of dtype elements in a buf.
dtype- The datatype of elements in a buf.
peer - A destination rank.
comm - A communicator for which the operation is performed.
stream - A stream associated with the operation.
attr - Optional attributes to customize the operation.
deps - An optional vector of the events, on which the operation should depend.
Returns
ccl::event - An object to track the progress of the operation.
event CCL_API send(void* buf, size_t count, datatype dtype, int peer, const communicator &comm, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event> &deps = {});
Below you can find an overloaded member function provided for the convenience. It differs from the above function only in what argument(s) it accepts.
template <class BufferType, class = typename std::enable_if<is_native_type_supported<BufferType>(), event>::type> event CCL_API send(BufferType *buf, size_t count, int peer, const communicator &comm, const stream &stream, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event>& deps = {});
Below you can find an overloaded member function provided for the convenience. It differs from the above function only in what argument(s) it accepts.:
event CCL_API send(BufferType *buf, size_t count, int peer, const communicator &comm, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event> &deps = {});
Below you can find an overloaded member function provided for the convenience. It differs from the above function only in what argument(s) it accepts.
event CCL_API send(BufferObjectType &buf, size_t count, int peer, const communicator &comm, const stream &stream, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event> &deps = {});
Below you can find an overloaded member function provided for the convenience. It differs from the above function only in what argument(s) it accepts.
event CCL_API send(BufferObjectType &buf, size_t count, int peer, const communicator &comm, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event> &deps = {});
recv
recv is a blocking point-to-point communication operation that receives data from a peer rank in a memory buffer.
event CCL_API recv(void *buf, size_t count, datatype dtype, int peer, const communicator &comm, const stream &stream, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event> &deps = {});
Parameters
buf - A buffer with dtype count elements that contains where the data is received.
count - The number of dtype elements in a buf.
dtype- The datatype of elements in a buf.
peer - A source rank.
comm - A communicator for which the operation is performed.
dtream - A stream associated with the operation.
attr - Optional attributes to customize the operation.
deps - An optional vector of the events, on which the operation should depend.
Returns:
ccl::event - An object to track the progress of the operation.
event CCL_API recv(void *buf, size_t count, datatype dtype, int peer, const communicator &comm, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event>& deps = {});
Below you can find an overloaded member function provided for the convenience. It differs from the above function only in what argument(s) it accepts.
template <class BufferType, class = typename std::enable_if<is_native_type_supported<BufferType>(), event>::type> event CCL_API recv(BufferType *buf, size_t count, int peer, const communicator &comm, const stream &stream, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event> &deps = {});
Below you can find an overloaded member function provided for the convenience. It differs from the above function only in what argument(s) it accepts.
event CCL_API recv(BufferType *buf, size_t count, int peer, const communicator &comm, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event> &deps = {});
Below you can find an overloaded member function provided for the convenience. It differs from the above function only in what argument(s) it accepts.
event CCL_API recv(BufferObjectType &buf, size_t count, int peer, const communicator &comm, const stream &stream, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event> &deps = {});
Below you can find an overloaded member function provided for the convenience. It differs from the above function only in what argument(s) it accepts.
event CCL_API recv(BufferObjectType &buf, size_t count, int peer, const communicator &comm, const pt2pt_attr &attr = default_pt2pt_attr, const vector_class<event> &deps = {});