Hey Stephen,
Here's the error. I'm not sure why it's complaining about the
consumption rate. What is happening is there is a input port connected
to a repeat actor. the number of iterations of the repeat actor is set
by a portparam. The portparam is set statically by a higher level
parameter at design time. It is never actually changed during runtime
(as the error seems to indicate), but the director seems to think it
could be changed and complains.
chad
[java] ptolemy.kernel.util.IllegalActionException: Failed to compute
schedule:
[java] in .distributedModel.DistributedCompositeActor.SDF Director
[java] Because:
[java] The SDF rate parameter changes during execution of the
schedule!
[java] in .distributedModel.DistributedCompositeActor.Calculate
Best Rulesets.longitude_latitude_table._tokenConsumptionRate
[java] at
ptolemy.domains.sdf.kernel.SDFDirector.preinitialize(SDFDirector.java:548)
[java] at
ptolemy.actor.CompositeActor.preinitialize(CompositeActor.java:1076)
[java] at ptolemy.actor.Director.preinitialize(Director.java:865)
[java] at
ptolemy.domains.sdf.kernel.SDFDirector.preinitialize(SDFDirector.java:527)
[java] at
ptolemy.actor.CompositeActor.preinitialize(CompositeActor.java:1076)
[java] at
ptolemy.actor.Manager.preinitializeAndResolveTypes(Manager.java:912)
[java] at ptolemy.actor.Manager.initialize(Manager.java:578)
[java] at ptolemy.actor.Manager.execute(Manager.java:321)
[java] at
org.kepler.distributed.SlaveController.run(SlaveController.java:514)
[java] at
org.kepler.distributed.SlaveController.ready(SlaveController.java:738)
[java] at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown
Source)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:585)
[java] at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
[java] at sun.rmi.transport.Transport$1.run(Transport.java:153)
[java] at java.security.AccessController.doPrivileged(Native
Method)
[java] at
sun.rmi.transport.Transport.serviceCall(Transport.java:149)
[java] at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
[java] at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
[java] at java.lang.Thread.run(Thread.java:595)
[java] Caused by: ptolemy.kernel.util.IllegalActionException: The
SDF rate parameter changes during execution of the schedule!
[java] in .distributedModel.DistributedCompositeActor.Calculate
Best Rulesets.longitude_latitude_table._tokenConsumptionRate
[java] at
ptolemy.domains.sdf.kernel.SDFScheduler._assertDynamicRateVariable(SDFScheduler.java:869)
[java] at
ptolemy.domains.sdf.kernel.SDFScheduler._checkDynamicRateVariables(SDFScheduler.java:306)
[java] at
ptolemy.domains.sdf.kernel.SDFScheduler._getSchedule(SDFScheduler.java:501)
[java] at
ptolemy.actor.sched.Scheduler.getSchedule(Scheduler.java:188) [java]
at
ptolemy.domains.sdf.kernel.SDFDirector.preinitialize(SDFDirector.java:542)
[java] ... 19 more
[java] Caused by: ptolemy.kernel.util.IllegalActionException: The
SDF rate parameter changes during execution of the schedule!
[java] in .distributedModel.DistributedCompositeActor.Calculate
Best Rulesets.longitude_latitude_table._tokenConsumptionRate
[java] at
ptolemy.domains.sdf.kernel.SDFScheduler._assertDynamicRateVariable(SDFScheduler.java:869)
[java] at
ptolemy.domains.sdf.kernel.SDFScheduler._checkDynamicRateVariables(SDFScheduler.java:306)
[java] at
ptolemy.domains.sdf.kernel.SDFScheduler._getSchedule(SDFScheduler.java:501)
[java] at
ptolemy.actor.sched.Scheduler.getSchedule(Scheduler.java:188) [java]
at
ptolemy.domains.sdf.kernel.SDFDirector.preinitialize(SDFDirector.java:542)
[java] at
ptolemy.actor.CompositeActor.preinitialize(CompositeActor.java:1076)
[java] at ptolemy.actor.Director.preinitialize(Director.java:865)
[java] at
ptolemy.domains.sdf.kernel.SDFDirector.preinitialize(SDFDirector.java:527)
[java] at
ptolemy.actor.CompositeActor.preinitialize(CompositeActor.java:1076)
[java] at
ptolemy.actor.Manager.preinitializeAndResolveTypes(Manager.java:912)
[java] at ptolemy.actor.Manager.initialize(Manager.java:578)
[java] at ptolemy.actor.Manager.execute(Manager.java:321)
[java] at
org.kepler.distributed.SlaveController.run(SlaveController.java:514)
[java] at
org.kepler.distributed.SlaveController.ready(SlaveController.java:738)
[java] at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown
Source)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Stephen Neuendorffer wrote:
Rate changes are allowed in SDF, but only between iterations. Depending
on how you've specified the rate change, this may or may not be valid.
Can you send the error message?
Steve
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of Chad Berkley
Sent: Wednesday, December 12, 2007 1:42 PM
To: ptolemy-hackers
Subject: bug in SDFScheduler?
Hi,
I'm working on a pretty complex workflow that involves many
composites,
several of which have their own SDFDirector. The whole
workflow is SDF
(i.e. there aren't any other types of directors). The problem I'm
having is that there is a dynamic rate change pretty deep in the
workflow. I've made sure that all of the allowRateChanges
attributes in
each director is set to true, but I'm still getting an error
when I try
to run the workflow telling me that the the schedule can't be
computed
because of a dynamic rate change. Any ideas why this would
be? Should
I be getting this error, even though I've effectively told
the director
to ignore this condition?
thanks,
chad
--------------------------------------------------------------
--------------
Posted to the ptolemy-hackers mailing list. Please send
administrative
mail for this list to:
[EMAIL PROTECTED]
----------------------------------------------------------------------------
Posted to the ptolemy-hackers mailing list. Please send administrative
mail for this list to: [EMAIL PROTECTED]