PPL Logo

ck-ldb/RecBipartLB.C File Reference

Author: Swapnil Ghike Date Created: E-mail: ghike2@illinois.edu. More...

Go to the source code of this file.

Data Structures

class  Vertex_helper
 Class to contain additional data about the vertices in object graph. More...
class  BQueue
 Class to handle the boundaries of child partitions. More...

Functions

void RecursiveBiPart (ObjGraph *, vector< Vertex * > &, int, int)
void adjustqueues (ObjGraph *, BQueue *, BQueue *, vector< Vertex * > &, vector< Vertex * > &, int *, int)
void adjustgain (ObjGraph *, vector< Vertex * > &, BQueue *)
void RefineBoundary (ObjGraph *, vector< Vertex * > &, vector< Vertex * > &, BQueue *, BQueue *, int, int, int, double, double, double)
int modifypartitions (ObjGraph *, vector< Vertex * > &, vector< Vertex * > &, BQueue *, BQueue *, int, int)
void swapQ1toQ2 (ObjGraph *, BQueue *, BQueue *, int)
VertexremoveinSwap (ObjGraph *, BQueue *, BQueue *, int)
VertexremovePtr (vector< Vertex * > &, int)
 CreateLBFunc_Def (RecBipartLB,"Algorithm for load balacing based on recursive bipartitioning of object graph")

Variables

int quietModeRequested
int level
double TOTALLOAD
vector< Vertex_helper * > vhelpers
int numparts
int peno
ProcArrayparray


Detailed Description

Author: Swapnil Ghike Date Created: E-mail: ghike2@illinois.edu.

This strategy does a recursive bipartition of the object graph and the processor graph. The objects are divided based on the loads in case of odd number of processors. Recursive bi-partitioning is done by a breadth-first traversal until you have the required load in one group.

At each recursive biparititioning, the boundaries are refined to minimize the edge cut. Vertices are moved across the boundary to see if the edge cut reduces while trying to maintain proportionate load in both partitions.

Definition in file RecBipartLB.C.


Generated on Mon Sep 21 07:59:16 2020 for Charm++ by  doxygen 1.5.5