用于数据分析的基于启发式的调度的制作方法

文档序号:6437601阅读:180来源:国知局
专利名称:用于数据分析的基于启发式的调度的制作方法
技术领域
本说明书涉及作业调度。
背景技术
计算资源的用户经常难以以高效的、成本有效的方式来利用这种计算资源。例如,这种用户可能具有随时间变化很大的计算需要,并且可能不希望对在高使用率时段期间管理计算性负载所必需的大量计算资源进行投资。例如,拥有大量雇员的企业可能希望,例如,在每月末仅一次地处理全部雇员的エ资单。在这种情形中,企业可能在每月末要求的计算资源的数量与在本月的剰余期间需要的计算资源不成比例。从而,因为在本月的剰余期间这些计算资源的相当大部分将空闲(sit idle),所以企业投资足够的计算资源来办理以上示例的エ资单处理将是低效的。在这些及其它情形中,计算资源的用户可能不愿意或不能承受与购买和管理满足所有用户的计算需要所必需的计算资源等级有关的成本。因此,软件、基础架构及其它计算资源的提供商已经实现了以下商业模式(business model),在该商业模式中根据这种提供商的消费者的特定的和波动的需求,在根据需要、针对需求、动态的基础上向用户提供计算资源。这种提供商被已知为、或可以被称为“软件即服务”(Saas)提供商、和/或“基础架构即服务”(Iaas)提供商。这种提供商典型地投资于向他们的消费者远程地提供计算资源所需的相对大量的服务器和相关的计算机/网络设备。例如,在上面描述的示例中,具有所述的エ资单处理需要的企业可能有与Saas提供商建立的协议,以在ー个月的大部分之中利用相对低量的计算资源,而在当エ资单处理发生的每月末可以访问相对更大量的计算资源。从而,这种服务提供商可以向大量企业或其他消费者提供软件、基础架构及其它计算资源,并且因此可以以高效的、成本有效的方式来承受利用可用的计算资源的负担。为此,这种服务提供商典型地接收对于计算资源的请求,并且在可用的服务器或其它计算节点当中动态地调度所接收的请求。多数情况下,这种服务提供商可以配置很大量的计算资源,并且可以与相对大量的服务消费者建立服务协议,每个服务消费者都可以要求变化的和可能大量的可用的计算资源。结果,服务提供商可能难以以期望的、高效的和成本有效的方式来分配可用的计算资源。

发明内容
根据ー个一般方面,一种计算机系统可以包括记录在计算机可读介质上并可由至少ー个处理器运行的指令。所述系统可以包括:调度器,被配置为使得处理器接收用于调度其在多个计算节点上的运行的多个作业;以及评价模块,被配置为使得处理器为多个调度算法的每ー个提供公共接ロ。所述系统还可以包括:算法选择器,被配置为使得处理器将评价模块与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的ー个与每个作业类型关联;以及作业比较器,被配置为使得处理器将用于调度的当前作业相对于基准数据进行比较,以确定当前作业的当前作业类型,所述评价模块还可以被配置为基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。根据另ー个一般的方面,计算机实施的方法可以包括:接收用于调度其在多个计算节点上的运行的多个作业,以及提供用于多个调度算法中的每ー个的公共接ロ。所述方法可以包括:将公共接ロ与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的ー个与每个作业类型关联,以及相对于基准数据比较用于调度的当前作业以确定当前作业的当前作业类型。所述方法还可以包括基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。·
根据另ー个一般的方面,一种计算机程序产品可以有形地实现在计算机可读介质上并且可以包括执行时被如下配置的指令:接收用于调度其在多个计算节点上的运行的多个作业,以及提供用于多个调度算法中的每ー个的公共接ロ。当所述指令被执行时还可以被配置为:将公共接ロ与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的ー个与每个作业类型关联;以及相对于基准数据比较用于调度的当前作业以确定当前作业的当前作业类型。当所述指令被执行时还可以被配置为:基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。在附图和下面的描述中阐明一个或多个实施方式的细节。其它特征从该描述和附图以及从权利要求中将变得清楚。


图1是执行用于数据分析的基于启发式的调度的系统的框图。图2A是示出图1的系统中的作业分布的框图。图2B是示出作业任务及其数据源的示例安排的框图。图3A是示出其中作业的全部任务被分配给单个节点的作业放置的框图。图3B是示出其中作业的任务被独立地分配到多个节点当中的作业布置的框图。图4是表示可以连同图1的调度算法一起使用的调度结果的阵列。图5是示出图1的系统的示例操作的流程图。图6是示出图1的系统的额外示例操作的更详细的流程图。图7是示出一旦作业调度已经完成用于节点上的任务调度的技术的一系列图形。图8是示出相应于图7的示例操作的流程图。
具体实施例方式图1是用于执行用于数据分析的启发式空间调度的系统100的框图。在图1的示例中,将所有者和/或操作员102示出为对计算资源的基础架构104进行管理和维护。在图1的简化示例中,将基础架构104示出为包括多个服务器106A、106B、...106N。在示例中,由基础架构104的所有者/操作员102提供的服务的消费者108提交作业110,该作业110将使用服务器106A、106B、...106N和其它与基础架构104关联的相关计算资源完成。更具体地说,如此处详细描述的,与基础架构104关联的调度器112可以被配置为:接收作业110,并且以实现所有者/操作员102的一个或多个期望的目标的方式各服务器106A、106B、 106N 上分配作业 110。在图1的示例中,所有者/操作员102可以表示寻求向消费者108提供计算资源的任何人、企业或其他实体,例如,作为由此获得利润的手段。例如,所有者/操作员102可以表示专营软件的远程提供的企业法人,或者可以表示拥有超额计算能力的企业,该企业随后使用超额计算能力来向消费者108提供计算资源。如以上提到的,图1的简化示例将基础架构104示出为包括服务器106A、106B、...106N。当然,基础架构104可以包括未在图1的示例中示出的许多额外的或替换的元件,在下面更详细地描述其中ー些元件。例如,可以理解地是,服务器106A、106B、...106N可以事实上表示被配置为向消费者108提供远程数据存储和处理的任何计算设备、节点或它们的群。从而,例如,基础架构104可以被理解为包括用于提供在服务器106A、106B、.106N之间和当中、以及在服务器106A、106B、.106N和调度器112之间、以及在基础架构104和通过基础架构104外部的一个或多个网络访问的任何或全部数据之间的通信的多种网络连接。此外,基础架构104可以被理解为包括由服务器106A、106B、...106N利用的一个或多个计算机存储器,或与所述ー个或多个计算机存储器通信,所述计算机存储器存储与作业110关联的数据和/或代表消费者108的数据。如本领域技术人员显而易见的,这种存储器可以以一対一的、ー对多的、多对ー或多对多关系与服务器106A、106B、...106N关联。消费者108可以事实上表示向基础架构104发送计算作业110的任何人、企业、或其他实体,以结合计算作业110利用基础架构104的计算资源。例如,如以上示例描述的,消费者108可以表示具有变化的处理需要(例如,エ资单处理)的企业。在某些示例情形中,消费者108可以表示独立的基础架构(未在图1中示出)的所有者,即,消费者108自身可以是软件即服务和/或基础架构即服务的提供商。在这种示例中,消费者108可能不能满足它自己的消费者的要求等级,并且可能因此利用由所有者/操作员102提供的基础架构104的计算资源以便满足它自己的消费者要求。作业110可以事实上表示对于计算相关的任务的任何请求,所述请求可以由消费者108(例如,通过可适用的计算机网络)向基础架构104提交。例如,作业110可以包括对于将关于ー个或多个数据集合执行的特定计算的ー个或多个请求。在其它示例实施中,作业110可以包括对于临时 或长期数据存储的请求。多数情况下,作业110的接收和处理可以由在所有者/操作员102和每ー个消费者108之间的服务等级协议(SLA)管理。例如,这种SLA可以相对于从单个消费者108接收的其它作业或作业类型、和/或相对于从其他/不同消费者108接收的其他作业或作业类型,来规定(dictate)每个作业的优先级。多少类似地,这种SLA可以管理基础架构104的计算资源关于每个消费者108的相对可用性。此外,这种SLA可以与基于成本的測量相关联,所述基于成本的測量管理与计算机资源关联的可用性和处理时间。例如,SLA可以规定以增加的成本作为交换该消费者108可以接收更多可用性和/或处理时间。这种SLA的其它示例术语和特征为大家所熟知,并且此处在补充细节中仅描述到必需的或有助理解图1的系统100的特征与功能的程度。例如,如在下面关于图2A详细描述的,每ー个作业110可以包括分别地与特定计算要求关联的多个任务或子任务。从而,如在下面还将详细描述的,由给定作业110要求的数据可以与作业110的接收有关地被收到,可以与作业110的较早任务的完成有关地被收至IJ,或者(如图1的示例中所示以及例如关于图2B在下面更详细地描述的)可以包括网络数据114或其它数据,该数据至少最初在相应的作业110以外、或者从相应的作业110分离出来。如以上提到的以及下面将更详细地描述的,从而可以将调度器112配置为接收作业110并且在服务器106A、106B、...106N之内和当中分配作业110。在这种情况下,调度器112可以被配置为以下述方式来分配作业110:以满足消费者108和所有者/操作员102之间的各种SLA的方式,否则以部分地或完全地实现所有者/操作员102的ー个或多个目标的方式。例如,所有者/操作员102可能希望配置调度器102以便以最小化作业110的运行时间的方式来分配作业110。在这种情况下,所有者/操作员102可以实现消费者108的高度满意,通常可以假定消费者108期望使他们各自的作业110尽快完成。另ー方面,可能发生的是最小化作业110的运行时间可能与基础架构104的资源的非充分利用相关联。例如,可能存在这种情形:所有者/操作员102可能希望最大化服务器106AU06B,.106N的利用,即使以稍微降低作业110的整体运行时间为代价。例如,只要有关的运行时间在由与消费者108协商的并且由消费者108购买的各个SLA规定的參数之内,这样的结果就可能使所有者/操作员102满意。因此,可以注意到,存在对调度器112分配作业110的方式进行控制的许多动态变量。当然,存在许多其它这种变量并且为本领域技术人员所知,因此未在此处更详细的描述。例如,这种变量可以包括可用的服务器的当前的数量/改变的数量(例如,诸如当添加了新的服务器和/或当一个或多个服务器经历故障时)。此外,多数情况下,可能发生地是,服务器的总数“N”以及作业110的总数可能相当大。此外,可以注意到用于在N个 服务器当中分配作业110的可能性的数量随更多的作业/服务器的添加而成指数增长。因此,调度器112的功能可以被理解为:从全部可能或有可能性的分布之中识别任务Iio的分布,该识别的任务110的分布最好地满足相关的SLA和/或否则实现所有者/操作员102的期望目标。然而,仅仅作为描述,要求由调度器112捜索来识别最好的可能分布的、作业110的可能分布的捜索空间对于调度器112而言可能太大而不能在实际的时间限制内完成识别。因此,调度器112包括多个算法116,该算法116被设计成能帮助调度器112调查作业110的可能分布的捜索空间,并且由此识别作业110的最佳的、近似最佳的、或可接受的分布。此外,调度器112包括评价模块118,该评价模块118被配置为提供与所有的各个算法116的公共接ロ、或否则具有与所有的各个算法116通信的能力。也就是说,如在下面更详细描述的,评价模块118可以被配置为:使用算法116中的任何ー个算法,并且相对于所有者/操作员102的期望目标,来评价和比较各个有可能性的作业分布。例如,评价模块118可以被配置为:将可能的作业分布彼此进行评价,并且相对期望的最小化整体作业运行时间、期望的基础架构104的资源利用的最大化、或其它度量、或其组合来评价可能的作业分布。如在下面详细描述的,算法116中的每ー个可能特别合适于在特定的、相应的上下文中捜索所识别的期望作业分布。例如,作业110可能具有变化的特征和/或类型,并且算法116中的特定ー些算法可以很好合适于对于相应类型或具有相应特征的作业来选择或识别期望的作业分布。有些类似地,在额外的或替换的示例中,在有外部网络数据114的情况下,取决于外部网络数据114的类型或范围,算法116中的特定ー些算法可能在确定期望作业分布方面特别有用。在更进一歩示例中,在相对小数量的作业110将分布在相对小数量的服务器当中的情形中,算法116中的特定ー些算法可能相对更有用,而算法116中的其它算法可能很好适合于在有大数量作业110将分布在大数量服务器的情况下选择/识别作业分布。尽管如此,因为评价模块118被配置为以快速、高效和实用的方式与算法116中的任何或全部算法协作,所以调度器112可以被配置为从算法116选择和利用可用的算法以便实现作业110的当前分布。具体地,如所示的,调度器112可以积累基准数据120,该基准数据120包括与作业分布的先前计算关联的汇总数据和其它相关的启发。例如,在一些实施中,与调度器112的正常操作一起,基准数据120可以由调度器112随着时间汇总。在额外的或替换的示例中,基准数据120可以和调度器112的操作一起被汇总,为汇总基准数据120目的而具体地实现所述操作。因此,基准数据120可以通常被理解为包括,例如,由调度器112执行的先前的作业分布处理以及可能对选择用于执行当前或将来的作业分布的算法116有用的相关数据。例如,基准数据120可以包括与名称、性质、类型或包括在基准作业分布中的相关的作业的其它特征有关的数据。基准数据120还可以包括与根据作为结果的、所选择的作业分布来执行的后续计算操作相关的性能数据。因此,在特定示例中,作业110的ー个或多个集合可以最初用于创建基准数据120。例如,初始作业110可以由调度器112接收并且使用算法116的任何或全部可适用的算法来调度,即,使用评价模块118作为关于作业110的初始集合来实施算法116的公共中间件。随后,算法选择器122可以评价与各个算法116关联的结果作业分布,例如,可以评价每个算法所要求的时间长度以选择结果作业分布,和/或可以评价结果计算时间、利用率(utilization measure)、或与作业的初始集合的完成关联的其它度量。以这种方法,算法选择器122可以选择算法116中的特定ー个算法,并且可以将该算法116和相关的作业/性能数据一起存储在基准数据120内。随后,当作业110的当前或将来的集合被接收时,作业比较器124可以被配置为:相对于基准数据120来分析所接收的作业110,因此算法选择器122可以被配置为:从算法116中选择被确定为最佳适合于进行作业110的当前集合的分布的算法。一旦选择完,可以由评价模块118利用选择的算法116继续进行作业分布的识别和选择,所述作业分布要被用来在服务器106A、106B,...106N的可用服务器之内分配作业110。以这种方法,以最有可能实现所有者/操作员102和/或消费者108的期望目标的方式,调度器112提供用于分布作业110的定制的、最优化的、动态的技术。最后,关于图1的调度器112,示出任务调度器126,可以将任务调度器126配置为排列一个或多个作业110的单独任务以在服务器106A、106B、...106N中的单独的、所分配的服务器上运行。也就是说,如此处描述的,作业110每个都可以包括多个独立的离散的任务。可以使用,例如,从先前完成的任务接收的数据和/或使用外部网络数据114来处理每个任务。从而,一旦评价模块118的操作被完成并且作业110被分布,接收发奥作业110中的一个作业的每个服务器可以继续运行其任务。然而,如果在运行特定ー个任务时存在延迟,诸如当运行的任务要求当前不可用的外部网络数据114时可能发生的,则在有关的服务器的操作中可能经历整体延迟。从而,任务调度器126可以被配置为重调度由特定服务器实施的単独任务,例如,使得如果当前任务经历诸如刚才描述的延迟以及当当前任务经历诸如刚才描述的延迟时,开始另外的后续任务的运行。具体地,如此处描述的,任务调度器126可以被配置为使用算法126中的任何一个或更多算法来运行这种调度/重调度操作。以这种方法,基础架构104的操作可以被更进ー步优化。例如,关于图7和图8在下面详细描述任务调度器126的特定示例操作。在图1的示例中,将调度器112示出为正在由至少ー个计算设备128运行。如所示的,至少ー个计算设备128可以包括至少ー个处理器128A以及计算机可读存储介质128B。因此,例如,可以理解地是:图1的示例可以期待调度器112的许多不同的实现。例如,虽然在图1中将调度器112示出为在单个计算设备上运行,但是可以理解地是:可以使用可以与彼此通信的不同的计算设备实现调度器112的各个模块和相关联的功能。有些类似地,可以理解地是:可以在具有多个处理内核的单个计算设备上实现调度器112,以使得可以使用并行处理和相关联的技术实现调度器112的操作。此外,虽然将至少ー个计算设备128示出为和服务器106A、106B、...106N分离,但是可以理解地是:可以在ー个或多个各种服务器或基础架构104的其它计算节点上、或使用一个或多个各种服务器或基础架构104的其它计算节点来实现调度器112。最后关于图1,虽然将调度器112示出和描述为包括各个独立的离散的部件,但是可以理解地是:可以使用两个或更多子部件来实现所示出的部件116-126中的任何一个的功能。相反地,可以理解地是,可以使用单个部件实现部件116-124的任何两个或更多个功能。因此,可以由本领域技术人员实现图1的系统100的许多可能变化,在下面关于图2A-8更详细地提供其中一些示例。首先參照图2A,将工作负荷202示出为提供给分布式系统204。如所示,工作负荷202包括作业206、208、210、212。每个作业包括任务,例如,作业206包括任务214、216、218。调度入口 220接受输入的作业提交请求,预处理作业206-212并且将它们分派到分布式系统204,即,节点222上。如从图1的以上说明可以清楚的,图2A的示例中的调度入口 220可以表示或包括图1的调度器112。如所示的,入口 220接受输入的作业、预处理或编译查询、并且将作业分派到计算节点222上。入口 220自身可以是分布式部件,但是为了说明目的,仅描述入口的调度职责,而不在这里详细地描述调度入口 220的内部实现的特定细节。为了不限制此处描述的示例,仅仅作为參考,作业包括多个任务。例如,查询/处理请求可以将其各独立语句下编译给物理操作员,所述语句诸如从日志读出、执行映射化简(map-reduce)运行、以及并且写至输出。假定每个作业的任务相对相同作业的其它任务形成有向无环图(DAG)。作业中的每个任务可以采取两种输入形式:(I)上游任务的输出和(2)从分布式计算系统外部读入的外部数据对象,诸如从外部SQL数据库读入的数据或从网络或FTP服务器读入的文件。对于(2),数据被本地地高速缓存并且可以由运行在相同的节点上的后续任务重新使用,但是对于初始取出而言遭受网络传输延迟。图2B示出具有形成DAG的任务226、228、230、232的示例作业224,其中任务228、230、232从以前的任务接收数据,并且任务226、228、232从网络234的外部数据对象236、238、240接收数据。该图形中的任务可以被配置为串行运行,但是只要保持DAG配置就可以运行复杂图形。任务输入和输出可以分支;例如,执行联合(join)运算的任务可以采用多个输入,而执行分割的任务可以产生多个输出。例如,不同的作业可以共享相同的任务;例如,用于执行复杂计算的存储过程可以由不同的作业重新使用。一旦任务被分配给计算节点,该节点就依序地运行任务,其中每个任务被给予该服务器上的最大的用户模式CPU利用率(与任何周期被给予操作系统和中间件部件无关)。到达入ロ的任务以FIFO次序排队,并且调度每次执行ー个工作负荷。也就是说,以周期间隔,当前在入口队列中的全部作业被调度运行,该方法允许调度器220执行将任务紧密排列(pack)到计算节点222上。在当前工作负荷正在运行时到达的作业将排队以用于调度器的下一周期迭代。因此,在图2A-2B的示例的上下文中操作的图1的系统可以被配置为不仅考虑作业/任务运行时间,而且考虑从客户端站点到由SaaS/IaaS提供商作为主机的运行平台的数据加载时间。此外,图1的系统100提供用于多个作业/任务的并行运行的资源级调度以便最大化计算平台的呑吐量。更进一歩,图1的系统100在作业级别考虑每个作业调度的竞争期限,并且系统100可以被用作系统级的调度工具,以及由IaaS提供商用来最大化它们的计算能力的使用。如图3A所示,并且如下所述,作业在服务器上的布置影响任务的运行并且,作为结果,影响整体的工作负荷。在图3A的示例实施例和此处描述的相关示例中,如所示的,假设同一作业304、312,328的全部任务306-310、314-324、330_338分别被分配给相同的服务器222a、222b,其中任务实例的配置必须符合有向无环图。针对需求使用高速缓存302、326来高速缓存外部数据对象并且该外部数据对象可以由多个任务重新使用。在替换示例中,图3B示出替换的运行模型,其中任务314-324、330-338何340-348 (而不是作业)是由调度器220分别分配给计算节点222a、222b、222c的工作単元,以使得任务运行继续符合DAG约束。这个运行模式对调度器220提供额外的自由度以权衡(leverage)更多并行性。具体地,例如,因为不加限制地布置任务,所以将存在ST个可能的布置(T个任务在S个服务器上)而不是S1个可能的布置(J个作业在S个服务器上)。除了作业仅包括一个任务的退化情况以外,如此处定义的,任务的数量T大于作业的数量J。在图3B的示例中,虚线指示在上游生产者和下游消费者之间的跨节点数据通信。同样在图3B中,特定的任务可能属于不同的作业,并且,同样,特定的任务无须与相应作业的其它任务位于相同的节点上。因此,图3B的运行模型对于调度允许更多灵活性并且对于并行性允许更多机会,但是运行时间编排(orchestration)的成本会更高。在上游生产者和下游消费者之间的依赖性变得更复杂;例如,因为节点是无共享的,所以来自生产者的任何结果都可能需要通过网络传送到驻留在(reside)不同节点上的消费者。在下述实例中此方法可能是优选的:例如,消费者采用多个输入的实例,以及消费者共同位于(co-location)另ー被高速缓存的数据对象或另ー上游生产者所位于的节点上可能超过跨节点通信的成本的实例。
因此,參照图1-图3B,调度入口 220(和/或112)的目标是以这种方式将任务布置到计算节点上:该布置优化ー些度量。如此处描述的示例,调度器220被描述为针对两个度量中的任ー个或者两个度量进行优化。具体地,第一度量是工作负荷完成时间(通常称作makespan)。调度器220试图总体上最小化工作负荷完成时间,其中完成时间定义为工作负荷中的最后作业完成的时间。第二度量是业务值(business value),基于在用户和基础架构所有者之间的商定的服务等级协议(SLA)将业务值分配给每个任务的完成。如以上提到的,SLA自身是公知的。为了描述的目的,假设从通用业务值度量方面定义所述协议,该通用业务值度量允许用户以清楚的方式优先处理他们的作业的调度偏好。每一作业度量可以通过相应的常量来书写,例如,(Dwallclock(运行时间)软期限;
(ii)wallclock硬期限;(iii)正业务值a (例如,如果任务在期限之前完成);(iv)负业务值P (例如,如果任务在软期限吋/之后以及硬期限之前完成);以及(V)负业务值(例如,如果任务在硬期限时/之后完成)。例如,通过 对a设置大的正值并且对Y设置大的负值,用户可以进行定义:应该将高调度偏好给予该作业。例如,依靠图1的系统100的评价模块118和其它特征与函数,示出的调度设计可以被配置为针对工作负荷完成时间或业务值来进行优化。为了一致性起见,本描述通过找到在任一种情况下的最小值来进行优化,尽管从严格意义上来说,业务值度量导致越高数值的业务值越有益,因此在示例中可以将业务值的取非值最小化。可以使用其它优化度量。例如,可以使用makespan和业务值的加权结果的组合。这种组合可以提供加权的系数,用户或提供商可以改变该加权的系数以适合他们的需要。用于给节点222分配作业/任务的解决方案空间包含以下情况,例如,其中相同作业的任务可以共同位于在相同的服务器或布置在分离的服务器上。在前一种情况下,数据可以从ー个任务直接传送到下一任务,或者直接通过存储器或通过中间文件传送到下一任务。在后一种情况中,数据必须通过网络在任务之间传送,在大多数情况下,这较慢,但是在任务的DAG结构内允许任务并行运行。在给出的描述中,假定第一情况,其中作业的全部任务必须一起布置在相同的服务器上(例如,图3A的示例)。图3A示出作业布置对任务的运行的影响。因为在图3A的示例中相同作业的全部任务必须被分配给相同的服务器,所以不可能存在挂起(dangling)的任务,该挂起任务等待未能布置到相同的计算节点上的不存在的上游任务。另外,如先前提到的,作为DAG配置的部分运行的、用于给定作业的任务可以在相同的作业或其它作业中重新使用。此外,还如图3A中示出的,可以分配任务以便任务与它们消耗的数据共同定位。如还描述的,每个任务可以从上游源读数据并且可以下载外部数据对象;在两种情况中,如果任务由多个作业重新使用(或在相同的作业中重新使用但是作为不同的任务实例),则让产生和消耗任务与外部数据对象以及读取它们的任务共同定位是有好处的。等式1-6表示具有最小化makespan的目标的公式的示例,并且可以被用于检查调度器220的决定如何影响这个值。例如,令Ps是来自服务器组S的服务器s的运行时间。makespan被定义为最长的服务器完成时间,如等式I所示:
权利要求
1.种计算机系统,包括记录在计算机可读介质上并可由至少ー个处理器运行的指令,所述系统包括: 调度器,被配置为使得处理器接收用于调度其在多个计算节点上的运行的多个作业; 评价模块,被配置为使得处理器为多个调度算法的每ー个提供公共接ロ; 算法选择器,被配置为使得处理器将评价模块与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的ー个与每个作业类型关联;以及 作业比较器,被配置为使得处理器将用于调度的当前作业相对于基准数据进行比较,以确定当前作业的当前作业类型, 其中,所述评价模块还被配置为基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。
2.权利要求1所述的系统,其中所述多个调度算法包括遗传算法。
3.权利要求1所述的系统,其中所述多个调度算法包括贪心算法。
4.权利要求1所述的系统,其中所述多个调度算法包括模拟退火算法。
5.权利要求1所述的系统,其中所述多个调度算法包括爬山算法。
6.权利要求1所述的系统,其中所述评价模块被配置为:以包括最小化与多个作业的完成有关的makespan的方式,在多个计算节点上调度多个作业。
7.权利要求1所述的系统,其中所述评价模块被配置为:以包括最大化多个计算节点的利用的方式,在多个计算节点上调度多个作业。
8.权利要求1所述的系统,其中,所述算法选择器被配置为:将作业的代表性工作负荷与所述评价模块以及多个算法一起使用,以构造基准数据。
9.权利要求8所述的系统,其中所述基准数据包括与根据调度所执行的计算操作相关的性能数据,利用调度算法中的每ー个算法以及代表性工作负荷来实施所述调度。
10.权利要求1所述的系统,其中所述多个作业的每个作业包括多个排序的任务,并且其中所述排序的任务中的至少ー些任务从在前面的排序的任务和/或从在排序的任务外部的外部数据源接收数据。
11.权利要求1所述的系统,其中所述作业比较器被配置为基于当前作业的作业名称来进行比较。
12.权利要求1所述的系统,还包括任务调度器,该任务调度器被配置为:当在选择的计算节点上调度当前作业之后,使得所述至少ー个处理器实施多个算法中的捜索算法以在选择的计算节点上调度当前作业的单独任务。
13.权利要求12所述的系统,其中所述任务调度器被配置为以如下方式调度单独任务,包括:调度将在其中调度任务的离散时间单元,所述离散时间单元包括与由等待任务数据的网络交付而引起的延迟相关联的时间间隙。
14.权利要求12所述的系统,其中所述任务调度器被配置为实施捜索算法,包括:实施遗传算法、贪心算法、模拟退火算法和/或爬山算法中的ー个或多个。
15.种计算机实施的方法,包括: 接收用于调度其在多个计算节点上的运行的多个作业; 提供用于多个调度算法中的每ー个的公共接ロ; 将公共接ロ与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的一个与每个作业类型关联; 相对于基准数据比较用于调度的当前作业,以确定当前作业的当前作业类型;以及 基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。
16.权利要求14所述的方法,其中所述多个调度算法包括遗传算法、贪心算法、模拟退火算法和/或爬山算法中的三个或三个以上。
17.权利要求15所述的方法,包括:将作业的代表性工作负荷与公共接ロ以及多个算法一起使用以构造基准数据。
18.权利要求17所述的方法,其中所述基准数据包括与根据调度所执行的计算操作相关的性能数据,利用调度算法中的每ー个算法以及代表性工作负荷来实施所述调度。
19.种计算机程序产品,所述计算机程序产品有形地实现在计算机可读介质上并且包括在执行时被如下配置的指令: 接收用于调度其在多个计算节点上的运行的多个作业; 提供用于多个调度算法中的每ー个的公共接ロ; 将公共接ロ与用于多个变化类型的作业的基准数据一起利用,以将多个调度算法的一个与每个作业类型关联; 相对于基准数据比较用于调度的当前作业,以确定当前作业的当前作业类型;以及 基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。
20.权利要求19所述的计 算机程序产品,其中当被执行时所述指令还被配置为:当在选择的计算节点上调度当前作业之后,实施多个算法中的捜索算法以在选择的计算节点上调度当前作业的单独任务。
21.权利要求20所述的计算机程序产品,其中在离散时间单元内调度所述单独任务,所述离散时间单元包括与由等待任务数据的网络交付而引起的延迟相关联的时间间隙。
全文摘要
一个调度器可以接收用于调度其在多个计算节点上的运行的多个作业。评价模块可以为多个调度算法的每一个提供公共接口。算法选择器可以将评价模块与用于多个变化类型的作业的基准数据一起利用,以将所述多个调度算法中的一个与每个作业类型关联。作业比较器可以将用于调度的当前作业相对于基准数据进行比较,以确定当前作业的当前作业类型。所述评价模块还可以基于当前作业类型和关联的调度算法来调度当前作业在多个计算节点上运行。
文档编号G06F9/46GK103092683SQ20111034763
公开日2013年5月8日 申请日期2011年11月7日 优先权日2011年11月7日
发明者黎文宪, T.范 申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1