fpmas 1.6
static_load_balancing.h
Go to the documentation of this file.
1#ifndef FPMAS_STATIC_LB_H
2#define FPMAS_STATIC_LB_H
3
5
10namespace fpmas { namespace graph {
13
21 template<typename T>
23 private:
24 api::graph::LoadBalancing<T>& lb_algorithm;
25 public:
33 : lb_algorithm(lb_algorithm) {
34 }
39
50 api::graph::PartitionMode mode) override;
51 };
52
53 template<typename T>
55 return balance(nodes, api::graph::PARTITION);
56 }
57
58 template<typename T>
62 switch(mode) {
64 return lb_algorithm.balance(nodes, api::graph::PARTITION);
65 default:
66 return {};
67 }
68 }
69}}
70#endif
Definition: load_balancing.h:92
Definition: static_load_balancing.h:22
PartitionMap balance(api::graph::NodeMap< T > nodes) override
Definition: static_load_balancing.h:54
StaticLoadBalancing(api::graph::LoadBalancing< T > &lb_algorithm)
Definition: static_load_balancing.h:32
std::unordered_map< DistributedId, int, api::graph::IdHash< DistributedId > > PartitionMap
Definition: load_balancing.h:19
PartitionMode
Definition: load_balancing.h:30
@ PARTITION
Definition: load_balancing.h:35
typename graph::Graph< graph::DistributedNode< T >, graph::DistributedEdge< T > >::NodeMap NodeMap
Definition: load_balancing.h:25
Definition: fpmas.cpp:3