BioCMAMC-ST
impl_lb.hpp
1#ifndef __IMPL_LOAD_BALANCER_HPP__
2#define __IMPL_LOAD_BALANCER_HPP__
3
4#include <load_balancing/iload_balancer.hpp>
5#include <vector>
6
8{
9public:
10 explicit UniformLoadBalancer(uint32_t s);
11
12protected:
13 [[nodiscard]] double getRatio(uint64_t n, uint32_t rank) const noexcept final;
14};
15
17{
18public:
19 HostImportantLoadBalancer(uint32_t s, double _alpha);
20
21protected:
22 [[nodiscard]] double getRatio(uint64_t n, uint32_t rank) const noexcept final;
23
24private:
25 double alpha;
26};
27
29{
30public:
31 CustomLoadBalancer(uint32_t s, std::vector<double> _ratio);
32
33protected:
34 [[nodiscard]] double getRatio(uint64_t n, uint32_t rank) const noexcept final;
35
36private:
37 std::vector<double> ratios;
38};
39
40class BoundLoadBalancer final : public ILoadBalancer
41{
42public:
43 BoundLoadBalancer(uint32_t s, uint64_t _n_max);
44
45protected:
46 [[nodiscard]] double getRatio(uint64_t n, uint32_t rank) const noexcept final;
47
48private:
49 uint64_t n_max;
50};
51
52#endif
Definition impl_lb.hpp:41
double getRatio(uint64_t n, uint32_t rank) const noexcept final
Definition impl_lb.cpp:56
uint64_t n_max
Definition impl_lb.hpp:49
BoundLoadBalancer(uint32_t s, uint64_t _n_max)
Definition impl_lb.cpp:52
Definition impl_lb.hpp:29
CustomLoadBalancer(uint32_t s, std::vector< double > _ratio)
Definition impl_lb.cpp:38
std::vector< double > ratios
Definition impl_lb.hpp:37
double getRatio(uint64_t n, uint32_t rank) const noexcept final
Definition impl_lb.cpp:46
Definition impl_lb.hpp:17
double getRatio(uint64_t n, uint32_t rank) const noexcept final
Definition impl_lb.cpp:30
double alpha
Definition impl_lb.hpp:25
HostImportantLoadBalancer(uint32_t s, double _alpha)
Definition impl_lb.cpp:14
Definition iload_balancer.hpp:9
Definition impl_lb.hpp:8
UniformLoadBalancer(uint32_t s)
Definition impl_lb.cpp:6
double getRatio(uint64_t n, uint32_t rank) const noexcept final
Definition impl_lb.cpp:7