[kepler-dev] Looping a process in kepler

Sivagowri Swaminathan sivagowri at hotmail.com
Wed Jul 19 19:02:56 PDT 2006

Hi Christopher

Your email arrived just in time when I was contemplating to send another 
email to the group but was feeling burdened with the thought of expressing 
Prof. Edward lee sent me a reference file and info regarding the nature of 
SDF domains and looping.
As you mention that DDF domains are capable of handling the looping concept 
better, I do not think it is available in kepler. I am using kepler.
What is the best way to loop a process in kepler?
I found a loop-based workflow in ptolemy and created the same workflow in 
kepler using a PN director.
I do not want to use a PN director.

Can you help me with a sample workflow such as the following?

The workflow consists of a filereader that reads a file. If the contents of 
file contains a string "xyz" then I need to keep reading the file until its 
contents does not contain "xyz".  let us suppose that this file keeps 
changing behind the scene. how to incorporate the looping process?

How can I import the DDF director into kepler?

Any suggestions are welcome.


>From: "Christopher Brooks" <cxh at eecs.berkeley.edu>
>To: "Sivagowri Swaminathan" <sivagowri at hotmail.com>
>CC: kepler-dev at ecoinformatics.org, Kepler-users at ecoinformatics.org
>Subject: Re: [kepler-dev] Looping a process in kepler Date: Tue, 18 Jul 
>2006 20:55:31 -0700
>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 
>    k
>     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
>    n
>     the pipe. Each module/process is a composite actor, having an input 
>port an
>    d
>     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 
>    n
>     as the external input port, this is not legal in SDF" every time. is 
>     appropriate for workflows such as these?
>     since I use a pipelined approach, I do not want to use PN director, as 
>     component will run in its own thread.
>     can someone give me an example for looping which does not involve 
>     for loops.
>     Thanx
>     Siva
>     _______________________________________________
>     Kepler-dev mailing list
>     Kepler-dev at ecoinformatics.org

More information about the Kepler-dev mailing list