bash - 通过命令行参数在脚本中设置 PBS/Torque/qsub 参数

标签 bash pbs qsub torque

我希望能够通过脚本轻松更改提交给 qsubnodesppn 等数量。也就是说,我想运行这样的东西:

qsub script.sh --name=test_job --nodes=2 --ppn=2 --arg1=2

使用如下脚本:

#/bin/bash
#PBS -N ${NAME}
#PBS -l nodes=${NODES}:ppn=${PPN},walltime=${WALLTIME}
#PBS -q ${QUEUE}
#PBS -m ${MAILOPTS}
#PBS -M ${EMAIL}

/some/command ${ARG1}

因此,我希望能够传递既能改变 PBS 环境又能改变可执行文件本身的参数。

我试过使用 qsub-v 参数:

qsub script.sh -v NAME=test_job,NODES=16,PPN=16,ARG1=2

但是作业以名称script.sh和1个node、1个ppn提交。

有什么解决方案吗?

最佳答案

@dbeer 的回答让我有了更多的了解。我的问题的解决方案如下:

#PBS args 被命令行覆盖。在这种情况下,PBS 的参数和脚本本身必须分开。因此,与其尝试做类似的事情:

#PBS -l nodes=${NODES}:ppn=${PPN},walltime=${WALLTIME}

/some/command ${ARG1}

在脚本中运行

qsub script.sh -v NODES=2,PPN=2,WALLTIME=160:00:00,ARG1=2

这些都可以用 args 设置为 qsub 本身:

qsub script.sh -l nodes=2:ppn=2,walltime=160:00:00

然后,任何需要传递给可执行文件的参数都可以通过 -v 参数传递给 qsub:

qsub script.sh -l nodes=2:ppn=2,walltime=160:00:00 -v ARGS1=2

关于bash - 通过命令行参数在脚本中设置 PBS/Torque/qsub 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42301779/

相关文章:

bash - 为什么我一直收到 `bash: local: command not found`

mysql - awk脚本调整格式

http - 我如何结合扭矩和 html,如 ncbi blast 服务?

Python:PBS 提交,如果我更改脚本会怎样?

arrays - 使用多字符分隔符将字符串拆分为数组

linux - Git 初始推送错误文件描述符错误

bash - bash 中的 matlab 批处理并行化

c++ - 写入文件 PBS MPI 时出错

python - 在交互式 qsub 环境中使用 mpirun 激活虚拟环境

bash - 如何使用 qsub 向集群提交 cat 命令并正确使用管道