Index: trunk/tools/stask_chip.py
===================================================================
--- trunk/tools/stask_chip.py	(revision 37368)
+++ trunk/tools/stask_chip.py	(revision 37369)
@@ -46,5 +46,5 @@
 task_file = sys.argv[1]
 hosts_file = sys.argv[2]
-nprocs = int(sys.argv[3])
+nprocs = int(sys.argv[3])  # Oversubscription parameter: number of processors to devote to a task
 
 hosts = []
@@ -57,4 +57,6 @@
 busy = {}
 timeout = 2*3600
+n_active = 0 # number of active jobs we expect to have running should equal Nhosts * Ncore_per_host / nprocs
+
 
 n_completed=0
@@ -69,5 +71,5 @@
     for host in f:
         if host[:2] == 'mu': 
-            cores = 12
+            cores = int(12 / nprocs)  # Use nprocs to reduce the core subscription
             nname = 6
         elif host[:2] == 'ml': 
@@ -84,7 +86,8 @@
             hosts.append(h)
             busy[h] = 0
+            n_active = n_active + 1
 
 print 'running %d commands at a time from %d tasks in %s' \
-    % (len(hosts)/nprocs, len(tasks), task_file)
+    % (n_active, len(tasks), task_file)
 
 for task in tasks:
@@ -102,5 +105,5 @@
     cmds[p] = command
     times[p] = time.time()
-    wait(len(hosts)/nprocs)
+    wait(n_active)
 
 wait(1)
