有没有办法阻止sbatch将脚本复制到计算节点。例如,当我跑:
sbatch --mem=300 /shared_between_all_nodes/test.sh
test.sh被复制到执行计算节点上的/ var / lib / slurm-llnl / slurmd / etc /。这样做的问题是/ shared_between_all_nodes /中有其他脚本需要使用test.sh,我想避免对路径进行硬编码。
在sge中,我可以使用qsub -b y来阻止它将脚本复制到计算节点。在slurm中是否有类似的选项或配置?
答案 0 :(得分:1)
使用sbatch --wrap是一个很好的解决方案
sbatch --wrap /shared_between_all_nodes/test.sh
如果脚本具有参数,则需要引号
sbatch --wrap "/shared_between_all_nodes/test.sh param1 param2"
来自sbatch docs http://slurm.schedmd.com/sbatch.html
- 涡卷= Sbatch将指定的命令字符串包装在一个简单的“sh”shell脚本中,并将该脚本提交给slurm控制器。使用--wrap时,可能无法在命令行中指定脚本名称和参数;而是使用sbatch生成的包装器脚本。
答案 1 :(得分:0)
可能会在那里复制脚本,但工作目录将是启动sbatch
命令的目录。因此,如果从/shared_between_all_nodes/
启动命令,它应该可以工作。
为了能够在任何地方提出sbatch
表格,请使用此选项
-D, --workdir=<directory>
Set the working directory of the batch script to directory before
it is executed.
喜欢
sbatch --mem=300 -D /shared_between_all_nodes /shared_between_all_nodes/test.sh