[kepler-dev] Looping a process in kepler

Christopher Brooks cxh at eecs.berkeley.edu
Tue Jul 18 20:55:31 PDT 2006

Hi Sivagowri,
I'm just going over old email.
I'm not sure if anyone got back to you on this, but you probably want
to use DDF here.

In Ptolemy, see $PTII/ptolemy/domains/ddf/demo/IfThenElse/IfThenElse.xml

DDF is described as:

The Dynamic Dataflow (DDF) domain is a superset of the Synchronous
Dataflow (SDF) and Boolean dataflow (BDF) domains. In the SDF domain,
an actor consumes and produces a fixed number of tokens per
firing. This static information makes possible compile-time
scheduling. In the DDF domain, an actor could change the production
and consumption rates after each firing. The scheduler makes no
attempt to construct a compile-time schedule, neither does it attempt
to statically answer questions about deadlock and boundedness, which
are fundamentally undecidable. Instead, each actor has a set of
sequential firing rules (patterns) and can be fired if one of them is
satisfied, i.e., one particular firing pattern forms a prefix of
sequences of unconsumed tokens at input ports.  The scheduler
dynamically schedules the firing of actors according to some criteria.
The canonical actors in the DDF domain include Select and Switch,
which consume or produce tokens on different channels based on the
token received from the control port.



    Hi all
    I am trying to repeat a process using an if-then-else logic and I get struc
    each time.
    Here is the scenario:
    I have three processes [ not sure if thats the right word, it can be 
    considered as modules doing a specific task] in a pipeline, say process A, 
    B, C.
    In process B, if the output is "xyz" I have to repeat process B until I get
    the desired output, in which case, the control moves to the next module dow
    the pipe. Each module/process is a composite actor, having an input port an
    an output port. I have a SDF director for the main workflow which should be
    run only once.
    How do I trigger process B again?
    I get an error message saying that the "output port drives the same relatio
    as the external input port, this is not legal in SDF" every time. is SDF 
    appropriate for workflows such as these?
    since I use a pipelined approach, I do not want to use PN director, as each
    component will run in its own thread.
    can someone give me an example for looping which does not involve integer 
    for loops.
    Kepler-dev mailing list
    Kepler-dev at ecoinformatics.org

More information about the Kepler-dev mailing list