无法在 sge 文件中提交作业
job can't be submitted inside sge file
我想通过 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 作业吗?如果没有,是否有其他方法可以做这样的事情?
通常的方法是从您登录的一台主机提交所有作业,提交您的作业,并检查作业状态。提交的作业计划在集群中的计算节点上执行。如果你有多个作业和作业之间的依赖关系,你可以向作业调度程序声明依赖关系。例如,您可以告诉调度程序在开始作业 B 之前等待作业 A 完成。
第一个作业(run.sge)被提交到的节点,compute-2-9.local
,也必须是您调用的提交节点qsub
再次出现在 run_inp.sge 中。 qsub
命令只允许在提交节点上使用。目前 compute-2-9.local
只是一个执行节点,因此会出现错误。但是,正如@Steve 提到的那样,最好为此使用作业依赖项,除非您正在尝试 "incept" SGE!
我想通过 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 作业吗?如果没有,是否有其他方法可以做这样的事情?
通常的方法是从您登录的一台主机提交所有作业,提交您的作业,并检查作业状态。提交的作业计划在集群中的计算节点上执行。如果你有多个作业和作业之间的依赖关系,你可以向作业调度程序声明依赖关系。例如,您可以告诉调度程序在开始作业 B 之前等待作业 A 完成。
第一个作业(run.sge)被提交到的节点,compute-2-9.local
,也必须是您调用的提交节点qsub
再次出现在 run_inp.sge 中。 qsub
命令只允许在提交节点上使用。目前 compute-2-9.local
只是一个执行节点,因此会出现错误。但是,正如@Steve 提到的那样,最好为此使用作业依赖项,除非您正在尝试 "incept" SGE!