Skip to content

Commit 2255b67

Browse files
committed
Added --copy-tool
1 parent 0118b47 commit 2255b67

2 files changed

Lines changed: 16 additions & 5 deletions

File tree

contrib/slurm-benchmark.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,12 @@ def create_argument_parser(self):
9999
action="store_true",
100100
help="Continue a previously interrupted job.",
101101
)
102+
slurm_args.add_argument(
103+
"--copy-tool",
104+
dest="copy_tool",
105+
action="store_true",
106+
help="Make a copy of the tool folder in the container.",
107+
)
102108

103109
return parser
104110

contrib/slurm/arrayexecutor.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ def get_run_cli(benchmark, args, tempdir, resultdir):
510510
"--read-only-dir",
511511
"/",
512512
"--overlay-dir",
513-
os.getcwd(),
513+
"$tooldir" if benchmark.config.copy_tool else os.getcwd(),
514514
"--hidden-dir",
515515
"/home",
516516
"--output-directory",
@@ -547,22 +547,27 @@ def get_run_cli(benchmark, args, tempdir, resultdir):
547547
f"{resultdir}:/results:rw",
548548
"--no-home",
549549
"--fusemount",
550-
f"container:fuse-overlayfs -o lowerdir=/lower {basedir}",
550+
f"container:fuse-overlayfs -o lowerdir=/lower -o upperdir=/tmp -o workdir=/tmp {basedir}",
551551
singularity,
552552
]
553553
)
554554
cli.extend(
555555
[
556556
"sh",
557557
"-c",
558-
f"cd {os.getcwd()}; "
559-
f"{shlex.join(['echo', 'Running command: ', *args])}; "
560-
f"{shlex.join(args)} 2>&1 | tee /results/log; ",
558+
(
559+
f"tooldir=$(mktemp -d -p {os.path.dirname(os.getcwd())}); cp -r {os.getcwd()}/. $tooldir/; cd $tooldir; "
560+
if benchmark.config.copy_tool
561+
else f"cd {os.getcwd()}; "
562+
f"{shlex.join(['echo', 'Running command: ', *args])}; "
563+
f"{shlex.join(args)} 2>&1 | tee /results/log; "
564+
),
561565
]
562566
)
563567

564568
cli = shlex.join(cli)
565569
cli = cli.replace("'\"'\"'$CPUSET'\"'\"'", "'$CPUSET'")
570+
cli = cli.replace("'\"'\"'$tooldir'\"'\"'", "$tooldir")
566571
logging.debug("Command to run: %s", cli)
567572

568573
return cli

0 commit comments

Comments
 (0)