Chombo + EB
3.0
|
#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 | |
splitter * | mws_private (key_type *, int, MPI_Comm) |
void | Init (MPI_Comm a_comm, const int a_nloc, float) |
void | RefineProbes (std::vector< index_type > &) |
key_type * | get_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 |
splitter * | m_splitters |
index_type | m_num_total_keys |
key_type * | m_last_probe |
References m_last_probe, m_num_pes, m_probe_size, m_probe_size_max, and m_splitters.
int * Histogram::mws_sdispl | ( | key_type * | a_keys, |
int | nloc, | ||
MPI_Comm | c, | ||
float | margin | ||
) |
References Init(), m_num_pes, and mws_private().
References CH_assert, m_last_probe, m_max_key, m_my_pe, m_num_achv, m_num_pes, m_num_steps, m_probe_size, m_splitters, and RefineProbes().
Referenced by mws_sdispl().
|
private |
References splitter::achieved, splitter::broadcasted, CH_assert, splitter::goal, splitter::lowerb_count, splitter::lowerb_key, m_last_probe, m_margin_error, m_max_key, m_min_key, m_ncalls, m_num_achv, m_num_pes, m_num_steps, m_num_total_keys, m_probe_size, m_splitters, splitter::upperb_count, and splitter::upperb_key.
Referenced by mws_sdispl().
|
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().
|
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().
|
private |
Referenced by Init(), RefineProbes(), and set_limits().
|
private |
Referenced by Init(), mws_private(), RefineProbes(), and set_limits().
|
private |
Referenced by Histogram(), Init(), mws_private(), mws_sdispl(), and RefineProbes().
|
private |
Referenced by mws_private().
|
private |
Referenced by Init(), mws_private(), and RefineProbes().
|
private |
Referenced by Init().
|
private |
Referenced by Init(), mws_private(), and RefineProbes().
|
private |
Referenced by get_splitter_guesses(), Histogram(), Init(), mws_private(), and RefineProbes().
|
private |
Referenced by get_splitter_guesses(), and Histogram().
|
private |
Referenced by Init(), and RefineProbes().
|
private |
Referenced by Histogram(), Init(), mws_private(), and RefineProbes().
|
private |
Referenced by Init(), and RefineProbes().
|
private |
Referenced by Histogram(), Init(), mws_private(), and RefineProbes().