OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
MultiBalancer Class Reference

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

Detailed Description

Definition at line 121 of file MultiBalancer.h.

Member Typedef Documentation

typedef std::vector<int>::iterator MultiBalancer::iterator

Definition at line 146 of file MultiBalancer.h.

Definition at line 178 of file MultiBalancer.h.

Definition at line 175 of file MultiBalancer.h.

typedef std::vector<double> MultiBalancer::MaterialWeights_t
private

Definition at line 169 of file MultiBalancer.h.

typedef std::vector<double> MultiBalancer::ProcWeights_t
private

Definition at line 172 of file MultiBalancer.h.

typedef std::vector<int> MultiBalancer::VnodeDestProcs_t
private

Definition at line 181 of file MultiBalancer.h.

typedef std::vector<double> MultiBalancer::VnodeWeights_t
private

Definition at line 166 of file MultiBalancer.h.

Member Enumeration Documentation

anonymous enum
private
Enumerator
noMaterials 
someMaterials 
distributed 

Definition at line 163 of file MultiBalancer.h.

Constructor & Destructor Documentation

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.

Member Function Documentation

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

Here is the call graph for this function:

iterator MultiBalancer::begin ( )
inline

Definition at line 151 of file MultiBalancer.h.

References m_vnodeProcs.

Referenced by appendWeights(), and ConejoBalancer::broadcastVnodesToSend().

void MultiBalancer::calcIndirectSort ( std::vector< unsigned int > &  vnodeIndirect,
const VnodeWeights_t vnodeTotalWeights 
)
private

Definition at line 280 of file MultiBalancer.cpp.

References m_vnodes.

Referenced by distribute().

void MultiBalancer::calcTotalWeights ( VnodeWeights_t vnodeTotalWeights)
private

Definition at line 256 of file MultiBalancer.cpp.

References m_inputWeights, m_vnodes, and PAssert_EQ.

Referenced by distribute().

void MultiBalancer::distribute ( )
iterator MultiBalancer::end ( )
inline

Definition at line 152 of file MultiBalancer.h.

References m_vnodeProcs.

Referenced by appendWeights().

unsigned int MultiBalancer::findProcForVnode ( unsigned int  vnode)
private
void MultiBalancer::newMaterial ( )

Friends And Related Function Documentation

void multiBalancerTester ( )
friend

Definition at line 34 of file MultiBalancer.t.cpp.

Member Data Documentation

MaterialVnodeWeights_t MultiBalancer::m_inputWeights
private
MaterialWeights_t MultiBalancer::m_materialMaxWeights
private

Definition at line 193 of file MultiBalancer.h.

Referenced by distribute(), findProcForVnode(), and multiBalancerTester().

MaterialProcWeights_t MultiBalancer::m_materialProcWeights
private

Definition at line 196 of file MultiBalancer.h.

Referenced by distribute(), findProcForVnode(), multiBalancerTester(), and ~MultiBalancer().

unsigned int MultiBalancer::m_materials
private
int MultiBalancer::m_phase
private

Definition at line 162 of file MultiBalancer.h.

Referenced by distribute(), and newMaterial().

unsigned int MultiBalancer::m_procs
private

Definition at line 157 of file MultiBalancer.h.

Referenced by distribute(), and findProcForVnode().

ProcWeights_t MultiBalancer::m_procWeights
private

Definition at line 190 of file MultiBalancer.h.

Referenced by distribute(), and multiBalancerTester().

VnodeDestProcs_t MultiBalancer::m_vnodeProcs
private

Definition at line 187 of file MultiBalancer.h.

Referenced by begin(), distribute(), end(), and multiBalancerTester().

unsigned int MultiBalancer::m_vnodes
private

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