changa 3.5
Loading...
Searching...
No Matches
MultistepLB_SFC Class Reference

Multistep load balancer using Space Filling Curve. More...

#include <MultistepLB_SFC.h>

Inheritance diagram for MultistepLB_SFC:

Classes

class  SFCObject
 

Public Member Functions

 MultistepLB_SFC (const CkLBOptions &)
 
 MultistepLB_SFC (CkMigrateMessage *m)
 
void work (BaseLB::LDStats *stats)
 Implement load balancing: store loads and determine active processors and objects, sort by SFC, then divide up among processors.
 
void work2 (BaseLB::LDStats *stats)
 SFC load balance.
 
void sfcPrepare (std::vector< SFCObject > &tp_array, int nObjs, BaseLB::LDStats *stats, bool node_partition=false)
 Prepare structures for the ORB partition.
 
void sfcPartition (int nProcs, std::vector< SFCObject > &tp, BaseLB::LDStats *stats, bool node_partition=false)
 Partition treepieces among processors by dividing the SFC as evenly as possible.
 
void pup (PUP::er &p)
 

Detailed Description

Multistep load balancer using Space Filling Curve.

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 the processors using a Space Filling Curve based on the centroids of the TreePieces.

Member Function Documentation

◆ sfcPartition()

void MultistepLB_SFC::sfcPartition ( int nProcs,
std::vector< SFCObject > & tp,
BaseLB::LDStats * stats,
bool node_partition = false )

Partition treepieces among processors by dividing the SFC as evenly as possible.

Parameters
nprocsNumber of processors over which to partition the pieces. N.B. if node_partition is true, then this is the number of nodes.
tpVector of TreePiece data.
statsLoad balance data

◆ sfcPrepare()

void MultistepLB_SFC::sfcPrepare ( std::vector< SFCObject > & tp_array,
int nObjs,
BaseLB::LDStats * stats,
bool node_partition = false )

Prepare structures for the ORB partition.

Parameters
tp_arrayReference to Vector of Objects representing TreePieces.
nObjsNumber of tree pieces to partition.
statsData from the load balancing framework.
node_partitionAre we partitioning on nodes.

◆ work()

void MultistepLB_SFC::work ( BaseLB::LDStats * stats)

Implement load balancing: store loads and determine active processors and objects, sort by SFC, then divide up among processors.

Parameters
statsThe Load Balancer statistics object.

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