#include <load_balance.hpp>
|
| 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, 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, double f0_cost) |
|
Enumerator |
---|
Always |
|
IfBetter |
|
Enumerator |
---|
SingleRegionBalance |
|
ParticleBalance |
|
Fortran |
|
Default |
|
double LoadBalance::get_even_division |
( |
const View< double *, HostType > & |
input, |
|
|
int |
n |
|
) |
| const |
|
inlineprivate |
double LoadBalance::get_largest_predicted_time |
( |
const View< int *, CLayout, HostType > & |
partition, |
|
|
const View< double *, HostType > & |
weight |
|
) |
| const |
|
inlineprivate |
bool LoadBalance::greedily_fill_partition |
( |
const View< double *, HostType > & |
weight, |
|
|
const View< double *, HostType > & |
constraint1, |
|
|
double |
target_weight_per_rank |
|
) |
| |
|
inlineprivate |
void LoadBalance::initialize_model |
( |
| ) |
|
|
inlineprivate |
bool LoadBalance::model_is_initialized |
( |
| ) |
|
|
inlineprivate |
void LoadBalance::one_weight_balance |
( |
const View< double *, HostType > & |
weight, |
|
|
const View< double *, CLayout, HostType > |
constraint1 |
|
) |
| |
|
inlineprivate |
void LoadBalance::print_new_partition |
( |
| ) |
|
|
inlineprivate |
void LoadBalance::propose_new_partition |
( |
const Kokkos::View< double *, Kokkos::LayoutRight, HostType > & |
ptl_count, |
|
|
WeightingAlgorithm |
weighting_algorithm |
|
) |
| |
|
inlineprivate |
bool LoadBalance::recommend_proposed_partition |
( |
| ) |
|
|
inlineprivate |
void LoadBalance::update_model |
( |
const View< int *, CLayout, HostType > & |
current_partition | ) |
|
|
inlineprivate |
void LoadBalance::update_model |
( |
const View< int *, CLayout, HostType > & |
current_partition, |
|
|
const std::vector< double > & |
manual_times |
|
) |
| |
|
inlineprivate |
double LoadBalance::constraint1_max |
|
private |
Which processors get which vertices.
double LoadBalance::threshold_to_rebalance |
|
private |
bool LoadBalance::verbose |
|
private |
The documentation for this class was generated from the following file: