[cig-commits] r20625 - short/3D/PyLith/benchmarks/trunk/static/performance/solvertest

brad at geodynamics.org brad at geodynamics.org
Fri Aug 24 12:32:56 PDT 2012


Author: brad
Date: 2012-08-24 12:32:56 -0700 (Fri, 24 Aug 2012)
New Revision: 20625

Added:
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np006.cfg
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np012.cfg
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np024.cfg
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np048.cfg
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np096.cfg
Modified:
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_scaling.jou
   short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_scaling.py
Log:
Added files for ppn=12 runs.

Added: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np006.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np006.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np006.cfg	2012-08-24 19:32:56 UTC (rev 20625)
@@ -0,0 +1,34 @@
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator.reader]
+filename = hex8_np006.exo
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation.output.domain]
+writer.filename = output/hex8_np006.h5
+
+[pylithapp.problem.formulation.output.subdomain]
+writer.filename = output/hex8_np006-groundsurf.h5
+
+[pylithapp.timedependent.interfaces.fault_middle.output]
+writer.filename = output/hex8_np006-fault-middle.h5
+
+[pylithapp.timedependent.interfaces.fault_xpos.output]
+writer.filename = output/hex8_np006-fault-xpos.h5
+
+[pylithapp.timedependent.interfaces.fault_xneg.output]
+writer.filename = output/hex8_np006-fault-xneg.h5
+
+[pylithapp.timedependent.materials.uppercrust.output]
+writer.filename = output/hex8_np006-uppercrust.h5
+
+[pylithapp.timedependent.materials.lowercrust.output]
+writer.filename = output/hex8_np006-lowercrust.h5
+
+
+# End of file

Added: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np012.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np012.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np012.cfg	2012-08-24 19:32:56 UTC (rev 20625)
@@ -0,0 +1,34 @@
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator.reader]
+filename = hex8_np012.exo
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation.output.domain]
+writer.filename = output/hex8_np012.h5
+
+[pylithapp.problem.formulation.output.subdomain]
+writer.filename = output/hex8_np012-groundsurf.h5
+
+[pylithapp.timedependent.interfaces.fault_middle.output]
+writer.filename = output/hex8_np012-fault-middle.h5
+
+[pylithapp.timedependent.interfaces.fault_xpos.output]
+writer.filename = output/hex8_np012-fault-xpos.h5
+
+[pylithapp.timedependent.interfaces.fault_xneg.output]
+writer.filename = output/hex8_np012-fault-xneg.h5
+
+[pylithapp.timedependent.materials.uppercrust.output]
+writer.filename = output/hex8_np012-uppercrust.h5
+
+[pylithapp.timedependent.materials.lowercrust.output]
+writer.filename = output/hex8_np012-lowercrust.h5
+
+
+# End of file

Added: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np024.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np024.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np024.cfg	2012-08-24 19:32:56 UTC (rev 20625)
@@ -0,0 +1,34 @@
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator.reader]
+filename = hex8_np024.exo
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation.output.domain]
+writer.filename = output/hex8_np024.h5
+
+[pylithapp.problem.formulation.output.subdomain]
+writer.filename = output/hex8_np024-groundsurf.h5
+
+[pylithapp.timedependent.interfaces.fault_middle.output]
+writer.filename = output/hex8_np024-fault-middle.h5
+
+[pylithapp.timedependent.interfaces.fault_xpos.output]
+writer.filename = output/hex8_np024-fault-xpos.h5
+
+[pylithapp.timedependent.interfaces.fault_xneg.output]
+writer.filename = output/hex8_np024-fault-xneg.h5
+
+[pylithapp.timedependent.materials.uppercrust.output]
+writer.filename = output/hex8_np024-uppercrust.h5
+
+[pylithapp.timedependent.materials.lowercrust.output]
+writer.filename = output/hex8_np024-lowercrust.h5
+
+
+# End of file

Added: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np048.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np048.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np048.cfg	2012-08-24 19:32:56 UTC (rev 20625)
@@ -0,0 +1,35 @@
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+reader.filename = hex8_np006.exo
+refiner = pylith.topology.RefineUniform
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation.output.domain]
+writer.filename = output/hex8_np048.h5
+
+[pylithapp.problem.formulation.output.subdomain]
+writer.filename = output/hex8_np048-groundsurf.h5
+
+[pylithapp.timedependent.interfaces.fault_middle.output]
+writer.filename = output/hex8_np048-fault-middle.h5
+
+[pylithapp.timedependent.interfaces.fault_xpos.output]
+writer.filename = output/hex8_np048-fault-xpos.h5
+
+[pylithapp.timedependent.interfaces.fault_xneg.output]
+writer.filename = output/hex8_np048-fault-xneg.h5
+
+[pylithapp.timedependent.materials.uppercrust.output]
+writer.filename = output/hex8_np048-uppercrust.h5
+
+[pylithapp.timedependent.materials.lowercrust.output]
+writer.filename = output/hex8_np048-lowercrust.h5
+
+
+# End of file

Added: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np096.cfg
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np096.cfg	                        (rev 0)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_np096.cfg	2012-08-24 19:32:56 UTC (rev 20625)
@@ -0,0 +1,35 @@
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# mesh_generator
+# ----------------------------------------------------------------------
+[pylithapp.mesh_generator]
+reader.filename = hex8_np012.exo
+refiner = pylith.topology.RefineUniform
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation.output.domain]
+writer.filename = output/hex8_np096.h5
+
+[pylithapp.problem.formulation.output.subdomain]
+writer.filename = output/hex8_np096-groundsurf.h5
+
+[pylithapp.timedependent.interfaces.fault_middle.output]
+writer.filename = output/hex8_np096-fault-middle.h5
+
+[pylithapp.timedependent.interfaces.fault_xpos.output]
+writer.filename = output/hex8_np096-fault-xpos.h5
+
+[pylithapp.timedependent.interfaces.fault_xneg.output]
+writer.filename = output/hex8_np096-fault-xneg.h5
+
+[pylithapp.timedependent.materials.uppercrust.output]
+writer.filename = output/hex8_np096-uppercrust.h5
+
+[pylithapp.timedependent.materials.lowercrust.output]
+writer.filename = output/hex8_np096-lowercrust.h5
+
+
+# End of file

Modified: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_scaling.jou
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_scaling.jou	2012-08-24 00:11:59 UTC (rev 20624)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/hex8_scaling.jou	2012-08-24 19:32:56 UTC (rev 20625)
@@ -24,6 +24,8 @@
 # ----------------------------------------------------------------------
 # Loop to create meshes for scaling benchmark.
 #{dx0=2000.0*m}
+#{ppn=12}
+
 #{iloop=0}
 #{Loop(6)}
   #{if(iloop==0)}
@@ -31,13 +33,24 @@
   #{else}
     #{dx=dx0/(2.0**iloop)**(1.0/3.0)}
   #{endif}
+  #{if(ppn==12 && iloop>2)} {dx=dx0/(0.75*2.0**iloop)**(1.0/3.0)} {endif}
 
-  #{if(iloop==0)} {meshout="hex8_np001.exo"}  {endif}
-  #{if(iloop==1)} {meshout="hex8_np002.exo"}  {endif}
-  #{if(iloop==2)} {meshout="hex8_np004.exo"}  {endif}
-  #{if(iloop==3)} {meshout="hex8_np008.exo"}  {endif}
-  #{if(iloop==4)} {meshout="hex8_np016.exo"}  {endif}
-  #{if(iloop==5)} {meshout="hex8_np032.exo"}  {endif}
+  #{if(ppn==8)}
+    #{if(iloop==0)} {meshout="hex8_np001.exo"}  {endif}
+    #{if(iloop==1)} {meshout="hex8_np002.exo"}  {endif}
+    #{if(iloop==2)} {meshout="hex8_np004.exo"}  {endif}
+    #{if(iloop==3)} {meshout="hex8_np008.exo"}  {endif}
+    #{if(iloop==4)} {meshout="hex8_np016.exo"}  {endif}
+    #{if(iloop==5)} {meshout="hex8_np032.exo"}  {endif}
+  #{endif}
+  #{if(ppn==12)}
+    #{if(iloop==0)} {meshout="hex8_np001.exo"}  {endif}
+    #{if(iloop==1)} {meshout="hex8_np002.exo"}  {endif}
+    #{if(iloop==2)} {meshout="hex8_np004.exo"}  {endif}
+    #{if(iloop==3)} {meshout="hex8_np006.exo"}  {endif}
+    #{if(iloop==4)} {meshout="hex8_np012.exo"}  {endif}
+    #{if(iloop==5)} {meshout="hex8_np024.exo"}  {endif}
+  #{endif}
 
   delete mesh volume all propagate
   
@@ -46,8 +59,7 @@
   playback 'setbc.jou'
   export mesh {Quote(meshout)} dimension 3 overwrite
 
-  #{tt=iloop+1}
-  #{iloop=tt}
+  #{iloop++}
 #{endloop}
 
 
@@ -56,3 +68,5 @@
 
 
 
+
+

Modified: short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_scaling.py
===================================================================
--- short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_scaling.py	2012-08-24 00:11:59 UTC (rev 20624)
+++ short/3D/PyLith/benchmarks/trunk/static/performance/solvertest/run_scaling.py	2012-08-24 19:32:56 UTC (rev 20625)
@@ -1,20 +1,21 @@
 #!/usr/bin/env python
 #
-# Python script to facilitate running scaling benchmarks using cluster
-# with PBS scheduler.
+# Python script to facilitate running scaling benchmarks.
 #
-# REQUIRES: $HOME/.pyre/pylithapp/pylithapp_pbs.cfg file with PBS options.
+# Use QUEUE == None if not using batch system.
 
 import os
 import sys
 import subprocess
 
-if len(sys.argv) != 5:
-    raise ValueError("usage: run_scaling.py PC CELL DOMAIN NPROCS")
+if len(sys.argv) != 7:
+    raise ValueError("usage: run_scaling.py PC CELL DOMAIN PPN NNODES QUEUE")
 pc = sys.argv[1]
 cell = sys.argv[2]
 domain = sys.argv[3]
-nprocs = int(sys.argv[4])
+ppn = int(sys.argv[4])
+nnodes = int(sys.argv[5])
+queue = sys.argv[6]
 
 if not pc in ["asm_reduced", "asm", "amg", "schur"]:
     raise ValueError("PC type (%s) must be 'asm_reduced', 'asm', 'amg', or 'schur'." % pc)
@@ -22,14 +23,13 @@
     raise ValueError("Cell type (%s) must be 'hex8' or 'tet4'." % cell)
 if not domain in ["original", "cube"]:
     raise ValueError("Domain (%s) must be 'original' or 'cube'." % domain)
-if nprocs != 1 and (nprocs % 2) != 0:
-    raise ValueError("Number of processors (%d) must be a power of 2." % nprocs)
 
-
+nprocs = ppn*nnodes
 for d in ["output", "logs"]:
   if not os.path.isdir(d):
       os.mkdir(d)
 
+
 if domain == "cube":
     job = "%s_%s_%s_np%03d" % (cell, domain, pc, nprocs)
     mesh = "%s_%s_np%03d" % (cell, domain, nprocs)
@@ -37,7 +37,11 @@
     job = "%s_%s_np%03d" % (cell, pc, nprocs)
     mesh = "%s_np%03d" % (cell, nprocs)
 
-pbsfile = os.environ['HOME'] + "/.pyre/pylithapp/pylithapp_pbs.cfg"
+if queue.lower() != "none":
+    batchfile = os.environ['HOME'] + "/.pyre/pylithapp/pylithapp_%s.cfg" % queue
+else:
+    batchfile = ""
+
 if pc == "asm_reduced" or pc =="asm":
     pcfiles = " pc_asm.cfg"
 elif pc == "amg":
@@ -50,17 +54,26 @@
 else:
     bcfiles = " bc_reduced.cfg nooutput.cfg %s.cfg"
 
-args = pbsfile + " --job.name=%s --job.stdout=logs/%s.log --job.stderr=logs/%s.err --petsc.log_summary_python=logs/%s.py" % (job, job, job, job)
+args = batchfile + " --job.name=%s --job.stdout=logs/%s.log --job.stderr=logs/%s.err --petsc.log_summary_python=logs/%s.py" % (job, job, job, job)
 
-if nprocs < 8:
-    ppn = nprocs
-else:
-    ppn = 8
+if queue.lower() == "none":
+    cmd = "pylith " + bcfiles + pcfiles + \
+        " %s.cfg " % (mesh,) + \
+        " --nodes=%d " % (ppn*nnodes) + \
+        args
 
-cmd = "pylith " + bcfiles + pcfiles + \
-    " %s.cfg " % (mesh,) + \
-    " --nodes=%d --scheduler.ppn=%d " % (nprocs, ppn) + \
-    args
+elif queue == "pbs":
+    cmd = "pylith " + bcfiles + pcfiles + \
+        " %s.cfg " % (mesh,) + \
+        " --nodes=%d --scheduler.ppn=%d " % (nprocs, ppn) + \
+        args
 
+elif queue == "lonestar":
+    cmd = "pylith " + bcfiles + pcfiles + \
+        " %s.cfg " % (mesh,) + \
+        " --nodes=%d --scheduler.pe-name=%dway --scheduler.pe-number=%s " % (nprocs, ppn, max(12, ppn)*nnodes) + \
+        args
+
+
 print cmd
-subprocess.call(cmd, shell=True)
+#subprocess.call(cmd, shell=True)



More information about the CIG-COMMITS mailing list