|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectmapss.dif.DIFScheduleStrategy
mapss.dif.csdf.sdf.sched.DPPOStrategy
public abstract class DPPOStrategy
The base class of Dynamic Programming Post Optimization (DPPO).
No particular optimization objective is targeted and this class is
therefore abstract. The key method is _optimumFor(int, int)
for the implementation. Subclasses are meant to implement it ONLY and nothing
else should be modified.
Field Summary | |
---|---|
protected java.util.List |
_lexicalOrder
The given lexical order of nodes for DPPO. |
protected int |
_tableDimension
The dimension of the dynamic programming table. |
Fields inherited from class mapss.dif.DIFScheduleStrategy |
---|
_clusterManager |
Constructor Summary | |
---|---|
DPPOStrategy(SDFGraph graph,
java.util.List lexicalOrder)
Constructor for a given graph and a lexical order. |
|
DPPOStrategy(SDFGraph graph,
java.util.List lexicalOrder,
DPPOTableElement element)
Constructor for a given graph, a lexical order, and the type of dynamic programming table element. |
Method Summary | |
---|---|
protected int |
_bufferCost(mocgraph.Edge edge,
int i,
int j)
Compute the given edge's buffer cost in the subgraph induced by the index range. |
protected void |
_computeDPPO()
Dynamic programming computation. |
protected mocgraph.sched.ScheduleElement |
_computeSchedule(int left,
int right,
int repetition)
Compute an SDF schedule from the DPPO results. |
protected java.util.Collection |
_crossingSDFEdges(int i,
int j,
int split)
The SDF edges crossing the given split in the range from i to j. |
protected DPPOTableElement |
_DPPOTableElement(int i,
int j)
Get the element of the DPPO table. |
protected abstract void |
_optimumFor(int i,
int j)
The optimal results along the elements with index i to j. |
protected java.util.Collection |
_SDFEdges(int i,
int j)
Get the SDF edges for given nodes. |
protected java.util.Collection |
_SDFNodes(int i,
int j)
Get SDF nodes for the given lexical order indices. |
protected void |
_verifyIndices(int i,
int j)
Verify the given pair of indices and a split. |
protected void |
_verifyIndices(int i,
int j,
int split)
Verify the given pair of indices and a split. |
double |
optimalCost()
Return the optimal cost. |
mocgraph.sched.Schedule |
schedule()
Construct an SDF schedule from the DPPO computation. |
void |
setLexicalOrder(java.util.List order)
Set the lexical order of SDF actors. |
java.lang.String |
toString()
A desrciption of the scheduler. |
Methods inherited from class mapss.dif.DIFScheduleStrategy |
---|
getClusterManager, graph, valid |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected java.util.List _lexicalOrder
protected int _tableDimension
Constructor Detail |
---|
public DPPOStrategy(SDFGraph graph, java.util.List lexicalOrder)
graph
- The given SDF graph.lexicalOrder
- The lexical order in the form of
List.
public DPPOStrategy(SDFGraph graph, java.util.List lexicalOrder, DPPOTableElement element)
graph
- The given SDF graph.lexicalOrder
- The lexical order in the form of
List.element
- The type of dynamic programming table element.
Method Detail |
---|
public double optimalCost()
.
public mocgraph.sched.Schedule schedule()
schedule
in interface mocgraph.sched.ScheduleAnalyzer
schedule
in class DIFScheduleStrategy
public void setLexicalOrder(java.util.List order)
order
- The desired lexical order.public java.lang.String toString()
toString
in interface mocgraph.analysis.analyzer.Analyzer
toString
in class DIFScheduleStrategy
protected int _bufferCost(mocgraph.Edge edge, int i, int j)
edge
- The edge.i
- The index of the starting node.j
- The index of the ending node.
protected void _computeDPPO()
protected mocgraph.sched.ScheduleElement _computeSchedule(int left, int right, int repetition)
left
- Lexical ordering index of the leftmost node.right
- Lexical ordering index of the rightmost node.repetition
- The repetition count of the node sequence.
protected java.util.Collection _crossingSDFEdges(int i, int j, int split)
i
- The index of the starting node.j
- The index of the ending node.split
- The split position.
protected DPPOTableElement _DPPOTableElement(int i, int j)
i
- The index of the starting (left) nodej
- The index of the ending (right) node
DPPOMatrixElement
.protected abstract void _optimumFor(int i, int j)
i
- The element with index i.j
- The element with index j.protected java.util.Collection _SDFEdges(int i, int j)
i
- The index of the starting node.j
- The index of the ending node.
protected java.util.Collection _SDFNodes(int i, int j)
i
- The index of the starting node.j
- The index of the ending node.
protected void _verifyIndices(int i, int j)
i
- The starting index.j
- The ending index.
java.lang.IllegalArgumentException
- Exception is thrown if
boundaries are violated or i > j.
protected void _verifyIndices(int i, int j, int split)
i
- The starting index.j
- The ending index.split
- The split position.
java.lang.IllegalArgumentException
- Exception is thrown if
boundaries are violated, i > j, or
illegal split position is specified.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |