如何提交调用我的 python 脚本的 SGE 作业

How to submit a SGE job calling my python script

所以,我想在远程机器上 运行 一个 python 脚本。但是,在服务器手册中,他们是这样说的:

You need to create this script and save it.

#!/bin/bash
#$ -V ## pass all environment variables to the job, VERY IMPORTANT
#$ -N run_something ## job name
#$ -S /bin/bash ## shell where it will run this job
#$ -j y ## join error output to normal output
#$ -cwd ## Execute the job from the current working directory
#$ -q lowmemory.q ## queue name
uptime > myUptime.${JOB_ID}.txt
echo $HOSTNAME >> myUptime.${JOB_ID}.txt

So if this script was called blast_AE004437.sh we could run the following to make all of those steps happen.

qsub my_script.sh

因此,我假设我需要为 运行 创建一个 .sh 文件并将所有这些命令添加到我的原始脚本中。是吗?因为我正在这样做,但什么也没发生。在所有这些命令之后,我还添加 "python2.7" 以加载 python。我做错了什么?顺便说一句,输出会出现在同一个文件中,还是我需要下载不同的文件?

您列出的文件是 SGE 运行 脚本的开头 由作业调度程序调用。 qsub 提交给调度 系统。一旦集群机器上有空闲插槽, 运行 脚本在那里被调用。

我建议你在这个文件中调用你自己的脚本。

...
echo $HOSTNAME >> myUptime.${JOB_ID}.txt

cd /directory/of/your/script                         # change directory  
python2.7 your_script.py arg1 arg2 ... >> output.${JOB_ID}.log  # call your script

通常您还需要手动设置 $PATH 变量和 $PYTHONPATH 变量 在你可以打电话给 python.

之前