我想在不创建离散作业文件的情况下即时提交 qsub 作业。所以,假设我有一个名为“get_time.py”的 python 脚本,它只是报告时间。而不是像这样制作提交脚本:

cat>job.sub<<eof
    #PBS -l walltime=1:00:00
    cd $PBS_O_WORKDIR
    get_time.py
eof

...然后提交作业:qsub job.sub
我希望能够绕过文件创建步骤,并且我认为构造将是这样的:
qsub -d . -e get_time.py
其中 -e 是我的假想参数,它告诉 qsub 以下是要发送到调度程序的代码,而不是使用离散提交文件。

我疯了吗?似乎应该已经有一个简单的解决方案,但我在任何地方都找不到。感谢您的任何建议!

最佳答案

在提供所有选项( qsub 等)后,您可以将任何可执行脚本/文件的名称传递给 -d . 。脚本名称之后的任何参数都被视为该脚本的参数。例如,如果我有脚本 test.py:

#!/usr/bin/python
from sys import argv
script, param = argv
print param

然后我可以跑
qsub test.py 2

我的日志的输出将是 2

需要注意的两个重要事项:
  • 你的 Python 脚本必须是可执行的(例如 chmod +x test.py )。
  • 你的 Python 脚本必须有一个shebang(例如 #!/usr/bin/python )。
  • 关于python - 在没有实际作业文件的情况下提交 qsub 作业的语法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20127722/

    10-10 09:09