作业管理系统.ppt

上传人:本田雅阁 文档编号:2322583 上传时间:2019-03-21 格式:PPT 页数:53 大小:572.51KB
返回 下载 相关 举报
作业管理系统.ppt_第1页
第1页 / 共53页
作业管理系统.ppt_第2页
第2页 / 共53页
作业管理系统.ppt_第3页
第3页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《作业管理系统.ppt》由会员分享,可在线阅读,更多相关《作业管理系统.ppt(53页珍藏版)》请在三一文库上搜索。

1、PBS作业管理系统,2019/3/21,2,内 容,任务管理系统概述 PBS作业调度系统 作业调度系统的使用,2019/3/21,3,任务管理系统的功能,单一系统映象 机群松散的结构的整合 系统资源整合 异构系统的整合 多用户的管理 用户提交的任务的统一安排,避免冲突 用户权限的管理 非授权用户的控制,2019/3/21,4,任务管理系统的简史,2019/3/21,5,任务管理系统的分类,基于进程级别的调度 由机群中的操作系统或者运行时Runtime内部支持,对运行的作业进行监控;以实现机群内的透明调度、以及自动优化进程的分配和平衡负载 基于作业级别的调度 这种方式由独立的作业管理系统实现。该

2、系统通过专门的入口,接收用户提交的任务,送入相应的队列等待调度;并在适当的时机分配资源,为任务创建作业,将作业提入运行,在作业运行结束后完成收尾工作,并提供记帐功能。 管理员和用户还可以在机群中查询并预订符合要求的资源,从而实现对作业和资源的全程交互控制。,2019/3/21,6,任务管理系统的比较,2019/3/21,7,内 容,任务管理系统概述 PBS作业调度系统 作业调度系统的使用,2019/3/21,8,PBS作业调度系统,PBS最初由NASA的Ames研究中心开发,为了提供一个能满足异构计算网络需要的软件包。它力求提供对批处理的初始化和调度执行的控制,允许作业在不同主机间的路由。,2

3、019/3/21,9,PBS的技术特色,力求控制对批处理的初始化和调度执行,允许作业在不同主机间的路由。 独立的调度模块存有各个可用的排队作业、运行作业和系统资源使用信息,并且允许系统管理员定义资源和每个作业可使用的数量。 在作业调度策略上,PBS提供了默认的公平共享和独占FIFO调度策略,还提供了TCL、BACL、C三种过程语言和调度类,并定义了一些调度需要的函数和完整的API,方便实现新的调度策略。 提供文件传送,File Stage-in 和Stage-out。 满足POSIX1003.2d 标准,支持作业依赖,和完整的安全认证。 提供用户映射功能,使PBS 能用于用户不一致的系统中。,

4、2019/3/21,10,PBS的结构,2019/3/21,11,PBS 的组成,服务器:pbs_server 调度器:pbs_sched 执行器:pbs_mom 命令行:用户脚本,管理命令等,2019/3/21,12,PBS 的基本原理,2019/3/21,13,PBS 的优缺点,支持系统级检查点功能(需底层操作系统支持) 很好的大规模扩展性 独立的调度模块* 支持作业依赖 符合POSIX 1003.2d 标准 -只支持Unix类操作系统 -多集群协作功能有限 -不支持用户级检查点功能,2019/3/21,14,术 语,节点(node) 一个单一的操作系统映像,一个统一的虚拟内存映像一个或多

5、个cpu,一个或多个IP地址的计算机系统被称之为一个节点。通常执行主机(execution host)也被称之为节点。 节点属性 队列、服务器和节点都有与自己相关的属性,这些属性提供控制信息。与节点相关的属性有:状态、类型、虚拟处理器的个数、作业列表(本节点被分配给的作业)以及节点的特性。 节点特性 为了提供一组节点的分配的方法,零个或者多个特性被赋给每个节点。这个特性不过是一串对于PBS没有含义的字母和数字的组合(第一个字符必须是字母)。,2019/3/21,15,PBS 安装,解压源文件包 rootnode1 /public# tar -zxvf openpbs-2.3.16.tar.gz

6、 编译设置 rootnode1 /public/OpenPBS_2.3.16./configure -disable-gui -set-server_home=/var/spool/pbs -enable-docs -x-libraries=/usr/X11R6/lib64 其中,-x-libraries=/usr/X11R6/lib64是在X86_64 (AMD64或EM64T)上安装时,需要指明系统64位库的位置。 编译安装 rootnode1 /public/OpenPBS_2.3.16# make rootnode1 /public/OpenPBS_2.3.16# make insta

7、ll,2019/3/21,16,PBS在机群上安装,由于节点系统相同,因而可以用如下SHELL script在node2node8上安装;,2019/3/21,17,服务进程配置和启动文件,系统配置文件/etc/pbs.conf #!/bin/sh pbs_home=/var/spool/pbs 指定系统的pbs的设置的目录位置 pbs_exec=/usr/local 指定pbs可执行程序的目录位置 start_server=1 start_sched=1 当为1是表示守护进程启动,0为守护进程不启动 start_mom=1 系统启动脚本 /etc/init.d/openpbs Server的

8、系统启动脚本 /etc/init.d/pbs_server Scheduler系统启动脚本 /etc/init.d/pbs_sched Mom系统启动脚本 /etc/init.d/pbs_mom,2019/3/21,18,Server端设置,初始化server: (第一次运行或者重新配置) /usr/local/sbin/pbs_server t create Server配置目录 /var/spool/pbs/server_priv/ 节点属性声明:/var/spool/pbs/server_priv/nodes node2 R220A np=2 node3 R220A np=2 node4

9、 dualcore np=4 node5 dualcore np=4 node6 R4280A np=4 node7 R4280A np=4,2019/3/21,19,mom端设置,mom配置目录: /var/spool/pbs/mom_priv/ mom配置文件: /var/spool/pbs/mom_priv/config,2019/3/21,20,Server端的动态设置,PBS要能正常运行还需要通过qmgr命令的server进行配置,设置一些属性。输入qmgr命令进入配置交互命令。下面是让PBS可以正常运行的一些步骤。,2019/3/21,21,qmgr命令(管理员使用),输入qmgr

10、进入交互式模式后即可输入各种命令 qmgr动作: 对象类型和操作符,2019/3/21,22,PBS队列设置,导入server配置文件: rootnode1 root# qmgr queue.conf 配置文件例子:,2019/3/21,23,Scheduler调度行为配置,Scheduler的行为由配置目录下的sched_priv/sched_config文件进行控制 Sort_by关键字控制调度算法可以选择的选项为 no_sort ,shortest_job_first,longest_job_first ,smallest_memory_first,largest_memory_firs

11、t,high_priority_first,low_priority_first,multi_sort,fair_share,large_walltime_first,short_walltime_first 修改这个文件后重新启动scheduler即可。,2019/3/21,24,内 容,任务管理系统概述 PBS作业调度系统 作业调度系统的使用,2019/3/21,25,PBS的使用步骤,准备:编写描述改作业的脚本,包括作业名,需要的资源等。 提交:使用qsub命令将该作业提交给PBS服务器 排队:服务器将该任务排入适当的队列 调度:服务器检查各工作节点的状态是否符合该作业的要求,并进行调度

12、。 执行:当条件满足时,作业被发给相应的执行服务器执行。程序运行时执行服务器会收集程序的标准输出和标准错误流,等程序结束时,将这些信息返回给用户。 查询和调整:当作业在运行时,用户可以使用qstat进行状态查询。用户发现作业提交错误时,可以使用qdel删除正在运行的作业。 查看结果:使用文本编辑软件vi或者系统命令cat, less等查看输出及错误信息显示。,2019/3/21,26,PBS 的基本命令,在PBS系统中,用户使用qsub 命令提交用户程序。用户运行程序的命令及PBS环境变量设置组成PBS作业脚本,作业脚本使用如下格式提交到PBS系统运行:,2019/3/21,27,qsub运行

13、参数,2019/3/21,28,PBS 作业脚本,注释,以“#”开头 PBS指令,以“#PBS”开头 SHELL命令,2019/3/21,29,PBS的环境变量,2019/3/21,30,PBS 作业脚本,注释,以“#”开头 PBS指令,以“#PBS”开头 SHELL命令,2019/3/21,31,PBS 作业脚本举例,2019/3/21,32,详细示例,编辑PBS脚本内容如下:(注意,#PBS行不是注释,所有说明行均以#开始,即红色字体部分) #声明作业名为mpi #PBS -N mpi #申请资源数为10个节点,每个节点16个cpu #PBS -l nodes=10:ppn=16 #将标准

14、输出信息与标准错误信息合并输出到文件中 #PBS -j oe #指定作业提交到low队列 #PBS q low #估计最大运算时间为1000小时,若没有设置这项,系统为自动按所在队列默认walltime处理 #PBS -l walltime=1000:00:00,2019/3/21,33,#在作业结束时,给用户发邮件 #PBS -m e #声明邮箱地址,如 #PBS -M #进入作业调度目录 cd $PBS_O_WORKDIR #计算申请的cpu数目 NP=cat $PBS_NODEFILE | wc -l #设置计算所需要的环境变量,如使用GNU版OpenMPI运行程序 source /p

15、ublic/software/mpi/openmpi1.4-gnu.sh #程序运行部分,使用infiniband网运行此程序 mpirun -np $NP -machinefile $PBS_NODEFILE -mca btl self,openib cpi-openmpi,2019/3/21,34,一个复杂的PBS作业脚本,2019/3/21,35,查询和取消作业,2019/3/21,36,查询作业运行的位置,2019/3/21,37,ansys,单节点计算 ansys110 -np 4 -i wing.inp 跨节点计算: ansys110 -dis -machines node22:4

16、:node23:4 -i wing.inp,2019/3/21,38,ansys.pbs,#!/bin/bash #PBS -N ansys_wing #PBS -l nodes=1:ppn=8 #PBS -j oe rm host.list -rf for node in cat $PBS_NODEFILE do echo “-e MPI_REMSH=/usr/bin/rsh -h $node -np 1 /home/demo/fluent/bin/ansys_inc/v110/ansys/bin/ansysdis110 -dis -mpi HPMPI“ done host.list ans

17、ys110 -mpifile ./host.list -i wing.inp,2019/3/21,39,创建ma - node22 node23 - 需要注意最后有一个空行。 fluent 3d t16 cnf=./ma p -g i fluent.jou,2019/3/21,40,fluent.pbs,#!/bin/bash #PBS -N fluent_8cpu #PBS -l nodes=2:ppn=4 #PBS -j oe NPROCS=wc -l & m1_n2p8.out,2019/3/21,41,cfx,cfx5solve -def Benchmark.def -par-dist

18、 -start-method “HP MPI distributed Parallel” node1*2,node2*2,2019/3/21,42,cfx.pbs,#!/bin/bash #PBS -N CFX_8cpu #PBS -l nodes=4:ppn=2 CFX_DEF_FILE=Benchmark.def # # You dont need to modify the lines below # # PeHostfile2MachineFile() cat $1 | while read line; do # echo $line host=echo $line,2019/3/21

19、,43,# add here code to map regular hostnames into ATM hostnames if -z $mList ; then mList=$host“*1“ else mList=$mList,$host“*1“ fi echo $mList done CFX_PBS_NODEFILE=“/tmp/cfx_whoami_$PBS_JOBID“ PeHostfile2MachineFile $PBS_NODEFILE $CFX_PBS_NODEFILE NPROCS=wc -l $PBS_NODEFILE cd $PBS_O_WORKDIR /publi

20、c/software/ansys_inc/v110/CFX/bin/cfx5solve -def $CFX_DEF_FILE -par-dist tail -n1 $CFX_PBS_NODEFILE -start-method “HP MPI Distributed Parallel“,2019/3/21,44,abaqus,/public/software/ABAQUS/6.8-PF3/site/abaqus_v6.env - mp_mpi_implementation = HP hpmpipath = driverUtils.locateFile(os.environ.get(ABA_PA

21、TH, ), External/mpi/hpmpi-2.2.5.1/bin, mpirun) mp_mpirun_path = HP: hpmpipath mp_rsh_command = rsh -n -l %U %H %C mp_host_list=node1,8,node2,8 - abq68pf3 -j example cpus=16,2019/3/21,45,abaqus.pbs,#!/bin/sh #PBS -N ABAQUS_4cpu #PBS -l nodes=2:ppn=2 #PBS -j oe INPUT_FILE=“circuit.inp“ OUTPUT_FILE=“ab

22、aqus.log“ ABAQUS_EXEC=“/public/software/abaqus/Commands/abaqus“ ABAQUS_ENV=“/public/software/abaqus/6.5-6/site/abaqus_v6.env“ # for abaqus/standard ABAQUS_STANDARD_MEMORY=“4096 mb“ ABAQUS_PRE_MEMORY=“4096 mb“ ABAQUS_SCRATCH=“/tmp“ ABAQUS_MP_MODE=“THREADS“,2019/3/21,46,# for abaqus/explict ABAQUS_MP_

23、MODE=“MPI“ # # You dont need to modify the lines below # # GetNodeList() np=1 while read line; do host=$line if ! -z $lasthost ; then if $host = $lasthost ; then np=expr $np + 1,2019/3/21,47,else if -z $mList ; then mList=$lasthost,$np else mList=$mList,$lasthost,$np fi np=1 fi fi lasthost=$host don

24、e $1,2019/3/21,48,if -z $mList ; then mList=$lasthost,$np else mList=$mList,$lasthost,$np fi echo $mList NODE_LIST=GetNodeList $PBS_NODEFILE NPROCS=wc -l $PBS_NODEFILE cd $PBS_O_WORKDIR,2019/3/21,49,cp $ABAQUS_ENV abaqus_v6.env cat abaqus_v6.env standard_memory=“$ABAQUS_STANDARD_MEMORY“ pre_memory=“

25、$ABAQUS_PRE_MEMORY“ scratch=“$ABAQUS_SCRATCH“ mp_mode=“$ABAQUS_MP_MODE“ mp_host_list=$NODE_LIST EOF echo $ABAQUS_EXEC int j=$INPUT_FILE cpus=$NPROCS & $OUTPUT_FILE $ABAQUS_EXEC int j=$INPUT_FILE cpus=$NPROCS & $OUTPUT_FILE,2019/3/21,50,feko.pbs,#!/bin/bash #PBS -N feko_4cpu #PBS -l nodes=2:ppn=2 #PB

26、S -j oe NPROCS=wc -l $PBS_NODEFILE cd $PBS_O_WORKDIR runfeko horn.fek -np $NPROCS -machines-file $PBS_NODEFILE,2019/3/21,51,错误处理,作业提交后处于排队状态 没有可用的节点,也就是节点资源被其他作业使用; 节点处于忙状态; 调度器失效; 指定的节点失效,或者节点上的mom失效 作业提交后异常结束 脚本文件使用的是windows格式 脚本中使用一些命令路径问题 脚本退出但是作业没有退出 用户使用的文件的权限问题 处理方法的原则是查看作业的标准输入和标准错误输出的结果,201

27、9/3/21,52,错误处理(续),如果环境配置错误,可能导致作业反复在等待状态和运行状态转换,可以通过“qdel 作业号”将该作业删除再重新配置环境。 可能出现作业显示为运行状态,但是已经没有活动的进程,可通过“qsig SIGNULL 作业号”通知server作业已经退出。 作业的输出无法传出,可能是以下原因造成: 目标主机不被信任,并且用户没有.rhost文件 指定了一个错误的路径名 指定的目标目录不可写 目标主机的用户.bash_rc执行时产生了输出。 执行主机的PWS的spool目录没有使用正确的权限,这个目录必须使用1777权限(drwxrwxrwx)。,2019/3/21,53,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1