Histogram Class Reference

#include <sort_hist.H>

List of all members.

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
index_type m_num_total_keys

Constructor & Destructor Documentation

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

Member Function Documentation

void Histogram::set_limits ( key_type  min,
key_type  max 

References m_max_key, and m_min_key.

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

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

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

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

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().

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

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

const int Histogram::m_num_pes [private]

const int Histogram::m_my_pe [private]

Referenced by mws_private().

int Histogram::m_num_steps [private]

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

int Histogram::m_ncalls [private]

Referenced by Init().

int Histogram::m_num_achv [private]

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

int Histogram::m_probe_size [private]

Referenced by get_splitter_guesses(), and Histogram().

Referenced by Init(), and RefineProbes().

Referenced by Init(), and RefineProbes().

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

Generated on Thu Apr 25 03:43:27 2019 for Chombo + EB by  doxygen 1.5.5