本文介绍如何通过控制台、命令行和E-HPC Portal提交作业。
前提条件
集群和集群节点状态都为运行中。
已创建用户,具体操作,请参见用户管理。
通过控制台提交作业时,已在集群中准备好待执行的作业文件。
通过命令行提交作业时,集群调度器类型须为PBS、SLURM和Grid Engine。
通过控制台提交作业
进入集群详情页面。
登录弹性高性能计算控制台。
在顶部菜单栏左上角处,选择地域。
在左侧导航栏,单击集群。
在集群列表页面,单击目标集群名称。
在左侧导航栏,单击作业管理。
单击创建作业,并完成以下参数配置。
基本设置
参数项
是否必选
说明
作业名称
是
该作业的名称。
调度器队列
是
选择集群中执行作业任务的队列。
启动Job Array
否
是否启用调度器的Job Array功能。Job Array可自定义选择执行作业的规则。
最小值:指定Job Array中任务的起始值。所有任务的索引将从最小值开始递增。
最大值:指定Job Array中任务的最大值。所有任务的索引将不超过最大值。
步长:指定任务索引之间的增量。例如,如果步长为2,则任务的索引将以2的增量递增。不指定时默认为1。
作业优先级
否
作业执行的优先级取值受调度器影响而不同,取值为不小于0的整数。取值越大,优先级越高。
说明如果集群的调度策略设置为根据优先级调度,高优先级的作业会被优先调度运行。在提交了多个作业时,对于需要优先执行的作业,您可以通过设置高优先级来优先执行。
执行命令
是
向调度器提交的作业执行命令,可以是脚本文件(如
/home/test
目录下的job.pbs
),也可以是一段命令文本。分为以下两种情况:脚本文件可执行,填写相对路径,如
./job.pbs
。脚本文件没有可执行权限,则需要填写执行命令,且需要在命令前加
--
。如:--/opt/mpi/bin/mpirun /home/test/job.pbs
。
节点数
否
用来运行此作业的计算节点数。
申请CPU
否
表示集群执行该作业任务时每个节点需要使用的内存和CPU资源量。
说明填写该参数时需要根据作业的实际需求来确定,如果内存不足可能会导致作业运行失败或性能下降。
申请内存
否
高级选项
参数项
是否必选
说明
标准输出路径
否
定义Linux系统的stderr/stdout输出重定向路径,包含输出文件名。
stdout:标准文件输出路径。
stderr:错误文件输出路径。
集群用户必须有该路径的可写权限,默认按照调度器设置生成输出文件。
标准错误路径
否
环境变量
否
传递到作业的运行时变量,可以在作业执行文件中通过环境变量访问。
确认配置信息无误,单击页面底部确认创建。
通过命令行提交作业
远程连接集群的登录节点。具体操作,请参见连接集群。
根据集群的调度器类型,选择以下对应操作,编写作业脚本并提交作业。示例如下:
说明自动伸缩场景下,E-HPC不支持基于内存来扩缩容,建议您在提交作业时指定作业所需的vCPU数。
PBS
执行以下命令,编写作业脚本,脚本文件命名为jobscript.pbs。
vim jobscript.pbs
jobscript.pbs的内容示例如下。更多关于PBS命令行的信息,请参见PBS官网。
#!/bin/sh #PBS -l ncpus=4,mem=1gb #指定作业运行所需的计算资源 #PBS -l walltime=00:10:00 #预估作业运行时长 #PBS -o test_pbs.log #指定stdout输出文件 #PBS -j oe #把stderr和stdout的输出合并到指定的输出文件 cd $HOME test.py -i test.data
执行以下命令,提交作业。
qsub jobscript.pbs
SLURM
执行以下命令,编写作业脚本,脚本文件命名为jobscript.slurm。
vim jobscript.slurm
jobscript.slurm的内容示例如下,更多关于SLURM命令行的信息,请参见SLURM官网。
#!/bin/sh #SBATCH --job-name=slurm-quickstart #设置作业名称 #SBATCH --output=test_slurm.log #指定stdout输出文件 #SBATCH --nodes=1 #指定节点数量 #SBATCH --ntasks=1 #指定任务数量 #SBATCH --cpus-per-task=1 #指定每个任务需要的vCPU数 #SBATCH --time=00:10:00 #预估作业运行时长 #SBATCH --mem-per-cpu=1024 #指定每个vCPU分配的内存数 cd $HOME test.py test.data
执行以下命令,提交作业。
sbatch jobscript.slurm
Grid Engine
执行以下命令,编写作业脚本,脚本文件命名为jobscript.sh。
vim jobscript.sh
jobscript.sh的内容示例如下,更多关于Grid Engine命令行的信息,请参见SGE官网。
#!/bin/bash #$ -cwd #指定执行路径为当前路径 #$ -N test1 #设置作业名称 #$ -q all.q #指定队列 #$ -pe smp 2 #指定运行作业所需的vCPU数 #$ -l vf=1g #指定运行作业所需的内存数 #$ -o /home/testuser #指定输出日志路径 #$ -e /home/testuser #指定错误日志路径 cd $HOME test.py test.data
重要自动伸缩场景下,E-HPC会基于作业所需vCPU数来匹配扩容的ECS规格,编写Grid Engine作业脚本时必须使用-pe smp的方式来指定作业所需vCPU数。
执行以下命令,提交作业。
qsub -V jobscript.sh
通过E-HPC Portal提交作业
具体操作,请参见通过submitter提交作业。
相关文档
您也可以通过调用API接口提交作业。具体操作,请参见CreateJob。