#!/usr/bin/env python3 """ minion intended to be launched by slurm """ import argparse import queue import random import time from manager import QueueClient from work import find_prime class Minion(QueueClient): def __init__(self, n_tasks: int): self.n_tasks = n_tasks super().__init__() def run(self): for n in range(self.n_tasks): try: task = self.queue.get(block=False) except queue.Empty: print('All work is already done !') break start = time.perf_counter() print(f"start work {n}/{self.n_tasks} on task {task}...") result = find_prime(task) perf = time.perf_counter() - start print(f"The {task}-th prime number is {result} (found in {perf:.3f}s)") if __name__ == "__main__": parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("n_tasks", type=int, default=1, nargs='?') Minion(**vars(parser.parse_args())).run()