[cig-commits] r11821 - in cs/pythia/trunk/pyre/schedulers: . scripts scripts/tacc-ranger

tan2 at geodynamics.org tan2 at geodynamics.org
Wed Apr 16 17:05:58 PDT 2008


Author: tan2
Date: 2008-04-16 17:05:58 -0700 (Wed, 16 Apr 2008)
New Revision: 11821

Added:
   cs/pythia/trunk/pyre/schedulers/SchedulerTACCRanger.py
   cs/pythia/trunk/pyre/schedulers/scripts/tacc-ranger/
   cs/pythia/trunk/pyre/schedulers/scripts/tacc-ranger/__vault__.odb
   cs/pythia/trunk/pyre/schedulers/scripts/tacc-ranger/batch.sh.tmpl
   cs/pythia/trunk/pyre/schedulers/tacc-ranger.odb
Log:
Added a scheduler (derived from SGE) for TACC Ranger

Added: cs/pythia/trunk/pyre/schedulers/SchedulerTACCRanger.py
===================================================================
--- cs/pythia/trunk/pyre/schedulers/SchedulerTACCRanger.py	                        (rev 0)
+++ cs/pythia/trunk/pyre/schedulers/SchedulerTACCRanger.py	2008-04-17 00:05:58 UTC (rev 11821)
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+#                      California Institute of Technology
+#                        (C) 2008  All Rights Reserved
+#
+# {LicenseText}
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+
+
+from SchedulerSGE import SchedulerSGE
+import os, sys
+
+
+class SchedulerTACCRanger(SchedulerSGE):
+    
+    
+    name = "tacc-ranger"
+    
+
+    import pyre.inventory as pyre
+    
+    command      = pyre.str("command", default="qsub")
+    tpn          = pyre.int("tpn", default=16,
+                            validator=pyre.choice([1,2,4,8,12,15,16]))
+    tpn.meta['tip'] = 'Task per node'
+    qsubOptions  = pyre.list("qsub-options")
+
+    
+    def schedule(self, job):
+        from math import ceil
+        # round up to multiple of 16
+        nodes = ceil(job.nodes / float(self.tpn))
+        self.cores = int(nodes * 16)
+
+        SchedulerSGE.schedule(self, job)
+        
+# end of file 

Added: cs/pythia/trunk/pyre/schedulers/scripts/tacc-ranger/__vault__.odb
===================================================================
--- cs/pythia/trunk/pyre/schedulers/scripts/tacc-ranger/__vault__.odb	                        (rev 0)
+++ cs/pythia/trunk/pyre/schedulers/scripts/tacc-ranger/__vault__.odb	2008-04-17 00:05:58 UTC (rev 11821)
@@ -0,0 +1,13 @@
+#!/usr/bin/env python
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+#                      California Institute of Technology
+#                        (C) 2006  All Rights Reserved
+#
+# {LicenseText}
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+
+# end of file

Added: cs/pythia/trunk/pyre/schedulers/scripts/tacc-ranger/batch.sh.tmpl
===================================================================
--- cs/pythia/trunk/pyre/schedulers/scripts/tacc-ranger/batch.sh.tmpl	                        (rev 0)
+++ cs/pythia/trunk/pyre/schedulers/scripts/tacc-ranger/batch.sh.tmpl	2008-04-17 00:05:58 UTC (rev 11821)
@@ -0,0 +1,46 @@
+## -*- sh -*-
+#compiler-settings
+directiveStartToken = @
+#end compiler-settings
+ at from pyre.schedulers import BatchScriptTemplate
+ at extends BatchScriptTemplate
+ at implements respond
+ at set $self.substitutions = {'job.id': "$JOB_ID"}
+#$ -S ${scheduler.shell}
+#$ -V
+#$ -cwd
+#$ -N ${job.task}
+ at if $job.queue
+#$ -q ${job.queue}
+ at end if
+ at if max($job.walltime)
+#$ -l h_rt=@echo ("%d:%02d:%02d" % $job.walltime[0:3])
+ at end if
+ at if $self.stdout
+#$ -o ${self.stdout}
+ at end if
+ at if $self.stderr
+#$ -e ${self.stderr}
+ at end if
+ at for option in $scheduler.qsubOptions
+#$ ${option}
+ at end for
+#$ -pe @echo '%dway %d' % ($scheduler.tpn, $scheduler.cores)
+
+ at if $job.nodes % $scheduler.tpn
+export MY_NSLOTS=$job.nodes
+ at end if
+
+ at set $self.substitutions = {'job.id': "${JOB_ID}"}
+
+${job.executable} @echo ' '.join($job.arguments)
+
+ at if $job.comments
+# ~~~~ comments ~~~~
+ at for line in $job.comments
+# ${line}
+ at end for
+ at end if
+
+# ~~~~ submit command ~~~~
+# ${scheduler.command} < [script]

Added: cs/pythia/trunk/pyre/schedulers/tacc-ranger.odb
===================================================================
--- cs/pythia/trunk/pyre/schedulers/tacc-ranger.odb	                        (rev 0)
+++ cs/pythia/trunk/pyre/schedulers/tacc-ranger.odb	2008-04-17 00:05:58 UTC (rev 11821)
@@ -0,0 +1,19 @@
+#!/usr/bin/env python
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+#                      California Institute of Technology
+#                        (C) 2006  All Rights Reserved
+#
+# {LicenseText}
+#
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#
+
+
+def scheduler():
+    from pyre.schedulers.SchedulerTACCRanger import SchedulerTACCRanger
+    return SchedulerTACCRanger()
+
+
+# end of file



More information about the cig-commits mailing list