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

#include <ConejoBalancer.h>

Collaboration diagram for ConejoBalancer:
Collaboration graph
[legend]

Public Member Functions

 ConejoBalancer ()
 
 ~ConejoBalancer ()
 
template<class T , unsigned int D>
void addMaterial (BareField< T, D > &weights, bool dropCompressed)
 
template<unsigned int D>
void redistribute (FieldLayout< D > &layout)
 

Private Member Functions

void sendWeights (std::vector< double > &vnodeWeights, int tag)
 
void receiveWeights (std::vector< double > &vnodeWeights, int tag)
 
void setupVnodes (int localVnodes, int remoteVnodes)
 
void recordVnodeCount (int count, int proc)
 
void broadcastVnodesToSend (int tag)
 
void receiveVnodesToSend (std::vector< int > &vnodeDestinations, int tag)
 
template<unsigned int D>
void sendVnodeDomains (std::vector< int > &vnodeDests, FieldLayout< D > &layout, int tag)
 
template<unsigned int D>
void receiveVnodeDomains (std::vector< NDIndex< D > > &vnodeDomains, int tag)
 

Private Attributes

MultiBalancerm_balancer
 
int m_localVnodes
 
int m_totalVnodes
 
int m_procs
 
int m_myProc
 
std::vector< int > m_vnodeCounts
 

Detailed Description

Definition at line 59 of file ConejoBalancer.h.

Constructor & Destructor Documentation

ConejoBalancer::ConejoBalancer ( )

Definition at line 42 of file ConejoBalancer_inst.cpp.

References m_procs, and m_vnodeCounts.

ConejoBalancer::~ConejoBalancer ( )

Definition at line 69 of file ConejoBalancer_inst.cpp.

References m_balancer.

Member Function Documentation

template<class T , unsigned int D>
void ConejoBalancer::addMaterial ( BareField< T, D > &  weights,
bool  dropCompressed 
)
inline
void ConejoBalancer::broadcastVnodesToSend ( int  tag)
private

Definition at line 248 of file ConejoBalancer_inst.cpp.

References MultiBalancer::begin(), Physics::c, IpplInfo::Comm, m_balancer, m_procs, m_vnodeCounts, Message::put(), putMessage(), and Communicate::send().

Referenced by redistribute().

Here is the call graph for this function:

template<unsigned int D>
void ConejoBalancer::receiveVnodeDomains ( std::vector< NDIndex< D > > &  vnodeDomains,
int  tag 
)
inlineprivate

Definition at line 255 of file ConejoBalancer.h.

References IpplInfo::Comm, Message::get(), getMessage_iter(), m_procs, PAssert_GE, and Communicate::receive_block().

Referenced by redistribute().

Here is the call graph for this function:

void ConejoBalancer::receiveVnodesToSend ( std::vector< int > &  vnodeDestinations,
int  tag 
)
private

Definition at line 289 of file ConejoBalancer_inst.cpp.

References IpplInfo::Comm, Message::get(), getMessage_iter(), and Communicate::receive_block().

Referenced by redistribute().

Here is the call graph for this function:

void ConejoBalancer::receiveWeights ( std::vector< double > &  vnodeWeights,
int  tag 
)
private
void ConejoBalancer::recordVnodeCount ( int  count,
int  proc 
)
private

Definition at line 211 of file ConejoBalancer_inst.cpp.

References m_vnodeCounts, PAssert_EQ, and PAssert_GE.

Referenced by receiveWeights().

template<unsigned int D>
void ConejoBalancer::redistribute ( FieldLayout< D > &  layout)
inline
template<unsigned int D>
void ConejoBalancer::sendVnodeDomains ( std::vector< int > &  vnodeDests,
FieldLayout< D > &  layout,
int  tag 
)
inlineprivate

Definition at line 208 of file ConejoBalancer.h.

References FieldLayout< Dim >::begin_iv(), IpplInfo::Comm, m_procs, Message::put(), putMessage(), Communicate::send(), and NDIndex< Dim >::size().

Referenced by redistribute().

Here is the call graph for this function:

void ConejoBalancer::sendWeights ( std::vector< double > &  vnodeWeights,
int  tag 
)
private

Definition at line 92 of file ConejoBalancer_inst.cpp.

References IpplInfo::Comm, Message::put(), putMessage(), and Communicate::send().

Referenced by addMaterial().

Here is the call graph for this function:

void ConejoBalancer::setupVnodes ( int  localVnodes,
int  remoteVnodes 
)
private

Definition at line 171 of file ConejoBalancer_inst.cpp.

References m_balancer, m_localVnodes, m_myProc, m_procs, m_totalVnodes, and PAssert_EQ.

Referenced by addMaterial().

Member Data Documentation

MultiBalancer* ConejoBalancer::m_balancer
private
int ConejoBalancer::m_localVnodes
private

Definition at line 172 of file ConejoBalancer.h.

Referenced by addMaterial(), and setupVnodes().

int ConejoBalancer::m_myProc
private

Definition at line 181 of file ConejoBalancer.h.

Referenced by addMaterial(), redistribute(), and setupVnodes().

int ConejoBalancer::m_procs
private
int ConejoBalancer::m_totalVnodes
private

Definition at line 175 of file ConejoBalancer.h.

Referenced by setupVnodes().

std::vector<int> ConejoBalancer::m_vnodeCounts
private

Definition at line 184 of file ConejoBalancer.h.

Referenced by broadcastVnodesToSend(), ConejoBalancer(), and recordVnodeCount().


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