Пример #1
0
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)
Пример #2
0
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")
Пример #3
0
    --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))
Пример #4
0
    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}")