作业无法在sge文件中提交

时间:2018-04-19 20:44:51

标签: linux server cluster-computing sungridengine

我想通过sge文件提交sge作业。

例如,我有 run.sge 文件,如下所示:

## SGE options
#$ -cwd
#$ -l mem_free=2G
##$ -q all.q@compute-2-3.local
#$ -pe mpich 4
#$ -S /bin/bash

SCRATCH_DIR=/state/partition1/$USER-$JOB_ID
mkdir $SCRATCH_DIR

qsub run_inp.sge

rmdir $SCRATCH_DIR

run_inp.sge 文件如下:

## SGE options
#$ -cwd
#$ -l mem_free=2G
##$ -q all.q@compute-2-3.local
#$ -pe mpich 4
#$ -S /bin/bash

INPUTFILE="main.inp"
JOB="main"

SCRATCH_DIR=/state/partition1/$USER-$JOB_ID
mkdir $SCRATCH_DIR

/share/apps/simula/Commands/abaqus double inp=$INPUTFILE scratch=$SCRATCH_DIR job=$JOB mp_mode=mpi interactive

rmdir $SCRATCH_DIR

每当我通过

提交工作
qsub run.sge

我收到了这个错误:

Unable to run job: denied: host "compute-2-9.local" is no submit host.
Exiting.

但是如果我直接提交run_inp.sge,它可以正常工作:

qsub run_inp.sge

我的问题是,我可以在sge工作中提交sge工作吗?如果没有,是否有替代方法来做这样的事情?

2 个答案:

答案 0 :(得分:1)

通常的做法是从您登录的主机提交所有作业,提交作业并检查作业状态。提交的作业计划在群集中的计算节点上执行。如果作业之间有多个作业和依赖关系,则可以向作业计划程序声明依赖关系。例如,您可以告诉调度程序在启动作业B之前等待作业A完成。

答案 1 :(得分:1)

第一个作业( run.sge )提交的节点compute-2-9.local,在再次呼叫qsub时,也必须是提交节点run_inp.sge 即可。仅在提交节点上允许qsub命令。目前compute-2-9.local仅是执行节点,因此是错误。但是,正如@Steve所提到的,最好使用作业依赖关系,除非你尝试“incept”SGE!