gpt4 book ai didi

slurm - 批处理: pass job name as input argument

转载 作者:行者123 更新时间:2023-12-04 03:57:10 25 4
gpt4 key购买 nike

我有以下脚本用Slurm提交作业:

#!/bin/sh
#!/bin/bash
#SBATCH -J $3 #job_name
#SBATCH -n 1 #Number of processors
#SBATCH -p CA

nwchem $1 > $2

第一个参数($ 1)是我的输入,第二个参数($ 2)是我的输出,我希望第三个参数($ 3)是我的工作名称。如果我这样,工作名称为“$ 3”。如何继续将作业名称作为脚本的参数?

谢谢

最佳答案

SBATCH指令被shell视为注释,它不对$3执行变量替换。有几种行动方案:

选项1:在命令行中传递-J参数:

sbatch -J thejobname submission_script.sh input.data output.res

选项2:通过 stdin传递脚本,替换位置参数( $1$2等,以已命名的位置为参数)
IN=input.data OUT=output.res NAME=thejobname <submission_script.sh sbatch 

选项3:编写包装器
#!/bin/bash
sbatch <<EOT
#!/bin/sh
#SBATCH -J $3 #job_name
#SBATCH -n 1 #Number of processors
#SBATCH -p CA

nwchem $1 > $2
EOT

并像这样使用它:
submit.sh input.data output.red thejobname

还要注意,第二个shebang( #!/bin/bash)是无用的,并且被(父)shell忽略。

关于slurm - 批处理: pass job name as input argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36279200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com