[kepler-dev] Looping a process in kepler

Christopher Brooks cxh at eecs.berkeley.edu
Fri Jul 21 14:11:17 PDT 2006

Hi Siva,
Sorry for the delay, but I can tell I'm just not going to be able
to give as full an answer as I would like, but here is what I know.

Siva writes:
> Date: Wed, 19 Jul 2006 22:02:56 -0400
> 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 
> it.
> 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?

Probably the easiest thing would be to get the DDF domain working and
use it in Kepler.

> I found a loop-based workflow in ptolemy and created the same workflow in 
> kepler using a PN director.
> http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII5.0/ptII5.0/ptolemy/domains/ddf/
>     demo/Loop/Loop.htm
> 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?

Perhaps you could do this by creating an SDF composite actor that
would read the file, call Sleep and then loop?  You could try the
period and synchronizeToRealtime parameters of SDFDirector.

I think someone was asking about looping and reading a file on the
Kepler-dev list, you could check the archive.  Me, I would probably
write an actor that was based on LineReader that would loop and read
data from a file until the data changed.

> How can I import the DDF director into kepler?
I'm not sure.  You could look at how PNDirector is imported.


> Any suggestions are welcome.
> Thanx
> Siva
> >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.
> >
> >_Christopher
> >
> >--------
> >
> >     Hi all
> >
> >     I am trying to repeat a process using an if-then-else logic and I get 
> >struc
> >    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 
> >relatio
> >    n
> >     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.
> >
> >     Thanx
> >     Siva
> >
> >
> >     _______________________________________________
> >     Kepler-dev mailing list
> >     Kepler-dev at ecoinformatics.org
> >     
> >http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-dev
> >--------

More information about the Kepler-dev mailing list