def test3(self):
""" Test that focuses on parallel load of containers."""
- script0="""def ff():
- global aa
- print("%%lf - %%s"%%(aa,str(my_container)))
- return 100*[%i],0
+ script0="""
+if "aa" not in globals():
+ aa=123.456
+print("%%lf - %%s"%%(aa,str(my_container)))
+o1=100*[%i]
+o2=0
"""
script1="""from math import cos
import datetime
ref=datetime.datetime.now()
+if "aa" not in globals():
+ aa=123.456
o2=0. ; pas=1./float(i1)
for i in range(i1):
for j in range(i1):
"""
script2="""o9=sum(i8)
"""
- fname=os.path.join(self.workdir, "TestSaveLoadRun3.xml")
nbOfNodes=8
sqrtOfNumberOfTurn=10
l=loader.YACSLoader()
p=self.r.createProc("prTest1")
+ p.setProperty("executor","workloadmanager")
td=p.createType("double","double")
ti=p.createType("int","int")
tdi=p.createSequenceTc("seqint","seqint",ti)
tdd=p.createSequenceTc("seqdouble","seqdouble",td)
- cont=p.createContainer("gg","HPSalome")
- pg=pilot.PlayGround()
- pg.setData([("localhost",8)])
- cont.setProperty("InitializeScriptKey","aa=123.456")
+ cont=p.createContainer("gg","Salome")
cont.setProperty("name","localhost")
cont.setProperty("hostname","localhost")
- cont.setProperty("nb_proc_per_node","1")
+ # no limit for the number of containers launched
+ cont.setProperty("nb_proc_per_node","0")
+ cont.setProperty("type","multi")
+ cont.usePythonCache(True)
+ cont.attachOnCloning()
#
- node0=self.r.createFuncNode("Salome","PyFunction0") # PyFuncNode remote
+ node0=self.r.createScriptNode("Salome","Node0")
p.edAddChild(node0)
- node0.setFname("ff")
node0.setContainer(cont)
node0.setScript(script0%(sqrtOfNumberOfTurn))
out0_0=node0.edAddOutputPort("o1",tdi)
p.edAddLink(out0_0,node1.edGetSeqOfSamplesPort())
node1.edGetNbOfBranchesPort().edInitInt(16)
#
- node2=self.r.createScriptNode("Salome","PyScript3")
+ node2=self.r.createScriptNode("Salome","Node2")
node1.edAddChild(node2)
node2.setContainer(cont)
node2.setScript(script1)
out1_2=node2.edAddOutputPort("o3",ti)
node2.setExecutionMode("remote")
#
- node3=self.r.createScriptNode("Salome","PyScript7")
+ node3=self.r.createScriptNode("Salome","Node3")
p.edAddChild(node3)
node3.setScript(script2)
p.edAddCFLink(node1,node3)
o9=node3.edAddOutputPort("o9",td)
p.edAddLink(out0_2,i8)
#
+ fname=os.path.join(self.workdir, "t3_new.xml")
p.saveSchema(fname)
p=l.load(fname)
- o9=p.getChildByName("PyScript7").getOutputPort("o9")
- self.assertTrue(len(p.edGetDirectDescendants()[1].getChildByName("PyScript3").getContainer().getProperty("InitializeScriptKey"))!=0)
+ o9=p.getChildByName("Node3").getOutputPort("o9")
# 1st exec
refExpected=11000.008377058712
ex=pilot.ExecutorSwig()
- p.propagePlayGround(pg)
self.assertEqual(p.getState(),pilot.READY)
st=datetime.datetime.now()
ex.RunW(p,0)
self.assertEqual(p.getState(),pilot.DONE)
self.assertAlmostEqual(refExpected,o9.getPyObj(),5)
pass
-
+
def test4(self):
- """Non regression test of multi pyScriptNode, pyFuncNode sharing the same HPContainer instance."""
+ """Double foreach."""
fname=os.path.join(self.workdir, "TestSaveLoadRun4.xml")
script1="""nb=7
ii=0
l=loader.YACSLoader()
ex=pilot.ExecutorSwig()
p=self.r.createProc("pr")
- pg=pilot.PlayGround()
- pg.setData([("localhost",10)])
- cont=p.createContainer("gg","HPSalome")
- cont.setProperty("nb_proc_per_node","1")
+ p.setProperty("executor","workloadmanager")
+ cont=p.createContainer("gg","Salome")
+ cont.setProperty("name","localhost")
+ cont.setProperty("hostname","localhost")
+ # no limit for the number of containers launched
+ cont.setProperty("nb_proc_per_node","0")
+ cont.setProperty("type","multi")
+ cont.attachOnCloning()
td=p.createType("int","int")
td2=p.createSequenceTc("seqint","seqint",td)
td3=p.createSequenceTc("seqintvec","seqintvec",td2)
p.edAddLink(o15,i8)
p.saveSchema(fname)
p=l.load(fname)
- p.propagePlayGround(pg)
ex = pilot.ExecutorSwig()
self.assertEqual(p.getState(),pilot.READY)
ex.RunW(p,0)
def test5(self):
"""Non regression test 2 of multi pyNode, pyFuncNode sharing the same HPContainer instance."""
+ # TODO : This test is DEPRECATED. HPContainer will be removed.
+ self.skipTest("HPContainer deprecated.")
fname=os.path.join(self.workdir, "TestSaveLoadRun5.xml")
script1="""nb=7
ii=0
l=loader.YACSLoader()
#
p=self.r.createProc("PROC")
+ p.setProperty("executor","workloadmanager")
ti=p.createType("int","int")
tdi=p.createSequenceTc("seqint","seqint",ti)
# Level0
# run remote
p=l.load(fname)
- pg=pilot.PlayGround()
- pg.setData([("localhost",4)])
- cont=p.createContainer("gg","HPSalome")
- cont.setProperty("nb_proc_per_node","1")
+ cont=p.createContainer("gg","Salome")
+ cont.setProperty("name","localhost")
+ cont.setProperty("hostname","localhost")
+ # no limit for the number of containers launched
+ cont.setProperty("nb_proc_per_node","0")
+ cont.setProperty("type","multi")
+ #cont.usePythonCache(True)
+ cont.attachOnCloning()
n1=p.getChildByName("FE0.b0.n1") ; n1.setExecutionMode("remote") ; n1.setContainer(cont)
n2=p.getChildByName("FE0.b0.FE1.n2") ; n2.setExecutionMode("remote") ; n2.setContainer(cont)
p.init()
self.assertEqual(p.getState(),pilot.READY)
- p.propagePlayGround(pg)
ex.RunW(p,0)
self.assertEqual(p.getState(),pilot.DONE)
pass
pass
xmlFileName="test20.xml"
p=self.r.createProc("test26")
+ p.setProperty("executor","workloadmanager")
#
- pg=pilot.PlayGround()
- pg.setData([("localhost",8)]) # important make this figure >= 6
- cont=p.createContainer("gg","HPSalome") # very important ! HP Container needed for the test !
- cont.setProperty("nb_proc_per_node","1")
+ cont=p.createContainer("gg","Salome")
+ cont.setProperty("name","localhost")
+ cont.setProperty("hostname","localhost")
+ # no limit for the number of containers launched
+ cont.setProperty("nb_proc_per_node","0")
+ cont.setProperty("type","multi")
+ cont.usePythonCache(True)
+ cont.attachOnCloning()
#
po=p.createInterfaceTc("python:obj:1.0","pyobj",[])
sop=p.createSequenceTc("list[pyobj]","list[pyobj]",po)
p.edAddLink(dd,fe0.edGetSeqOfSamplesPort())
p.edAddLink(fe0.edGetSamplePort(),c1)
#
+ #xmlFileName="test20.xml"
#p.saveSchema(xmlFileName)
p.getChildByName("test26/main.test26/FE0").edGetNbOfBranchesPort().edInitInt(1) # very important 1 !
#
ex=pilot.ExecutorSwig()
- p.propagePlayGround(pg)
self.assertEqual(p.getState(),pilot.READY)
ex.RunW(p,0)
self.assertEqual(p.getState(),pilot.DONE)