高性能集群作业调度系统_第1页
高性能集群作业调度系统_第2页
高性能集群作业调度系统_第3页
高性能集群作业调度系统_第4页
高性能集群作业调度系统_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高性能集群作业调度系统曙光信息产业股份有限公司 提纲一作业调度系统概述二PBS作业调度系统三Maui调度器四曙光Gridview作业调度中间件五Q&A1. 1 集群使用中存在的问题节点多用户多任务多 系统资源整合 异构资源,软硬件资源的整合 任务综合管理 用户提交的任务的统一安排 用户权限的管理 对用户进行各类权限控制1.2 作业调度系统的功能 资源管理器:管理集群的软硬件资源及认证信息等 队列管理器:管理当前所有已提交但还未完成的作业 调度器:为作业分配资源1.3 作业调度系统的组成作业调度系统的结构1.3 作业调度系统的组成1.4 作业调度系统的发展历史 提纲一作业调度系统概述二P

2、BS作业调度系统三Maui调度器四曙光Gridview作业调度中间件五Q&A PBS(Portable Batch System), 最初由NASA的Ames研究中心开发,设计为一个能满足异构计算网络需要的软件包。它力求提供对批处理的初始化和调度执行的控制,允许作业在不同主机间的路由。 PBS的开源版本为OpenPBS,目前已经停止开发。 PBS的商业版为PBS Pro,由Altair公司开发和维护。 TORQUE( Tera-scale Open-source Resource and Queue manager )为 OpenPBS的后续开源版本,修正了OpenPBS的很多bug,

3、功能和可扩展性都有很大提高。2.1 PBS作业调度系统服务器: pbs_server调度器: pbs_sched执行器: pbs_mom2.2 PBS的组成解压源文件包 tar zxvf torque-2.5.12.tar.gz 编译设置 cd torque-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下。其余的

4、配置文件和运行时环境将安装在/var/spool/torque下编译和安装makemake install2.3 PBS的安装(Torque Server端)节点操作系统相同,可以用如下SHELL脚本在计算节点(torque客户端)上安装#在管理节点上make packages#!/bin/bash for i in seq 1 20; do echo =node$i= ssh node$i /public/sourcecode/torque-2.5.12/ torque-package-mom-linux-*.sh -install Done2.3 PBS的安装(Torque Client端

5、)p 以root作为torque的管理员账号创建作业队列在torque的安装源文件根目录中,执行./torque.setup rootp Server配置目录 /var/spool/torque/server_priv/p 计算节点列表及属性:/var/spool/torque/server_priv/nodesnode2 np=12 amd chemnode3 np=12 amd chemnode4 np=8 intel chemnode5 np=8 intel chemnode6 np=4 intel bio gpunode7 np=4 intel bio gpu2.3 PBS Serve

6、r配置Server的系统启动脚本 /etc/init.d/pbs_server Scheduler系统启动脚本 /etc/init.d/pbs_sched Mom系统启动脚本 /etc/init.d/pbs_momTorque服务端 chkconfig pbs_server on chkconfig pbs_sched on service pbs_server start service pbs_sched startTorque客户端 chkconfig pbs_mom on service pbs_mom start2.3 PBS系统服务2.4 PBS主要操作队列设置节点查看提交作业查看

7、作业作业其他操作PBS要能正常运行还需要通过qmgr命令在server进行配置,设置一些属性。输入qmgr命令进入配置交互命令,格式为 qmgr动作 对象类型和操作符 动作 对象类型 对象名 属性 操作符 值(,属性 操作符 值)create创建一个对象delete删除一个对象set设置对象的属性unset除去对象的属性print打印对象的属性list列出对象的属性server服务器queue队列node节点2.4.1 PBS的队列设置创建队列create queue 队列名 queue_type = execution打开和启动队列set queue 队列名 enable=t, starte

8、d=t打开调度set server scheduling=t设置默认队列set server default_queue=队列名2.4.1 PBS的队列设置下面是让PBS可以正常运行的基本设置 导入server配置文件qmgr queue.conf 配置文件例子 create queue default set queue default queue_type = execution set queue default max_running = 10 set queue default enabled = True set queue default started = True set s

9、erver scheduling = True set server default_queue = default set server query_other_jobs = True2.4.1 PBS的队列设置 资源和用户限制resources_default.cput 该队列默认的作业的CPU时间,格式:时:分:秒注意:该CPU时间为:进程数*(结束时间-开始时间)resources_default.walltime该队列默认的墙上时间,格式:时:分:秒max_running某队列最多可运行的作业数,如果该项为0或没有该项,表示没有限制max_user_run一个用户最多可以运行的作业数

10、acl_user_enable是否启用用户访问控制,如果acl_user_enable = True,则在acl_users中列出的用户才能使用该队列acl_users格式:,用户名不接受通配符acl_host_enable如果acl_host_enable = True,则acl_hosts属性中列出的主机才能使用该队列acl_hosts该队列可以使用的节点列表2.4.1 PBS的队列设置dawningnode1 $ pbsnodespbsnodes -a -anode2 statestate=free npnp=12 ntypentype=cluster status =rectime=1

11、347344839,varattr=,jobs=,state=free,netload=1994804223313,gres=,loadave=0.15,ncpusncpus=32,physmem=132133404kb,availmemavailmem=147084788kb,totmem=148910612kb,idletime=1721946,nusers=1,nsessions=1,sessions=2455,uname=Linux node2 2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64,opsys=l

12、inux gpusgpus = 0node3 state=down np=12 ntype=cluster 2.4.2 PBS查看节点状态pbsnodes命令的主要参数-a 列出所有结点及其属性,属性包括“state”和“status”-o 将指定结点的状态标记为“offline”。这将帮助管理员暂时停止某些结点的服务-l 以行的方式列出被标记的结点的状态,如 -l free,-l offline-c 清除结点列表中的“offline”或“down”状态设置,使结点可以被分配给作业-r 清除指定结点的“offline”状态2.4.2 PBS查看节点状态步骤:1.准备:编写描述该作业的脚本,包括

13、作业名,需要的资源等。2.提交:使用qsub命令将该作业提交给PBS服务器3.排队:服务器将该任务排入适当的队列4.调度:服务器检查各工作节点的状态是否符合该作业的要求,并进行调度。5.执行:当条件满足时,作业被发给相应的执行服务器执行。程序运行时执行服务器会收集程序的标准输出和标准错误流,等程序结束时,将这些信息返回给用户。6.查询和调整:当作业在运行时,用户可以使用qstat进行状态查询。用户发现作业提交错误时,可以使用qdel删除正在运行的作业。7.查看结果:使用文本编辑软件vi或者系统命令cat, less等查看输出及错误信息显示。2.4.3 PBS作业提交 在PBS系统中,用户使用

14、qsub 命令提交用户程序。用户运行程序的命令及PBS环境变量设置组成PBS作业脚本,如下qsub 2.4.3 PBS作业提交基本命令#PBS -N vasp#PBS -l nodes=2:ppn=1#PBS -l walltime=12:00:00#PBS -q default cd $PBS_O_WORKDIR./test.exe作业脚本使用如下格式提交到PBS系统运行运运 行行 参参 数数说说 明明-a 向PBS系统指定作业运行的开始时间。作业运行时间格式为: CCYYMMDDhhmm.SS-A 使用不同的用户来提交作业,缺省使用当前用户名-o -e 该参数指定标准错误输出的位置,缺省的

15、情况下,PBS系统把标准输出和标准错误输出放在用户qsub命令提交作业的目录下。标准错误输出:.o标准错误输出:.e路径使用如下格式标准: :-N 指定提交的作业名-q 指定作业提交的目标队列。如果该参数没有指定,命令qsub会把作业脚本提交到缺省的队列中。-l 该参数指定作业脚本申请的PBS系统资源列表。申请资源列表使用如下格式: =,资源名=, .例如作业希望申请在双路节点上申请4个CPU资源的情况,则可以在脚本中如下:#PBS l nodes=2:ppn=2运行参数在 PBS 脚本和 qsub 命令行中均有效,qsub命令行参数的优先级更高2.4.3 PBS 运行参数变变 量量 名名说说

16、 明明登陆登陆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 l nodes=2

17、:ppn=2指定程序运行的节点数时,可以使用$PBS_NODEFILE在脚本中引用PBS系统指定的作业运行的节点名。比如:#PBS l nodes=2:ppn=2mpirun np 4 machinefile $PBS_NODEFILE $PBS_QUEUEPBS脚本在执行时的队列名2.4.3 PBS 环境变量# 这是一个串行作业脚本的例子#PBS -N test#PBS -l nodes=1:ppn=1cd $HOME/test/./a.out $HOME/result/a.result# 这是一个并行作业脚本的例子#PBS -N vasp_job#PBS -l nodes=2:ppn=2#

18、PBS -q lowecho This job is $PBS_JOBID$PBS_QUEUE cd $PBS_O_WORKDIRmpirun -np 16 -machinefile $PBS_NODEFILE ./vasp2.4.3 PBS 脚本举例#PBS -l nodes=2:ppn=4:amd:chem#PBS -l nodes=1:ppn=8:chem+1:ppn=8:bio#PBS -l nodes=node1:ppn=8+node2:ppn=8指定节点特性p 一些软件有特殊的节点指定格式,比如ANSYS的命令行参数格式为: ansys121 -dis -machines node

19、1:2:node2:2 -i test.inp -o test.logp 这时我们可以对 $PBS_NODEFILE 进行字符处理,得到需要的格式2.4.3 PBS 脚本举例# 这是一个ANSYS并行作业的例子#PBS -N ansys_job#PBS -l nodes=2:ppn=8#PBS -q lowINPUTFILE=test.inpOUTPUTFILE=test.loghosts=cat $PBS_NODEFILE | uniq -c | awk print $2:$1 | tr n : | sed s/:$/cd $PBS_O_WORKDIRansys121 -dis -machi

20、nes $hosts -i $INPUTFILE -o $OUTPUTFILE作业提交后,会生成一个作业号,如:dawningnode1 $ qsub test.pbs93.node1查看集群作业运行状态:dawningnode1 $ qstat Job id Name User Time Use S Queue- - - - - -93.node1 test.pbs test 0 R default95.node1 vasp.Hg vasp 0 E default111.node1 structure amber 0 Q default2.4.4 PBS 查看作业状态E:退出 Q:排队H:挂

21、起 R :运行C:结束查询某个作业运行状态:qstat 93.node1 (或者 qstat 93)显示作业运行在哪些节点上:qstat -n 93.node1 显示作业运行详细信息:qstat -f 93.node1dawningnode1 $ qstat Job id Name User Time Use S Queue- - - - - -93.node1 test.pbs zhaocs 0 R default95.node1 vasp.Hg vasp 0 E default111.node1 structure amber 0 Q defaultqdel 93.node1注:用户只能删

22、除自己的作业,管理员可以删除所有用户作业2.4.5 PBS 作业其他操作删除作业dawningnode1 $ qstat Job id Name User Time Use S Queue- - - - - -93.node1 test.pbs zhaocs 0 R default95.node1 vasp.Hg vasp 0 E default111.node1 structure amber 0 Q default挂起作业:qhold 111.node1取消作业挂起qrls 111.node1作业挂起及取消2.4.5 PBS 作业其他操作dawningnode1 $ qstat Job i

23、d Name User Time Use S Queue- - - - - -93.node1 test.pbs zhaocs 0 R default95.node1 vasp.Hg vasp 0 E default111.node1 structure amber 0 Q default更改作业2.4.5 PBS 作业其他操作更改作业运行队列:qmove high 111.node1更改作业资源属性:qalter -l walltime=10:00:00 111.node1交换作业顺序2.4.5 PBS 作业其他操作dawningnode1 $ qstat Job id Name User

24、Time Use S Queue- - - - - -93.node1 test.pbs zhaocs 0 R default95.node1 vasp.Hg vasp 0 E default111.node1 structure amber 0 Q default112.node1 gaussian gauss 0 Q default交换两个作业的排队顺序:qorder 111.node1 112.node1dawningnode1 $ qstat Job id Name User Time Use S Queue- - - - - -93.node1 test.pbs zhaocs 0 R

25、 default95.node1 vasp.Hg vasp 0 E default112.node1 gaussian gauss 0 Q default111.node1 structure amber 0 Q default2.4.5 PBS 作业其他操作 PBS脚本中可以指定多个作业之间的依赖关系,比如作业提交前另一个作业必须完成,否则处于排队状态#PBS -N step2#PBS -l nodes=4:ppn=4#PBS -q high#PBS -W depend=after: #PBS -N job_rerun#PBS -l nodes=4:ppn=4#PBS -q high#PBS

26、 -W depend=afternotok: 当指定作业非正常结束,作业才能提交运行一作业调度系统概述二PBS作业调度系统三Maui调度器四曙光Gridview作业调度中间件五Q&A 提纲 Torque带有自己的默认调度策略器(pbs_sched),但是这个最基本的调度策略并不高级。它根据fifo的原则安排作业,对一般的集群管理应该是足够了,但如果你的集群有几百个以上节点,分成若干个队列,那pbs_sched就力不从心了。 为此,可以使用一系列第三方的调度策略进行补充。Maui就是被广泛使用的调度策略之一。3.1 Maui调度器介绍3.1 Maui调度器介绍 Maui采用积极的调度策略

27、优化资源的利用和减少作业的响应时间。 Maui的资源和负载管理允许高级的参数配置:作业优先级(Job Priority)、调度和分配(Scheduling and Allocation)、公平性和公平共享(Fairness and Fairshare)和预留策略(Reservation Policy)。Maui的QoS机制允许资源和服务的直接传递、策略解除(Policy Exemption)和指定特征的受限访问。 Maui需要资源管理器和其配合使用。我们可以把Maui想象为PBS中的一个插入部件。 集群已安装配置好Torque解压源文件包 tar zxvf maui-3.2.6p17.tar.

28、gz 编译设置 cd maui-3.2.6p17 ./configure -with-pbs=/usr/local -with-pbs指定Torque安装目录编译和安装 make make install 3.1 Maui安装(Server)p 编辑启动脚本 cd maui-3.2.6p17 cp etc/maui.d /etc/init.d/ vim /etc/init.d/maui.d 修改其中的” MAUI_PREFIX=/usr/local/maui” (maui的安装目录)p 停用pbs_sched,启用maui chkconfig pbs_sched off chkconfig m

29、aui.d on service pbs_sched stop service maui.d start3.1 Maui安装(Server)Maui的配置参数都写在配置文件maui.cfg中,配置参数可以参考官方手册Maui Administrators Guide主要参数如下: vim maui.cfg # 设置Maui服务器主机名SERVERHOST server # 一级权限用户,拥有Maui所有控制权限,包括更改调度策略,更改作业属性 ADMIN1 root # 二级权限用户,不能更改调度策略,但能更改作业属性 ADMIN2 zhang wang zhao # 三级权限用户,只有查看权

30、限,ALL表示所有账户 ADMIN3 ALL3.2 Maui配置# 定义资源管理器(Resource Manager),指定类型为PBS,以及Torque服务器主机名,刷新资源信息的时间,端口号 RMCFG0 TYPE=PBS HOST=server RMPOLLINTERVAL 00:00:30 SERVERPORT 42559 SERVERMODE NORMAL# 日志设置 LOGFILE maui.log LOGFILEMAXSIZE 10000000 LOGLEVEL 3 3.2 Maui配置#设置Fair share策略 #FSPOLICY PSDEDICATED #FSDEPTH

31、7 #FSINTERVAL 86400 #FSDECAY 0.80#设置回填(Backfill)策略 BACKFILLPOLICY FIRSTFIT RESERVATIONPOLICY CURRENTHIGHEST#节点分配策略 #NODEALLOCATIONPOLICY MINRESOURCE #NODEALLOCATIONPOLICY CPULOAD #NODEALLOCATIONPOLICY SHARED NODEALLOCATIONPOLICY FIRSTAVAILABLE 3.2 Maui配置# QOS配置 QOSCFGpreemptor QFLAGS=PREEMPTOR QOSCF

32、Gpreemptee QFLAGS=PREEMPTEE CLASSCFGhigh PRIORITY=11000 QDEF=preemptor CLASSCFGlow PRIORITY=6000 QDEF=preemptee CLASSCFGmiddle PRIORITY=9000 QDEF=preemptee#用户优先级设置 USERCFGroot MAXPROC=400 MAXNODE=100 MAXJOB=100 USERCFGtest PRIORITY=100 MAXPROC=200 MAXJOB=10 USERCFGDEFAULT PRIORITY=100 MAXPROC=100 MA

33、XJOB=43.2 Maui配置一作业调度系统概述二PBS作业调度系统三Maui调度器四曙光Gridview作业调度中间件五Q&A 提纲 4 曙光Gridview作业调度中间件介绍功能中间件应用使用方法作业调度中间件结构图4.1 曙光Gridview作业调度中间件增加节点修改节点删除节点创建队列修改队列删除队列队列节点用户修改用户身份修改用户等级修改用户权限强大的资源管理4.2 作业调度中间件功能基于WEB图形界面集成度高,嵌入到Gridview中流程简单界面友好1423轻巧的专业应用提交4.2 作业调度中间件功能管理多个集群1提供完善的参数设置2灵活的提交方式34.2 作业调度中间件

34、功能作业提交提供作业监控功能1提供修改作业状态功能2提供多集群作业监控34.2 作业调度中间件功能作业管理实用的用户管理和记账功能4.2 作业调度中间件功能稳定性高4.2 作业调度中间件功能代码保护审查严格备份作业调度系统恢复作业调度系统功能稳定测试严格具有备份功能l单元测试严格l集成测试严格l兼容性测试严格MPI程序,例如:Vasp、WRF、mpiBLAST 等等典型的商业软件,例如:Gaussian、Fluent、Ansys等等应用与作业调度系统相结合常用的mpi程序常用的商业软件用户自己开发的串行并行程序4.3 GridView作业调度的应用常用软件DOCK MPIBLAST常用软件常用

35、软件工程量子力学生物常用软件AMBERCHARMMGROMACSNAMDLAMMPS分子动力学应用与作业调度系统相结合高性能主要领域主要业务软件得到各个领域的首席工程师的验证4.3 GridView作业调度的应用ANSYSLSDYNA CFXCOMSOLFLUENTABINITGAUSSIANPWSCFVASP4.4 GridView作业调度的使用4.4.1 节点监控节点监控提供以下几个功能(1)监控节点状态(2)增加节点(3)删除节点(4)重启节点进程4.4.1 节点监控4.4.2 队列管理 队列管理主要包含对队列的创建、删除、修改和查看等操作。 只有root用户和用户管理中规定的管理员才能

36、打开队列管理的主页面,从而操作控制队列。4.4.2 队列管理4.4.2 队列管理4.4.3 用户设置 用户管理主要是对用户在作业调度系统中的身份、优先级,以及在作业调度系统对资源的使用和使用上限进行设置、修改和查看。这里的用户是指已经存在于操作系统中的一般用户,不包括root用户和用户ID小于500的系统用户。 4.4.3 用户设置4.4.4 作业提交 该作业调度系统主要通过web页面将作业提交给调度器。系统中有三种提交方式:(1)Portal提交(2)脚本方式提交(3)命令行方式提交 每次只能选择一种方式提交,在打开提交窗口时,默认是第一种提交方式。4.4.4.1 portal提交 根据应用

37、特点定制,目前集成了19种软件,具体使用方法见手册Gridview_应用Portal_用户手册4.4.4.1 portal提交4.4.4.1 portal提交用户针对应用特殊配置 每个应用在$HOME/ .clusportal /目录下有个对应的 .setting文件 ,前缀为应用名。Fluentfluent.setting# run settingprog_default=/public/software/ansys_inc/v121/fluent/bin/fluentprog_list=/public/software/ansys_inc/v121/fluent/bin/fluent:#

38、runfile settingFluent_ENVFILE=/public/software/profile.d/fluent-env.sh4.4.4.2 脚本和命令行提交4.4.4.2 脚本和命令行提交4.4.4.1 portal提交机群上作业情况my job id is 326.node1run nodes is following:node4node4node4node4begin time is Tue Aug 21 11:09:34 CST 2012/public/software/ansys_inc/v121/fluent/fluent12.1.4/bin/fluent -r12.1.4 2d -g -t4 -cnf=/opt/gridview/pbs/dispatcher/aux/326.node1 -ssh -mpi=openmpi -i /home/shenj/work/fluent/3/cavity.jou parallel/timer/usagePerformance Timer for 300 iterations on 4 compute nodes Average wall-clock time per iteration: 0.002 sec Globa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论