HLIBpro  2.0
Public Types | Public Member Functions | List of all members
TSFCDistrBC Class Reference

Class for distributing block cluster trees using space filling curves. More...

#include <TDistrBC.hh>

Inheritance diagram for TSFCDistrBC:
TDistrBC

Public Types

enum  curve_t
 different types of space-filling-curves
 

Public Member Functions

 TSFCDistrBC (const bool adj_coarsen=false, const curve_t curve_type=HILBERT_CURVE, const double eps=0.05)
 construct block cluster distributor
 
virtual void distribute (const uint p, TBlockCluster *tree, const TDistrBC::TCostFunc *cf) const
 distribute tree, obtain costs from cost-function cf
 
- Public Member Functions inherited from TDistrBC
virtual void distribute (const uint p, TBlockClusterTree *tree, const TDistrBC::TCostFunc *cf) const
 distribute block cluster tree (tree version)
 

Detailed Description

The partitioning of the block index set as defined by the nodes of a given level of the block cluster tree is mapped to a one dimensional sequence using space filling curves. This sequence is afterwards partitioned into p intervals by a sequence partitioning scheduler.

This procedure is performed for each level of the block cluster from root to leaves, as long as no load balance was achieved. The difference between the individual loads in all intervals is defined by ε, e.g. [min load, max load] ⊆ [-ε,+ε]·avg load.