OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
#include <ConejoBalancer.h>
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 | |
MultiBalancer * | m_balancer |
int | m_localVnodes |
int | m_totalVnodes |
int | m_procs |
int | m_myProc |
std::vector< int > | m_vnodeCounts |
Definition at line 59 of file ConejoBalancer.h.
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.
|
inline |
Definition at line 97 of file ConejoBalancer.h.
References IpplInfo::Comm, F_CONEJO_BALANCER_TAG, F_TAG_CYCLE, BareField< T, Dim >::getLayout(), m_localVnodes, m_myProc, TagMaker::next_tag(), receiveWeights(), reduceLocalWeights(), sendWeights(), setupVnodes(), BareField< T, Dim >::size_if(), and FieldLayout< Dim >::size_rdv().
|
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().
|
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().
|
private |
Definition at line 289 of file ConejoBalancer_inst.cpp.
References IpplInfo::Comm, Message::get(), getMessage_iter(), and Communicate::receive_block().
Referenced by redistribute().
|
private |
Definition at line 122 of file ConejoBalancer_inst.cpp.
References MultiBalancer::appendWeights(), IpplInfo::Comm, Message::get(), getMessage_iter(), m_balancer, m_procs, MultiBalancer::newMaterial(), Communicate::receive_block(), and recordVnodeCount().
Referenced by addMaterial().
|
private |
Definition at line 211 of file ConejoBalancer_inst.cpp.
References m_vnodeCounts, PAssert_EQ, and PAssert_GE.
Referenced by receiveWeights().
|
inline |
Definition at line 133 of file ConejoBalancer.h.
References broadcastVnodesToSend(), IpplInfo::Comm, MultiBalancer::distribute(), F_CB_BCAST_TAG, F_CB_DOMAIN_TAG, F_TAG_CYCLE, m_balancer, m_myProc, TagMaker::next_tag(), receiveVnodeDomains(), receiveVnodesToSend(), FieldLayout< Dim >::Repartition(), sendVnodeDomains(), and NDIndex< Dim >::size().
|
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().
|
private |
Definition at line 92 of file ConejoBalancer_inst.cpp.
References IpplInfo::Comm, Message::put(), putMessage(), and Communicate::send().
Referenced by addMaterial().
|
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().
|
private |
Definition at line 169 of file ConejoBalancer.h.
Referenced by broadcastVnodesToSend(), receiveWeights(), redistribute(), setupVnodes(), and ~ConejoBalancer().
|
private |
Definition at line 172 of file ConejoBalancer.h.
Referenced by addMaterial(), and setupVnodes().
|
private |
Definition at line 181 of file ConejoBalancer.h.
Referenced by addMaterial(), redistribute(), and setupVnodes().
|
private |
Definition at line 178 of file ConejoBalancer.h.
Referenced by broadcastVnodesToSend(), ConejoBalancer(), receiveVnodeDomains(), receiveWeights(), sendVnodeDomains(), and setupVnodes().
|
private |
Definition at line 175 of file ConejoBalancer.h.
Referenced by setupVnodes().
|
private |
Definition at line 184 of file ConejoBalancer.h.
Referenced by broadcastVnodesToSend(), ConejoBalancer(), and recordVnodeCount().