From 556f63df4de73835e2b2ed69721c5d2654e75b98 Mon Sep 17 00:00:00 2001
From: "Mads M. Pedersen" <mmpe@dtu.dk>
Date: Wed, 12 Oct 2016 08:10:03 +0200
Subject: [PATCH] updated cluster_resource.py

---
 wetb/utils/cluster_tools/cluster_resource.py | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/wetb/utils/cluster_tools/cluster_resource.py b/wetb/utils/cluster_tools/cluster_resource.py
index f6262409..49faaf3f 100644
--- a/wetb/utils/cluster_tools/cluster_resource.py
+++ b/wetb/utils/cluster_tools/cluster_resource.py
@@ -26,7 +26,6 @@ class Resource(object):
             total, free, user = self.check_resources()
         except:
             return False
-
         if user < self.min_cpu:
             return True
         elif free > self.min_free:
@@ -77,7 +76,10 @@ class SSHPBSClusterResource(Resource, SSHClient):
 
                 return nodeSum['used_cpu'] + cpu_free, cpu_free, cpu_user
             except Exception as e:
-                raise EnvironmentError("check resources failed")
+                if str(e) == "Password not set":
+                    raise EnvironmentError(str(e))
+                else:
+                    raise EnvironmentError("check resources failed")
 
     def jobids(self, jobname_prefix):
             _, output, _ = self.execute('qstat -u %s' % self.username)
@@ -93,10 +95,10 @@ class SSHPBSClusterResource(Resource, SSHClient):
 
 
 class LocalResource(Resource):
-    def __init__(self, process_name):
-        N = max(1, multiprocessing.cpu_count() / 2)
-        Resource.__init__(self, N, multiprocessing.cpu_count())
-        self.process_name = process_name
+    def __init__(self, cpu_limit):
+
+        Resource.__init__(self, cpu_limit, multiprocessing.cpu_count())
+        #self.process_name = process_name
         self.host = 'Localhost'
 
     def check_resources(self):
@@ -109,6 +111,7 @@ class LocalResource(Resource):
 
         no_cpu = multiprocessing.cpu_count()
         cpu_free = (1 - psutil.cpu_percent(.5) / 100) * no_cpu
-        no_current_process = len([i for i in psutil.pids() if name(i).lower().startswith(self.process_name.lower())])
-        used = max(self.acquired, no_cpu - cpu_free, no_current_process)
+        #no_current_process = len([i for i in psutil.pids() if name(i) == self.process_name.lower()])
+        #used = max(self.acquired, no_cpu - cpu_free, no_current_process)
+        used = self.acquired
         return no_cpu, cpu_free, used
-- 
GitLab