Chombo + EB  3.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Histogram Class Reference

#include <sort_hist.H>

Public Member Functions

 Histogram (SortComm *env, key_type min, key_type max)
 
void set_limits (key_type min, key_type max)
 
int * mws_sdispl (key_type *, int nloc, MPI_Comm c, float margin)
 

Private Member Functions

splittermws_private (key_type *, int, MPI_Comm)
 
void Init (MPI_Comm a_comm, const int a_nloc, float)
 
void RefineProbes (std::vector< index_type > &)
 
key_typeget_splitter_guesses (int *ptr_num_guesses, std::vector< splitter * > active_splitters)
 

Private Attributes

key_type m_min_key
 
key_type m_max_key
 
const int m_num_pes
 
const int m_my_pe
 
int m_num_steps
 
int m_ncalls
 
int m_num_achv
 
int m_probe_size
 
int m_probe_size_max
 
int m_margin_error
 
splitterm_splitters
 
index_type m_num_total_keys
 
key_typem_last_probe
 

Constructor & Destructor Documentation

◆ Histogram()

Histogram::Histogram ( SortComm *  env,
key_type  min,
key_type  max 
)

Member Function Documentation

◆ set_limits()

void Histogram::set_limits ( key_type  min,
key_type  max 
)

References m_max_key, m_min_key, max(), and min().

◆ mws_sdispl()

int * Histogram::mws_sdispl ( key_type a_keys,
int  nloc,
MPI_Comm  c,
float  margin 
)

References Init(), m_num_pes, and mws_private().

◆ mws_private()

splitter * Histogram::mws_private ( key_type a_keys,
int  a_nlocal,
MPI_Comm  a_comm 
)
private

◆ Init()

void Histogram::Init ( MPI_Comm  a_comm,
const int  a_nloc,
float  a_margin 
)
private

◆ RefineProbes()

void Histogram::RefineProbes ( std::vector< index_type > &  histogram)
private

if first step, initialize total length and splitter goals

logic for determining which splitters have been achieved and bounding the rest by the closest counts and splitter-guesses this code needs at least some comments or something

send the resolved ranges

References splitter::achieved, splitter::broadcasted, resolved_range::chare_dest, get_splitter_guesses(), splitter::goal, resolved_range::lowerb, splitter::lowerb_count, splitter::lowerb_key, m_last_probe, m_margin_error, m_max_key, m_min_key, m_num_achv, m_num_pes, m_num_steps, m_num_total_keys, m_probe_size, m_splitters, probe::num_keys, probe::num_ranges, probe::send_info, probe::splitter_guesses, resolved_range::total, resolved_range::upperb, splitter::upperb_count, and splitter::upperb_key.

Referenced by mws_private().

◆ get_splitter_guesses()

key_type * Histogram::get_splitter_guesses ( int *  ptr_num_guesses,
std::vector< splitter * >  active_splitters 
)
private

figure out how much oversplitting we can do

define a new probe

Create guesses out of unresolved splitters

we first figure out how many guesses to place in the range, now we place them

References m_probe_size, m_probe_size_max, and min().

Referenced by RefineProbes().

Member Data Documentation

◆ m_min_key

key_type Histogram::m_min_key
private

Referenced by Init(), RefineProbes(), and set_limits().

◆ m_max_key

key_type Histogram::m_max_key
private

◆ m_num_pes

const int Histogram::m_num_pes
private

◆ m_my_pe

const int Histogram::m_my_pe
private

Referenced by mws_private().

◆ m_num_steps

int Histogram::m_num_steps
private

Referenced by Init(), mws_private(), and RefineProbes().

◆ m_ncalls

int Histogram::m_ncalls
private

Referenced by Init().

◆ m_num_achv

int Histogram::m_num_achv
private

Referenced by Init(), mws_private(), and RefineProbes().

◆ m_probe_size

int Histogram::m_probe_size
private

◆ m_probe_size_max

int Histogram::m_probe_size_max
private

Referenced by get_splitter_guesses(), and Histogram().

◆ m_margin_error

int Histogram::m_margin_error
private

Referenced by Init(), and RefineProbes().

◆ m_splitters

splitter* Histogram::m_splitters
private

◆ m_num_total_keys

index_type Histogram::m_num_total_keys
private

Referenced by Init(), and RefineProbes().

◆ m_last_probe

key_type* Histogram::m_last_probe
private

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