From da6babb2f1fb7aef2af8a05ed17ea5a19183fb78 Mon Sep 17 00:00:00 2001 From: Jeremy Auguste <jeremy.auguste@lis-lab.fr> Date: Fri, 26 Oct 2018 14:45:06 +0200 Subject: [PATCH] Added way to show used devices --- oarstats.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/oarstats.py b/oarstats.py index 0048d06..6bdfb23 100755 --- a/oarstats.py +++ b/oarstats.py @@ -20,6 +20,7 @@ class Owner: self.running = defaultdict(int) self.resources = defaultdict(int) self.gpu = defaultdict(int) + self.devices = defaultdict(int) def add_job(self, job): self.queues[job.queue].append(job) @@ -31,11 +32,15 @@ class Owner: self.running[job.queue] += 1 if job.gpu: self.gpu[job.queue] += job.resources + for device in job.devices: + self.devices[device] += 1 - def print_info(self): + 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])) + if show_devices and self.devices: + print("\t Running on: {}".format(" ".join(["{}:{}".format(device, amount) for device, amount in self.devices.items()]))) class Job: @@ -52,6 +57,7 @@ class Job: def argparser(): parser = argparse.ArgumentParser() + parser.add_argument('--show-hosts', action="store_true") parser.add_argument('-l', '--logger', default='INFO', choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], help="Logging level: DEBUG, INFO (default), WARNING, ERROR") -- GitLab