From: Ovidiu Mircescu Date: Fri, 31 Jul 2020 14:40:07 +0000 (+0200) Subject: Migration of some HPContainer tests to workload manager. X-Git-Tag: V9_6_0a1~7^2~2 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=66160579129baba6c7e110c21d0c9153f6842eb5;p=modules%2Fyacs.git Migration of some HPContainer tests to workload manager. --- diff --git a/src/yacsloader_swig/Test/testSaveLoadRun.py b/src/yacsloader_swig/Test/testSaveLoadRun.py index a2d115ea1..a9da32178 100755 --- a/src/yacsloader_swig/Test/testSaveLoadRun.py +++ b/src/yacsloader_swig/Test/testSaveLoadRun.py @@ -324,14 +324,18 @@ o3=0 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): @@ -344,26 +348,26 @@ o3=0 """ 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) @@ -376,7 +380,7 @@ o3=0 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) @@ -386,7 +390,7 @@ o3=0 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) @@ -394,14 +398,13 @@ o3=0 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) @@ -421,9 +424,9 @@ o3=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 @@ -440,10 +443,14 @@ for i in range(nb): 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) @@ -501,7 +508,6 @@ for i in range(nb): 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) @@ -512,6 +518,8 @@ for i in range(nb): 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 @@ -1344,6 +1352,7 @@ for i in i8: l=loader.YACSLoader() # p=self.r.createProc("PROC") + p.setProperty("executor","workloadmanager") ti=p.createType("int","int") tdi=p.createSequenceTc("seqint","seqint",ti) # Level0 @@ -1393,15 +1402,18 @@ assert(my_dpl_localization[0][1]>=0 and my_dpl_localization[0][1]<3) # 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 @@ -1413,11 +1425,16 @@ assert(my_dpl_localization[0][1]>=0 and my_dpl_localization[0][1]<3) 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) @@ -1474,11 +1491,11 @@ dd=range(10)""") 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)