#include <load_balance.hpp>
|
| LoadBalance () |
|
| LoadBalance (NLReader::NamelistReader &nlr, const DomainDecomposition< DeviceType > &pol_decomp, bool sync_planes=true) |
|
void | rebalance (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const VelocityGrid &vgrid, Plasma &plasma, DomainDecomposition< DeviceType > &pol_decomp, int istep, int gstep, ReweightOption reweight_option, WeightingAlgorithm weighting_algorithm=WeightingAlgorithm::Default) |
|
void | rebalance (DomainDecomposition< DeviceType > &pol_decomp, const View< double *, CLayout, HostType > &constraint, const std::vector< double > &timings, double &load_imbalance, View< double *, HostType > &model_belief) |
|
|
double | get_even_division (const View< double *, HostType > &input, int n) const |
|
bool | greedily_fill_partition (const View< double *, HostType > &weight, const View< double *, HostType > &constraint1, double target_weight_per_rank) |
|
double | get_largest_predicted_time (const View< int *, CLayout, HostType > &partition, const View< double *, HostType > &weight) const |
|
void | one_weight_balance (const View< double *, HostType > &weight, const View< double *, CLayout, HostType > constraint1) |
|
bool | recommend_proposed_partition () |
|
void | print_new_partition () |
|
void | update_model (const View< int *, CLayout, HostType > ¤t_partition) |
|
void | update_model (const View< int *, CLayout, HostType > ¤t_partition, const std::vector< double > &manual_times) |
|
void | initialize_model () |
|
bool | model_is_initialized () |
|
void | propose_new_partition (const Kokkos::View< double *, Kokkos::LayoutRight, HostType > &ptl_count, WeightingAlgorithm weighting_algorithm) |
|
void | set_new_partition (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const VelocityGrid &vgrid, Plasma &plasma, DomainDecomposition< DeviceType > &pol_decomp, WeightingAlgorithm weighting_algorithm) |
|
void | redistribute_load (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const VelocityGrid &vgrid, Plasma &plasma, DomainDecomposition< DeviceType > &pol_decomp, const View< int *, CLayout, HostType > &old_partition) |
|
bool | will_rebalance (ReweightOption reweight_option, WeightingAlgorithm weighting_algorithm, int istep, int gstep, double f0_cost) |
|
◆ ConstraintOption
◆ ReweightOption
Enumerator |
---|
Always | |
IfBetter | |
◆ WeightingAlgorithm
Enumerator |
---|
SingleRegionBalance | |
ParticleBalance | |
Fortran | |
Default | |
◆ LoadBalance() [1/2]
LoadBalance::LoadBalance |
( |
| ) |
|
|
inline |
◆ LoadBalance() [2/2]
◆ get_even_division()
double LoadBalance::get_even_division |
( |
const View< double *, HostType > & |
input, |
|
|
int |
n |
|
) |
| const |
|
inlineprivate |
◆ get_largest_predicted_time()
double LoadBalance::get_largest_predicted_time |
( |
const View< int *, CLayout, HostType > & |
partition, |
|
|
const View< double *, HostType > & |
weight |
|
) |
| const |
|
inlineprivate |
◆ greedily_fill_partition()
bool LoadBalance::greedily_fill_partition |
( |
const View< double *, HostType > & |
weight, |
|
|
const View< double *, HostType > & |
constraint1, |
|
|
double |
target_weight_per_rank |
|
) |
| |
|
inlineprivate |
◆ initialize_model()
void LoadBalance::initialize_model |
( |
| ) |
|
|
inlineprivate |
◆ model_is_initialized()
bool LoadBalance::model_is_initialized |
( |
| ) |
|
|
inlineprivate |
◆ one_weight_balance()
void LoadBalance::one_weight_balance |
( |
const View< double *, HostType > & |
weight, |
|
|
const View< double *, CLayout, HostType > |
constraint1 |
|
) |
| |
|
inlineprivate |
◆ print_new_partition()
void LoadBalance::print_new_partition |
( |
| ) |
|
|
inlineprivate |
◆ propose_new_partition()
void LoadBalance::propose_new_partition |
( |
const Kokkos::View< double *, Kokkos::LayoutRight, HostType > & |
ptl_count, |
|
|
WeightingAlgorithm |
weighting_algorithm |
|
) |
| |
|
inlineprivate |
◆ rebalance() [1/2]
◆ rebalance() [2/2]
◆ recommend_proposed_partition()
bool LoadBalance::recommend_proposed_partition |
( |
| ) |
|
|
inlineprivate |
◆ redistribute_load()
◆ set_new_partition()
◆ update_model() [1/2]
void LoadBalance::update_model |
( |
const View< int *, CLayout, HostType > & |
current_partition | ) |
|
|
inlineprivate |
◆ update_model() [2/2]
void LoadBalance::update_model |
( |
const View< int *, CLayout, HostType > & |
current_partition, |
|
|
const std::vector< double > & |
manual_times |
|
) |
| |
|
inlineprivate |
◆ will_rebalance()
◆ constraint1_max
double LoadBalance::constraint1_max |
|
private |
◆ default_weighting_algorithm
◆ proposed_partition
Which processors get which vertices.
◆ regions
◆ threshold_to_rebalance
double LoadBalance::threshold_to_rebalance |
|
private |
◆ verbose
bool LoadBalance::verbose |
|
private |
The documentation for this class was generated from the following file: