<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Ptolemy II does not have a specific Linda model of computation, but
there are a number of resources for coordination languages.<br>
<br>
Edward Lee's IEEE Computer article "The Problem with Threads"
provides a good overview of the Ptolemy II's view of coordination
languages<br>
<a class="moz-txt-link-freetext" href="http://ptolemy.eecs.berkeley.edu/publications/papers/06/problemwithThreads/">http://ptolemy.eecs.berkeley.edu/publications/papers/06/problemwithThreads/</a><br>
<br>
Edward and I developed a talk a while back that talks more about
coordination languages and Ptolemy II.<br>
<a class="moz-txt-link-freetext" href="http://chess.eecs.berkeley.edu/pubs/164">http://chess.eecs.berkeley.edu/pubs/164</a><br>
<br>
Try searching the CHESS website for coordination languages. With
Google, I did<br>
coordination language site:chess.eecs.berkeley.edu<br>
<br>
More specifically, we started work on Synchronous Publisher
Subscriber model of <br>
computation that was implemented via
ptolemy/domains/sps/kernel/SPSDirector.java<br>
<br>
The class comment for that file was:<br>
<blockquote type="cite">The Synchronous Publisher Subscriber (SPS)
model of
computation.
<br>
<p>
<br>
In this model of computation input and output ports have
channel
names
<br>
that are similar to publisher and subscribers. The output port
name
may
<br>
have wildcards, which may be matched by input ports. Output
ports
may
<br>
have initial values. If an output port does not have an
initial
value,
<br>
then a default value of zero is used. The actual default value
depends
<br>
on the token
type.
<br>
</p>
<br>
<br>
<p>The way the execution occurs is that during the first
iteration,
<br>
the output ports are initialized with the initial values. The
corresponding
<br>
input ports are then updated. The actors are fired and the
values
<br>
of the output ports are updated and the iteration
ends.</p>
<br>
<br>
<p>This model of computation is similar to a Cellular
Automaton
model
<br>
of computation. This model of computation differs from
the
<br>
ptolemy/domains/ca/kernel/CADirector.java in that CADirector
operates
<br>
on a matrix and the value of a cell is dependent on the
values
<br>
of the adjacent values in the matrix. In this model of
computation,
<br>
values may depend on many different
values.</p>
<br>
<br>
<p>This model of computation may be a subset of
Linda.</p> </blockquote>
However, Edward has recently updated Ptolemy II to include a
PublisherPort that has an initialOutputs parameter that can act much
like a SampleDelay.<br>
<br>
See
<a class="moz-txt-link-freetext" href="http://chess.eecs.berkeley.edu/ptexternal/src/ptII/doc/codeDoc/ptolemy/actor/PublisherPort.html">http://chess.eecs.berkeley.edu/ptexternal/src/ptII/doc/codeDoc/ptolemy/actor/PublisherPort.html</a><br>
<br>
There is also a SubscriberPort for receiving these data from the
PublisherPort.<br>
<br>
We ended up removing the SPSDirector and are moving forward with
PublisherPort and SubscriberPort.<br>
<br>
This code was developed last month, and I'm actively working on it
today.<br>
There are various demos with the name
ptolemy/actor/lib/test/auto/PublisherPort*.xml<br>
<br>
To try out this code in Kepler, you would need to build a Kepler
development version, see
<a class="moz-txt-link-freetext" href="https://kepler-project.org/developers/teams/build/systems/build-system/extension-build-system">https://kepler-project.org/developers/teams/build/systems/build-system/extension-build-system</a><br>
<br>
To instantiate a PublisherPort, start Kepler and do Tools ->
Instantiate Entity and then type in the classname
ptolemy.actor.PublisherPort<br>
You will get an error message, but the PublisherPort will be
created.<br>
<br>
To view the tests from Kepler, File -> Open
kepler/ptolemy/src/ptolemy/actor/lib/test/auto<br>
and then open the various PublisherPort*.xml demos.<br>
<br>
It would be interesting to implement some classic Linda models in
Ptolemy II using the PublisherPorts. I remember the article in
Scientific American, but a quick search did not find it. I'd be
interested in getting feedback about how the
PublisherPort/SubscriberPort compare and contrast with Linda<br>
<br>
BTW - The Linda Wiki article says:<br>
<blockquote type="cite">Criticisms of Linda from the multiprocessing
community tend to focus on the decreased speed of operations in
Linda systems as compared to MPI systems.[citation needed] While
not without justification, these claims were largely refuted for
an important class of problems.[2] Detailed criticisms of the
Linda model can also be found in Steven Ericsson-Zenith's book
Process Interaction Models.[3]</blockquote>
Edward's "Disciplined Message Passing" paper at
<a class="moz-txt-link-freetext" href="http://chess.eecs.berkeley.edu/pubs/516.html">http://chess.eecs.berkeley.edu/pubs/516.html</a> might be of interest.<br>
<br>
_Christopher<br>
<br>
<br>
<br>
<div class="moz-cite-prefix">On 7/18/12 2:43 AM, Patrick Janssen
wrote:<br>
</div>
<blockquote
cite="mid:CAMxTbrjvN-jzN6jq+D7ZjwQH5_asGW-SUNYVWHP3Y=1g7wYOFg@mail.gmail.com"
type="cite">I am interested in creating a Linda type of
computational model, where actors operate in parallel on data
stored in and retrieved from shared, virtual, associative memory.<br>
<a moz-do-not-send="true"
href="http://en.wikipedia.org/wiki/Linda_%28coordination_language%29">http://en.wikipedia.org/wiki/Linda_%28coordination_language%29</a>
<br>
<a moz-do-not-send="true"
href="http://en.wikipedia.org/wiki/Tuple_space">http://en.wikipedia.org/wiki/Tuple_space</a><br>
<br>
What is the best way to do this? Any suggestions? (Or does Ptolemy
have features more suited to this?)<br>
<br>
<div
style="padding:0px;margin-left:0px;margin-top:0px;overflow:hidden;word-wrap:break-word;color:black;font-size:10px;text-align:left;line-height:130%"></div>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Kepler-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Kepler-users@kepler-project.org">Kepler-users@kepler-project.org</a>
<a class="moz-txt-link-freetext" href="http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users">http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users</a>
</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Christopher Brooks, PMP University of California
CHESS Executive Director US Mail: 337 Cory Hall
Programmer/Analyst CHESS/Ptolemy/Trust Berkeley, CA 94720-1774
ph: 510.643.9841 (Office: 545Q Cory)
home: (F-Tu) 707.665.0131 cell: 707.332.0670 </pre>
<br>
<br>
</body>
</html>