[cig-commits] commit: Fix run time estimates

Mercurial hg at geodynamics.org
Sun Jul 3 20:04:33 PDT 2011


changeset:   16:d8faa10b1580
user:        Walter Landry <wlandry at caltech.edu>
date:        Tue Jun 21 16:00:25 2011 -0700
files:       SeismoWebPortal/management.py SeismoWebPortal/models.py
description:
Fix run time estimates


diff -r f2255ddb10cb -r d8faa10b1580 SeismoWebPortal/management.py
--- a/SeismoWebPortal/management.py	Tue Jun 21 15:59:22 2011 -0700
+++ b/SeismoWebPortal/management.py	Tue Jun 21 16:00:25 2011 -0700
@@ -130,32 +130,32 @@ def randomName():
         
 
 def createClusters():
-    models.Cluster.objects.create(
-        name = "Lonestar",
-        url = "http://www.tacc.utexas.edu/resources/hpcsystems/#lonestar",
-        daemonCode = randomName(),
-        ring = 10,
-        order = 10,
-        suFactor = 1.935,
-        )
+    # models.Cluster.objects.create(
+    #     name = "Lonestar",
+    #     url = "http://www.tacc.utexas.edu/resources/hpcsystems/#lonestar",
+    #     daemonCode = randomName(),
+    #     ring = 10,
+    #     order = 10,
+    #     suFactor = 1.935,
+    #     )
 
-    models.Cluster.objects.create(
-        name = "CITerra",
-        url = "http://citerra.caltech.edu/",
-        daemonCode = randomName(),
-        ring = 20,
-        order = 10,
+    # models.Cluster.objects.create(
+    #     name = "CITerra",
+    #     url = "http://citerra.caltech.edu/",
+    #     daemonCode = randomName(),
+    #     ring = 20,
+    #     order = 10,
 
-        # We compute CITerra's hypothetical TeraGrid SU conversion
-        # factor by comparing its performance to Lonestar for a given
-        # Specfem run.
+    #     # We compute CITerra's hypothetical TeraGrid SU conversion
+    #     # factor by comparing its performance to Lonestar for a given
+    #     # Specfem run.
         
-        # pangu    Nex=240 rl=20.16462: 164.593911119 minutes * 216 procs = 35552.284801704001 cpu minutes
-        # - vs -
-        # lonestar Nex=240 rl=20.16462: 129.221072733 minutes * 216 procs = 27911.751710328001 cpu minutes
-        # => 27911.751710328001 * 1.935 / 35552.284801704001 = 1.5191496091102434
-        suFactor = 1.519,
-        )
+    #     # pangu    Nex=240 rl=20.16462: 164.593911119 minutes * 216 procs = 35552.284801704001 cpu minutes
+    #     # - vs -
+    #     # lonestar Nex=240 rl=20.16462: 129.221072733 minutes * 216 procs = 27911.751710328001 cpu minutes
+    #     # => 27911.751710328001 * 1.935 / 35552.284801704001 = 1.5191496091102434
+    #     suFactor = 1.519,
+    #     )
 
     return
 
diff -r f2255ddb10cb -r d8faa10b1580 SeismoWebPortal/models.py
--- a/SeismoWebPortal/models.py	Tue Jun 21 15:59:22 2011 -0700
+++ b/SeismoWebPortal/models.py	Tue Jun 21 16:00:25 2011 -0700
@@ -388,9 +388,9 @@ NCHUNKS_CHOICES = (
     (6, 'global (6 chunks)'),
 )
 
-oneThruNine = tuple([(i, str(i)) for i in xrange(4, 17, 4)])
-NPROC_CHOICES = oneThruNine
-NEX_C_CHOICES = oneThruNine
+fourThru16 = tuple([(i, str(i)) for i in xrange(4, 17, 4)])
+NPROC_CHOICES = fourThru16
+NEX_C_CHOICES = fourThru16
 
 
 def nexValidator(nprocKey):
@@ -526,14 +526,12 @@ class Specfem3DGlobeParameters(Model, Ed
         return not self.mesh.nchunks == 6
 
     def runTime(self, run, cluster):
-        mesh = self.mesh.archivalObject()
-        perfSet = Specfem3DGlobePerformance.objects.filter(cluster = cluster, mesh = mesh)
-        if not perfSet.count():
-            return None
-        perf = perfSet.get()
-        time = (perf.overhead +
-                perf.timeFactor * run.record_length +
-                perf.stationFactor * run.stationList.station_set.count())
+        mesh = self.mesh
+
+        # Time in minutes.  Based on a run with 192*192*192 points
+        time=30+ mesh.nex_xi()*mesh.nex_eta()*mesh.nex_xi()*run.record_length/ \
+            (mesh.nproc_xi * mesh.nproc_eta * (192*192*192*10.0/(4*4))/400.0)
+
         return time
 
     def cost(self, run, cluster):



More information about the CIG-COMMITS mailing list