[kepler-dev] Using PN Directors in Kepler

Ilkay Altintas altintas at sdsc.edu
Mon Jun 20 14:04:44 PDT 2005


Hi Dan,

Just as an addition, there is a ppt slide set on how PN and SDF works  
in CVS under
		http://cvs.ecoinformatics.org/cvs/cvsweb.cgi/kepler/docs/ 
presentations/KeplerPTIIDomains%231.ppt

It gives a summary of how both domains work, etc...

-ilkay

On Jun 17, 2005, at 11:08 AM, Dan Higgins wrote:

> Perhaps most Kepler users understand this, but I just now managed to
> understand some of the details of using PN directors and thought I  
> would
> try to document some issues.
>
> My inital problem came when I tried to replace the SDF director in the
> simple GARP demo workflow (kepler\workflows\eco\garpModel_ImageJ.xml).
> This workflow has 2 Constant actors, the 3 GARP actors (JNI), and an
> ImageJ output display actor. When I replaces the SDF director by a PN
> director, Kepler either crashed or continued to execute forever.
>
> One method for getting this workflow to run under PN is shown in the
> slightly modified version
> (kepler\workflows\eco\garpModel_ImageJ_PN.xml). The required changes  
> are
> the replacement of the SDF director with a PN director and the addition
> of a Ramp actor before the 2 Constant actors with the Ramp actor set to
> fire only once.
>
> Why does this work? The real problem is the Constant actors used to
> supply string inputs (file names) to the GARP actors. The ordinary
> Constant actor will continually supply tokens to whatever actor it is
> connected to.
>
> As I understand it, all actors in a workflow are in separate theads.
> Actors receive fire events (in some order I don't understand) but they
> 'block' on the 'get()' method for getting the input port tokens. This
> means that the code in the 'fire' method of actors will not execute
> until 'get' actually has an input token on all ports where it is  
> looking
> for tokens. And, of course, it will not put output tokens on output
> ports until the end of the fire method. PN execution ends when all  
> ports
> are 'blocked'; i.e. there are no inputs.
>
> This explains the problem with the GARP workflow. When the SDF director
> is just replaced with the PN director, the Constant actors supply  
> tokens
> to the GARP PresampleLayers actor and it begins to run. But the PN
> director will continue to supply tokens, so that GARP actor keeps
> getting fired even before the first instance has completed. Adding the
> Ramp actor makes sure the Contant actors are only fired once, so the PN
> director doesn't keep trying to fire the GARP actor (and after all the
> actors are finished the execution terminates).
>
> [Note that Efrat recognized this problem some time ago and created the
> ConstOnce actor. This actor just extends the Constant actor and returns
> false from the PostFire event to stop returning tokens.]
>
> -- 
> *******************************************************************
> Dan Higgins                                  higgins at nceas.ucsb.edu
> http://www.nceas.ucsb.edu/    Ph: 805-893-5127
> National Center for Ecological Analysis and Synthesis (NCEAS)
> Marine Science Building - Room 3405
> Santa Barbara, CA 93195
> *******************************************************************
>
> _______________________________________________
> 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