PBS作业调度使用方法.docx
- 文档编号:11939570
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:11
- 大小:19.37KB
PBS作业调度使用方法.docx
《PBS作业调度使用方法.docx》由会员分享,可在线阅读,更多相关《PBS作业调度使用方法.docx(11页珍藏版)》请在冰豆网上搜索。
PBS作业调度使用方法
PBS作业调度使用方法:
1.IBMHPCPlatform作业提交流程
用户需要使用集群资源进行作业计算时,需要使用作业调度系统。
IBMHPCPlatform集群采用的是开源的Torque+Maui作业调度系统。
●任何用户都需要产生Job_que.sh任务作业脚本:
>>genQue
当前文件夹下会产生一个Job_que.sh的shell作业脚本文件
●编辑Job_que.sh任务作业脚本:
>>viJob_que.sh
●提交Job_que.sh任务作业脚本:
>>qsubJob_que.sh
注意:
在Job_que.sh中,所有任务的运行时间超过120小时的情况下,job作业将会被自动停止!
如果有疑问和延长作业运行时间的需要请直接联系管理员。
具体的更多关于任务作业脚本的说明、使用和提交请参考vi和本章第2小节:
TorquePBS作业调度系统使用说明。
2.TorquePBS作业调度系统使用说明
TorquePBS提供对批处理作业和分散的计算节点(Computenodes)的控制。
PBS是ProtableBatchSystem的缩写,是一个任务管理系统。
当多个用户使用同一个计算资源时,每个用户用PBS脚本提交自己的任务,由PBS对这些任务进行管理和资源的分配。
●matlab作业的PBS脚本说明:
#!
/bin/sh
#PBS-NJOB
#PBS-lnodes=1:
ppn=8
#PBS-lfeature=xe
#PBS-lnaccesspolicy=singlejob
#PBS-oRunJob.out
#PBS-eRunJob.err
#PBS-lwalltime=120:
00:
00
#PBS-qbatch
echo---------`date`----------
echoHomeDirectoryis$PWD
echo
echoCurrentDiris$PBS_O_WORKDIR
echo
cd$PBS_O_WORKDIR
echo"------------Thisisthenodefile-------------"
cat$PBS_NODEFILE
echo"-----------------------------------------------"
cat$PBS_NODEFILE>host.mpd
np=$(cat$PBS_NODEFILE|wc-l)
echoThenumberofcoreis$np
echo
echo
#-----------------------------------------------------#
#OpenMPIJobSubmittingExample#
#
#mpirun-np$np-machinefilehost.mpd$BINPATH...
#
#
#-__--------------------------------------------------#
#-__-havefun!
#
matlab–nojvm–nodesktop
将这个脚本保存成为Job_que.sh后,使用然后qsubJob_que.sh就将这个任务提交给了系统。
最后可以通过查看我那件下面log文件查看程序运行结果。
●串行作业C程序作业的PBS脚本说明:
使用vi命令编辑一段最简单的串行C语言程序hello.c:
>>vihello.c
#include"stdio.h"
intmain()
{
printf("Helloworld!
\n");
return0;
}
使用C编译器编译hello.c程序,生成可执行命令hello:
>>icc–ohellohello.c
成功编译后,修改PBS作业提交脚本Job_que.sh,如下:
>>genQue
>>viJob_que.sh
其中我们只使用一个核作为计算资源!
#!
/bin/sh
#PBS-NJOB
#PBS-lnodes=1:
ppn=1
#PBS-lfeature=xe
#PBS-lnaccesspolicy=singlejob
#PBS-oRunJob.out
#PBS-eRunJob.err
#PBS-lwalltime=120:
00:
00
#PBS-qbatch
echo---------`date`----------
echoHomeDirectoryis$PWD
echo
echoCurrentDiris$PBS_O_WORKDIR
echo
cd$PBS_O_WORKDIR
echo"------------Thisisthenodefile-------------"
cat$PBS_NODEFILE
echo"-----------------------------------------------"
cat$PBS_NODEFILE>host.mpd
np=$(cat$PBS_NODEFILE|wc-l)
echoThenumberofcoreis$np
echo
echo
#-----------------------------------------------------#
#OpenMPIJobSubmittingExample#
#
#mpirun-np$np-machinefilehost.mpd$BINPATH...
#
#
#-__--------------------------------------------------#
#-__-havefun!
#
./hello>log
将这个脚本保存成为Job_que.sh后,使用然后qsubJob_que.sh就将这个任务提交给了系统。
最后可以通过查看我那件下面log文件查看程序运行结果。
●并行MPI作业C程序作业的PBS脚本说明:
使用vi命令编辑一段最简单的串行C语言程序mpihello.c:
>>vimpihello.c
#include
#include
intmain(intargc,char*argv[])
{
intMyID,NumProcess,NameLen;
//MPI_MAX_PROCESSOR_NAMEMaximuncomputername
charProcessor_Name[MPI_MAX_PROCESSOR_NAME];
//MPIprogramstarts
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&MyID);//Tagofcurrentprocess
MPI_Comm_size(MPI_COMM_WORLD,&NumProcess);//Totalnumberofprocesses
MPI_Get_processor_name(Processor_Name,&NameLen);//Computernameofcurrentprocess
printf("ProcessNo.%dof%don%s\n\n",MyID,NumProcess,Processor_Name);
//MPIprogramends
MPI_Finalize();
return0;
}
使用MPIC编译器编译hello.c程序,生成可执行命令hello:
>>mpicc–ompihellompihello.c
成功编译后,修改PBS作业提交脚本Job_que.sh,如下:
>>genQue
>>viJob_que.sh
其中我们只使用一个核作为计算资源!
#!
/bin/sh
#PBS-NJOB
#PBS-lnodes=1:
ppn=4
#PBS-lfeature=xe
#PBS-lnaccesspolicy=singlejob
#PBS-oRunJob.out
#PBS-eRunJob.err
#PBS-lwalltime=120:
00:
00
#PBS-qbatch
echo---------`date`----------
echoHomeDirectoryis$PWD
echo
echoCurrentDiris$PBS_O_WORKDIR
echo
cd$PBS_O_WORKDIR
echo"------------Thisisthenodefile-------------"
cat$PBS_NODEFILE
echo"-----------------------------------------------"
cat$PBS_NODEFILE>host.mpd
np=$(cat$PBS_NODEFILE|wc-l)
echoThenumberofcoreis$np
echo
echo
#-----------------------------------------------------#
#OpenMPIJobSubmittingExample#
#
#mpirun-np$np-machinefilehost.mpd$BINPATH...
#
#
#-__--------------------------------------------------#
#-__-havefun!
#
Mpirun–np$npmpihello>log
将这个脚本保存成为Job_que.sh后,使用然后qsubJob_que.sh就将这个任务提交给了系统。
最后可以通过查看我那件下面log文件查看程序运行结果。
3.TorquePBS作业调度系统命令说明
PBS脚本文件由脚本选项和运行脚本两部分组成:
i.PBS作业脚本选项(若无-C选项,则每项前面加‘#PBS’);
ii.运行脚本同LINUX下一般的运行脚本文件。
脚本中#PBS为脚本选项,用于设置一些参数:
●#PBS–N表示任务名称。
name限15个字符,首字符为字母,无空格。
●#PBS–l表示资源列表,用于设定特定任务所需的一些参数。
这里的nodes表示并行环境下可以使用的节点数,而walltime表示任务最大时限,而cput表示cpu时间的最大时限,运行时间和cpu使用时间超过对应的时限,任务就会以超时退出。
这三个参数不是PBS脚本参数,而是并行环境所需的参数。
●#PBS-j表示系统输出,如果oe,则标准错误输出(stderr)和标准输出(stdout)合并为stdout,如果是eo,则合并为stderr,如果没有设定或设定为n,则stderr和stdout分开。
●#PBS-q表示当前任务选用的队列。
在并行环境下,一个系统中往往有多个队列,任务提交后,将在所选的队列中排除等候。
系统中有哪些队列可以用qstat-q查看。
●#PBS-adate_time:
date_time格式为:
[[[[CC]YY]MM]DD]hhmm[.SS]。
表示经过date_time时间后作业才可以运行。
●#PBS-ppriority:
任务优先级,整数,[-1024,1023],若无定义则为0.
●#PBS-Muser_list:
定义有关此作业的mail发给哪些用户。
●#PBS-I:
以交互方式运行
●#PBS-lresource_list:
定义资源列表。
以下为几个常用的资源种类。
cput=N:
请求N秒的CPU时间;N也可以是hh:
mm:
ss的形式。
mem=N[K|M|G][B|W]:
请求N{kilo|mega|giga}{bytes|words}大小的存。
nodes=N:
ppn=M:
请求N个结点,每个结点M个处理器。
●#PBS-mmail_options:
mail_option为
a:
作业abort时给用户发信;
b:
作业开始运行发信;
e:
作业结束运行时发信。
若无此选项,默认为a。
●#PBS-Wadditional_attributes:
作业的其它属性。
●#PBS-z:
指明qsub命令提交作业后,不在终端显示作业号。
PBS常用命令格式:
●qsub
命令:
用于提交作业
例:
#qsubJob_que.sh 提交作名称为Job_que.sh的作业
●qstat[-f][-a][-i][-n][-s][-R][-Q][-q][-B][-u]
命令:
用于查看作业状态
参数说明:
-f jobid列出指定作业的信息
-a 列出系统所有作业
-i 列出不在运行的作业
-n 列出分配给此作业的结点
-s 列出队列管理员与scheduler所提供的建议
-R 列出磁盘预留信息
-Q 操作符是destinationid,指明请求的是队列状态
-q 列出队列状态,并以alternative形式显示
-auuserid 列出指定用户的所有作业
-B 列出PBSServer信息
-r 列出所有正在运行的作业
-Qfqueue 列出指定队列的信息
-u 若操作符为作业号,则列出其状态。
例#qstat-f211 查询作业号为211的作业的具体信息。
●qdel
命令:
用于删除已提交的作业
参数说明:
-W间隔时间
例:
#qdel-W15211 15秒后删除作业号为211的作业
更多的关于Torque和Maui的使用,请参考《资源管理软件TORQUE与安装、设置》一文。
Torque官方说明文档:
.clusterresources./products/torque/docs/
Maui官方说明文档:
.clusterresources./products/maui/docs/mauiadmin.shtml
4.Torque+Maui作业调度系统介绍
从用户角度看,集群系统就好像一台服务器或者PC。
很多用户可以同时使用这个系统。
但是当太多的用户使用集群系统时,系统性能会变得很差。
资源管理就是管理用户提交的作业,合理给各个作业分配资源从而确保充分利用集群系统计算能力并尽可能快的得到运算结果。
简单的说,集群资源由实现如下几个部分:
●资源管理器:
为了确保分配给作业合适的资源,集群资源管理需要维护一个。
这个数据库记录了集群系统中各种资源的属性和状态、所有用户提交的请求和正在运行的作业。
策略管理器根据这些数据和指定的调度策略生成优先级列表。
资源管理器根据这优先级列表调度作业。
资源管理器还应该具有资源预留能力。
这样不仅可以保留强大的资源给需要的作业,而且可以预留一定的冗余资源以应付集群中的结点失效和突发的计算。
●作业调度策略管理器:
策略管理器根据资源管理器得到各个结点上的资源状况和系统的作业信息生成一个优先级列表。
这个列表告诉资源管理器何时在哪些结点上运行哪个作业。
策略管理器不仅要提供一个复杂的参数集合去定义计算环境和作业,而且要为这个定义提供简捷灵活的表达方式以允许实现策略驱动的资源调度。
在IBMHPCPlatform中我们采用了Torque+Maui的资源管理和作业调度系统;其中Torque作为集群资源管理器,而Maui则是作为调度策略管理器。
PBS(PortableBatchSystem)最初由NASA的Ames研究中心开发,主要为了提供一个能满足异构计算网络需要的软件包,用于灵活的批处理,特别是满足高性能计算的需要,如集群系统、超级计算机和大规模并行系统。
PBS的主要特点有:
代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、PVM、HPF、MPL;PBS是功能最为齐全,历史最悠久,支持最广泛的本地集群调度器之一。
PBS的目前包括openPBS,PBSPro和Torque三个主要分支.其中OpenPBS是最早的PBS系统,目前已经没有太多后续开发,PBSpro是PBS的商业版本,功能最为丰富.Torque是Clustering公司接过了OpenPBS,并给与后续支持的一个开源版本。
应用PBS提交任务则会形成任务队列,依次执行,有效分配资源,避免资源竞争。
否则CPU时间片会轮流分配给各个人的任务,从而影响所有人的正常作业。
Maui集群调度器是Moab集群套件前身,是一个开放源码的集群和超级计算机作业调度器(scheduler)。
PBS是一个用于作业分配的调度器(scheduler),其主要任务是分配批作业计算任务到现有的计算资源上。
以下版本的PBS系统目前可用:
OpenPBS:
没有技术支持的原始开源版本;PBSPro(PBS专业版):
由AltairEngineering发行和支持的商业版本;Torque:
衍生的OpenPBS,由ClusterResourcesInc.发展,支持和维护
Maui是一个高级的作业调度器。
它采用积极的调度策略优化资源的利用和减少作业的响应时间。
Maui的资源和负载管理允许高级的参数配置:
作业优先级(JobPriority)、调度和分配(SchedulingandAllocation)、公平性和公平共享(FairnessandFairshare)和预留策略(ReservationPolicy)。
Maui的机制允许资源和服务的直接传递、策略解除(PolicyExemption)和指定特征的受限访问。
Maui采用高级的资源预留架构可以保证精确控制资源何时、何地、被谁、怎样使用。
Maui的预留架构完全支持非入侵式的元调度。
Maui的设计得益于世界最大的高性能计算中心的经验。
Maui本身也提供测试工具和模拟器用于估计和调节系统性能。
Maui需要资源管理器与其配合使用。
我们可以把Maui想象为PBS中的一个插入部件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PBS 作业 调度 使用方法