Salome HOME
Small fixes in tests.
[modules/yacs.git] / src / yacsloader / samples / wlm_2foreach_with_cache.xml
1 <?xml version='1.0' encoding='iso-8859-1' ?>
2 <proc name="2foreach_with_cache">
3    <property name="executor" value="workloadmanager"/>
4    <type name="string" kind="string"/>
5    <struct name="Engines/dataref">
6       <member name="ref" type="string"/>
7    </struct>
8    <type name="bool" kind="bool"/>
9    <sequence name="boolvec" content="bool"/>
10    <type name="double" kind="double"/>
11    <sequence name="dblevec" content="double"/>
12    <objref name="file" id="file"/>
13    <type name="int" kind="int"/>
14    <sequence name="intvec" content="int"/>
15    <struct name="stringpair">
16       <member name="name" type="string"/>
17       <member name="value" type="string"/>
18    </struct>
19    <sequence name="propvec" content="stringpair"/>
20    <objref name="pyobj" id="python:obj:1.0"/>
21    <sequence name="seqboolvec" content="boolvec"/>
22    <sequence name="seqdblevec" content="dblevec"/>
23    <sequence name="seqint" content="int"/>
24    <sequence name="seqintvec" content="intvec"/>
25    <sequence name="seqpyobj" content="pyobj"/>
26    <sequence name="stringvec" content="string"/>
27    <sequence name="seqstringvec" content="stringvec"/>
28    <container name="DefaultContainer">
29       <property name="container_kind" value="Salome"/>
30       <property name="attached_on_cloning" value="0"/>
31       <property name="container_name" value="FactoryServer"/>
32       <property name="name" value="localhost"/>
33    </container>
34    <container name="c1">
35       <property name="container_kind" value="Salome"/>
36       <property name="attached_on_cloning" value="1"/>
37       <property name="nb_parallel_procs" value="1"/>
38       <property name="type" value="multi"/>
39       <property name="use_py_cache" value="1"/>
40    </container>
41    <container name="c2">
42       <property name="container_kind" value="Salome"/>
43       <property name="attached_on_cloning" value="1"/>
44       <property name="nb_parallel_procs" value="4"/>
45       <property name="type" value="multi"/>
46       <property name="use_py_cache" value="1"/>
47    </container>
48    <inline name="Begin">
49       <script><code><![CDATA[import time
50 vals = [ i for i in range(40)]
51 nbbranches = len(vals)
52 t0=time.time()
53 ]]></code></script>
54       <load container="DefaultContainer"/>
55       <outport name="t0" type="pyobj"/>
56       <outport name="vals" type="intvec"/>
57       <outport name="nbbranches" type="int"/>
58    </inline>
59    <inline name="End">
60       <script><code><![CDATA[import time
61 tf=time.time()
62 total_time=int(tf-t0)
63
64 ok = True
65 s_expected = sum(vals)
66 err_message = ""
67 tr1={}
68 for cont_name, s in r1:
69     if cont_name in tr1.keys():
70         v = tr1[cont_name]
71         if s > v:
72             tr1[cont_name] = s
73     else:
74         tr1[cont_name] = s
75
76 s1 = sum(tr1.values())
77 if s_expected != s1:
78     ok = False
79     err_message += "Error on the first foreach.\n"
80     err_message += "Expected sum:{}\n".format(s_expected)
81     err_message += "Obtained sum:{}\n".format(s1)
82
83 tr2={}
84 for cont_name, s in r2:
85     if cont_name in tr2.keys():
86         v = tr2[cont_name]
87         if s > v:
88             tr2[cont_name] = s
89     else:
90         tr2[cont_name] = s
91
92 s2 = sum(tr2.values())
93 if s_expected != s2:
94     ok = False
95     err_message += "Error on the second foreach.\n"
96     err_message += "Expected sum:{}\n".format(s_expected)
97     err_message += "Obtained sum:{}\n".format(s2)
98
99 coeff_cont = len(tr1) + ( 4 * len(tr2))
100 print("total_time:", total_time)
101 print(err_message)
102 ]]></code></script>
103       <load container="DefaultContainer"/>
104       <inport name="t0" type="pyobj"/>
105       <inport name="r1" type="seqpyobj"/>
106       <inport name="r2" type="seqpyobj"/>
107       <inport name="vals" type="intvec"/>
108       <outport name="total_time" type="int"/>
109       <outport name="ok" type="bool"/>
110       <outport name="coeff_cont" type="int"/>
111       <outport name="err_message" type="string"/>
112    </inline>
113    <foreach name="ForEach1" nbranch="1" loopWeight="-1" type="int">
114       <remote name="PyNode1" elementaryWeight="-1">
115          <script><code><![CDATA[import time
116 if "s" not in globals():
117     # long initialization here to be done only once
118     time.sleep(1)
119     s=0
120 s += v
121 container_name = my_container.name
122 result = (container_name, s)
123 time.sleep(1)
124 ]]></code></script>
125          <load container="c1"/>
126          <inport name="v" type="int"/>
127          <outport name="result" type="pyobj"/>
128       </remote>
129    </foreach>
130    <foreach name="ForEach2" nbranch="1" loopWeight="-1" type="int">
131       <remote name="PyNode2" elementaryWeight="-1">
132          <script><code><![CDATA[import time
133 if "s" not in globals():
134     # long initialization here to be done only once
135     time.sleep(1)
136     s=0
137 s += v
138 container_name = my_container.name
139 result = (container_name, s)
140 time.sleep(1)
141 ]]></code></script>
142          <load container="c2"/>
143          <inport name="v" type="int"/>
144          <outport name="result" type="pyobj"/>
145       </remote>
146    </foreach>
147    <foreach name="Create_C1_containers" nbranch="15" loopWeight="-1" type="int">
148       <remote name="wait_c1" elementaryWeight="-1">
149          <script><code><![CDATA[import time
150 time.sleep(1)
151 ]]></code></script>
152          <load container="c1"/>
153          <inport name="x" type="int"/>
154       </remote>
155    </foreach>
156    <foreach name="Create_C2_containers" nbranch="3" loopWeight="-1" type="int">
157       <remote name="wait_c2" elementaryWeight="-1">
158          <script><code><![CDATA[import time
159 time.sleep(1)
160 ]]></code></script>
161          <load container="c2"/>
162          <inport name="x" type="int"/>
163       </remote>
164    </foreach>
165    <inline name="delay">
166       <script><code><![CDATA[import time
167 time.sleep(1)
168 ]]></code></script>
169       <load container="DefaultContainer"/>
170    </inline>
171    <control> <fromnode>Begin</fromnode> <tonode>ForEach1</tonode> </control>
172    <control> <fromnode>Begin</fromnode> <tonode>ForEach2</tonode> </control>
173    <control> <fromnode>Begin</fromnode> <tonode>End</tonode> </control>
174    <control> <fromnode>Begin</fromnode> <tonode>delay</tonode> </control>
175    <control> <fromnode>ForEach1</fromnode> <tonode>End</tonode> </control>
176    <control> <fromnode>ForEach2</fromnode> <tonode>End</tonode> </control>
177    <control> <fromnode>Create_C1_containers</fromnode> <tonode>Create_C2_containers</tonode> </control>
178    <control> <fromnode>Create_C2_containers</fromnode> <tonode>Begin</tonode> </control>
179    <control> <fromnode>delay</fromnode> <tonode>ForEach1</tonode> </control>
180    <datalink control="false">
181       <fromnode>Begin</fromnode> <fromport>t0</fromport>
182       <tonode>End</tonode> <toport>t0</toport>
183    </datalink>
184    <datalink control="false">
185       <fromnode>Begin</fromnode> <fromport>vals</fromport>
186       <tonode>ForEach1</tonode> <toport>SmplsCollection</toport>
187    </datalink>
188    <datalink control="false">
189       <fromnode>Begin</fromnode> <fromport>vals</fromport>
190       <tonode>End</tonode> <toport>vals</toport>
191    </datalink>
192    <datalink control="false">
193       <fromnode>Begin</fromnode> <fromport>vals</fromport>
194       <tonode>ForEach2</tonode> <toport>SmplsCollection</toport>
195    </datalink>
196    <datalink control="false">
197       <fromnode>Begin</fromnode> <fromport>nbbranches</fromport>
198       <tonode>ForEach1</tonode> <toport>nbBranches</toport>
199    </datalink>
200    <datalink control="false">
201       <fromnode>Begin</fromnode> <fromport>nbbranches</fromport>
202       <tonode>ForEach2</tonode> <toport>nbBranches</toport>
203    </datalink>
204    <datalink control="false">
205       <fromnode>ForEach1</fromnode> <fromport>evalSamples</fromport>
206       <tonode>ForEach1.PyNode1</tonode> <toport>v</toport>
207    </datalink>
208    <datalink control="false">
209       <fromnode>ForEach2</fromnode> <fromport>evalSamples</fromport>
210       <tonode>ForEach2.PyNode2</tonode> <toport>v</toport>
211    </datalink>
212    <datalink control="false">
213       <fromnode>Create_C1_containers</fromnode> <fromport>evalSamples</fromport>
214       <tonode>Create_C1_containers.wait_c1</tonode> <toport>x</toport>
215    </datalink>
216    <datalink control="false">
217       <fromnode>Create_C2_containers</fromnode> <fromport>evalSamples</fromport>
218       <tonode>Create_C2_containers.wait_c2</tonode> <toport>x</toport>
219    </datalink>
220    <datalink control="false">
221       <fromnode>ForEach1.PyNode1</fromnode> <fromport>result</fromport>
222       <tonode>End</tonode> <toport>r1</toport>
223    </datalink>
224    <datalink control="false">
225       <fromnode>ForEach2.PyNode2</fromnode> <fromport>result</fromport>
226       <tonode>End</tonode> <toport>r2</toport>
227    </datalink>
228    <parameter>
229       <tonode>ForEach1</tonode><toport>nbBranches</toport>
230       <value><int>1</int></value>
231    </parameter>
232    <parameter>
233       <tonode>Create_C1_containers</tonode><toport>nbBranches</toport>
234       <value><int>15</int></value>
235    </parameter>
236    <parameter>
237       <tonode>Create_C1_containers</tonode><toport>SmplsCollection</toport>
238       <value><array><data>
239 <value><int>1</int></value>
240 <value><int>2</int></value>
241 <value><int>3</int></value>
242 <value><int>4</int></value>
243 <value><int>5</int></value>
244 <value><int>6</int></value>
245 <value><int>7</int></value>
246 <value><int>8</int></value>
247 <value><int>9</int></value>
248 <value><int>10</int></value>
249 <value><int>11</int></value>
250 <value><int>12</int></value>
251 <value><int>13</int></value>
252 <value><int>14</int></value>
253 <value><int>15</int></value>
254 </data></array></value>
255    </parameter>
256    <parameter>
257       <tonode>Create_C2_containers</tonode><toport>nbBranches</toport>
258       <value><int>3</int></value>
259    </parameter>
260    <parameter>
261       <tonode>Create_C2_containers</tonode><toport>SmplsCollection</toport>
262       <value><array><data>
263 <value><int>1</int></value>
264 <value><int>2</int></value>
265 <value><int>3</int></value>
266 </data></array></value>
267    </parameter>
268    <parameter>
269       <tonode>ForEach2</tonode><toport>nbBranches</toport>
270       <value><int>1</int></value>
271    </parameter>
272    <presentation name="delay" x="466" y="60" width="158" height="36" expanded="1" expx="466" expy="60" expWidth="158" expHeight="36" shownState="0"/>
273    <presentation name="Create_C2_containers.wait_c2" x="7" y="89" width="158" height="63" expanded="1" expx="7" expy="89" expWidth="158" expHeight="63" shownState="0"/>
274    <presentation name="Begin" x="362.5" y="133" width="158" height="117" expanded="1" expx="362.5" expy="133" expWidth="158" expHeight="117" shownState="0"/>
275    <presentation name="End" x="833.5" y="137" width="158" height="144" expanded="1" expx="833.5" expy="137" expWidth="158" expHeight="144" shownState="0"/>
276    <presentation name="ForEach1" x="587.5" y="123.5" width="171.5" height="155" expanded="1" expx="587.5" expy="123.5" expWidth="171.5" expHeight="155" shownState="0"/>
277    <presentation name="Create_C1_containers.wait_c1" x="6" y="97" width="158" height="63" expanded="1" expx="6" expy="97" expWidth="158" expHeight="63" shownState="0"/>
278    <presentation name="Create_C1_containers" x="4" y="133" width="168" height="164" expanded="1" expx="4" expy="133" expWidth="168" expHeight="164" shownState="0"/>
279    <presentation name="ForEach1.PyNode1" x="9.5" y="88" width="158" height="63" expanded="1" expx="9.5" expy="88" expWidth="158" expHeight="63" shownState="0"/>
280    <presentation name="ForEach2.PyNode2" x="13" y="92" width="158" height="63" expanded="1" expx="13" expy="92" expWidth="158" expHeight="63" shownState="0"/>
281    <presentation name="Create_C2_containers" x="187" y="133" width="169" height="156" expanded="1" expx="187" expy="133" expWidth="169" expHeight="156" shownState="0"/>
282    <presentation name="ForEach2" x="587" y="283" width="175" height="159" expanded="1" expx="587" expy="283" expWidth="175" expHeight="159" shownState="0"/>
283    <presentation name="__ROOT__" x="0" y="0" width="995.5" height="446" expanded="1" expx="0" expy="0" expWidth="995.5" expHeight="446" shownState="0"/>
284 </proc>