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"/>
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"/>
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"/>
35 <property name="container_kind" value="Salome"/>
36 <property name="attached_on_cloning" value="0"/>
37 <property name="nb_parallel_procs" value="1"/>
38 <property name="type" value="multi"/>
39 <property name="use_py_cache" value="1"/>
42 <property name="container_kind" value="Salome"/>
43 <property name="attached_on_cloning" value="0"/>
44 <property name="nb_parallel_procs" value="4"/>
45 <property name="type" value="multi"/>
46 <property name="use_py_cache" value="1"/>
49 <script><code><![CDATA[import time
50 vals = [ i for i in range(40)]
51 nbbranches = len(vals)
54 <outport name="t0" type="pyobj"/>
55 <outport name="vals" type="intvec"/>
56 <outport name="nbbranches" type="int"/>
59 <script><code><![CDATA[import time
64 s_expected = sum(vals)
67 for cont_name, s in r1:
68 if cont_name in tr1.keys():
75 s1 = sum(tr1.values())
78 print("Error on the first foreach.")
79 print("Expected sum:", s_expected)
80 print("Obtained sum:", s1)
83 for cont_name, s in r2:
84 if cont_name in tr2.keys():
91 s2 = sum(tr2.values())
94 print("Error on the second foreach.")
95 print("Expected sum:", s_expected)
96 print("Obtained sum:", s2)
101 <load container="DefaultContainer"/>
102 <inport name="t0" type="pyobj"/>
103 <inport name="r1" type="seqpyobj"/>
104 <inport name="r2" type="seqpyobj"/>
105 <inport name="vals" type="intvec"/>
106 <outport name="total_time" type="int"/>
107 <outport name="ok" type="bool"/>
109 <foreach name="ForEach1" nbranch="1" loopWeight="-1" type="int">
110 <remote name="PyNode1" elementaryWeight="-1">
111 <script><code><![CDATA[import time
112 if "s" not in globals():
113 # long initialization here to be done only once
117 container_name = my_container.name
118 result = (container_name, s)
121 <load container="c1"/>
122 <inport name="v" type="int"/>
123 <outport name="result" type="pyobj"/>
126 <foreach name="ForEach2" nbranch="1" loopWeight="-1" type="int">
127 <remote name="PyNode2" elementaryWeight="-1">
128 <script><code><![CDATA[import time
129 if "s" not in globals():
130 # long initialization here to be done only once
134 container_name = my_container.name
135 result = (container_name, s)
138 <load container="c2"/>
139 <inport name="v" type="int"/>
140 <outport name="result" type="pyobj"/>
143 <control> <fromnode>Begin</fromnode> <tonode>ForEach1</tonode> </control>
144 <control> <fromnode>Begin</fromnode> <tonode>ForEach2</tonode> </control>
145 <control> <fromnode>Begin</fromnode> <tonode>End</tonode> </control>
146 <control> <fromnode>ForEach1</fromnode> <tonode>End</tonode> </control>
147 <control> <fromnode>ForEach2</fromnode> <tonode>End</tonode> </control>
148 <datalink control="false">
149 <fromnode>Begin</fromnode> <fromport>t0</fromport>
150 <tonode>End</tonode> <toport>t0</toport>
152 <datalink control="false">
153 <fromnode>Begin</fromnode> <fromport>vals</fromport>
154 <tonode>End</tonode> <toport>vals</toport>
156 <datalink control="false">
157 <fromnode>Begin</fromnode> <fromport>vals</fromport>
158 <tonode>ForEach1</tonode> <toport>SmplsCollection</toport>
160 <datalink control="false">
161 <fromnode>Begin</fromnode> <fromport>vals</fromport>
162 <tonode>ForEach2</tonode> <toport>SmplsCollection</toport>
164 <datalink control="false">
165 <fromnode>Begin</fromnode> <fromport>nbbranches</fromport>
166 <tonode>ForEach2</tonode> <toport>nbBranches</toport>
168 <datalink control="false">
169 <fromnode>Begin</fromnode> <fromport>nbbranches</fromport>
170 <tonode>ForEach1</tonode> <toport>nbBranches</toport>
172 <datalink control="false">
173 <fromnode>ForEach1</fromnode> <fromport>evalSamples</fromport>
174 <tonode>ForEach1.PyNode1</tonode> <toport>v</toport>
176 <datalink control="false">
177 <fromnode>ForEach2</fromnode> <fromport>evalSamples</fromport>
178 <tonode>ForEach2.PyNode2</tonode> <toport>v</toport>
180 <datalink control="false">
181 <fromnode>ForEach1.PyNode1</fromnode> <fromport>result</fromport>
182 <tonode>End</tonode> <toport>r1</toport>
184 <datalink control="false">
185 <fromnode>ForEach2.PyNode2</fromnode> <fromport>result</fromport>
186 <tonode>End</tonode> <toport>r2</toport>
189 <tonode>ForEach1</tonode><toport>nbBranches</toport>
190 <value><int>1</int></value>
193 <tonode>ForEach2</tonode><toport>nbBranches</toport>
194 <value><int>1</int></value>
196 <presentation name="Begin" x="9" y="86" width="158" height="117" expanded="1" expx="9" expy="86" expWidth="158" expHeight="117" shownState="0"/>
197 <presentation name="End" x="402.5" y="85" width="158" height="144" expanded="1" expx="402.5" expy="85" expWidth="158" expHeight="144" shownState="0"/>
198 <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"/>
199 <presentation name="ForEach2.PyNode2" x="13" y="92" width="158" height="63" expanded="1" expx="13" expy="92" expWidth="158" expHeight="63" shownState="0"/>
200 <presentation name="ForEach1" x="201.5" y="146" width="171.5" height="155" expanded="1" expx="201.5" expy="146" expWidth="171.5" expHeight="155" shownState="0"/>
201 <presentation name="ForEach2" x="204" y="313.5" width="175" height="159" expanded="1" expx="204" expy="313.5" expWidth="175" expHeight="159" shownState="0"/>
202 <presentation name="__ROOT__" x="0" y="0" width="564.5" height="476.5" expanded="1" expx="0" expy="0" expWidth="564.5" expHeight="476.5" shownState="0"/>