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