作业调度系统的简介

一、几种作业调度的系统的介绍(Condor,SGE,LSF,PBS,将详细介绍PBS系统)

       Condor是一个资源管理和作业调度系统,是来自Wisconsin-Madison大学的研究项目。充分利用工作站的空闲时间是Condor的最显著特征。Condor管理的机群由网络中的工作站组成,工作站可以自愿加入或退出。Condor监测网络中所有工作站的状态,一旦某台计算机被认为空闲,便把它纳入到资源池中。在资源池中的工作站被用来执行作业。

       Sun网格引擎(Sun Grid SGE)是一种来自于SUN Microsystem的分布式资源管理和调度系统,它用来在基于UNIX的计算环境中优化软件和硬件资源的使用。SGE能用于查找资源池内的闲置资源并利用这些资源;它同样用于通常的一些事务中,例如管理和调度作业到可用资源中。

       负载共享设施(Load Sharing FacilityLSF)是由加拿大平台计算公司研制与开发的,由Toronto大学开发的Utopia系统发展而来。在使用范围上,LSF不仅用于科学计算,也用于企业的事务处理。功能上,除了一般的作业管理特性外,它还在负载平衡、系统容错、检查点操作、进程迁移等方面作了很好的努力,并力图使之实用化。

       便携式批处理系统(Portable Batch SystemPBS)是一个资源管理和调度系统,它接受批处理作业(具有控制属性的shell脚本),保留和保护作业直到它开始运行。因为一个批处理作业是一个无需用户干预的,在计算机系统后台运行的程序,在批处理作业运行过程中,用户无法实时地得到作业运行结果,所以PBS只能在作业执行后,将作业结果返回给提交者。目前,PBS包含开源免费的OpenPBS、商业付费的PBS ProTorque三种分支。

       PBS的主要特点有:支持批处理、交互式作业和串行、多种并行作业,如MPIPVMHPFMPL;提供TCLBACLC三种过程语言,容易实现新的调度策略;提供文件传送功能,如文件换入(File Stage-in)和文件换出(File Stage-out);满足POSIX1003.2d标准;支持作业依赖;自动的负载平衡;完整的安全认证;提供了完整的API,方便新的调度器的开发;提供用户影像功能,使PBS能用于用户不一致的系统中。

                              图1PBS集群的守护进程

 

    图1它描述了PBS集群中的守护进程(daemon)的情况。PBS集群主要包含三种守护进程:pbs_serverpbs_mompbs_schedpbs_server仅运行在PBS服务器上,它的主要功能是提供一些基本的批处理服务,例如接收和创建一个批处理作业、修改作业、在系统崩溃时保护作业、执行作业等;pbs_mom运行在每一台主机上,用于在pbs_server指令下启动、监控和终止作业;pbs_sched运行在服务器上,决定什么时候在什么执行主机上运行作业,它从pbs_server中请求作业的状态,从pbs_mom中请求资源状态信息,然后决定如何调度作业。

 

    PBS作业脚本的实例:

#PBS -N testjob    Name of the job in the queue is "testjob".
#PBS -l nodes=7,walltime=1:00:00    Reserve 7 machines (14 processors), for 1 hour.
#PBS -S /path/to/shell    Script is /bin/sh (see below)
#PBS -q default     Submit to the queue named default.
#PBS -M your-email-address     Email me at this address.
#PBS -m abe  Email me when the job aborts, begins, and ends. #PBS -o /users/your-user-name/output  Write stdout to this file.
#PBS -e /users/your-user-name/errors  Write stderr to this file. 

 

 

二、使用作业调度系统的带来的好处

1、基于作业优先级的调度解决方案。

    在一个大型公司内部,通常需要处理一些自动化运行的任务,通常会采用系统自带的crontable的定时任务完成。但是,很多情况下,是多个作业,彼此先后执行,共同完成任务。在这样的情况下,定时任务存在两个明显的问题,其一,浪费了大量的系统等待时间,其二,假设两个作业,第一个作业必须在第二个作业前运行,如果第二个作业先运行,就会有灾难性的后果,对于定时任务而言,解决任务这样两个作业优先级的问题是只能把任务一的运行时间安排在二之前,不能完全满足前面的假设,但是对于作业调度器而言,安排作业的优先级,是最基本的功能,简直是小Case。

 

2、软件开源,学习成本低

    像SGE和open PBS都是开源软件,使用者本事可以对这些软件进行一定程度的改造和分析,对于open PBS使用脚本和命令行的控制方式运行,学习成本非常低。

你可能感兴趣的:(作业调度系统的简介)