Package ptolemy.domains.sdf.optimize
Class OptimizingSDFScheduler
- java.lang.Object
-
- ptolemy.kernel.util.NamedObj
-
- ptolemy.kernel.util.Attribute
-
- ptolemy.actor.sched.Scheduler
-
- ptolemy.domains.sdf.kernel.BaseSDFScheduler
-
- ptolemy.domains.sdf.kernel.SDFScheduler
-
- ptolemy.domains.sdf.optimize.OptimizingSDFScheduler
-
- All Implemented Interfaces:
java.lang.Cloneable
,Changeable
,Debuggable
,DebugListener
,Derivable
,ModelErrorHandler
,MoMLExportable
,Moveable
,Nameable
,ValueListener
public class OptimizingSDFScheduler extends SDFScheduler
OptimizingSDFScheduler is the scheduler companion to the OptimizingSDFDirector It works with the synchronous dataflow (SDF) model of computation to find an optimized schedule according to a defined criterion.Class comments
An OptimizingSDFScheduler is the class that determines an optimized static schedule.See
SDFScheduler
andOptimizingSDFDirector
for more information.- Since:
- Ptolemy II 10.0
- Version:
- $Id$
- Author:
- Marc Geilen
- See Also:
SDFScheduler
,OptimizingSDFDirector
- Pt.AcceptedRating:
- Red ()
- Pt.ProposedRating:
- Red (mgeilen)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.kernel.util.NamedObj
NamedObj.ContainedObjectsIterator
-
-
Field Summary
Fields Modifier and Type Field Description OptimizingSDFDirector.OptimizationCriteria
optimizationCriterion
The optimization criterion to use.-
Fields inherited from class ptolemy.domains.sdf.kernel.SDFScheduler
_externalRates, _firingVector, _rateVariables, constrainBufferSizes
-
Fields inherited from class ptolemy.domains.sdf.kernel.BaseSDFScheduler
VERBOSE
-
Fields inherited from class ptolemy.actor.sched.Scheduler
_DEFAULT_SCHEDULER_NAME
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
-
-
Constructor Summary
Constructors Constructor Description OptimizingSDFScheduler(OptimizingSDFDirector container, java.lang.String name, OptimizingSDFDirector.OptimizationCriteria crit)
Construct an instance of an OptimizingSDFScheduler.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Schedule
_getSchedule()
Return the scheduling sequence.void
showDebug(java.lang.String message)
Print a debug message.-
Methods inherited from class ptolemy.domains.sdf.kernel.SDFScheduler
_checkDynamicRateVariables, _computeMaximumFirings, _countUnfulfilledInputs, _getFiringCount, _simulateExternalInputs, _simulateInputConsumption, _solveBalanceEquations, _vectorizeFirings, clone, declareRateDependency, getExternalRates, getFiringCount, valueChanged
-
Methods inherited from class ptolemy.domains.sdf.kernel.BaseSDFScheduler
_declareDependency, _saveBufferSizes, _saveContainerRates, _saveFiringCounts
-
Methods inherited from class ptolemy.actor.sched.Scheduler
getSchedule, isValid, setContainer, setValid
-
Methods inherited from class ptolemy.kernel.util.Attribute
_checkContainer, _getContainedObject, _propagateExistence, getContainer, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, setName, updateContent
-
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _description, _executeChangeRequests, _exportMoMLContents, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, addHierarchyListener, attributeChanged, attributeDeleted, attributeList, attributeList, attributeTypeChanged, clone, containedObjectsIterator, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getElementName, getFullName, getModelErrorHandler, getName, getName, getPrototypeList, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, notifyOfNameChange, propagateExistence, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, uniqueName, validateSettables, workspace
-
-
-
-
Field Detail
-
optimizationCriterion
public OptimizingSDFDirector.OptimizationCriteria optimizationCriterion
The optimization criterion to use.
-
-
Constructor Detail
-
OptimizingSDFScheduler
public OptimizingSDFScheduler(OptimizingSDFDirector container, java.lang.String name, OptimizingSDFDirector.OptimizationCriteria crit) throws IllegalActionException, NameDuplicationException
Construct an instance of an OptimizingSDFScheduler. Provide container and name as usual and an optimization criterion crit.- Parameters:
container
- The container.name
- The name.crit
- optimization criterion- Throws:
IllegalActionException
- If the attribute is not of an acceptable class for the container, or if the name contains a period.NameDuplicationException
- If the name coincides with an attribute already in the container.
-
-
Method Detail
-
_getSchedule
protected Schedule _getSchedule() throws NotSchedulableException, IllegalActionException
Return the scheduling sequence. An exception will be thrown if the graph is not schedulable. This occurs in the following circumstances:- The graph is not a connected graph.
- No integer solution exists for the balance equations.
- The graph contains cycles without delays (deadlock).
- Multiple output ports are connected to the same broadcast relation. (equivalent to a non-deterministic merge)
- The vectorizationFactor parameter of the director does not contain a positive integer.
- Overrides:
_getSchedule
in classSDFScheduler
- Returns:
- A schedule of the deeply contained opaque entities in the firing order.
- Throws:
NotSchedulableException
- If the rates specified for the model imply that the model is not statically schedulable.IllegalActionException
- If the rate parameters of the model are not correct, or the computed rates for external ports are not correct.- See Also:
CompositeEntity.deepEntityList()
-
showDebug
public void showDebug(java.lang.String message)
Print a debug message.- Parameters:
message
- message to display
-
-