Visible to Intel only — GUID: GUID-364A0BE9-6040-4BE5-8A62-021D8262D478
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