[kepler-dev] Re: A customized ptolemy for bioinformatic

Bertram Ludaescher ludaesch at sdsc.edu
Sat May 15 18:28:28 PDT 2004


Christopher Hylands Brooks writes:
 > As to reconnecting to a running model, we have not addressed that.
 > Being able to connect to a running java process, perhaps using
 > the Java debugging interface might be a start.  

This is an interesting problem that we also encounter in various forms
in Kepler. For example, for long running workflows, it is desirable to
be able to attach and detach the user's "console" from the running
model/workflow. 

(Simpler!?) variants of this problem occur, e.g., when user input is
fed back into the workflow, e.g. from an independently launched web
browser. The Kepler browserUI actor does exactly that and has a
particular way of doing this (maybe it can be simplified, improved,
generalized..)

Bertram


Christopher Hylands Brooks writes:
 > From: Franck Valentin <franckv at pasteur.fr> writes:
 > > Hi all,
 > > 
 > > 
 > > perhaps someone could give me some advice or remarks on the application
 > > based on Ptolemy and Vergil I need to develop.
 > > 
 > > 1 - This application will execute bioinformatics workflows designed from
 > > a graphical interface (a customized vergil). For a main part the actors
 > > are external applications a user can easily add to his workspace without
 > > programming (I need to develop an actor which acts as a wrapper). 
 > 
 > Right, Bertram Ludaescher mentioned Kepler last week, which is a
 > bioinformatics effort:
 > 
 > > Hi Franck:
 > >
 > > fyi: you may also be interested in the following Ptolemy II "spin-off" 
 > > called Kepler that has been used for bioinformatics and other
 > > scientific workflows: 
 > >  http://kepler.ecoinformatics.org
 > >
 > > The first official Kepler release is planned for later this month, but
 > > the code is available already (and earlier "pre-releases").
 > >
 > > There is also a page contributed by one of the Kepler folks to using
 > > Eclipse:
 > > http://kepler.ecoinformatics.org/eclipse.html
 > 
 > Creating a customized Vergil is fairly straight forward, see the
 > configurations in $PTII/ptolemy/configs
 > 
 > Currently, vergil supports the notion of a user library.  If
 > you select an actor, you can right click and save it in the user
 > library.
 > 
 > There is also Caltrop, which is a language developed by Jorn Janneck
 > and others that can be used to write actors.
 > http://embedded.eecs.berkeley.edu/caltrop/
 > 
 > Ptolemy II 4.0 includes Caltrop
 > 
 > > 2 - The workflow must be able to run these applications concurrently :
 > > I think of using a customized PN director which executes the workflow
 > > only one time.
 > 
 > Ptolemy II supports running multiple models concurrently.
 > Try running the SDF LMS Adaptive Filter and the SDF Sound Spectrum
 > models at the same time.
 > Running concurrent models that are not doing lots of continuous
 > graphics probably works best.
 > 
 > > 3 - I need to be able to run several instances of one model. For example
 > > after creating a model which analyze DNA sequences, I launch several
 > > instances concurrently with different parameters and then compare the
 > > results between the instances.
 > 
 > The 4.0 what's new page says:
 > "Version 4.0 introduces the first of a family of lifecycle management
 > actors, which are actors that control the execution of associated
 > models. This example uses one model to control repeated runs of
 > another."
 > SDF Multiple Runs and
 > actor/lib/hoc/demo/ModelReference/ModelReference.xml
 > both illustrate this.
 > 
 > 
 > > 4 - As the external applications can be very long (several days), I
 > > would like to be able to a design the workflow, launch ptolemy in
 > > background (without graphical interface) and retrieve at any moment the
 > > current state from a graphical interface used as a viewer.
 > 
 > We've though about this some, but don't have a ready made solution.
 > 
 > Ptolemy II currently runs a couple of display cases here at UC
 > Berkeley.
 > 
 > One display case shows images in slide show fashion.  This model never
 > seems to crash or get slower, it has been running for months at a
 > time.  Another display case shows multiple vergil models and uses the
 > serial port and X10 interface.  This model tends to slow down after a
 > day, probably due to memory leaks.  We've looked at the leaks, and
 > they tend to involve Vergil and AWT or Swing.  For example, the Java
 > JTextArea is a known leaker of memory.
 > 
 > One solution is to execute the submodels as separate processes.
 > We have an Exec actor that does this, there is a test in
 > ptolemy/actor/lib/test/auto/ExecRunDemos.xml
 > 
 > Models that do not have use graphics are much more likely to run
 > for a long time than models that use graphics. We've spent quite
 > a bit of effort making it so that models can be run without a
 > graphical head.  The nightly build runs without a graphical head,
 > and $PTII/ptolemy/actor/gui/MoMLSimpleApplication should run
 > non graphical models.
 > 
 > As to reconnecting to a running model, we have not addressed that.
 > Being able to connect to a running java process, perhaps using
 > the Java debugging interface might be a start.  
 > 
 > The model could perhaps also make its state known as a web service,
 > or write results to a file.
 > 
 > The datagram and serial actors have a similar issue, where often
 > we are only interested in the last N data points.  You could
 > take a look at those actors.  
 > Perhaps the external application could make data available via
 > datagrams, and your monitoring application could read them.
 > 
 > Ptolemy II also includes some JXTA actors developed by
 > Yang Zhao. 
 > www.jxta.org says:
 > "JXTA technology is a set of open protocols that allow any connected
 > device on the network ranging from cell phones and wireless PDAs to
 > PCs and servers to communicate and collaborate in a P2P manner.
 > 
 > JXTA peers create a virtual network where any peer can interact with
 > other peers and resources directly even when some of the peers and
 > resources are behind firewalls and NATs or are on different network
 > transports."
 > 
 > The jxta actors are in ptolemy/actor/lib/jxta.
 > The actors are really a proof of concept, they are not a finished
 > product.
 > 
 > 
 > > I have already made a little prototype which launches external
 > > applications and displays the state of each. I've tried with a PN
 > > director to try the concurrent executions but it seems to do an infinite
 > > loop (I'm currently reading the doc and I think my comprehension of
 > > behaviours is not perfect yet !)
 > > I think the point 4 is the most délicate but I'm rather confident as
 > > ptolemy and vergil communicates using event messages. It seems I don't
 > > need to break all the architecture !
 > 
 > > Do you think my features are "reasonable" ? ;)
 > > Sorry if some answers are in the doc, I'm currently reading it too !
 > > 
 > > 
 > > 
 > > Franck
 > > 
 > -Christopher
 > 
 > ----------------------------------------------------------------------------
 > Posted to the ptolemy-hackers mailing list.  Please send administrative
 > mail for this list to: ptolemy-hackers-request at ptolemy.eecs.berkeley.edu




More information about the Kepler-dev mailing list