Visible to Intel only — GUID: GUID-B43DB1EB-3CD5-44CE-B8DE-379728E0C22D
Communicator
template<class… attr_val_type> comm_attr CCL_API create_comm_attr (attr_val_type &&… avs)
Creates an attribute object that may be used to control the create_communicator operation.
Returns
an attribute object
template<class… attr_val_type> comm_split_attr CCL_API create_comm_split_attr (attr_val_type &&… avs)
Creates an attribute object that may be used to control the split_communicator operation.
Returns
an attribute object
template<class DeviceType, class ContextType> vector_class< communicator > CCL_API create_communicators (int size, const vector_class< pair_class< int, DeviceType >> &devices, const ContextType &context, shared_ptr_class< kvs_interface > kvs, const comm_attr &attr=default_comm_attr)
Creates new communicators with user supplied size, ranks, local device-rank mapping and kvs.
Parameters
size – user-supplied total number of ranks
rank – user-supplied rank
device – local device
devices – user-supplied mapping of local ranks on devices
context – context containing the devices
kvs – key-value store for ranks wire-up
attr – optional communicator attributes
Returns
vector of communicators / communicator
template<class DeviceType, class ContextType> vector_class< communicator > CCL_API create_communicators (int size, const map_class< int, DeviceType > &devices, const ContextType &context, shared_ptr_class< kvs_interface > kvs, const comm_attr &attr=default_comm_attr)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<class DeviceType, class ContextType> communicator CCL_API create_communicator (int size, int rank, DeviceType &device, const ContextType &context, shared_ptr_class< kvs_interface > kvs, const comm_attr &attr=default_comm_attr)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
communicator CCL_API create_communicator (int size, int rank, shared_ptr_class< kvs_interface > kvs, const comm_attr &attr=default_comm_attr)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<class DeviceType, class ContextType> vector_class< communicator > CCL_API create_communicators (int size, const vector_class< DeviceType > &devices, const ContextType &context, shared_ptr_class< kvs_interface > kvs, const comm_attr &attr=default_comm_attr)
Creates a new communicators with user supplied size, local devices and kvs. Ranks will be assigned automatically.
Parameters
size – user-supplied total number of ranks
devices – user-supplied device objects for local ranks
context – context containing the devices
kvs – key-value store for ranks wire-up
attr – optional communicator attributes
Returns
vector of communicators / communicator
communicator CCL_API create_communicator (int size, shared_ptr_class< kvs_interface > kvs, const comm_attr &attr=default_comm_attr)
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
communicator CCL_API create_communicator (const comm_attr &attr=default_comm_attr)
Creates a new communicator with externally provided size, rank and kvs. Implementation is platform specific and non portable.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Parameters
attr – optional communicator attributes
Returns
communicator
vector_class< communicator > CCL_API split_communicators (const vector_class< pair_class< communicator, comm_split_attr >> &attrs)
Splits communicators according to attributes.
Parameters
attrs – split attributes for local communicators
Returns
vector of communicators