diff --git a/oarstats.py b/oarstats.py index 7a1d58aefbd646b1cd088bde046fb19fa025ec8c..f890dc4c0a4e44f672de24f8cef01ce65962d988 100755 --- a/oarstats.py +++ b/oarstats.py @@ -18,6 +18,8 @@ class Owner: self.karma = defaultdict(float) self.timeleft = 0 self.running = defaultdict(int) + self.running_cores = defaultdict(int) + self.running_gpus = defaultdict(int) self.resources = defaultdict(int) self.gpu = defaultdict(int) self.devices = defaultdict(int) @@ -30,6 +32,9 @@ class Owner: self.resources[job.queue] += job.resources if job.elapsed_time != 0: self.running[job.queue] += 1 + self.running_cores[job.queue] += job.resources + if job.gpu: + self.running_gpus[job.queue] += job.resources if job.gpu: self.gpu[job.queue] += job.resources for device in job.devices: @@ -38,7 +43,14 @@ class Owner: def print_info(self, show_devices=False): print("User {} :: Total Time Reserved: {}".format(self.name, datetime.timedelta(seconds=self.timeleft))) for queue in self.queues.keys(): - print("\t{} - Running {}, Resources: {}, GPUs: {}, Karma: {}".format(queue, self.running[queue], self.resources[queue], self.gpu[queue], self.karma[queue])) + print("\t{} - Running: {} jobs ({} cores, {} gpus), Total: {} jobs ({} cores, {} gpus) - Karma: {}".format(queue, + self.running[queue], + self.running_cores[queue], + self.running_gpus[queue], + len(self.queues[queue]), + self.resources[queue], + self.gpu[queue], + self.karma[queue])) if show_devices and self.devices: print("Running on: {}".format(" ".join(["{}:{}".format(device, amount) for device, amount in self.devices.items()])))