上海承蓝科技股份有限公司SGE简介2017年10月目录CONTENTS1243SGE概念监控任务提交任务系统资源2PART13SGE概念节点用户工作流4基本概念SGE(SunGridEngine),作业调度系统。SGE接受由用户提交的作业,并根据资源管理策略将作业安排在集群内适当的系统上执行,用户一次可以提交多个作业,而不必考虑它们在何处运行。集群网格包括许多计算资源,SGE可以合理的分配计算资源给用户。5基本概念SGE依据管理者制定的规则,检测到集群内的所有可用资源,聚集资源,并在该集群内自动地最优地分配资源。6基本概念---节点•主控节点主控节点是所有集群活动的中心,控制SGE系统组件。一般情况,主控节点也是管理节点和提交节点。•执行节点执行节点有权限执行作业的系统,执行节点有附加到它上面的队列。•管理节点管理节点有权运行SGE系统的任何类型的管理操作。•提交节点提交节点只允许用户提交和控制批处理作业。具体说,用户登录后,可以使用qsub命令提交作业,使用qstat命令监控作业状态。还可以使用图形用户qmon。7基本概念---用户•管理人员管理人员拥有完全操作SGE系统的能力。默认情况,管理主机的超级用户都具有管理人员权限。•操作员操作员可以执行很多管理人员命令,但是进行配置更改除外。•拥有者队列拥有者可以暂停或者启动其拥有的队列,还可以暂停或启动其拥有的队列中的作业。队列拥有者没有其他管理权限。•用户用户有一定的访问权限。用户没有集群管理或者队列管理能力。8基本概念---工作流(1)用户通过SGE提交任务的时候描述任务的相关信息,如可用的队列,作业需要分配的内存和CPU等信息。当用户没有描述清楚这些信息的时候,SGE必须检索用户的身份、用户与项目、所属用户组的从属关系,提交作业后这些检索信息也将被存储起来。(2)SGE计算用户可用队列的可用内存,负载情况,然后为队列选择合适的作业,为作业选择合适的队列,优先分派具有最高优先级或等待时间最长的作业。SGE允许同时执行多个作业,SGE系统将尽量在负荷最小且最适合的队列中开始新的作业。9SGE通过以下流程工作:a)接受用户投放的任务b)在任务运行以前,将任务放到一个存储区域c)发送任务到一个执行设备,并监控任务的运行d)运行结束写回结果并记录运行日志基本概念---工作流10基本概念---基本命令命令行界面是一组辅助程序,通过它可以执行以下任务:1)管理队列2)提交和删除作业3)检查作业状态4)暂停或启动队列和作业。11•qhost--显示执行节点的状态信息。•qconf--提供集群配置和队列配置的用户界面。•qsub--将批处理作业提交到SGE系统的用户界面。•qstat--提供与集群相关的所有作业和队列的状态列表。•qhold--阻止已提交作业的执行。•qrls--将作业从之前分配的留置区域释放。•qalter--更改已经提交但暂挂的作业属性。•qdel--为用户、操作员或者管理人员提供向作业或者其子集发送信号的方式。•qmod--使拥有者暂停或者启动队列。与该队列有关的活动进程也都将得到信号。•qresub--通过复制运行的或暂挂的作业创建新作业。基本概念---基本命令PART212系统资源进程数内存节点13系统资源---资源检索命令行(CL)图形界面(GUI)14系统资源---资源检索(CL)15系统资源---资源检索(CL)16系统资源---资源检索(GUI)1.Jobcontrol2.Queuecontrol3.Submitjobs4.Complexconfiguration5.Hostconfiguration6.Clusterconfiguration7.Schedulerconfiguration8.Calendarconfiguration9.Userconfiguration10.Parallelenvironmentconfiguration11.Checkpointconfiguration12.Policyconfiguration13.Projectconfiguration14.Resourcequotaconfiguration15.AdvanceReservation16.Brower17.Exit17系统资源---资源检索(GUI)18系统资源---资源检索(GUI)PART319提交任务作业名输出文件优先级20作业提交---基本参数投递任务到指定队列all.qqsub-cwd-S/bin/bash-lvf=1.5G,cpu=8,h=node01-qall.q–p8-Nmpi-test-o${JOB_ID}.o-e${JOB_ID}.e./run.sh注:最简单的投递任务命令是:qsubrun.sh,其他参数都是可选的。-cwd#指定当前路径为工作目录,sge的日志会输出到当前路径。-S#指定远程计算节点的shell路径-l#指定资源请求,多个请求用逗号(,)隔开vf=1.5G#任务的预估内存,内存估计的值应稍微大于真实的内存,内存预估偏小可能会导致节点跑挂,一般不用h=node01#指定任务跑在node01节点上cpu=8#指定要申请的CPU核心数21-q#指定要投递到的队列,如果不指定的话,SGE会在用户可使用的队列中选择一个满足要求的队列。-P#参数指明任务所属的项目,很少用-p#设置优先级,优先级高的优先执行。默认是FIFO,first-in,first-out。-pepe_namepe_minpe_max#指定并行环境和线程数-N#指定作业名称-o#指定标准输出路径-e#指定标准错误路径run.sh#为任务脚本,这些脚本里通常是一些task,是一个tasklist作业提交---基本参数22作业提交---内部环境变量$SGE_O_HOME提交作业的主机上用户的家目录$SGE_O_HOST提交作业的主机$SGE_O_WORKDIR提交作业命令的工作目录$HOSTNAME运行作业的节点的主机名称$NHOSTS并行作业所使用的主机数量$NSLOTS并行作业所使用的队列位置数$QUEUE运行作业的队列名称$HOME用户家目录$USER作业所有者的UID号$JOB_ID当前作业的ID号$JOB_NAME当前作业的名称$HOSTNAME运算节点的主机名$TMPDIR作业临时工作目录的绝对路径$PATH默认shell搜索路径(/usr/local/bin:/usr/bin:/bin)23作业提交---脚本样本qsubmpi-test.sh24作业提交---GUIPART425任务监控等待(w)运行(r)出错(E)26作业监控---CL27作业监控---GUI28作业监控---状态参数状态含义r任务正在执行s任务被暂时挂起,往往是由于优先级更高的job抢占了资源qw任务正在等待,一旦有计算资源会马上执行hqw该任务依赖于其它正在执行的任务,待前面的任务执行完毕后再开始执行Eqw任务的提交产生错误,例如输出目录不存在dr节点挂了之后,删除任务就会出现这个状态,节点重启后,任务才会消失qstat-jjob-id按任务id查看,可以看到执行路径。29•显示作业信息qstat–jjob-id#所提交作业的详细信息qstat–f–uuser-name#显示某用户提交的作业•删除任务qdeljob-id#删除任务号为job-id的任务•更改任务状态qmod-sjob-id#挂起任务,job-id状态变为s,用的很少qmod-usjob-id#恢复挂起的任务,job-id状态变为r,用的很少•其他命令qacct#从集群日志中抽取任意账户信息,用的较多,多用在排错上。作业监控---作业调整30答疑Q&A感谢聆听THANKSFORYOURATTENTIONTHANKYOU!