高性能集群作业调度系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3 PBS系统服务
•Server的系统启动脚本 /etc/init.d/pbs_server Scheduler系统启动脚本 /etc/init.d/pbs_sched Mom系统启动脚本 /etc/init.d/pbs_mom
•Torque服务端 chkconfig pbs_server on chkconfig pbs_sched on service pbs_server start service pbs_sched start
acl_users acl_host_enable
格式:<用户名@主机名>,用户名不接受通配符
如果acl_host_enable = True,则acl_hosts属性中列出 的主机才能使用该队列
acl_hosts
该队列可以使用的节点列表
2.4.2 PBS查看节点状态
[dawning@node1 ~]$ pbsnodes -a node2
2.1 PBS作业调度系统
PBS(Portable Batch System), 最初由NASA的Ames研究中心开 发,设计为一个能满足异构计算网络需要的软件包。它力求提供对批处 理的初始化和调度执行的控制,允许作业在不同主机间的路由。
PBS的开源版本为OpenPBS,目前已经停止开发。 PBS的商业版为PBS Pro,由Altair公司开发和维护。 TORQUE( Tera-scale Open-source Resource and Queue manager )为 OpenPBS的后续开源版本,修正了OpenPBS的很多 bug,功能和可扩展性都有很大提高。
•Torque客户端 chkconfig pbs_mom on service pbs_mom start
2.4 PBS主要操作
队列设置 节点查看 提交作业 查看作业 作业其他操作
2.4.1 PBS的队列设置
PBS要能正常运行还需要通过qmgr命令在server进行配置, 设置一些属性。输入qmgr命令进入配置交互命令,格式为
运行时执行服务器会收集程序的标准输出和标准错误流,等程序 结束时,将这些信息返回给用户。 6. 查询和调整:当作业在运行时,用户可以使用qstat进行状态查询。 用户发现作业提交错误时,可以使用qdel删除正在运行的作业。 7. 查看结果:使用文本编辑软件vi或者系统命令cat, less等查看输出 及错误信息显示。
--with-server-home= /var/spool/torque \ --enable-syslog \ --with-scp \ --enable-docs
默认情况下,TORQUE将可执行文件安装在/usr/local/bin和 /usr/local/sbin下。其余的配置文件和运行时环境将安装在 /var/spool/torque下
2.4.3 PBS作业提交基本命令
在PBS系统中,用户使用 qsub 命令提交用户程序。用户运行程 序的命令及PBS环境变量设置组成PBS作业脚本,如下
#PBS -N vasp #PBS -l nodes=2:ppn=1 #PBS -l walltime=12:00:00 #PBS -q default
计算节点列表及属性:/var/spool/torque/server_priv/nodes
node2 np=12 amd chem node3 np=12 amd chem node4 np=8 intel chem node5 np=8 intel chem node6 np=4 intel bio gpu node7 np=4 intel bio gpu
state=free np=12 ntype=cluster status =rectime=1347344839,varattr=,jobs=,state=free,netload=199480 4223313,gres=,loadave=0.15,ncpus=32,physmem=132133404kb,availmem=1 47084788kb,totmem=148910612kb,idletime=1721946,nusers=1,nsessions=1,se ssions=2455,uname=Linux node2 2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64,opsys=linux gpus = 0
set server default_queue=队列名
2.4.1 PBS的队列设置
➢ 导入server配置文件 qmgr < queue.conf
➢ 备份配置文件 qmgr -c “print server” > 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
cd $PBS_O_WORKDIR ./test.exe
作业脚本使用如下格式提交到PBS系统运行
qsub <PBS作业脚本>
2.4.3 PBS 运行参数
运行参数在 PBS 脚本和 qsub 命令行中均有效,qsub命令行参数的优先级更高
运行参数 -a <作业开始运行的时间> -A <用户名> -o <标准输出文件的路径> -e <标准错误输出的路径>
标准错误输出:<作业名>.o<作业号> 标准错误输出:<作业名>.e<作业号> 路径使用如下格式标准: [<节点名>:]<路径名>
指定提交的作业名
指定作业提交的目标队列。如果该参数没有指定,命令qsub会把作业 脚本提交到缺省的队列中。
该参数指定作业脚本申请的PBS系统资源列表。 申请资源列表使用如下格式:
set server scheduling = True set server default_queue = default set server query_other_jobs = True
2.4.1 PBS的队列设置
➢ 资源和用户限制
resources_default.cput
该队列默认的作业的CPU时间,格式:时:分:秒 注意:该CPU时间为:进程数*(结束时间-开始时间)
• 编译和安装
make make install
2.3 PBS的安装(Torque Client端)
节点操作系统相同,可以用如下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/ \
2.2 PBS的组成
服务器: pbs_server 调度器: pbs_sched 执行器: pbs_mom
2.3 PBS的安装(Torque Server端)
• 解压源文件包
tar zxvf torque-2.5.12.tar.gz
• 编译设置
cd torque-2.5.12 ./configure --prefix= /usr/local \
torque-package-mom-linux-*.sh --install Done
2.3 PBS Server配置
以root作为torque的管理员账号创建作业队列 在torque的安装源文件根目录中,执行 ./torque.setup root
Server配置目录 /var/spool/torque/server_priv/
node3 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”状态
动作 对象类型 对象名 属性 操作符 值(,属性 操作符 值)……
✓qmgr动作
create set print
创建一个对象 设置对象的属性 打印对象的属性
delete unset list
删除一个对象 除去对象的属性 列出对象的属性
✓对象类型和操作符
server
服务器
=
queue
队列
+=
node
节点
resources_default.walltime 该队列默认的墙上时间,格式:时:分:秒
max_running max_user_run acl_user_enable
某队列最多可运行的作业数,如果该项为0或没有该项, 表示没有限制
一个用户最多可以运行的作业数
是否启用用户访问控制,如果acl_user_enable = True, 则在acl_users中列出的用户才能使用该队列
-N <作业名> -q <目标队列>
-l <申请资源列表>
说明
向PBS系统指定作业运行的开始时间。 作业运行时间格式为: [[[[CC]YY]MM]DD]hhmm[.SS]
使用不同的用户来提交作业,缺省使用当前用户名
该参数指定标准错误输出的位置,缺省的情况下,PBS系统把标准输 出和标准错误输出放在用户qsub命令提交作业的目录下。
➢ 用户权限的管理 –对用户进行各类权限控制
1.3 作业调度系统的组成
➢ 资源管理器: 管理集群的软硬件资源及认证信息等
➢ 队列管理器: 管理当前所有已提交但还未完成的作业
➢ 调度器: 为作业分配资源
1.3 作业调度系统的组成
作业调度系统的结构
1.4 作业调度系统的发展历史
提纲
一.作业调度系统概述 二.PBS作业调度系统 三.Maui调度器 四.曙光Gridview作业调度中间件 五.Q&A
高性能集群作业调度系统
曙光信息产业股份有限公司
提纲
一.作业调度系统概述 二.PBS作业调度系统 三.Maui调度器 四.曙光Gridview作业调度中间件 五.Q&A
1. 1 集群使用中存在的问题
1.2 作业调度系统的功能
➢ 系统资源整合 –异构资源,软硬件资源的整合
➢ 任务综合管理 –用户提交的任务的统一安排
<资源名>[=[<数量>]][,资源名[=[<数量>]], …..] 例如作业希望申请在双路节点上申请4个CPU资源的情况, 则可以在脚本中如下: #PBS –l nodes=2:ppn=2
2.4.3 PBS 环境变量
变量名
说明
登陆SHELL继承来的变量 $PBS_O_HOST $PBS_O_QUEUE $PBS_O_WORKDIR $PBS_JOBID $PBS_JOBNAME $PBS_NODEFILE
$PBS_QUEUE
包括$HOME,$LANG,$LOGNAME,$PATH,$MAIL, $SHELL和$TZ。
qsub提交的节点名称
qsub提交的作业的最初队列名称
qsub提交的作业的绝对路径
作业被PBS系统指定的作业号
用户指定的作业名,可以在作业提交的时候用qsub –N <作业名> 指定,或者在PBS脚本中加入#PBS –N <作业名>。
-=
2.4.1 PBS的队列设置
下面是让PBS可以正常运行的基本设置
创建队列
create queue 队列名 queue_type = execution
打开和启动队列
set queue 队列名 enable=t, started=t
打开调度
set server scheduling=t
设置默认队列
Leabharlann Baidu
2.4.3 PBS作业提交
步骤:
1. 准备:编写描述该作业的脚本,包括作业名,需要的资源等。 2. 提交:使用qsub命令将该作业提交给PBS服务器 3. 排队:服务器将该任务排入适当的队列 4. 调度:服务器检查各工作节点的状态是否符合该作业的要求,并
进行调度。 5. 执行:当条件满足时,作业被发给相应的执行服务器执行。程序