如何解决为 SLURM
我有一个 bash 脚本,如下所示:
#!/bin/sh
nz=$(tail -1 temp.txt)
nz_5=$(($nz_calc + 5))
nz_10=$(($nz_calc + 10))
python3 code.py $nz $nz_10 # Make 10 input files
./fortran_executable & # This code updates temp.txt every five iterations with a new line saying the iteration number
while [ $nz_10 -lt 1000 ]
do
inotifywait -q -e modify temp.txt > /dev/null; # wait for updates to
for ((i=$nz;i<$nz_5;i++))
do
rm "input/A${i}"; # Dispose of the unused files
done
nz=$(tail -1 test.txt)
nz_5=$(($nz + 5))
nz_10=$(($nz + 10))
python3 code.py $nz_5 $nz_10 # Make 5 new input files
done
fortran_executable 一次接收一个文件 A0...A1000,并设置为每 5 步将迭代次数输出到 temp.txt(例如 A10..A14 已处理,写入 15)。我有一个名为 code.py 的单独 Python 脚本,它生成这些 A# 文件。由于这些A#文件很大,下面的bash脚本设计为制作10个A#文件,在后台启动可执行文件,然后删除最旧的5个并创建5个新的,直到达到A1000。
这两个任务都很耗时,但不需要太多内存,所以我希望在单个内核上运行这两个任务,而不是为 sbatch 编写两个单独的脚本。当谈到将其调整为 SLURM 时,我想知道 (1) 是否允许在后台运行一个可执行文件而另一个在 inotifywait 循环中继续运行,以及任务是异步运行还是同步运行 (1b) 如果没有,我是否实施 SLURM 等待形式主义/只运行两个单独的 bash 脚本? (3) 将输出引导至 /dev/null 的 SLURM 等效项是什么
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。