Skip to content
Snippets Groups Projects
Commit 40a7a68b authored by Jeremy Auguste's avatar Jeremy Auguste
Browse files

Changed karma to be queue based and added better printing of timeleft

parent 924aab9d
No related branches found
No related tags found
No related merge requests found
...@@ -8,13 +8,14 @@ import subprocess ...@@ -8,13 +8,14 @@ import subprocess
from collections import defaultdict from collections import defaultdict
import re import re
import time import time
import datetime
class Owner: class Owner:
def __init__(self, name): def __init__(self, name):
self.name = name self.name = name
self.queues = defaultdict(list) self.queues = defaultdict(list)
self.karma = 0.0 self.karma = defaultdict(float)
self.timeleft = 0 self.timeleft = 0
self.running = defaultdict(int) self.running = defaultdict(int)
self.resources = defaultdict(int) self.resources = defaultdict(int)
...@@ -22,8 +23,8 @@ class Owner: ...@@ -22,8 +23,8 @@ class Owner:
def add_job(self, job): def add_job(self, job):
self.queues[job.queue].append(job) self.queues[job.queue].append(job)
if job.karma > self.karma: if job.karma > self.karma[job.queue]:
self.karma = job.karma self.karma[job.queue] = job.karma
self.timeleft += job.wall_time - job.elapsed_time self.timeleft += job.wall_time - job.elapsed_time
self.resources[job.queue] += job.resources self.resources[job.queue] += job.resources
if job.elapsed_time != 0: if job.elapsed_time != 0:
...@@ -32,9 +33,9 @@ class Owner: ...@@ -32,9 +33,9 @@ class Owner:
self.gpu[job.queue] += job.resources self.gpu[job.queue] += job.resources
def print_info(self): def print_info(self):
print("User {} :: Timeleft: {}, Karma: {}".format(self.name, self.timeleft, self.karma)) print("User {} :: Timeleft: {}".format(self.name, datetime.timedelta(seconds=self.timeleft)))
for queue in self.queues.keys(): for queue in self.queues.keys():
print("\t{} - Running {}, Resources: {}, GPUs: {}".format(queue, self.running[queue], self.resources[queue], self.gpu[queue])) print("\t{} - Running {}, Resources: {}, GPUs: {}, Karma: {}".format(queue, self.running[queue], self.resources[queue], self.gpu[queue], self.karma[queue]))
class Job: class Job:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment