您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 高性能集群作业调度系统
高性能集群作业调度系统曙光信息产业股份有限公司提纲一.作业调度系统概述二.PBS作业调度系统三.Maui调度器四.曙光Gridview作业调度中间件五.Q&A1.1集群使用中存在的问题节点多用户多任务多系统资源整合–异构资源,软硬件资源的整合任务综合管理–用户提交的任务的统一安排用户权限的管理–对用户进行各类权限控制1.2作业调度系统的功能资源管理器:管理集群的软硬件资源及认证信息等队列管理器:管理当前所有已提交但还未完成的作业调度器:为作业分配资源1.3作业调度系统的组成作业调度系统的结构1.3作业调度系统的组成1.4作业调度系统的发展历史提纲一.作业调度系统概述二.PBS作业调度系统三.Maui调度器四.曙光Gridview作业调度中间件五.Q&APBS(PortableBatchSystem),最初由NASA的Ames研究中心开发,设计为一个能满足异构计算网络需要的软件包。它力求提供对批处理的初始化和调度执行的控制,允许作业在不同主机间的路由。PBS的开源版本为OpenPBS,目前已经停止开发。PBS的商业版为PBSPro,由Altair公司开发和维护。TORQUE(Tera-scaleOpen-sourceResourceandQueuemanager)为OpenPBS的后续开源版本,修正了OpenPBS的很多bug,功能和可扩展性都有很大提高。2.1PBS作业调度系统服务器:pbs_server调度器:pbs_sched执行器:pbs_mom2.2PBS的组成•解压源文件包tarzxvftorque-2.5.12.tar.gz•编译设置cdtorque-2.5.12./configure--prefix=/usr/local\--with-server-home=/var/spool/torque\--enable-syslog\--with-scp\--enable-docs默认情况下,TORQUE将可执行文件安装在/usr/local/bin和/usr/local/sbin下。其余的配置文件和运行时环境将安装在/var/spool/torque下•编译和安装makemakeinstall2.3PBS的安装(TorqueServer端)节点操作系统相同,可以用如下SHELL脚本在计算节点(torque客户端)上安装#在管理节点上makepackages#!/bin/bashforiin`seq120`;doecho=====node$i=====sshnode$i/public/sourcecode/torque-2.5.12/\torque-package-mom-linux-*.sh--installDone2.3PBS的安装(TorqueClient端)以root作为torque的管理员账号创建作业队列在torque的安装源文件根目录中,执行./torque.setuprootServer配置目录/var/spool/torque/server_priv/计算节点列表及属性:/var/spool/torque/server_priv/nodesnode2np=12amdchemnode3np=12amdchemnode4np=8intelchemnode5np=8intelchemnode6np=4intelbiogpunode7np=4intelbiogpu2.3PBSServer配置•Server的系统启动脚本/etc/init.d/pbs_serverScheduler系统启动脚本/etc/init.d/pbs_schedMom系统启动脚本/etc/init.d/pbs_mom•Torque服务端chkconfigpbs_serveronchkconfigpbs_schedonservicepbs_serverstartservicepbs_schedstart•Torque客户端chkconfigpbs_momonservicepbs_momstart2.3PBS系统服务2.4PBS主要操作队列设置节点查看提交作业查看作业作业其他操作PBS要能正常运行还需要通过qmgr命令在server进行配置,设置一些属性。输入qmgr命令进入配置交互命令,格式为qmgr动作对象类型和操作符动作对象类型对象名属性操作符值(,属性操作符值)……create创建一个对象delete删除一个对象set设置对象的属性unset除去对象的属性print打印对象的属性list列出对象的属性server服务器=queue队列+=node节点-=2.4.1PBS的队列设置创建队列createqueue队列名queue_type=execution打开和启动队列setqueue队列名enable=t,started=t打开调度setserverscheduling=t设置默认队列setserverdefault_queue=队列名2.4.1PBS的队列设置下面是让PBS可以正常运行的基本设置导入server配置文件qmgrqueue.conf备份配置文件qmgr-c“printserver”queue.conf配置文件例子createqueuedefaultsetqueuedefaultqueue_type=executionsetqueuedefaultmax_running=10setqueuedefaultenabled=Truesetqueuedefaultstarted=Truesetserverscheduling=Truesetserverdefault_queue=defaultsetserverquery_other_jobs=True2.4.1PBS的队列设置资源和用户限制resources_default.cput该队列默认的作业的CPU时间,格式:时:分:秒注意:该CPU时间为:进程数*(结束时间-开始时间)resources_default.walltime该队列默认的墙上时间,格式:时:分:秒max_running某队列最多可运行的作业数,如果该项为0或没有该项,表示没有限制max_user_run一个用户最多可以运行的作业数acl_user_enable是否启用用户访问控制,如果acl_user_enable=True,则在acl_users中列出的用户才能使用该队列acl_users格式:用户名@主机名,用户名不接受通配符acl_host_enable如果acl_host_enable=True,则acl_hosts属性中列出的主机才能使用该队列acl_hosts该队列可以使用的节点列表2.4.1PBS的队列设置[dawning@node1~]$pbsnodes-anode2state=freenp=12ntype=clusterstatus=rectime=1347344839,varattr=,jobs=,state=free,netload=1994804223313,gres=,loadave=0.15,ncpus=32,physmem=132133404kb,availmem=147084788kb,totmem=148910612kb,idletime=1721946,nusers=1,nsessions=1,sessions=2455,uname=Linuxnode22.6.32-220.el6.x86_64#1SMPWedNov908:03:13EST2011x86_64,opsys=linuxgpus=0node3state=downnp=12ntype=cluster…2.4.2PBS查看节点状态pbsnodes命令的主要参数-a列出所有结点及其属性,属性包括“state”和“status”-o将指定结点的状态标记为“offline”。这将帮助管理员暂时停止某些结点的服务-l以行的方式列出被标记的结点的状态,如-lfree,-loffline-c清除结点列表中的“offline”或“down”状态设置,使结点可以被分配给作业-r清除指定结点的“offline”状态2.4.2PBS查看节点状态步骤:1.准备:编写描述该作业的脚本,包括作业名,需要的资源等。2.提交:使用qsub命令将该作业提交给PBS服务器3.排队:服务器将该任务排入适当的队列4.调度:服务器检查各工作节点的状态是否符合该作业的要求,并进行调度。5.执行:当条件满足时,作业被发给相应的执行服务器执行。程序运行时执行服务器会收集程序的标准输出和标准错误流,等程序结束时,将这些信息返回给用户。6.查询和调整:当作业在运行时,用户可以使用qstat进行状态查询。用户发现作业提交错误时,可以使用qdel删除正在运行的作业。7.查看结果:使用文本编辑软件vi或者系统命令cat,less等查看输出及错误信息显示。2.4.3PBS作业提交在PBS系统中,用户使用qsub命令提交用户程序。用户运行程序的命令及PBS环境变量设置组成PBS作业脚本,如下qsubPBS作业脚本2.4.3PBS作业提交基本命令#PBS-Nvasp#PBS-lnodes=2:ppn=1#PBS-lwalltime=12:00:00#PBS-qdefaultcd$PBS_O_WORKDIR./test.exe作业脚本使用如下格式提交到PBS系统运行运行参数说明-a作业开始运行的时间向PBS系统指定作业运行的开始时间。作业运行时间格式为:[[[[CC]YY]MM]DD]hhmm[.SS]-A用户名使用不同的用户来提交作业,缺省使用当前用户名-o标准输出文件的路径-e标准错误输出的路径该参数指定标准错误输出的位置,缺省的情况下,PBS系统把标准输出和标准错误输出放在用户qsub命令提交作业的目录下。标准错误输出:作业名.o作业号标准错误输出:作业名.e作业号路径使用如下格式标准:[节点名:]路径名-N作业名指定提交的作业名-q目标队列指定作业提交的目标队列。如果该参数没有指定,命令qsub会把作业脚本提交到缺省的队列中。-l申请资源列表该参数指定作业脚本申请的PBS系统资源列表。申请资源列表使用如下格式:资源名[=[数量]][,资源名[=[数量]],…..]例如作业希望申请在双路节点上申请4个CPU资源的情况,则可以在脚本中如下:#PBS–lnodes=2:ppn=2运行参数在PBS脚本和qsub命令行中均有效,qsub命令行参数的优先级更高2.4.3PBS运行参数变量名说明登陆SHELL继承来的变量包括$HOME,$LANG,$LOGNAME,$PATH,$MAIL,$SHELL和$TZ。$PBS_O_HOSTqsub提交的节点名称$PBS_O_QUEUEqsub提交的作业的最初队列名称$PBS_O_WORKDIRqsub提交的作业的绝对路径$PBS_JOBID作业被PBS系统指定的作业号$PBS_JOBNAME用户指定的作业名,可以在作业提交的时候用qsub–N作业名指定,或者在PBS脚本中加入#PBS–N作业名。$PBS_NODEFILEPBS系统指定的作业运行的节点名。该变量在并行机和机群中使用。当在PBS脚本中用#PBS–lnodes=2:ppn=2指定程序运行的节点数时,可以使用$PBS_NODEFILE在脚本中引用PBS系统指定的作业运行的节点名。比如:#PBS–lnodes=2:ppn=2mpirun–np4–machinefile$PBS_NODEFILE程序名$PBS_QUEUEPBS脚本在执行时的队列名2.4.3PBS环境变量#这是一个串行作业脚本的例子#PBS-Ntest#PBS-lnodes=1:ppn=1cd$HOME/test/./a.out$HOME/result/a.result#这是一个并行作业脚本的例子#PBS-Nvasp_job#PBS-lnodes=2:ppn=2#PBS-qlowech
本文标题:高性能集群作业调度系统
链接地址:https://www.777doc.com/doc-4410929 .html