12 #ifndef THRILL_NET_FLOW_CONTROL_MANAGER_HEADER 13 #define THRILL_NET_FLOW_CONTROL_MANAGER_HEADER 56 : barrier_(local_worker_count),
57 shmem_(local_worker_count) {
58 assert(shmem_.size() == local_worker_count);
59 channels_.reserve(local_worker_count);
60 for (
size_t i = 0; i < local_worker_count; i++) {
61 channels_.emplace_back(group, i, local_worker_count,
79 return channels_[thread_id];
88 #endif // !THRILL_NET_FLOW_CONTROL_MANAGER_HEADER
FlowControlChannelManager(Group &group, size_t local_worker_count)
Initializes a certain count of flow control channels.
std::atomic< size_t > generation_
Host-global generation counter.
std::vector< FlowControlChannel > & GetFlowControlChannels()
Gets all flow control channels for all threads.
FlowControlChannel & GetFlowControlChannel(size_t thread_id)
Gets the flow control channel for a certain thread.
Provides a blocking collection for communication.
std::vector< FlowControlChannel > channels_
The flow control channels associated with this node.
A network Group is a collection of enumerated communication links, which provides point-to-point comm...
common::ThreadBarrier barrier_
Implements a thread barrier using atomics and a spin lock that can be used to synchronize threads...
std::vector< LocalData > shmem_
Array of thread local data, one for each thread.