changa  3.5
 All Classes Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
Public Member Functions | List of all members
MultistepLB_notopo Class Reference

Multistep load balancer where no processor topology information is used. More...

#include <MultistepLB_notopo.h>

Inheritance diagram for MultistepLB_notopo:
Orb3dCommon

Public Member Functions

 MultistepLB_notopo (const CkLBOptions &)
 
 MultistepLB_notopo (CkMigrateMessage *m)
 
void work (BaseLB::LDStats *stats)
 Implement load balancing: store loads and determine active processors and objects, then call ORB3D.
 
void work2 (BaseLB::LDStats *stats, int count)
 ORB3D load balance.
 
void greedy (BaseLB::LDStats *stats, int count)
 
void pup (PUP::er &p)
 

Additional Inherited Members

- Protected Member Functions inherited from Orb3dCommon
void orbPePartition (vector< Event > *events, vector< OrbObject > &tp, int node, BaseLB::LDStats *stats)
 
void orbPartition (vector< Event > *events, OrientedBox< float > &box, int nprocs, vector< OrbObject > &tp, BaseLB::LDStats *stats, bool node_partition=false)
 Recursively partition treepieces among processors by bisecting the load in orthogonal directions. More...
 
void orbPrepare (vector< Event > *tpEvents, OrientedBox< float > &box, int numobjs, BaseLB::LDStats *stats, bool node_partition=false)
 Prepare structures for the ORB partition. More...
 
void refine (BaseLB::LDStats *stats, int numobjs)
 
int partitionRatioLoad (vector< Event > &events, float ratio, float bglp, float bgrp)
 Given a vector of Events, find a split that partitions them into two partitions with a given ratio of loads. More...
 
- Protected Attributes inherited from Orb3dCommon
decltype(BaseLB::LDStats::to_proc)* mapping
 
decltype(BaseLB::LDStats::from_proc)* from
 
CkVec< float > procload
 
double maxPieceProc
 
int nextProc
 index of first processor of the group we are considering
 

Detailed Description

Multistep load balancer where no processor topology information is used.

This balancer recognizes different "phases" (called rungs in other parts of the code), and uses loads based on measurements of the previous calculation at the same phase. For large phases, (i.e., when many particles are active, the TreePieces are divided among by 3 dimensional ORB based on the centroids of the TreePieces. For small phases, a greedy algorithm is used.


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