您好,欢迎访问三七文档
SGE调研报告一.总体介绍SGE,SunGridEngine,是sun公司开发的一款基于网格的资源管理软件,它接受用户提交的作业,并使用资源管理策略安排作业在网格内适当的系统上运行,用户可以向网格提交批处理作业、交互式作业以及并行作业。GridEngine系统是一种先进的资源管理工具,用于管理不同种类的分布式计算环境。工作负荷管理意味着对共享资源的使用进行控制,以最大限度地实现企业的目标,例如生产率、时间限制、服务水平等等。工作负荷管理通过管理资源、执行策略完成。站点配置确保系统实现使用率和生产量的最大化,同时使系统支持不同的时间限制和重要级别。SGE软件分为三个模块,sge_qmaster,sge_schedd,sge_execd,根据运行的模块不同,服务器在群集中的功能也不同,分别为:主控主机,管理主机,执行主机,提交主机。主控主机。主控主机是所有群集活动的中心。主控主机运行主守护进程sge_qmaster。sge_qmaster控制所有的GridEngine系统组件,例如,队列和作业。它还维护着有关组件状态、用户访问权限等内容的表格。主控主机通常运行调度程序sge_schedd。除了安装过程执行的配置之外,不需要对主控主机进行进一步的配置。执行主机。执行主机是拥有运行作业权限的节点。因而它们控制队列实例,并且运行执行守护进程sge_execd。管理主机。可将权限授予除主控主机外的其他主机,以进行各种管理活动。请用以下命令安装管理主机:qconf-ahhostname提交主机。提交主机仅用于提交并控制批量作业。特别地,登录到提交主机的用户可以使用qsub提交作业,使用qstat控制作业状态,或者运行图形用户界面QMON。请使用以下命令安装提交主机:qconf-ashostname注:一台主机可以运行多个模块,具有多种功能。GridEngine系统执行以下任务:1.接受外来作业。作业是指用户对计算机资源的请求。2.将工作放入留置区域直到可以运行该作业。3.将作业从留置区域发送到执行设备。4.管理正在运行的作业。5.作业完成时,将作业执行记录写入日志。二.功能与使用1.资源管理在SGE中,可以自定义可使用管理的资源,典型的可使用资源包括:可用的空闲内存软件包使用的许可证可用的磁盘空间网络连接中可用的带宽资源属性的定义包括以下内容:属性名称引用属性名称时的简称属性值的类型,例如,STRING或TIME“Requestable”标志,决定着用户是否可以为作业请求该属性“Consumable”标志,将属性标识为可使用的资源默认的请求值,如果作业没有明确指定对属性的请求,则将默认的请求值视为可使用的属性“Urgency”值,逐一考虑每种资源,然后确定作业优先级可以按下方式使用资源属性:作为队列资源属性作为主机资源属性作为全局资源属性2.作业的提交与管理(1)提交作业在SGE中,作业是以脚本方式提交的,可以通过命令行提交,也可以在图形界面qmon中提交,在提交的同时可以定义作业的相关属性,这些属性将决定作业的调度和运行,常见的属性有:Prefix–脚本嵌入提交选项使用的前缀字符串。JobScript–使用的作业脚本。JobTasks–提交阵列作业的任务ID范围。JobName–作业的名称。选择作业脚本之后会设置一个默认名称。JobArgs–作业脚本的自变量。Priority–用于设置作业初始优先级的计数框。此优先级用于排列某用户多个作业的顺序。当用户在系统中同时有多个作业时,优先级会通知调度程序如何在单个用户作业中进行选择。JobShare–定义相对于其他作业的作业票券份额。作业份额只影响份额树策略和职能策略。StartAt–作业符合执行条件的启动时间。Project–作业所属的项目。CurrentWorkingDirectory–表明是否在当前工作目录执行作业的标志。仅在提交主机和可能的执行主机之间具有同样的目录层次时才使用该标志。Shell–用于运行作业脚本的命令解释器。MergeOutput–指明是否将作业的标准输出和标准错误输出合并为标准输出流的标志。stdout–要使用的标准输出重定向位置。stderr–要使用的标准错误输出重定向位置,类似于标准输出重定向。stdin–要使用的标准输入文件,类似于标准输出重定向。RequestResources–单击该按钮定义作业的资源需求。RestartdependsonQueue–单击该按钮定义在系统崩溃或类似事件终止作业后,作业是否可以重新启动。该按钮还控制重新启动行为是取决于队列还是作业的要求。NotifyJob–表明在暂停或取消作业之前是否通过SIGUSR1或SIGUSR2信号通知用户的标志。HoldJob–表明要为作业指定用户留置状态或作业从属性的标志。只要指定作业处于留置状态,作业就不符合执行的条件。StartJobImmediately–强制在可能的情况下立即启动作业或拒绝作业的标志。如果选择该标志,则作业不进入队列。JobReservation–指定为作业保留资源的标志。使用命令行提交作业:#qsub-NFlow-p-111-Pdevel-a200404221630.44-cwd\-S/bin/tcsh-oflow.out-jyflow.shbig.data使用qmon提交作业界面:本示例中配置的作业参数表明以下内容:_作业的脚本文件为flow.sh,该文件必须驻留在QMON的工作目录下。_作业名为Flow。_脚本文件采用单个自变量big.data。_作业启动的优先级为3。_2004年4月22日凌晨4:30.44之后的作业符合执行条件。_项目定义表明作业从属于项目crash。_作业在提交工作目录下执行。_作业使用tcsh命令解释器。_标准输出和标准错误输出合并到文件flow.out中,该文件在当前工作目录中创建。定义作业的资源需求:GridEngine系统假定作业可以在任何主机上运行。然而,在实际操作中为使作业顺利完成,执行主机需要满足特定的先决条件。先决条件包括足够的可用内存、安装所需的软件或特定的操作系统结构。另外,群集管理员通常对群集中计算机的使用施加限制。例如,限定作业可以使用的CPU时间。(2)从属性作业构建复杂任务的最简便的方法是将一个任务拆分为子任务。在这种情况下,从属子任务是否可以启动取决于其他子任务的完成情况。例如,从属任务必须读取并处理由先导任务生成的输出文件。GridEngine系统通过其作业从属性工具支持交叉从属任务。可以对作业进行配置,使其依赖一个或多个其他作业的完成情况。qsub-hold_jid命令对该工具进行了加强。可以为提交的作业指定其所从属的作业列表。该作业列表也可以包含阵列作业的子集。只有当从属列表中所有的作业完成后,提交作业才具有执行条件。(3)提交阵列作业GridEngine系统的阵列作业工具的理想应用情形是,在作业脚本中对同一操作组需要执行参数化的、重复的执行。此应用的典型示例为数字内容创作行业中的图形渲染任务。对动画的计算将拆分为帧。可对每帧执行相同的渲染计算。阵列作业工具提供了一个提交、监视和控制这类应用程序的简便方法。GridEngine系统提供了执行阵列作业的有效的方式,可将计算拆分成独立的任务组,然后再组合为一个单独的作业。阵列作业任务通过组索引编号引用。所有任务的索引位于整个阵列作业的索引范围内。索引范围是在提交阵列作业过程中通过qsub命令定义的。可以监视和控制阵列作业。例如,可以整体暂停、恢复或取消阵列作业,也可以暂停、恢复或取消阵列作业内的单个任务或任务子集。引用任务时,应将相应的索引编号作为作业ID的后缀。任务与常规作业的执行方式非常相似。任务可以使用环境变量SGE_TASK_ID检索其自身的索引编号并访问为此任务标识符指定的输入数据集。(4)为作业分配资源下面介绍GridEngine软件的资源分配运算法则。1.读入并解析所有默认的请求文件。2.处理作为嵌入选项的脚本。3.提交作业时将读取所有的嵌入脚本选项,而不考虑脚本文件的位置。4.从命令行读取并解析所有的请求。当收集到全部的qsub请求后,将分别处理硬性和软性请求,硬性请求优先。对应于下面的优先次序,评估请求:1.从左到右评估脚本/默认的请求文件2.从上到下评估脚本/默认的请求文件3.从左到右评估命令行3.配置队列队列包含着各种类别的作业。队列提供了相应的资源,用于并发执行属于同一类别的多个作业。在SGE中,一个队列可以与一台主机或者多台主机相关联。因为队列可以延伸到多台主机,所以称为群集队列。群集队列允许以单群集队列配置方式管理由执行主机组成的一个群集。每台与群集队列相关联的主机,都会收到驻留在此主机中的群集队列的实例。本指南称这些实例为队列实例。在任何群集队列中,都可以单独配置每个队列实例。通过配置单独的队列实例,能够以单一群集队列配置的方式管理由执行主机组成的不同类别的群集。修改一个群集队列时,会同时修改它的所有队列实例。在单一群集队列中,可以指定队列实例配置中的区别。因此,一个典型的安装可能仅需要几个群集队列,而这几个群集队列的背后却控制着大量的队列实例。作业是在队列实例中运行,而不是在群集队列中运行。定义一个队列时,可以使用以下11个选项卡来指定参数集:通用配置执行方法点校验并行环境负荷/暂停阈值限制属性定义集从属队列用户访问权限项目访问权限拥有者4.调度策略(1)常用的调度策略职能策略–根据与特定用户组、项目等的从属关系而给予特殊处理。基于份额的策略–服务级别取决于指定的份额权益、其他用户和其他用户组的相应份额、所有用户以及系统中当前存在的用户在此之前的资源使用情况。紧急程度策略–优先处理紧急程度较高的作业。作业的紧急程度取决于它的资源需求、必须等待的时间以及提交时是否带有限期。越权策略–群集管理员手动介入修改自动策略的执行。配置职能策略职能调度是一种非反馈方案,用于确定作业的重要程度。职能调度将作业与提交用户、项目、部门和作业类关联起来。职能策略有时称为优先级调度。职能策略的设置可确保每个用户、项目或部门可随时获得所定义的份额。当系统将作业分派到空闲的资源时,会优先考虑过去比预期使用较少资源的用户、项目或部门的作业。系统资源的职能策略优先权与其他优先权结合起来,以确定作业的净优先权。例如,职能策略优先权可能与基于份额的策略优先权结合起来。分配给职能策略的票券总数,决定了职能调度在三个调度策略之中所占有的权重。安装过程中,管理员将职能票券总数分配给各个职能类别(用户、部门、项目、作业和作业类)。配置紧急程度策略紧急程度策略定义了每个作业的紧急程度值。该紧急程度值由以下三个基值因素之和决定:_资源需求。定义在属性定义集中的每个资源属性都可具有一个紧急程度值。对资源属性的每个作业请求,都将属性的紧急程度值添加到总值中。_限期。限期作业的紧急程度值取决于“PolicyConfiguration”对话框中的“WeightDeadline”除以空闲时间(以秒计,即qsub–dl命令指定的作业限期启动时间之前的时间)。_等待时间。作业等待时间的紧急程度值取决于作业等待时间乘以“PolicyConfiguration”对话框中指定的“WeightWaitingTime”。作业的等待时间以秒计。配置基于份额的策略基于份额的调度可在累积期间(例如,一周、一个月或一季度)内为每个用户和项目授予所分配的系统资源份额。基于份额的调度又称为份额树调度。它会在邻近的期间内不断地调整每个用户和项目潜在的资源份额。基于份额的调度是为用户或项目、或两者定义的。基于份额的调度可确保配置在份额树中的实例可随时获得定义的份额。对于过去比预期使用较少资源的份额树树枝,当系统分派作业时,会优先考虑与这些树枝相关的作业。同时又可以保证资源的充分利用,因为未使用的份额部分仍然可用于与其他份额树树枝相关联的暂挂作业。通过尽可能地赋予每个用户或项目所需份额,用户组或项目组也
本文标题:SGE调研报告
链接地址:https://www.777doc.com/doc-2849417 .html