PBS作业调度系统
HPC作业调度系统openPBS说明

认的设置就行,这里说一下要注意的几个选项。 --enable-docs 这个选项是用来安装 PBS 的文档的,默认是 disable 的。 --enable-debug 这个选项允许 PBS 进行 debug,默认也是 disable 的。 --set-default-server=your_server_name,指定默认的 server --set-server-home=your_pbs_Home_path, 指 定 PBS_HOME 的 路 径 , 默 认 是 在 /usr/spool/PBS
openpbs 的安装及使用
【一】 简介 PBS是Portable Batch System的简称,是一个管理任务和计算机资源的系统。它能接受由shell
脚本和控制属性组成的任务,并且保存任务直到任务被运行,运行完任务后会把结果送回提交作 业的用户。
openpbs就是开源可以免费使用的PBS。 openpbs既可以运行在单机系统上,也可以运行在机群上,适应性很强。
set queue medium max_running = 10 set queue medium resources_max.cput = 02:00:00 set queue medium resources_min.cput = 00:20:01 set queue medium resources_default.cput = 02:00:00 set queue medium enabled = True set queue medium started = True # # Create and define queue small # create queue small set queue small queue_type = Execution set queue small Priority = 100 set queue small max_running = 10 set queue small resources_max.cput = 00:20:00 set queue small resources_default.cput = 00:20:00 set queue small enabled = True set queue small started = True # # Create and define queue default # create queue default set queue default queue_type = Route set queue default max_running = 10 set queue default route_destinations = small set queue default route_destinations += medium set queue default route_destinations += long set queue default route_destinations += verylong set queue default enabled = True set queue default started = True # # Set server attributes. # set server scheduling = True set server max_user_run = 6 set server acl_host_enable = True set server acl_hosts = * set server default_queue = default set server log_events = 63 set server mail_from = adm set server query_other_jobs = True set server resources_default.cput = 01:00:00 set server resources_default.neednodes = 1 set server resources_default.nodect = 1 set server resources_default.nodes = 1
PBS作业调度系统

mom端设置
v mom配置目录: /var/spool/pbs/mom_priv/ v mom配置文件: /var/spool/pbs/mom_priv/config
一个单一的操作系统映像,一个统一的虚拟内存映像一个个或多 个cpu,一个或多个IP地址的计算机系统被称之为一个节点。通常 执行主机(execution host)也被称之为节点。
❖ 节点属性
队列、服务器和节点都有与自己相关的属性,这些属性提供控制 信息。与节点相关的属性有:状态、类型、虚拟处理器的个数、 作业列表(本节点被分配给的作业)以及节点的特性。……
set server query_other_jobs = True
Scheduler调度行为配置
❖ Scheduler的行为由配置目录下的sched_priv/sched_config 文件进行控制
❖ Sort_by关键字控制调度算法可以选择的选项为
no_sort ,shortest_job_first,longest_job_first , smallest_memory_first,largest_memory_first,high_priority_first, low_priority_first,multi_sort,fair_share,large_walltime_first, short_walltime_first
Server端的动态设置
v PBS要能正常运行还需要通过qmgr命令的server进行 配置,设置一些属性。输入qmgr命令进入配置交互命 令。下面是让PBS可以正常运行的基本设置
pbs作业管理系统

当为1是表示守护进程启动,0为守护进程不启动
start_mom=1
• 系统启动脚本 /etc/init.d/openpbs
• Server的系统启动脚本 /etc/init.d/pbs_server
• Scheduler系统启动脚本 /etc/init.d/pbs_sched
• Mom系统启动脚本 /etc/init.d/pbs_mom
30
PBS 作业脚本举例
2020/7/12
31
详细示例
编辑PBS脚本内容如下:(注意,#PBS行不是注释,所有说明行均 以###开始,即红色字体部分)
###声明作业名为mpi
#PBS -N mpi ###申请资源数为10个节点,每个节点16个cpu
#PBS -l nodes=10:ppn=16 ###将标准输出信息与标准错误信息合并输出到文件中
• 编译安装
[root@node1 /public/OpenPBS_2.3.16]# make [root@node1 /public/OpenPBS_2.3.16]# make install
2020/7/12
15
PBS在机群上安装
由于节点系统相同,因而可以用如下SHELL script在 node2~node8上安装;
• 编译设置Leabharlann [root@node1 /public/OpenPBS_2.3.16]#./configure --disable-gui -set-server_home=/var/spool/pbs --enable-docs --xlibraries=/usr/X11R6/lib64
其中,--x-libraries=/usr/X11R6/lib64是在X86_64 (AMD64或 EM64T)上安装时,需要指明系统64位库的位置。
LMT NEW PBS作业排队计算系统的调度算法

LMT NEW PBS作业排队计算系统的调度算法一个作业定义为一个完整的、有用的一段信息的传送。
一个作业的长度由传送的字节数来度量。
为简便起见,定义一个短作业为能在一个IP分组中封装的作业。
现在实际使用的路由和交换机所有数据分组处理方式是一致的,而不管它们来自短作业还是长作业。
作业源地址指送出作业的主机,作业的目标地址是指接收并处理数据的主机,一个作业的完成是指作业的最后一个分组被成功传送到目的地。
作业的响应时间是第一个分组被传送出的时间与最后一个分组被传送到作业目标地址的时间间隔。
作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,再从外存的后备队列中选取某些作业调入到内存,并为它们创建进程、分配必要的资源。
然后再将新创建的进程插入就绪队列,准备执行。
因此,有时也把作业调度称为接纳调度。
在LMT NEW PBS作业排队计算系统中,就利用到了诸多的调度算法,这些调度算法都遵循着根据系统的资源分配策略所规定的资源分配算法。
LMT NEW PBS系统选择调度方式和算法的若干准则如下:1) 面向用户的准则:周转时间短、响应时间快、截止时间的保证、优先权准则。
2) 面向系统的准则:系统吞吐量、处理机利用率好、各类资源平衡利用。
3) 最优准则:最大的CPU利用率、最大的吞吐量、最短的周转时间、最短的等待时间、最短的响应时间。
以下就是具体介绍LMT NEW PBS系统的调度算法:1、先来先服务调度算法先来先服务调度算法是一种简单的调度算法,该算法可以用于作业调度也可以用于进程调度。
作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。
在进程中采用先来先服务算法时,每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。
该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。
pbs使用手册

pbs使用手册PBS(Portable Batch System)是一种用于管理和调度作业的软件系统,广泛应用于高性能计算和云计算环境。
以下是PBS使用手册的简要介绍:1. 作业提交:用户可以使用PBS命令行工具或脚本提交作业。
提交作业时,需要指定作业的名称、脚本文件、执行所需的资源等信息。
作业提交后,PBS会将作业放入队列中等待调度。
2. 作业调度:PBS使用作业调度器来决定作业的执行顺序。
调度器会根据作业的优先级、资源需求和可用资源的情况来选择合适的作业执行。
3. 作业执行:一旦作业被调度器选中,PBS会将作业分配到指定的计算节点上执行。
在作业执行期间,PBS会监控作业的运行状态,确保资源的正确使用和管理。
4. 作业管理:用户可以通过PBS命令行工具或Web界面查看作业的状态、资源使用情况、执行日志等信息。
用户还可以对作业进行控制,如暂停、恢复、杀死等操作。
5. 资源管理:PBS提供了一套完整的资源管理机制,包括对计算节点、存储设备和网络资源的管理。
用户可以通过PBS来申请和释放资源,以满足作业的资源需求。
6. 用户认证和权限管理:PBS支持用户认证和权限管理功能,以确保只有授权用户才能提交和管理作业。
用户需要使用有效的用户名和密码登录系统,并具有相应的权限来执行特定的操作。
7. 日志和监控:PBS提供了详细的日志记录和监控功能,以便用户了解作业的执行情况和系统的运行状态。
用户可以通过查看日志文件来获取作业的执行日志、系统事件等信息。
以上是PBS使用手册的简要介绍,具体的操作细节和配置选项可能因版本和实际应用而有所不同。
建议查阅具体版本的PBS文档或向专业人员咨询以获得更详细的信息和使用指导。
pbs原理

pbs原理
PBS原理是在计算机科学中,用于实现并发计算的一种技术,也是一个在集群环境下实现任务调度的标准。
PBS即Portable Batch System,又称为PBS Pro。
PBS Pro最初由NASA的Ames研究中心开发,目前由Oracle公司维护。
PBS系统是一个分布式、可扩展、模块化的任务调度与管理系统,提供了高效的作业提交和进程管理方式,可以控制大规模并行计算环境中的作业分配和资源分配。
PBS Pro 主要用于处理大规模计算机群,例如超级计算机。
它可以让用户和管理人员对计算机群的使用和资源进行管理。
PBS系统可以被用于处理一个以上的任务或作业,这些作业可以在集群中的任何节点上运行。
PBS系统提供了一个统一的接口来管理所有的作业,并为用户提供了对系统资源的访问控制。
此外,PBS系统还提供了可扩展性和可靠性,这使得它可以在不同的操作系统和处理器体系结构上运行,并提供全天候的操作。
在PBS系统中,任务提交可以通过一个命令行工具或脚本来完成。
这个命令指定了所需的资源(包括节点数、处理器数、内存大小和磁盘空间),以及任务的执行脚本。
PBS 系统会将任务放置在系统的计算节点上执行,并可持续跟踪和报告任务的状态。
用户可以在系统中直接提交作业,也可以使用PBS Pro的Web界面来完成这个任务。
PBS系统提供了强大的资源管理和作业调度功能。
当有新的作业到达时,PBS系统会为其分配可用的资源,并安排适当的执行顺序。
此外,系统还能够自动处理失败的任务,并重新开始运行。
LMT NEW PBS作业排队运算系统对批处理作业的调度

LMT NEW PBS作业排队运算系统对批处理作业的调度LMT NEW PBS作业排队调度程序从后备作业中选取若干个作业到内存并投入运行。
它为选中作业建立进程并分配必要的资源,这时,这些被选中的作业处于执行状态。
PBS作业调度的功能是记录系统中各作业的状况,从后备作业队列中挑选一批作业进入执行状态,以及为被选中作业分配资源建立进程和在作业执行结束后释放所占用的资源等。
其中最主要的是从后备作业队列中选取一批作业进入执行状态。
根据不同的目标,将会有不同的调度算法。
一般来说,调度目标主要是以下四点:①对作业应该是公平合理的;②应使设备有高的利用率;③每天执行尽可能多的作业;④有短的响应时间。
由于这些目标的互相冲突,任一调度算法要想同时满足上述目标是不可能的。
例如,要想执行尽可能多的作业,调度算法就应选择短作业优先,而这对那些预计执行时间长的作业又是不公平的,甚至有可能永远得不到运行;要想对所有作业公平合理,调度算法就应选择先来先服务。
如果考虑的因素过多,调度算法就会变得非常复杂,会使系统开销增加,资源利用率下降。
作业调度和进程调度的区别:一个作业从进入系统到最后完成,一般至少要经历两级调度:作业调度和进程调度。
作业调度是宏观上的高级调度,它的主要功能是根据一定的算法,从输入井中选中若干个作业,分配必要的资源,如主存、外设等,为它们建立初始状态为就绪的作业进程。
进程调度是微观上的低级调度,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。
一般的操作系统都必须有进程调度。
可见在多道系统中,作业调度与进程调度是相互配合来实现多道作业的并行执行的。
两者的关系可用下图表示。
批处理作业的调度作业调度的功能作业调度程序作为一个系统进程在系统中运行,它是在系统初始化时被创建的,具有如下功能:①记录系统中各作业的情况。
为此,系统为每个作业建立一个作业控制块,在块中登记作业的有关信息。
作业控制块是作业调度程序用来实现作业调度和管理的数据结构。
PBS作业调度系统

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。
# 这是一个并行作业脚本的例子 #PBS -N vasp.Hg #PBS -j oe #PBS -l nodes=2:ppn=12:amd #PBS -q low
echo "This jobs is "$PBS_JOBID@$PBS_QUEUE NP=`cat $PBS_NODEFILE | wc -l` cd $PBS_O_WORKDIR mpirun -np $NP -machinefile $PBS_NODEFILE ./vasp
93.node1 test.pbs
zhaocs
95.node1 vasp.Hg
vasp
111.node1 structure
amber
Time Use S Queue -------- - ----0 R default 0 E default 0 Q default
qdel 93.node1 注:用户只能删除自己的作业,管理员可以删除所有用户作业
qsub提交的节点名称
qsub提交的作业的最初队列名称
qsub提交的作业的绝对路径
作业被PBS系统指定的作业号
用户指定的作业名,可以在作业提交的时候用qsub –N <作业名> 指定,或者在PBS脚本中加入#PBS –N <作业名>。
PBS系统指定的作业运行的节点名。该变量在并行机和机群中使 用。当在PBS脚本中用#PBS –l nodes=2:ppn=2指定程序运行的 节点数时,可以使用$PBS_NODEFILE在脚本中引用PBS系统 指定的作业运行的节点名。比如:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#PBS -l nodes=node1:ppn=8+node2:ppn=8
查询作业状态
作业提交后,会生成一个作业号,如: [dawning@node1 ~]$ qsub test.pbs 93.node1 查看集群作业运行状态: [dawning@node1 ~]$ qstat Job id Name User Time Use S Queue ---------------- -------------------------------------- - ----93.node1 test.pbs test 0 R default 95.node1 vasp.Hg vasp 0 E default 111.node1 structure amber 0 Q default
一个复杂的PBS脚本
#!/bin/bash #PBS -N jobname #PBS -l nodes=2:ppn=8
cat `echo $PBS_NODEFILE` > $HOME/$PBS_JOBID.nodes for node in `cat $HOME/$PBS_JOBID.nodes` do ssh $node mkdir /tmp/$PBS_JOBID ssh $node cp -rf $PBS_O_WORKDIR/* /tmp/$PBS_JOBID/ done
ห้องสมุดไป่ตู้
PBS运行参数
在 PBS 脚本和 qsub 命令行中均有效,qsub命令行参数的优先级更高
运行参数 -a <作业开始运行的时间> -A <用户名> -o <标准输出文件的路径> -e <标准错误输出的路径> 说 明 向PBS系统指定作业运行的开始时间。 作业运行时间格式为: [[[[CC]YY]MM]DD]hhmm[.SS] 使用不同的用户来提交作业,缺省使用当前用户名 该参数指定标准错误输出的位置,缺省的情况下,PBS系统把标准输 出和标准错误输出放在用户qsub命令提交作业的目录下。 标准错误输出:<作业名>.o<作业号> 标准错误输出:<作业名>.e<作业号> 路径使用如下格式标准: [<节点名>:]<路径名> 指定提交的作业名 指定作业提交的目标队列,其中目标队列可以是目标队列、目标节点 名或者是目标节点上的队列。如果目标队列是一个路由队列,那 么服务器可能把作业路由到新的队列中。如果该参数没有指定, 命令qsub会把作业脚本提交到缺省的队列中。 该参数指定作业脚本申请的PBS系统资源列表。 申请资源列表使用如下格式: <资源名>[=[<数量>]][,资源名[=[<数量>]], …..] 例如作业希望申请在双路节点上申请5个CPU资源的情况, 则可以在脚本中如下: #PBS –l nodes=2:ppn=2+1:ppn=1
$PBS_QUEUE
PBS脚本举例
# 这是一个串行作业脚本的例子 #PBS -N test #PBS -l nodes=1:ppn=1 cd $HOME/test/ ./a.out > $HOME/result/a.result
# 这是一个并行作业脚本的例子 #PBS -N vasp_job #PBS -l nodes=2:ppn=8 #PBS -q low
更改作业运行队列: qmove high 111.node1
更改作业资源属性: qalter -l walltime=10:00:00 111.node1
交换作业顺序
[dawning@node1 ~]$ qstat Job id Name User Time Use S Queue ---------------- -------------------------------------- - ----93.node1 test.pbs zhaocs 0 R default 95.node1 vasp.Hg vasp 0 E default 111.node1 structure amber 0 Q default 112.node1 gaussian gauss 0 Q default
7.
PBS作业提交基本命令
在PBS系统中,用户使用 qsub 命令提交用户程序。用 户运行程序的命令及PBS环境变量设置组成PBS作业脚本, 作业脚本使用如下格式提交到PBS系统运行:
qsub <PBS作业脚本>
qsub -N test.vasp -l nodes=4:ppn=2 -q defaults <PBS作业脚本>
# 这是一个ANSYS并行作业的例子
#PBS -N ansys_job #PBS -l nodes=2:ppn=8 #PBS -q low INPUTFILE=test.inp OUTPUTFILE=test.log hosts=`cat $PBS_NODEFILE | uniq -c | awk '{print $2":"$1}' | tr '\n' ':' | sed 's/:$//'` cd $PBS_O_WORKDIR ansys121 -dis -machines $hosts -i $INPUTFILE -o $OUTPUTFILE
qdel 93.node1
注:用户只能删除自己的作业,管理员可以删除所有用户作业
作业挂起及取消
[dawning@node1 ~]$ qstat Job id Name User Time Use S Queue ---------------- -------------------------------------- - ----93.node1 test.pbs zhaocs 0 R default 95.node1 vasp.Hg vasp 0 E default 111.node1 structure amber 0 Q default
作业状态说明: E:退出 Q:排队 H :挂起 R :运行 C:结束
查询作业状态(续)
[dawning@node1 ~]$ qstat Job id Name User Time Use S Queue ---------------- -------------------------------------- - ----93.node1 test.pbs zhaocs 0 R default 95.node1 vasp.Hg vasp 0 E default 111.node1 structure amber 0 Q default
挂起作业: qhold 111.node1
取消作业挂起 qrls 111.node1
更改作业
[dawning@node1 ~]$ qstat Job id Name User Time Use S Queue ---------------- -------------------------------------- - ----93.node1 test.pbs zhaocs 0 R default 95.node1 vasp.Hg vasp 0 E default 111.node1 structure amber 0 Q default
qsub提交的作业的最初队列名称
qsub提交的作业的绝对路径 作业被PBS系统指定的作业号 用户指定的作业名,可以在作业提交的时候用qsub –N <作业名> 指定,或者在PBS脚本中加入#PBS –N <作业名>。 PBS系统指定的作业运行的节点名。该变量在并行机和机群中使 用。当在PBS脚本中用#PBS –l nodes=2:ppn=2指定程序运行的 节点数时,可以使用$PBS_NODEFILE在脚本中引用PBS系统 指定的作业运行的节点名。比如: #PBS –l nodes=2:ppn=2 mpirun –np 4 –machinefile $PBS_NODEFILE <程序名> PBS脚本在执行时的队列名
PBS作业脚本
本质是一个SHELL脚本 注释以“#”开头 PBS运行参数,以“#PBS”开头 可以直接调用SHELL命令和系统命令
#PBS -N vasp #PBS -l nodes=1:ppn=1 #PBS -l walltime=12:00:00 #PBS -q high
cd /home/test/work ./test.exe
-N <作业名> -q <目标队列>
-l <申请资源列表>
PBS的环境变量
变量名 登陆SHELL继承来的变量 $PBS_O_HOST 说 明
包括$HOME,$LANG,$LOGNAME,$PATH,$MAIL, $SHELL和$TZ。 qsub提交的节点名称
$PBS_O_QUEUE
$PBS_O_WORKDIR $PBS_JOBID $PBS_JOBNAME $PBS_NODEFILE
提纲 一.PBS脚本编写使用 二.曙光Gridview作业调度中间件
PBS作业提交步骤
1. 2. 3. 4. 5. 6. 准备:编写描述改作业的脚本,包括作业名,需要的资源等。 提交:使用qsub命令将该作业提交给PBS服务器 排队:服务器将该任务排入适当的队列 调度:服务器检查各工作节点的状态是否符合该作业的要求,并 进行调度。 执行:当条件满足时,作业被发给相应的执行服务器执行。程序 运行时执行服务器会收集程序的标准输出和标准错误流,等程序 结束时,将这些信息返回给用户。 查询和调整:当作业在运行时,用户可以使用qstat进行状态查询。 用户发现作业提交错误时,可以使用qdel删除正在运行的作业。 查看结果:使用文本编辑软件vi或者系统命令cat, less等查看输出 及错误信息显示。