Package at.dms.kjc.sir.lowering.partition

Provides algorithms for adjusting the granularity of the stream graph to improve load balancing or optimization potential.

See:
          Description

Class Summary
FissionTransform Represents a fission of a filter in a stream graph.
FreqReplaceTransform FreqReplace transform on a stream graph.
FusionTransform Represents a fusion of children in a stream graph.
GreedierPartitioner Greedier partitioner that can switch back and forth between fissing and fusing depending on what's more appropriate.
GreedyPartitioner  
HorizontalCutTransform Horizontal cut transform on a stream graph.
IdempotentTransform Idempotent transform on a stream graph.
IdentityTransform Identity transform on a stream graph.
ILPPartitioner  
LinearReplaceTransform LinearReplace transform on a stream graph.
ListPartitioner This is a partitioner that keeps a canonical list of underlying nodes to help with partitioning.
ManualPartition Represents an interface to the StreamIt compiler that allows the programmer to specify how the partitioning / load balancing is done.
PartitionDot This class extends the main streamit dot printer to annotate the dot graphs with partitioning information.
Partitioner  
PartitionGroup This represents a partitioning of the children of a single SIR Container.
PartitionRecord This is just a structure for recording what has been assigned to a given partition.
PartitionUtil  
RecordingStreamVisitor Records all filters, splitters, and joiners in a given stream into a partition record.
RefactorPipeline This class is for refactoring pipelines.
RefactorSplitJoin  
RemoveSyncTransform Removes *matching* synchronization in this pipeline.
SJToPipe  
StreamTransform This represents a symbolic transformation on a stream graph.
VerticalCutTransform Vertical cut transform on a stream graph.
WorkEstimate Provides a means for estimating the amount of work in a stream graph.
WorkList A wrapper for a linked list to save ourself a lot of casting with work entries.
 

Package at.dms.kjc.sir.lowering.partition Description

Provides algorithms for adjusting the granularity of the stream graph to improve load balancing or optimization potential. Also provides estimation of the work requirements of filters, as well as refactoring routines that adjust the synchronization points in a stream graph. The high-level partitioners can be broadly categorized as those that improve load balancing and those that optimize other metrics.

The partitioners oriented towards load balancing include:

Partitioners that have other optimization metrics include: Several of these inherit from ListPartitioner to reuse some common code.

The other files in this package fall under a few categories:

See Also:
at.dms.kjc.sir.lowering.partition.dynamicprog, at.dms.kjc.sir.lowering.partition.cache, at.dms.kjc.sir.lowering.partition.linear