at.dms.kjc.sir.lowering.partition
Class ListPartitioner

java.lang.Object
  extended by at.dms.kjc.sir.lowering.partition.ListPartitioner
Direct Known Subclasses:
CachePartitioner, DynamicProgPartitioner, ILPPartitioner

public abstract class ListPartitioner
extends Object

This is a partitioner that keeps a canonical list of underlying nodes to help with partitioning.


Field Summary
protected  HashMap<SIRStream,Integer> first
          Maps a stream container (pipeline, splitjoin, feedbackloop) to an Integer denoting the first index in that belongs to the structure.
protected  HashMap<SIRStream,Integer> last
          Maps a stream container (pipeline, splitjoin, feedbackloop) to an Integer denoting the first index in that belongs to the structure.
protected  LinkedList<Object> nodes
          List of NODES (i.e., filters and joiners) in the stream graph.
protected  int numTiles
          The target number of tiles this partitioner is going for.
protected  SIRStream str
          The toplevel stream we're operating on.
protected  WorkEstimate work
          The work estimate of the stream.
 
Constructor Summary
ListPartitioner(SIRStream str, WorkEstimate work, int numTiles)
           
 
Method Summary
protected  boolean equivStructure(SIRStream str1, SIRStream str2)
          Returns whether or not and are equivalent for the purposes of constraining symmetrical partitioning in them.
 int getNumTiles()
           
 WorkEstimate getWorkEstimate()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

str

protected SIRStream str
The toplevel stream we're operating on.


numTiles

protected int numTiles
The target number of tiles this partitioner is going for.


nodes

protected LinkedList<Object> nodes
List of NODES (i.e., filters and joiners) in the stream graph. This list is in the "canonicalized order" (see lp-partition document.)


first

protected HashMap<SIRStream,Integer> first
Maps a stream container (pipeline, splitjoin, feedbackloop) to an Integer denoting the first index in that belongs to the structure.


last

protected HashMap<SIRStream,Integer> last
Maps a stream container (pipeline, splitjoin, feedbackloop) to an Integer denoting the first index in that belongs to the structure.


work

protected WorkEstimate work
The work estimate of the stream.

Constructor Detail

ListPartitioner

public ListPartitioner(SIRStream str,
                       WorkEstimate work,
                       int numTiles)
Method Detail

getNumTiles

public int getNumTiles()

getWorkEstimate

public WorkEstimate getWorkEstimate()

equivStructure

protected boolean equivStructure(SIRStream str1,
                                 SIRStream str2)
Returns whether or not and are equivalent for the purposes of constraining symmetrical partitioning in them.