diff --git a/batchoar.py b/batchoar.py index 6472f650fa45894d1996ce89d2ccc8b3e25b6d85..015fc00dc637357d324d53bdd6988e0485927fab 100644 --- a/batchoar.py +++ b/batchoar.py @@ -4,11 +4,11 @@ import argparse import yaml import itertools -import subprocess import logging from collections import deque -from . import oargen +import oargen + def argparser(): parser = argparse.ArgumentParser() @@ -48,7 +48,6 @@ def argparser(): return args - def load_variables(yaml_variables): variable_names = [] variables = [] @@ -123,6 +122,7 @@ def main(): jobs = load_jobs(fin, args) anteriors = deque() + fake_id_counter = 0 for job_name, job in jobs: if len(anteriors) < args.max_jobs: anterior = None @@ -130,7 +130,7 @@ def main(): anterior = anteriors.pop() oar_command = oargen.prepare_oarsub(args.gpu, args.host, args.core, args.time, - command=job, command_is_string=True, + command=job, name=job_name, besteffort=args.besteffort, checkpoint=args.checkpoint, anterior=anterior) @@ -142,7 +142,12 @@ def main(): logging.warning("Job '{}' seems to have failed to launch...".format(job_name)) else: anteriors.appendleft(job_id) - + elif args.run: + logging.warning("Job '{}' didn't return anything...".format(job_name)) + else: + fake_id = f"FAKE_ID_{fake_id_counter}" + fake_id_counter += 1 + anteriors.appendleft(fake_id) if __name__ == '__main__': diff --git a/oargen.py b/oargen.py index 368f46d0d201684e8ebb89c788eccd3190ee7e6a..dcc1d2ea542e58652334642959cbb414a3849993 100755 --- a/oargen.py +++ b/oargen.py @@ -43,8 +43,7 @@ def prepare_oarsub(gpu, host, core, time, command=None, argument=None, interactive=False, name=None, besteffort=False, - checkpoint=None, anterior=None, - command_is_string=False): + checkpoint=None, anterior=None): oar_cmd = ["oarsub"] oar_cmd.append("-p") properties = "" @@ -85,12 +84,14 @@ def prepare_oarsub(gpu, host, core, time, if interactive: oar_cmd.append('-I') else: - job_command = command if command_is_string else " ".join(command) - oar_cmd.append(" ".join(job_command)) + job_command = command if isinstance(command, str) else " ".join(command) + oar_cmd.append(job_command) + return oar_cmd def run_oarsub(command, print_cmd=False, fake_run=False, return_output=False): - print(subprocess.list2cmdline(command)) + if print_cmd: + print(subprocess.list2cmdline(command)) if fake_run: return None if not return_output: