OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
#include <MultiBalancer.h>
Classes | |
struct | IndirectComparator |
Public Types | |
typedef std::vector< int > ::iterator | iterator |
Public Member Functions | |
MultiBalancer (int procs, int vnodes) | |
~MultiBalancer () | |
void | newMaterial () |
void | appendWeights (double *begin, double *end) |
void | distribute () |
iterator | begin () |
iterator | end () |
Private Types | |
enum | { noMaterials, someMaterials, distributed } |
typedef std::vector< double > | VnodeWeights_t |
typedef std::vector< double > | MaterialWeights_t |
typedef std::vector< double > | ProcWeights_t |
typedef std::vector < VnodeWeights_t * > | MaterialVnodeWeights_t |
typedef std::vector < VnodeWeights_t * > | MaterialProcWeights_t |
typedef std::vector< int > | VnodeDestProcs_t |
Private Member Functions | |
void | calcTotalWeights (VnodeWeights_t &vnodeTotalWeights) |
void | calcIndirectSort (std::vector< unsigned int > &vnodeIndirect, const VnodeWeights_t &vnodeTotalWeights) |
unsigned int | findProcForVnode (unsigned int vnode) |
Private Attributes | |
unsigned int | m_procs |
unsigned int | m_vnodes |
unsigned int | m_materials |
int | m_phase |
MaterialVnodeWeights_t | m_inputWeights |
VnodeDestProcs_t | m_vnodeProcs |
ProcWeights_t | m_procWeights |
MaterialWeights_t | m_materialMaxWeights |
MaterialProcWeights_t | m_materialProcWeights |
Friends | |
void | multiBalancerTester () |
Definition at line 121 of file MultiBalancer.h.
typedef std::vector<int>::iterator MultiBalancer::iterator |
Definition at line 146 of file MultiBalancer.h.
|
private |
Definition at line 178 of file MultiBalancer.h.
|
private |
Definition at line 175 of file MultiBalancer.h.
|
private |
Definition at line 169 of file MultiBalancer.h.
|
private |
Definition at line 172 of file MultiBalancer.h.
|
private |
Definition at line 181 of file MultiBalancer.h.
|
private |
Definition at line 166 of file MultiBalancer.h.
|
private |
Enumerator | |
---|---|
noMaterials | |
someMaterials | |
distributed |
Definition at line 163 of file MultiBalancer.h.
MultiBalancer::MultiBalancer | ( | int | procs, |
int | vnodes | ||
) |
Definition at line 44 of file MultiBalancer.cpp.
MultiBalancer::~MultiBalancer | ( | ) |
Definition at line 66 of file MultiBalancer.cpp.
References m_inputWeights, m_materialProcWeights, and m_materials.
void MultiBalancer::appendWeights | ( | double * | begin, |
double * | end | ||
) |
Definition at line 113 of file MultiBalancer.cpp.
References begin(), end(), m_inputWeights, m_materials, m_vnodes, PAssert_GT, and PAssert_LE.
Referenced by multiBalancerTester(), and ConejoBalancer::receiveWeights().
|
inline |
Definition at line 151 of file MultiBalancer.h.
References m_vnodeProcs.
Referenced by appendWeights(), and ConejoBalancer::broadcastVnodesToSend().
|
private |
|
private |
Definition at line 256 of file MultiBalancer.cpp.
References m_inputWeights, m_vnodes, and PAssert_EQ.
Referenced by distribute().
void MultiBalancer::distribute | ( | ) |
Definition at line 135 of file MultiBalancer.cpp.
References calcIndirectSort(), calcTotalWeights(), distributed, findProcForVnode(), m_inputWeights, m_materialMaxWeights, m_materialProcWeights, m_materials, m_phase, m_procs, m_procWeights, m_vnodeProcs, m_vnodes, noMaterials, and PAssert_NE.
Referenced by multiBalancerTester(), and ConejoBalancer::redistribute().
|
inline |
Definition at line 152 of file MultiBalancer.h.
References m_vnodeProcs.
Referenced by appendWeights().
|
private |
Definition at line 207 of file MultiBalancer.cpp.
References m_inputWeights, m_materialMaxWeights, m_materialProcWeights, m_materials, m_procs, and PAssert_LT.
Referenced by distribute().
void MultiBalancer::newMaterial | ( | ) |
Definition at line 82 of file MultiBalancer.cpp.
References distributed, m_inputWeights, m_materials, m_phase, m_vnodes, PAssert_EQ, PAssert_NE, and someMaterials.
Referenced by multiBalancerTester(), and ConejoBalancer::receiveWeights().
|
friend |
Definition at line 34 of file MultiBalancer.t.cpp.
|
private |
Definition at line 184 of file MultiBalancer.h.
Referenced by appendWeights(), calcTotalWeights(), distribute(), findProcForVnode(), multiBalancerTester(), newMaterial(), and ~MultiBalancer().
|
private |
Definition at line 193 of file MultiBalancer.h.
Referenced by distribute(), findProcForVnode(), and multiBalancerTester().
|
private |
Definition at line 196 of file MultiBalancer.h.
Referenced by distribute(), findProcForVnode(), multiBalancerTester(), and ~MultiBalancer().
|
private |
Definition at line 159 of file MultiBalancer.h.
Referenced by appendWeights(), distribute(), findProcForVnode(), newMaterial(), and ~MultiBalancer().
|
private |
Definition at line 162 of file MultiBalancer.h.
Referenced by distribute(), and newMaterial().
|
private |
Definition at line 157 of file MultiBalancer.h.
Referenced by distribute(), and findProcForVnode().
|
private |
Definition at line 190 of file MultiBalancer.h.
Referenced by distribute(), and multiBalancerTester().
|
private |
Definition at line 187 of file MultiBalancer.h.
Referenced by begin(), distribute(), end(), and multiBalancerTester().
|
private |
Definition at line 158 of file MultiBalancer.h.
Referenced by appendWeights(), calcIndirectSort(), calcTotalWeights(), distribute(), and newMaterial().