XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
LoadRegion Class Reference

#include <load_balance.hpp>

Collaboration diagram for LoadRegion:
Collaboration graph
[legend]

Public Types

enum  UpdateMethod { UpdateMethod::NoHistory =0, UpdateMethod::ExpHistory }
 

Public Member Functions

void reset_timer ()
 
double get_estimated_time_per_vertex (int i) const
 
View< double *, HostTypeget_estimated_time_per_vertex () const
 
double get_prediction_undershoot () const
 
double get_observed_max_region_time () const
 
double get_observed_load_imbalance () const
 
bool get_model_is_initialized () const
 
double get_largest_predicted_time (const View< int *, CLayout, HostType > &proposed_partition) const
 
void initialize_model ()
 
void update_model (const View< int *, CLayout, HostType > &current_partition, double manual_time=-1.0)
 

Private Member Functions

void update_model_no_history (const View< int *, CLayout, HostType > &current_partition, const View< double *, HostType > &all_periods_timings)
 
void update_model_exp_history (const View< int *, CLayout, HostType > &current_partition, const View< double *, HostType > &all_periods_timings)
 
double get_time_since_previous_call ()
 
void touch_timers ()
 

Private Attributes

View< double *, HostTypeestimated_time_per_vertex
 
std::string region_name
 
std::vector< std::string > timer_names
 
bool verbose
 
bool model_is_initialized
 
bool model_has_history
 
double predicted_max_region_time
 
double observed_max_region_time
 
double observed_load_imbalance
 
double prediction_undershoot
 
int n_periods
 How many repeating periods there are; in tokamaks this is planes. More...
 
int n_unique_ranks
 How many ranks are in a 'period' (in tokamaks, in a plane) More...
 
int my_period_rank
 
double time_accumulated
 
UpdateMethod update_method
 

Member Enumeration Documentation

Enumerator
NoHistory 
ExpHistory 

Member Function Documentation

double LoadRegion::get_estimated_time_per_vertex ( int  i) const
inline
View<double*,HostType> LoadRegion::get_estimated_time_per_vertex ( ) const
inline
double LoadRegion::get_largest_predicted_time ( const View< int *, CLayout, HostType > &  proposed_partition) const
inline

Here is the caller graph for this function:

bool LoadRegion::get_model_is_initialized ( ) const
inline
double LoadRegion::get_observed_load_imbalance ( ) const
inline
double LoadRegion::get_observed_max_region_time ( ) const
inline
double LoadRegion::get_prediction_undershoot ( ) const
inline
double LoadRegion::get_time_since_previous_call ( )
inlineprivate

Here is the caller graph for this function:

void LoadRegion::initialize_model ( )
inline

Here is the call graph for this function:

void LoadRegion::reset_timer ( )
inline

Here is the call graph for this function:

Here is the caller graph for this function:

void LoadRegion::touch_timers ( )
inlineprivate

Here is the call graph for this function:

void LoadRegion::update_model ( const View< int *, CLayout, HostType > &  current_partition,
double  manual_time = -1.0 
)
inline

Here is the call graph for this function:

void LoadRegion::update_model_exp_history ( const View< int *, CLayout, HostType > &  current_partition,
const View< double *, HostType > &  all_periods_timings 
)
inlineprivate

Here is the caller graph for this function:

void LoadRegion::update_model_no_history ( const View< int *, CLayout, HostType > &  current_partition,
const View< double *, HostType > &  all_periods_timings 
)
inlineprivate

Here is the caller graph for this function:

Member Data Documentation

View<double*,HostType> LoadRegion::estimated_time_per_vertex
private
bool LoadRegion::model_has_history
private
bool LoadRegion::model_is_initialized
private
int LoadRegion::my_period_rank
private
int LoadRegion::n_periods
private

How many repeating periods there are; in tokamaks this is planes.

int LoadRegion::n_unique_ranks
private

How many ranks are in a 'period' (in tokamaks, in a plane)

double LoadRegion::observed_load_imbalance
private
double LoadRegion::observed_max_region_time
private
double LoadRegion::predicted_max_region_time
private
double LoadRegion::prediction_undershoot
private
std::string LoadRegion::region_name
private
double LoadRegion::time_accumulated
private
std::vector<std::string> LoadRegion::timer_names
private
UpdateMethod LoadRegion::update_method
private
bool LoadRegion::verbose
private

The documentation for this class was generated from the following file: