1、作业调度系统,曙光信息产业(北京)有限公司,内 容,任务管理系统概述作业调度系统PBS作业调度系统作业调度系统的使用,机群使用中的问题,机群结构的松散性(单一系统映象)节点类型的差别 (CPU类型、内存大小、数量等)系统资源丰富(节点/CPU)用户不同类型的作业(串行/并行)用户可以使用资源的限制,任务管理系统的功能,单一系统映象机群松散的结构的整合系统资源整合异构系统的整合多用户的管理用户提交的任务的统一安排,避免冲突用户权限的管理非授权用户的控制,任务管理系统的简史,任务管理系统的分类,基于进程级别的调度由机群中的操作系统或者运行时Runtime内部支持,对运行的作业进行监控;以实现机群内
2、的透明调度、以及自动优化进程的分配和平衡负载 基于作业级别的调度这种方式由独立的作业管理系统实现。该系统通过专门的入口,接收用户提交的任务,送入相应的队列等待调度;并在适当的时机分配资源,为任务创建作业,将作业提入运行,在作业运行结束后完成收尾工作,并提供记帐功能。管理员和用户还可以在机群中查询并预订符合要求的资源,从而实现对作业和资源的全程交互控制。,任务管理系统的比较,内 容,任务管理系统概述作业调度系统PBS作业调度系统作业调度系统的使用,作业管理的组成,资源管理器:管理集群的硬件资源及认证信息等队列管理器:管理当前所有已提交但还未完成的作业调度器:为作业分配资源,作业管理系统的结构,作
3、业特性比较,内 容,任务管理系统概述作业调度系统PBS作业调度系统作业调度系统的使用,PBS作业调度系统,PBS最初由NASA的Ames研究中心开发,为了提供一个能满足异构计算网络需要的软件包。它力求提供对批处理的初始化和调度执行的控制,允许作业在不同主机间的路由。,PBS的技术特色,力求控制对批处理的初始化和调度执行,允许作业在不同主机间的路由。独立的调度模块存有各个可用的排队作业、运行作业和系统资源使用信息,并且允许系统管理员定义资源和每个作业可使用的数量。在作业调度策略上,PBS提供了默认的公平共享和独占FIFO调度策略,还提供了TCL、BACL、C三种过程语言和调度类,与定义了一些调度
4、需要的函数和完整的API,方便实现新的调度策略。提供文件传送,File Stage-in 和Stage-out。满足POSIX1003.2d 标准,支持作业依赖,和完整的安全认证。提供用户映射功能,使PBS 能用于用户不一致的系统中。,PBS的结构,PBS 的组成,服务器:pbs_server调度器:pbs_sched执行器:pbs_mom命令行:用户脚本,管理命令等,PBS 的基本原理,PBS 的优缺点,支持系统级检查点功能(需底层操作系统支持)很好的大规模扩展性独立的调度模块*支持作业依赖 符合POSIX 1003.2d 标准-只支持Unix类操作系统-多集群协作功能有限-不支持用户级检查
5、点功能,术 语,节点(node) 一个单一的操作系统映像,一个统一的虚拟内存映像一个个或多个cpu,一个或多个IP地址的计算机系统被称之为一个节点。通常执行主机(execution host)也被称之为节点。节点属性 队列、服务器和节点都有与自己相关的属性,这些属性提供控制信息。与节点相关的属性有:状态、类型、虚拟处理器的个数、作业列表(本节点被分配给的作业)以及节点的特性。 节点特性 为了提供一组节点的分配的方法,零个或者多个特性被赋给每个节点。这个特性不过是一串对于PBS没有含义的字母和数字的组合(第一个字符必须是字母)。,PBS 安装,解压源文件包 rootnode1 /public#
6、tar -zxvf openpbs-2.3.16.tar.gz 编译设置 rootnode1 /public/OpenPBS_2.3.16./configure -enable-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 /pub
7、lic/OpenPBS_2.3.16# make install,PBS在机群上安装,由于节点系统相同,因而可以用如下SHELL script在node2node8上安装;,服务进程配置和启动文件,系统配置文件/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 Ser
8、ver的系统启动脚本 /etc/init.d/pbs_server Scheduler系统启动脚本 /etc/init.d/pbs_sched Mom系统启动脚本 /etc/init.d/pbs_mom,Server端设置,初始化server: (第一次运行或者重新配置)/usr/local/sbin/pbs_server t createServer配置目录/var/spool/pbs/server_priv/节点属性声明:/var/spool/pbs/nodesnode2 R220A np=2node3 R220A np=2node4 dualcore np=4node5 dualcore
9、 np=4node6 R4280A np=4node7 R4280A np=4,mom端设置,mom配置目录: /var/spool/pbs/mom_priv/mom配置文件: /var/spool/pbs/mom_priv/config,Server端的动态设置,PBS要能正常运行还需要通过qmgr命令的server进行配置,设置一些属性。输入qmgr命令进入配置交互命令。下面是让PBS可以正常运行的一些步骤。,qmgr命令(管理员使用),输入qmgr进入交互式模式后即可输入各种命令 qmgr动作:对象类型和操作符,导入server配置文件:rootnode1 root# qmgr queu
10、e.conf配置文件例子:,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修改这个文
11、件后重新启动scheduler即可。,内 容,任务管理系统概述作业调度系统PBS作业调度系统作业调度系统的使用,PBS的使用步骤,准备:编写描述改作业的脚本,包括作业名,需要的资源等。提交:使用qsub命令将该作业提交给PBS服务器排队:服务器将该任务排入适当的队列调度:服务器检查各工作节点的状态是否符合该作业的要求,并进行调度。执行:当条件满足时,作业被发给相应的执行服务器执行。程序运行时执行服务器会收集程序的标准输出和标准错误流,等程序结束时,将这些信息返回给用户。查询和调整:当作业在运行时,用户可以使用qstat进行状态查询。用户发现作业提交错误时,可以使用qdel删除正在运行的作业。查
12、看结果:使用文本编辑软件vi或者系统命令cat, less等查看输出及错误信息显示。,PBS 的基本命令,在PBS系统中,用户使用qsub 命令提交用户程序。用户运行程序的命令及PBS环境变量设置组成PBS作业脚本,作业脚本使用如下格式提交到PBS系统运行:,qsub运行参数,PBS 作业脚本,注释,以“#”开头PBS指令,以“#PBS”开头SHELL命令,PBS的环境变量,PBS 作业脚本,注释,以“#”开头PBS指令,以“#PBS”开头SHELL命令,PBS 作业脚本举例,一个复杂的PBS作业脚本,查询和取消作业,查询作业运行的位置,错误处理,作业提交后处于排队状态 没有可用的节点,也就是
13、节点资源被其他作业使用; 节点处于忙状态; 调度器失效; 指定的节点失效,或者节点上的mom失效作业提交后异常结束 脚本文件使用的是windows格式 脚本中使用一些命令路径问题 脚本退出但是作业没有退出 用户使用的文件的权限问题处理方法的原则是查看作业的标准输入和标准错误输出的结果,错误处理(续),如果环境配置错误,可能导致作业反复在等待状态和运行状态转换,可以通过“qdel 作业号”将该作业删除再重新配置环境。可能出现作业显示为运行状态,但是已经没有活动的进程,可通过“qsig SIGNULL 作业号”通知server作业已经退出。作业的输出无法传出,可能是以下原因造成:目标主机不被信任,并且用户没有.rhost文件指定了一个错误的路径名指定的目标目录不可写目标主机的用户.cshrc执行时产生了输出。执行主机的PWS的spool目录没有使用正确的权限,这个目录必须使用1777权限(drwxrwxrwx)。,谢谢!,