1

有没有办法阻止 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 -by 阻止它将脚本复制到计算节点。slurm 中是否有类似的选项或配置?

4

2 回答 2

1

使用 sbatch --wrap 是一个很好的解决方案

sbatch --wrap /shared_between_all_nodes/test.sh

如果脚本有参数,则需要引号

sbatch --wrap "/shared_between_all_nodes/test.sh param1 param2"

来自 sbatch 文档http://slurm.schedmd.com/sbatch.html

--wrap= Sbatch 将指定的命令字符串包装在一个简单的“sh” shell 脚本中,并将该脚本提交给 slurm 控制器。使用 --wrap 时,命令行中可能不指定脚本名称和参数;而是使用 sbatch 生成的包装脚本。

于 2014-08-15T01:24:01.283 回答
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
于 2014-07-11T15:42:55.163 回答