[kepler-dev] PN + DDF

Norbert Podhorszki pnorbert at cs.ucdavis.edu
Thu Aug 24 16:02:55 PDT 2006

Hi Gang,
It is fine for me with the current settings now.

I started to use DDF in Kepler because my workflows are heavily 
control-flow "uglified" with loops and conditions. Others still use SDF 
and PN (and there is one guy showing interest in CT).
That is, I am not using DDF because of its special capabilities, only that 
because it can be used for looping and branching.

Concerning your response: how can I "manually set the rates at the
boundaries" anyway?

Best regards

On Thu, 24 Aug 2006, Gang Zhou wrote:

> Yes, you need to set  the parameter "runUntilDeadlockInOneIteration"
> to be true so that the DDF submodel sends out one token in each
> iteration. If it is not set, then one submodel iteration is one "basic
> iteration" (see the comment at the beginning of DDFDirector.java
> for its definition) which may or may not invoke BooleanSwitch
> actor. Another way to achieve the same effect is to add a parameter
> named "requiredFiringsPerIteration" with value 1 to BooleanSwitch
> actor so that in each submodel iteration, BooleanSwitch actor is
> assured to fire once.
> One may ask why not simply defining one iteration according to what
> people would normally understand, like in this case. Well, that is
> because DDF MoC is turing-complete and it is impossible to do
> that in general. Therefore parameters like
> "runUntilDeadlockInOneIteration" or  "requiredFiringsPerIteration"
> are used to help people to decide what they want in one iteration.
> About the issue of DDFBooleanSelect and BooleanSelect, sigh :(,
> Edward once pointed out the potential confusion they will cause.
> The short answer is you have to use DDFBooleanSelect in DDF
> model. The long story is we have BooleanSelect first. But it does
> not work in DDF. So I wrote a new actor to be used in DDF. Both
> actors have the same behavoir in PN, but they have different
> behavior in DE. Once I tried to write one actor that combines both
> behavior, but I couldn't get it to work. Then I realized they are
> two distinct actors and each has its own behavior.  Since
> BooleanSelect has taken the name, I just don't know how to name
> the new actor (right now it's named DDFBooleanSelect) so that
> it won't cause confusion. Comments?
> Gang


      Norbert Podhorszki
      University of California, Davis
      Department of Computer Science
      1 Shields Ave, 2236 Kemper Hall
      Davis, CA 95616
      (530) 754-8188
      pnorbert at cs.ucdavis.edu

More information about the Kepler-dev mailing list