Project

General

Profile

ptolemy-repeat-demo-in-PN.xml

jianwu jianwu, 09/11/2012 02:07 PM

 
1
<?xml version="1.0" standalone="no"?>
2
<!DOCTYPE entity PUBLIC "-//UC Berkeley//DTD MoML 1//EN"
3
    "http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
4
<entity name="ptolemy-repeat-demo-in-PN" class="ptolemy.actor.TypedCompositeActor">
5
    <display name="ptolemy-repeat-demo-in-PN"/>
6
    <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="9.0.devel">
7
    </property>
8
    <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:23490:191:15:urn:lsid:kepler-project.org/ns/:23596:418:13">
9
    </property>
10
    <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:23596:421:6">
11
    </property>
12
    <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={183, 28, 1073, 803}, maximized=false}">
13
    </property>
14
    <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[732, 654]">
15
    </property>
16
    <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.0">
17
    </property>
18
    <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{366.0, 327.0}">
19
    </property>
20
    <property name="PN Director" class="ptolemy.domains.pn.kernel.PNDirector">
21
        <property name="localClock" class="ptolemy.actor.LocalClock">
22
            <property name="globalTimeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1.0E-10">
23
            </property>
24
            <property name="clockRate" class="ptolemy.data.expr.Parameter" value="1.0">
25
            </property>
26
        </property>
27
        <property name="initialQueueCapacity" class="ptolemy.data.expr.Parameter" value="1">
28
        </property>
29
        <property name="maximumQueueCapacity" class="ptolemy.data.expr.Parameter" value="65536">
30
        </property>
31
<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
32
<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
33
<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Mudit Goel, Edward A. Lee, Xiaowen Xin</configure></property>
34
<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
35
<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>&#10;&lt;p&gt;PN Directors are natural candidates for managing workflows that require parallel processing on distributed computing systems. PN workflows are powerful because they have few restrictions. On the other hand, they can be very inefficient.&lt;/p&gt;&#10;&#10;&lt;p&gt;The Process Network (PN) Director is similar to the SDF Director in that it does not have a notion of time. However, unlike the SDF Director, the PN Director does not statically calculate firing schedules. Instead, a PN workflow is driven by data availability: tokens are created on output ports whenever input tokens are available and the outputs can be calculated. Output tokens are passed to connected actors, where they are held in a buffer until that next actor collects all required inputs and can fire. The PN Director finishes executing a workflow only when there are no new data token sources anywhere in the workflow. &lt;/p&gt;&#10;&#10;&lt;p&gt;The same execution process that gives the PN Director its flexibility can also lead to some unexpected results: workflows may refuse to automatically terminate because tokens are always generated and available to downstream actors, for example. If one actor fires at a much higher rate than another, a downstream actor's memory buffer may overflow, causing workflow execution to fail.&lt;/p&gt;&#10;&#10; &lt;p&gt;There are at least three ways for a PN model to terminate itself:&#10; &lt;ol&gt;&#10; &lt;li&gt;Have the model starve itself.  Typically, a boolean switch is used.&#10; See the PN OrderedMerge demo at&#10;  &lt;code&gt;ptolemy/domains/pn/demo/OrderedMerge/OrderedMerge.xml&lt;/code&gt;&lt;/li&gt;&#10;&#10; &lt;li&gt;Have the model call the Stop actor.  See the PN RemoveNilTokens demo at&#10;  &lt;code&gt;ptolemy/domains/pn/demo/RemoveNilTokens/RemoveNilTokens.xml&lt;/code&gt;&lt;/li&gt;&#10;&#10; &lt;li&gt;Set the &lt;i&gt;firingCountLimit&lt;/i&gt; actor&#10; parameter to the number of iterations desired.  Actors such as Ramp&#10; extend LimitedFiringSource and have the &lt;i&gt;firingCountLimit&lt;/i&gt; parameter.&lt;/li&gt;&#10; &lt;/ol&gt;&lt;/p&gt;&#10;</configure></property>
36
<property name="prop:initialQueueCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The initial size of the queues for each communication channel. The value is an integer that defaults to 1. This is an advanced parameter that can usually be left at its  default value.</configure></property>
37
<property name="prop:maximumQueueCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The maximum size of the queues for each communication channel. The value is an integer that defaults to 65536. To specify unbounded queues, set the value to 0. This is an advanced parameter that can usually be left at its  default value.</configure></property>
38
</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:director:2:2">
39
        </property>
40
        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.pn.kernel.PNDirector">
41
            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:2:2">
42
            </property>
43
        </property>
44
        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
45
        </property>
46
        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
47
        </property>
48
        <property name="_location" class="ptolemy.kernel.util.Location" value="[90.0, 120.0]">
49
        </property>
50
    </property>
51
    <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
52
        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
53
        </property>
54
        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
55
        </property>
56
        <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
57
        </property>
58
        <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
59
        </property>
60
        <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
61
        </property>
62
        <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
63
        </property>
64
        <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
65
        </property>
66
        <property name="anchor" class="ptolemy.data.expr.StringParameter" value="northwest">
67
        </property>
68
        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="The repeat will show repeated data with SDF director. &#10;This workflow repeat the data in input port by a certain number.&#10;The number is the value muliplication of two parameters: numberOfTimes and blockSize.&#10;&#10;Nothing comes out from repeat actor if using PN director.&#10;">
69
            <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
70
                <property name="height" class="ptolemy.data.expr.Parameter" value="15">
71
                </property>
72
                <property name="width" class="ptolemy.data.expr.Parameter" value="40">
73
                </property>
74
            </property>
75
        </property>
76
<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
77
<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
78
<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
79
<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
80
<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
81
<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is &quot;SansSerif&quot;.</configure></property>
82
<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
83
<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
84
<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
85
<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
86
<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
87
</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:23596:417:12">
88
        </property>
89
        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
90
            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
91
            </property>
92
        </property>
93
        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
94
        </property>
95
        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
96
        </property>
97
        <property name="_location" class="ptolemy.kernel.util.Location" value="[40.0, 365.0]">
98
        </property>
99
        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
100
        </property>
101
    </property>
102
    <entity name="Repeat" class="ptolemy.domains.sdf.lib.Repeat">
103
        <property name="numberOfTimes" class="ptolemy.data.expr.Parameter" value="2">
104
        </property>
105
        <property name="blockSize" class="ptolemy.data.expr.Parameter" value="2">
106
        </property>
107
<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
108
<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
109
<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Shankar Rao, Steve Neuendorffer</configure></property>
110
<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
111
<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>&#10;&lt;p&gt;The Repeat actor reads and repeats a &quot;block&quot; of tokens (i.e., one or more tokens of any type). The actor outputs the block a user-specified number of times.&lt;/p&gt;&#10;&#10;&lt;p&gt;Specify the block size with the blockSize parameter and the number of times to repeat the block with the numberOfTimes parameter.  Note: because the actor reads multiple input tokens at each iteration, it causes a sample rate increase by a factor of numberOfTimes, and hence affects the number of invocations of downstream actors. &lt;/p&gt;&#10;</configure></property>
112
<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts tokens of any type. Specify the number of tokens to read at each iteration with the blockSize parameter.</configure></property>
113
<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the block of tokens the specified number of times. Specify the number of times to repeat the output with the numberOfTimes parameter.</configure></property>
114
<property name="prop:blockSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of tokens in a block. The value is an integer and must be greater than zero. The default is 1. </configure></property>
115
<property name="prop:numberOfTimes" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The repetition factor. The value is an integer and must be greater than 0. The default is 2. </configure></property>
116
</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:23490:196:1">
117
        </property>
118
        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.sdf.lib.Repeat">
119
            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1130:1">
120
            </property>
121
        </property>
122
        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ControlActor">
123
        </property>
124
        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowControl">
125
        </property>
126
        <property name="_location" class="ptolemy.kernel.util.Location" value="[230.0, 240.0]">
127
        </property>
128
        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:364:1">
129
        </property>
130
    </entity>
131
    <entity name="Constant" class="ptolemy.actor.lib.Const">
132
        <property name="value" class="ptolemy.data.expr.Parameter" value="1">
133
        </property>
134
        <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
135
        </property>
136
        <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
137
        </property>
138
<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
139
<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
140
<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
141
<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
142
<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>&lt;p&gt;The Constant actor outputs a constant, which is specified by the value parameter. By default, the actor outputs the integer 1.&lt;/p&gt;&#10;&#10;&lt;p&gt;The actor can be used to output other types of values, e.g., a string (such as &quot;Hello&quot;) or a double (such as 1.2). The actor'&#10;s output type matches the type of the specified value.&lt;/p&gt;&#10;&#10;&lt;p&gt;The Ptolemy II Expression language defines the syntax&#10;for the &lt;i&gt;value&lt;/i&gt; parameter.  In Kepler, documentation is available&#10;via the Help button in the Edit Parameters window.  Documentation&#10;is also available on-line at&#10;&lt;a href=&quot;http://http://ptolemy.berkeley.edu/ptolemyII/designdoc.htm#in_browser&quot;&gt;http://ptolemy.berkeley.edu/ptolemyII/designdoc.htm&lt;/a&gt;.&lt;/p&gt;&#10;&#10;&lt;p&gt;NOTE: If using a PN Director, the 'firingCountLimit' parameter is often set to a finite integer (e.g. '1') so that the workflow will terminate. &lt;/p&gt;&#10;</configure></property>
143
<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the specified constant. By default, the output is 1.</configure></property>
144
<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.</configure></property>
145
<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
146
<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the Constant actor. By default, the value is the integer token 1. The value can be set to another type, e.g., a string (such as &quot;Hello&quot;) or a double (such as 1.2). The  output type matches the type of the value specified here.</configure></property>
147
</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:23596:420:1">
148
        </property>
149
        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.Const">
150
            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:877:1">
151
            </property>
152
        </property>
153
        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ConstantActor">
154
        </property>
155
        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
156
        </property>
157
        <property name="kar" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:kar:57:1">
158
        </property>
159
        <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
160
            <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
161
            </property>
162
            <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="40">
163
            </property>
164
        </property>
165
        <property name="_location" class="ptolemy.kernel.util.Location" value="{115, 265}">
166
        </property>
167
        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:1:1:urn:lsid:kepler-project.org/ns/:23490:193:2">
168
        </property>
169
        <port name="trigger" class="ptolemy.actor.TypedIOPort">
170
            <property name="input"/>
171
            <property name="multiport"/>
172
            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
173
            </property>
174
        </port>
175
    </entity>
176
    <entity name="Display" class="ptolemy.actor.lib.gui.Display">
177
        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={928, 292, 484, 186}, maximized=false}">
178
        </property>
179
        <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[484, 164]">
180
        </property>
181
        <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
182
        </property>
183
        <property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" value="40">
184
        </property>
185
        <property name="suppressBlankLines" class="ptolemy.data.expr.Parameter" value="false">
186
        </property>
187
        <property name="title" class="ptolemy.data.expr.StringParameter" value="">
188
        </property>
189
<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
190
<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
191
<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong, Edward A. Lee</configure></property>
192
<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
193
<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>&lt;p&gt;The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.&lt;/p&gt;&#10;&#10;&lt;p&gt;Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and then re-opened. &lt;/p&gt;&#10;&#10;&lt;p&gt;If the input is a string token, then the actor strips the surrounding quotation marks before displaying the value.&lt;/p&gt; &#10;&#10;&lt;p&gt;Select the suppressBlankLines parameter to specify that the actor not add blank lines to the display. By default, the actor will add blank lines.&lt;/p&gt;&#10;&#10;&lt;p&gt;Note: this actor can consume large amounts of memory. It is not advisable to use it to display large output streams.&lt;/p&gt;</configure></property>
194
<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any type.</configure></property>
195
<property name="prop:suppressBlankLines" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should display blank lines (the default) or suppress them.</configure></property>
196
<property name="prop:rowsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical size of the display, in rows. The value is an integer that defaults to 10.</configure></property>
197
<property name="prop:columnsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal size of the display, in columns. The value is an integer that defaults to 40.</configure></property>
198
<property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The title of the text display window. If specified, the value will appear in the title bar of the text display window.</configure></property>
199
</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:23490:195:3">
200
        </property>
201
        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.gui.Display">
202
            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:883:1">
203
            </property>
204
        </property>
205
        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
206
        </property>
207
        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#TextualOutput">
208
        </property>
209
        <property name="_location" class="ptolemy.kernel.util.Location" value="{365, 265}">
210
        </property>
211
        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:7:1">
212
        </property>
213
    </entity>
214
    <relation name="relation" class="ptolemy.actor.TypedIORelation">
215
    </relation>
216
    <relation name="relation2" class="ptolemy.actor.TypedIORelation">
217
    </relation>
218
    <link port="Repeat.input" relation="relation"/>
219
    <link port="Repeat.output" relation="relation2"/>
220
    <link port="Constant.output" relation="relation"/>
221
    <link port="Display.input" relation="relation2"/>
222
</entity>