def submit_task(argv): parser = argparse.ArgumentParser() parser.add_argument('-c', '--command', metavar='command', help="fmriprep command") parser.add_argument('-i', '--image', metavar='image_path', help="fmriprep image path") parser.add_argument('-pc', '--pydra_cache', metavar='pydra-cache', help="path to store pydra cache") parser.add_argument('-b', '--base', help="base path of BIDS dataset") parser.add_argument('-sa', '--sbatch_args', help="SBATCH args") args = parser.parse_args() print(args.command) singu = SingularityTask( name="fmriprep", executable=args.command, image=args.image, cache_dir=args.pydra_cache, audit_flags=AuditFlag.ALL, messengers=FileMessenger(), messenger_args={"message_dir": os.path.join(args.base, "messages")}, bindings=[(args.base, "/BASE", "rw")], ) with Submitter(plugin="slurm", sbatch_args=args.sbatch_args) as sb: singu(submitter=sb)
def test_echo( tmpdir, plugin=PLUGIN, list_lens=LIST_LENS, job_sbatch_args=JOB_SBATCH_ARGS, image=IMAGE, n_procs=N_PROCS, ): """no splitting, no result""" print("Linux container, no bind, splitting on echo") print("--------------------------------------------------") print("Singularity Task arguments:") print(f"image == {image}") print(f"tmpdir == {str(tmpdir)}") cmd = "echo" print(f"cmd == {cmd}") print() print("--------------------------------------------------") print("Submitter args") print(f"job_sbatch_args == {job_sbatch_args}") print(f"plugin == {plugin}") print(f"n_procs == {n_procs}") image = image args = dict() for i in list_lens: if i == 1: args = str(1) else: args = [str(i) for i in range(1, i + 1)] sub_tmpdir = str(tmpdir.join(f"fmriprep_echo{i}")) singu = SingularityTask(name=f"fp{i}", executable=cmd, args=args, image=image, cache_dir=tmpdir) # singu = FunctionTask(name='ft', executable=cmd, args=args, cache_dir=tmpdir) if isinstance(args, list): singu.split("args") print() print(f"Submitting job with {i} split(s)...") t0 = time.time() with Submitter(plugin=plugin, sbatch_args=job_sbatch_args, n_procs=n_procs) as sub: # with Submitter(plugin='cf') as sub: singu(submitter=sub) t1 = time.time() print(f"Time to submit: {t1-t0} s")
--skip-bids-validation --mem_mb 9500 --fs-license-file {FS_LICENSE} \ --ignore slicetiming --cifti-output".split(" ") CMD_LIST.append(CMD) ##################################################################### singu = SingularityTask( name="fmriprep", executable=CMD_LIST, image=IMAGE, cache_dir=CACHEDIR, bindings=[(BASE, "/BASE", "rw")], ).split("executable") sbatch_args = "-J Yale-50561-5 -t 1-00:00:00 --mem=10GB --cpus-per-task=1" with Submitter(plugin="slurm", sbatch_args=sbatch_args) as sub: singu(submitter=sub) res = singu.result() print("Done running!") print(f"res.output.stdout = {res.output.stdout}") print() print(f"res.output.return_code = {res.output.return_code}") # SAVE FMRIPREP OUTPUT fmriprep_stdout = f"/home/nlo/scripts/abide-pydra/pipeline/{SUBJECT}.stdout" fmriprep_stderr = f"/home/nlo/scripts/abide-pydra/pipeline/{SUBJECT}.stderr" with open(fmriprep_stdout, "w+") as f: f.write(str(res.output.stdout))
image=IMAGE, cache_dir=CACHEDIR, bindings=[(BASE, "/BASE", "rw")], container_xargs=['--cleanenv'], #audit_flags=AuditFlag.ALL, #messenger=FileMessenger() ).split("executable") print() print("SingularityTask inputs:") print(singu.inputs) print() print("SingularityTask container_args:") print(singu.container_args) print() #SBATCH_ARGS = f"-J {SITE} -t 30:00:00 --mem=8GB --cpus-per-task=2 -p gablab [email protected] --mail-type=ALL,TIME_LIMIT" #SBATCH_ARGS = f"-J {SITE} -t 36:00:00 --mem=8GB --cpus-per-task=2 -p normal [email protected] --mail-type=ALL,TIME_LIMIT" SBATCH_ARGS = f"-J {SITE} -t 36:00:00 --mem=8GB --cpus-per-task=2 -p gablab" print(f"sbatch_args:{SBATCH_ARGS}") with Submitter(plugin="slurm", sbatch_args=SBATCH_ARGS, max_jobs=400) as sub: singu(submitter=sub) res = singu.result() print("Done running!") print(res) #print(f"res.output.stdout = {res.output.stdout}") #print() #print(f"res.output.return_code = {res.output.return_code}")