任务调度和资源发放系统和方法与流程

文档序号:16363730发布日期:2018-12-22 08:18阅读:167来源:国知局
任务调度和资源发放系统和方法与流程

本发明涉及任务调度和资源发放的领域,尤其涉及用于提供任务调度的计算系统和方法。

本发明进一步提供用于管理任务调度和资源发放的计算系统和方法。

所述系统和方法均可以独立地应用,也可彼此组合。

背景技术

任务调度和资源发放是在计算机科学领域内的各领域之中广泛采用的技术。任务调度指定对处理计算任务的资源分配计算任务的方法。计算任务可以是例如待由处理器计算的线程、流程或数据流等基本计算单元。相对于资源发放,调度计算任务可以涉及准备本地或分布式资源以便为用户提供服务,例如,在分布至数据中心中的计算节点集群的虚拟环境中建立虚拟机(virtualmachine,vm),或对分布式计算集群执行计算。

待调度的任务可以通过任务调度或资源发放系统借助于任务队列来处理。任务调度和资源发放系统处理任务队列并输出任务调度,所述任务调度包含关于为任务分配的资源的数量和种类的信息,并且还可包含将访问资源的顺序。

资源可以是硬件资源,例如中央处理单元(centralprocessingunits,cpu)、系统存储器(ram、rom)、系统存储装置(硬盘驱动器、闪存存储装置、数据库、物理或虚拟存储介质)、图形处理单元(graphicsprocessingunit,gpu)、输入和输出(inputandoutput,io)设备、网络设备(用于访问和使用lan或wan等物理或虚拟网络的设备)、加密模块(例如,可信平台模块(trustedplatformmodule,tpm))、数字信号处理器(digitalsignalprocessor,dsp)、现场可编程门阵列(fieldprogrammablegatearray,fpga)、共处理器、网络数据包处理加速器(例如,采用随着数据包或信息移动通过网络组件而应用于所述数据包或信息的算法的处理单元)或扩展卡。当然,这些资源还可以是虚拟的,并且例如是一个或多个虚拟机(virtualmachine,vm)的一部分。

此外,资源可以通过单个计算单元以及通过位于一个数据中心或分布于借助计算机网络连接的两个或更多个数据中心的多个计算单元提供。数据中心可以提供x86、arm、powerpc或sparc等cpu系统架构的处理单元。还可以提供虚拟方式以允许计算操作从物理硬件资源解耦。

虽然调度器系统对于任务处理很重要,但是已知方法具有以下缺点:

例如,图1示出根据现有技术的调度器的示意图概述。所述系统包括调度器、资源信息数据库(database,db)和多个代理,其中每个代理在一个节点上运行。节点可以视为单个计算单元。节点可以是物理计算单元或虚拟计算单元。代理收集关于其运行于之上的节点的资源信息并将所收集的资源信息存储在资源信息存储单元或资源信息存储器中。调度请求在请求队列中列队,通过使用资源信息存储单元中存储的资源信息以及输出为任务调度的调度结果而进行处理。

现有技术的任务调度器仅用于支持同构硬件资源。它们在产生任务调度过程中并未调整用于从不同架构的资源收集资源相关信息以及用于评估和比较与不同架构类型的资源相关的资源信息。另外,根据现有技术的任务调度器仅仅收集不能对在同构或异构环境中产生有效任务调度提供坚实基础的资源相关信息。其不能够配置在运行时间如何收集资源相关信息。如何收集资源相关信息是在调度器中硬编码的。

现有解决方案在收集资源相关信息时不能捕捉节点的硬件配置变更。目前的任务调度器也不能提供方法来以重新调度任务或重新分配资源必需的粒度监控任务的运行信息或分配给任务的资源的工作量以便优化当前或未来任务调度。

同样,当应处理对产生任务调度的调度请求时,现有任务调度器仅能够考虑对于资源的显式任务要求,例如,所需的cpu功率或存储器量。不可能检测调度请求隐含需要的硬件资源,并且针对每个调度请求重新产生任务调度。

以下文件中论述了现有技术的其它方法:

b.hindman等人的文档“mesos:数据中心中的细粒度资源共享平台(mesos:aplatformforfine-grainedresourcesharinginthedatacenter)”(2011年,有关网络化系统设计和实施(nsdi'11)的第8次usenix会议的会议记录,usenix协会,美国加利福尼亚州伯克利市,295-308)描述了用于在多个集群计算构架之间共享计算集群的平台以改进计算集群的利用以及避免数据复制。

m.schwarzkopf等人在“omega:用于大计算集群的灵活、可扩展调度器(omega:flexible,scalableschedulersforlargecomputeclusters)”(2013年,有关计算机系统的第8次acm欧洲会议(eurosys'13)的会议记录,美国纽约州纽约市acm,351-364)中描述了使用共享状态和无锁乐观并发控制来改进调度器对计算集群的访问的新调度器架构。

因此,本发明呈现改进任务调度和资源发放的解决方案。具体来说,提供根据独立权利要求的用于提供任务调度的计算系统和方法。其它方面和实施例隶属于从属权利要求。



技术实现要素:

根据第一方面,本发明提供一种用于提供任务调度的计算系统,其包括代理管理器、用于存储资源和/或任务信息的调度信息数据库、至少一个可配置代理,以及调度单元,其中代理管理器用于基于代理管理器接收到的配置信息向至少一个可配置代理提交配置指令,其中至少一个可配置代理用于基于所述配置指令监控所述计算系统中使用的资源和/或执行的任务,并将资源信息和/或任务信息存储在所述调度信息数据库中,其中,所述资源信息来源于被监控的所述资源,所述任务信息来源于被监控的所述任务,并且其中调度单元用于基于调度信息数据库中存储的资源和/或任务信息产生并输出任务调度。

根据第一方面的第一实施方案,计算系统可以包括至少一个计算节点。所述至少一个计算节点可以用于执行至少一个可配置代理。

根据第一方面的第二实施方案,计算系统可以进一步包括多个计算节点,每个计算节点可以用于执行至少一个可配置代理,和/或其中计算节点可以是异构节点,即计算节点的配置可以不同。

根据第一方面的第三实施方案,可配置代理可以用于监控在对应的计算节点上使用的资源和/或执行的任务。

根据第一方面的第四实施方案,至少一个计算节点可以用于执行超过一个可配置代理。

根据第一方面的第五实施方案,代理管理器可以用于通过从文件和/或数据库读取配置信息来接收配置信息。

根据第一方面的第六实施方案,至少一个可配置代理可以用于基于配置信息调整监控任务和/或资源的粒度或详细等级。

根据第一方面的第七实施方案,至少一个可配置代理可以用于通过将资源和/或任务信息存储在调度信息数据库中来更新调度信息数据库中所存储的调度信息数据。

根据第一方面的第八实施方案,至少一个可配置代理可以用于周期性地更新调度信息数据库。

根据第一方面的第九实施方案,至少代理管理器可以用于检测配置信息的变更,和/或可以用于基于变更的配置信息而变更发送到至少一个可配置代理的配置指令。

根据第一方面的第十实施方案,调度单元可以用于在接收到调度请求后即刻创建任务调度。

根据第一方面的第十一实施方案,调度单元可以用于访问预创建调度的调度数据库,并且在调度数据库中未找到合适的调度的情况下创建调度,否则输出调度数据库中存储的调度。

根据第一方面的第十二实施方案,所述资源信息和/或所述任务信息包括以下几组信息中的至少一组:已经和/或目前运行的任务中的至少一个的信息、运行信息和工作量信息;关于至节点的地理距离和/或网络距离的信息、能耗/功耗信息、节点和/或计算系统架构信息和硬件配置信息;关于处理能力的信息、存储器容量信息和存储容量信息;关于可用设备的信息、温度信息、虚拟机监控器信息、当前和先前执行的任务的经验运行信息和资源消耗信息。

根据第二方面,本发明提供一种用于在计算系统中提供任务调度的方法,所述方法包括以下步骤:

通过代理管理器接收配置信息并且基于接收到的配置信息向至少一个可配置代理提交配置指令,

通过至少一个可配置代理基于所述配置指令监控计算系统中使用的资源和/或执行的任务,并将资源信息和/或任务信息存储在调度信息数据库中,其中,资源信息来源于被监控的所述资源,任务信息来源于被监控的所述任务,以及

通过调度单元基于调度信息数据库中存储的资源信息和/或任务信息产生并输出任务调度。

根据第二方面的第一实施方案,计算系统可以包括至少一个计算节点,并且其中所述至少一个计算节点可以执行至少一个可配置代理。

根据第二方面的第二实施方案,计算系统可以进一步包括多个计算节点,每个计算节点可以执行至少一个可配置代理,和/或其中多个计算节点可以是异构节点,即计算节点的配置可以不同。

根据第二方面的第三实施方案,可配置代理可以监控在对应的计算节点上使用的资源和/或执行的任务。

根据第二方面的第四实施方案,至少一个计算节点可以执行超过一个可配置代理。

根据第二方面的第五实施方案,代理管理器可以通过从文件和/或数据库读取配置信息来接收配置信息。

根据第二方面的第六实施方案,至少一个可配置代理可以基于配置信息调整监控任务和/或资源的粒度或详细等级。

根据第二方面的第七实施方案,至少一个可配置代理可以通过将资源信息和/或任务信息存储在调度信息数据库中来更新调度信息数据库中所存储的调度信息数据。

根据第二方面的第八实施方案,至少一个可配置代理可以周期性地更新调度信息数据库。

根据第二方面的第九实施方案,至少代理管理器可以检测配置信息的变更,和/或可以基于变更的配置信息而变更发送到至少一个可配置代理的配置指令。

根据第二方面的第十实施方案,调度单元可以在接收到调度请求后即刻创建任务调度。

根据第二方面的第十一实施方案,调度单元可以访问预创建任务调度的调度数据库,并且在调度数据库中未找到合适的任务调度的情况下创建调度,否则输出调度数据库中存储的任务调度。

根据第二方面的第十二实施方案,所述资源信息和/或所述任务信息包括以下几组信息中的至少一组:已经和/或目前运行的任务中的至少一个的信息、运行信息和工作量信息;关于至节点的地理距离和/或网络距离的信息、能耗/功耗信息、节点和/或计算系统架构信息和硬件配置信息;关于处理能力的信息、存储器容量信息和存储容量信息;关于可用设备的信息、温度信息、虚拟机监控器信息、当前和先前执行的任务的经验运行信息和资源消耗信息。

根据第三方面,本发明提供一种存储介质,其存储指令,所述指令当在计算系统上执行时实施根据第二方面的方法。

根据第四方面,本发明提供一种用于管理任务调度和资源发放的计算系统,所述计算系统包括:

调度单元,其用于接收用于调度任务和/或发放资源的请求,

查询创建单元,其用于提取在接收到的该请求中界定的显式调度约束,和/或推导与该请求相关联的推测调度约束,所述查询创建单元进一步用于基于显式调度约束和/或推测调度约束产生查询,以及

约束解算单元,其用于基于调度信息数据库中的调度信息解算产生的查询中的约束,并进一步用于识别一组可用于基于产生的查询和/或调度信息执行请求的资源,

调度单元用于基于识别的一组资源调度至少一个任务。

根据第四方面的第一实施方案,计算系统可以进一步包括存储预创建任务调度的调度数据库,其中约束解算单元可以进一步用于基于接收到的请求从调度数据库提取至少一个预创建任务调度。

根据第四方面的第二实施方案,约束解算单元可以用于在没有预创建任务调度对应于接收到的请求的情况下将对接收到的请求的至少一个任务调度存储在调度数据库中。

根据第四方面的第三实施方案,查询创建单元可以用于通过分析接收到的请求的语义推导推测调度约束。

根据第四方面的第四实施方案,查询创建单元可以进一步用于识别接收到的请求的类型并基于接收到的请求的类型推导推测调度约束。

根据第四方面的第五实施方案,约束解算单元可以进一步用于将请求的类型和对应的调度信息存储在调度信息数据库中。

根据第四方面的第六实施方案,计算系统可以进一步包括根据第一方面或根据第一方面的第一实施方案至第一方面的第十二实施方案中的任一个的用于提供任务调度的计算系统。

根据第五方面,本发明提供一种用于管理计算系统中的任务调度和资源发放的方法,所述方法包括以下步骤:

通过调度单元接收对调度任务和/或发放资源的请求,

通过查询创建单元提取在该请求中界定的显式调度约束,和/或通过查询创建单元推导与该请求相关联的推测调度约束,

通过查询创建单元基于显式调度约束和/或推测调度约束产生查询,

通过约束解算单元基于调度信息数据库中的调度信息解算产生的查询中的约束,

通过约束解算单元识别一组可用于基于产生的查询和/或调度信息执行请求的资源,并且通过调度单元基于识别的一组资源调度至少一个任务。

根据第五方面的第一实施方案,约束解算单元可以基于接收到的请求从存储预创建任务调度的调度数据库提取至少一个预创建任务调度。

根据第五方面的第二实施方案,约束解算单元可以在没有预创建任务调度对应于接收到的请求的情况下将对接收到的请求的至少一个任务调度存储在调度数据库中。

根据第五方面的第三实施方案,查询创建单元可以通过分析接收到的请求的语义推导推测调度约束。

根据第五方面的第四实施方案,查询创建单元可以识别接收到的请求的类型并基于接收到的请求的类型推导推测调度约束。

根据第五方面的第五实施方案,约束解算单元可以将请求的类型和对应的调度信息存储在调度信息数据库中。

根据第五方面的第六实施方案,所述方法可以进一步包括根据第二方面或根据第二方面的第一实施方案至第二方面的第十二实施方案中的任一个的用于在计算系统中提供任务调度的方法的步骤。

根据第六方面,本发明提供一种存储介质,其存储指令,所述指令当在计算系统上执行时实施根据第五方面的方法。

根据第七方面,本发明提供一种用于提供任务调度以及管理任务调度和资源发放的计算系统,其包括代理管理器、用于存储资源和/或任务信息的调度信息数据库、至少一个可配置代理,以及调度单元,

其中调度单元用于接收对调度任务和/或发放资源的请求,

其中代理管理器用于基于代理管理器接收到的配置信息向至少一个可配置代理提交配置指令,其中至少一个可配置代理用于基于所述配置指令监控所述计算系统中使用的资源和/或执行的任务,并将资源信息和/或任务信息存储在所述调度信息数据库中,其中,所述资源信息来源于被监控的所述资源,所述任务信息来源于被监控的所述任务,

查询创建单元,其用于提取接收到的请求中的显式调度约束,和/或推导与该请求相关联的推测调度约束,

所述查询创建单元进一步用于基于显式调度约束和/或推测调度约束产生查询,

约束解算单元,其用于基于调度信息数据库中的调度信息解算产生的查询中的约束,并进一步用于识别一组可用于基于产生的查询和/或调度信息执行请求的资源,其中

调度单元用于基于识别的一组资源调度至少一个任务,并基于调度信息数据库中存储的资源和/或任务信息产生并输出任务调度。

根据第八方面,本发明提供一种用于在计算系统中提供任务调度以及管理任务调度和资源发放的方法,所述方法包括以下步骤:

通过调度单元接收用于调度任务和/或发放资源的请求,

通过代理管理器接收配置信息并且基于接收到的配置信息向至少一个可配置代理提交配置指令,

通过至少一个可配置代理,基于所述配置指令监控所述计算系统中使用的资源和/或执行的任务,并将资源信息和/或任务信息存储在所述调度信息数据库中,其中,所述资源信息来源于被监控的所述资源,所述任务信息来源于被监控的所述任务,

通过查询创建单元提取在接收到的请求中界定的显式调度约束,和/或通过查询创建单元推导与接收到的请求相关联的推测调度约束,通过查询创建单元基于显式调度约束和/或推测调度约束产生查询,

通过约束解算单元基于调度信息数据库中的调度信息解算产生的查询中的约束,

通过约束解算单元识别一组可用于基于产生的查询和/或调度信息执行请求的资源,通过调度单元基于识别的一组资源调度至少一个任务,并通过调度单元基于调度信息数据库中存储的资源信息和/或任务信息产生并输出任务调度。

根据第九方面,本发明提供一种存储介质,其存储指令,所述指令当在计算系统上执行时实施根据第八方面的方法。

附图说明

现还将参考附图论述本发明的上述方面和实施例:

图1示出根据现有技术的任务调度和资源发放系统的示意图概述。

图2示出本发明的第一方面的示意图概述。

图3示出本发明的第一方面的更详细示意图概述。

图4示出本发明的第二方面的示意图概述。

图5示出根据本发明的第二方面的查询创建单元的示意图概述。

图6示意性地示出根据本发明的第二方面的若干实体的互动。

图7示出本发明的第三方面的示意图概述。

图8示意性地示出根据本发明的第三方面的若干实体的互动。

具体实施方式

一般而言,必须注意的是在本申请案中描述的所有布置、设备、模块、组件、型号、元件、单元和构件等可以通过软件或硬件元件或其任何种类的组合实施。通过本申请案中所描述的各种实体执行的所有步骤以及描述成将通过各种实体执行的功能意指相应实体适用于或用于执行相应步骤和功能性。即使在以下对具体实施例的描述中,将由一般实体执行的具体功能或步骤并未在执行所述具体步骤或功能的实体的具体详述元件的描述中反映,所述领域的技术人员也应该清楚,这些方法和功能可以用相应硬件或软件元件或其任何种类的组合实施。另外,在各个所描述装置元件的功能中实施本发明的方法以及其各个步骤。

所呈现的解决方案主要以上文概述的问题为重点,并且提出改进的任务调度和资源发放系统和方法。

为了解决现有技术的所论述问题,提供一种计算系统和一种方法以收集最佳任务调度所需的信息并改进资源发放。具体来说,提供一种收集资源信息和任务信息并灵活配置其粒度的方法。进一步提供一种监控异构硬件资源的方法。

另外,提供一种计算系统和方法,允许从调度请求提取隐含和显式资源请求,并且基于调度请求中的显式请求以及基于调度信息从调度请求提取的隐含请求提供任务调度。

在图2中,示出根据本发明的第一实施例的计算系统100的示意图概述。计算系统100包括代理管理器101、调度信息数据库102、至少一个可配置代理103和调度单元104。计算系统100通常允许通过调度单元104基于调度信息数据库102中存储的资源和/或任务信息产生和输出任务调度106。代理管理器101可以借助于供应到代理管理器101的配置信息105来配置。这在图2中通过连接配置信息105与代理管理器101的箭头指示。

通过至少一个可配置代理103收集资源和/或任务信息。在图2中,示例性地示出三个可配置代理,当然,本发明并不限于三个可配置代理。

代理管理器101评估供应的配置信息105。代理管理器101根据配置信息105来确定是否需要对至少一个可配置代理103进行配置变更。如果需要对至少一个可配置代理103进行配置变更,代理管理器101向至少一个可配置代理103发送相应配置指令。接着,至少一个可配置代理103基于配置指令更新其配置。

接着,至少一个可配置代理103取决于从代理管理器101接收到的配置和/或配置指令监控计算系统100中使用的资源和/或执行的任务。这在图2中通过代理管理器101与可配置代理之间的箭头指示。至少一个可配置代理103收集关于监控资源和/或任务的资源信息和/或任务信息,并将这些信息存储在调度信息数据库102中(如通过连接可配置代理与调度信息数据库102的箭头所示)。例如,至少一个可配置代理103可以向调度信息数据库102发送存储资源信息和/或任务信息的查询。

至少一个可配置代理103可以用于根据请求或周期性地,即以预定时间间隔,将资源信息和/或任务信息存储在调度信息数据库102中。因此,关于计算系统100中所使用的资源和正执行的任务的信息被不断更新并可用作用于调度其它任务的基础。

为了对调度信息数据库102中的信息进行高效更新,仅增量信息可以从至少一个可配置代理103传输到调度信息数据库102。信息数据库102可以基于从至少一个可配置代理103接收到的资源信息和/或任务信息存储并更新资源信息和/或任务信息的离散值。信息数据库102还可以随时间推移而存储并更新资源信息和/或任务信息的值的展开,从而具体来说允许比较和评估先前存储的资源信息和/或任务信息以通过例如调度单元104改进未来的调度产生。

如上所述,代理管理器101基于配置信息105向至少一个可配置代理103提交配置指令。配置信息105可以通过数据库(例如sql数据库、键值存储、nosql数据库等)或简单地一个或多个文本文件(例如,呈json格式)提供。根据配置信息105,可以调整监控资源和任务的粒度和详细等级。因此,可以调整监控,一方面提供充足信息来改进任务调度和资源发放,另一方面避免收集太多信息从而改进计算系统100的总体性能。

配置信息105可以通过用户输入产生,但是也可选自预定义配置信息105。可以取决于应监控的硬件资源自动地选择配置信息105。代理管理器101不仅能够向至少一个可配置代理103提交配置指令,而且还可以从至少一个可配置代理103接收信息。因此,代理管理器101可以被通知由至少一个可配置代理103监控的资源的配置变更从而在其评估中考虑这些变更。还可以取决于例如形成现有硬件架构和配置而自动地选择配置信息105。

此外,取决于可用资源、数据中心设置或所采用的架构,代理管理器101可以选择合适的配置信息105。代理管理器101还可以周期性地检查配置信息105以检测配置信息变更并且可以相应地更新至少一个可配置代理103的配置。这尤其可能用于代理管理器101检测计算系统100中的配置变更,所述配置变更通过至少一个可配置代理103传送到代理管理器101。因此,通过向至少一个可配置代理103发送用于计算系统100的变更配置的配置指令,代理管理器101可以对计算系统100的变更配置做出反应。

在计算系统100中,调度信息数据库102充当用于收集资源信息和/或任务信息的数据库。调度信息数据库102可以是数据库(例如sql数据库、键值存储、nosql数据库等)或简单地是一个或多个文本文件(例如,json格式文件)。

调度单元104使用调度信息数据库102中存储的信息来产生任务调度106,并且还能够创建和更新将存储在调度信息数据库102中的信息,例如与先前创建的调度相关的信息,以改进未来任务的调度。这在图2中通过连接调度单元104与调度信息数据库102的双头箭头进行说明。

现在鉴于图3提供计算系统100的更详细描述。计算系统100可进一步包括至少一个计算节点107,但通常是多个计算节点。每个计算节点107可以执行至少一个可配置代理103。在图3中,这通过布置在表示计算节点107的方框内的可配置代理103示出。虽然在图3中示出了三个计算节点,但应再次注意,本发明不限于此数量,并且在计算系统100中还可以存在更多或更少计算节点。计算节点可以是异构节点,即其配置可以不同。例如,每个计算节点107可以配备有不同硬件资源(例如,不同cpu和/或gpu架构、存储器、存储装置等)。计算节点可以例如是单核节点以及多核节点。关于其一般系统架构,计算节点还可以不同。还可能在相同计算系统100中混合物理和虚拟计算节点(即虚拟机)。然而,计算节点在架构和/或配置上也可以是同构的。

至少一个可配置代理103可以监控在至少一个计算节点107上使用的资源和/或执行的任务。至少一个可配置代理103可以在上述计算节点107(例如,具有不同硬件配置、硬件架构的计算节点,或物理计算节点以及虚拟计算节点)中的每个上执行,并且可配置代理103可以将与相应计算节点107相关的资源信息和/或任务信息存储在调度信息数据库102中并进行更新。因此,调度单元104可以使用从计算节点107收集的资源信息和/或任务信息,从而为异构数据中心中的目前调度请求108提供优化任务调度106。能够在计算节点107上执行超过一个可配置代理103允许例如出于安全或性能目的而通过不同的可配置代理103收集不同的信息。例如,有可能在计算节点107上执行一个可配置代理103以仅通过监控计算节点107上使用的资源来收集资源信息,并且同时在相同计算节点107上执行第二可配置代理103以仅仅通过监控计算节点107上执行的任务来收集任务信息。在另一实例中,有可能通过相同计算节点107上执行的两个或更多可配置代理分别监控在相同计算节点107上运行的两个或更多vm。计算系统100还可以包括不执行可配置代理103的计算节点。

如图3所示,调度单元104可以在接收到调度请求108后即刻创建任务调度106。调度请求108可以具有由调度单元104依次处理的队列。由调度单元104创建的任务调度106一旦由调度单元104创建就可以直接影响计算节点107的处理。可以例如通过对计算节点107分配调度计算任务而根据任务调度106变更计算节点的处理。在另一实例中,任务调度106可以包含关于调度任务将在计算系统100的哪个部分中执行(例如,通过哪个计算节点107或计算节点107的哪个cpu核心或gpu核心执行)的信息。待执行的任务还可以是建立或初始化和/或开始虚拟机的任务。

计算系统100可以另外包括调度数据库109。调度数据库109同样可以是数据库(例如sql数据库、键值存储、nosql数据库等)或简单地是一个或多个文本文件(例如,json格式文件)。调度数据库109可以存储任务调度,具体来说,有关例如调度请求108的任务调度106(通过连接调度单元104与调度数据库109的双头箭头指示)。为了提高总体系统性能,调度单元104可以访问调度数据库109,并且当处理调度请求108以相应地产生任务调度106时从调度数据库109中存储的预创建任务调度进行选择。在调度数据库109中未找到合适的预创建任务调度的情况下,调度单元104可以将最新创建的任务调度106存储在调度数据库109中。调度单元104还可以更新调度数据库109中的存储的预创建调度。

请注意,调度信息数据库102、配置信息105和调度数据库109可以至少部分地通过一个数据存储提供。有可能通过一个数据库(例如sql数据库、键值存储、nosql数据库等)或从简单地一个或多个文本文件(例如,json格式文件)提供调度信息数据库102、配置信息105和调度数据库109中的全部或至少两个。

为了优化任务调度和资源发放,可以提高监控的资源信息和任务信息的粒度和详细等级。资源信息和任务信息可以包括关于计算系统100中已经和/或当前运行的任务的信息、运行信息和工作量信息。此信息可以有助于根据评估(例如,先前和目前运行信息的经验评估)改进对未来任务的调度,重新调度目前运行的任务(例如,以对修改的系统负载或配置做出反应),和/或改进计算系统100中目前运行的任务的总体计算时间。资源和/或任务信息还可以包含关于计算节点107之间的地理距离或网络距离的信息。例如当必须在数据中心中的特定位置中调度紧急任务(例如,以遵守定律或遵从性策略)时,而且例如当计算节点之间的网络流量高且不应在太多网络节点上转发时,此类信息是有利的。例如,可以设置数量,以界定可以在多少链路(连接计算节点和/或数据中心的网络连接)和/或网络节点上分布调度任务。

为了确定计算节点107的地理位置,计算节点107可进一步包括位置确定模块,例如,全球定位系统(globalpositioningsystem,gps)或通过无线单元(例如,通过三角测量技术)检测计算节点107的位置的构件。资源和/或任务信息还可以包含关于能耗和功耗的信息。当调度任务以例如优化数据中心的总体能耗时评估此类信息可为有利。为了确定计算节点107的能态和功耗,计算节点107可进一步包括能态和功耗确定模块。

资源和/或任务信息还可以包含节点和/或计算系统架构信息、硬件配置信息、关于处理能力的信息、存储器容量信息、存储装置容量信息,以及关于可用设备的信息。当调度任务以提高总体系统性能时适合考虑此类信息。

资源和/或任务信息还可以包括温度信息。相对于温度信息调度任务具有可以通过使用具有低系统温度的计算节点107执行任务而避免计算节点或计算系统100中断或损坏的优点。

资源和/或任务信息还可以包括虚拟机监控器信息。当调度任务时评估虚拟机监控器信息是有利的,因为当例如任务要求设置新虚拟机或变更计算系统100中运行的虚拟机的配置时可以考虑计算系统100中运行的虚拟机和虚拟机监控器的配置和系统状态。

资源和/或任务信息还可以包括当前或先前执行的任务的经验运行信息或资源消耗信息。使用此类信息允许在调度新任务时考虑关于先前任务的经验信息,例如以通过评估先前执行过的相同任务的资源消耗而避免新任务低的总体性能。

在图4中,示出根据本发明的第二实施例的用于管理任务调度和资源发放的第二计算系统200的示意图概述。可以基本上对应于计算系统200的第二计算系统200包括调度单元204、查询创建单元210、约束解算单元211和调度信息数据库202以及其它组件。类似于计算系统100的组件的第二计算系统200的组件通过类似参考标号指代。

调度单元204可以接收对调度任务和/或发放资源的调度请求208,如通过连接调度请求208与调度单元204的箭头指示。调度单元204、查询创建单元210、约束解算单元211和调度信息数据库202通常可以通信以交换信息。这在图4中通过查询创建单元210和约束解算单元211布置在调度单元204内并用箭头相连接指示,并且通过调度单元204用双头箭头与调度信息数据库202相连接来指示。

当调度单元204接收到对调度任务和/或发放资源的调度请求208时,调度单元204可以基于可用于执行请求的识别的一组资源调度至少一个任务206。通过调度单元204中的查询创建单元210和约束解算单元211确定所述组资源。

当在调度单元204中处理接收到的请求208时,调度请求208首先被传递到查询创建单元210。调度请求208可以例如包含关于存储器、cpu功率、gpu功率、系统存储器、系统存储装置、系统架构的所需量的信息,以及关于任务的压缩、加密和共调度的信息。

根据此信息,查询创建单元210可以提取接收到的调度请求208中界定的显式调度约束,并且还推导与接收到的请求208相关联的推测调度约束。

显式调度约束可以例如是硬件资源要求,例如cpu功率、系统存储器、系统存储装置的量,或关于输入和输出设备的要求,例如将根据调度请求208调度的任务所需的网络设备等。

可以由查询创建单元210通过分析接收到的请求208的语义和/或特征来推导推测调度约束。查询创建单元210可以识别接收到的请求208的类型并且基于接收到的请求208的类型推导推测调度约束。接收到的请求208的语义和/或特征和/或类型可以包含关于调度所述请求的用户或客户端的信息;从其接收到调度请求208的源;或调度请求208是否涉及音频处理、视频处理、图片处理、文本处理、内容的串流传输;或所述信息是否与安全性、能量感知或硬件加速相关。

在与计算节点107,即台式计算机相关的实例中,查询创建单元210可以在用户使用网络浏览器上网时推导推测调度约束。用户可以打开包含通过媒体展示器播放的媒体内容的网站,媒体展示器例如是播放视频内容的媒体播放器。可以使用此信息推导推测调度约束。在此实例中,推测调度约束可以是:视频播放器可能需要gpu功率,即使这在调度请求208中并未指定。推测调度约束可以用于基于根据调度请求208隐含地产生的调度要求为任务调度资源。在所述实例的情况下,计算节点107可以具有额外gpu功率以处理播放视频内容的任务。

在与计算节点107相关的另一实例中,用户可以打开网站以使用在线银行或电子商务应用程序。根据关于用户所打开的网站的信息,调度单元204可以推导此任务要求高安全性。因此,第二计算系统200可以相应地设置计算节点107的安全配置。可以例如通过分析打开的网站的url或通过分析打开的网站所加载的内容来收集根据以上实例为了推导推测调度约束所需要的信息。

在关于数据中心中调度任务和提供资源的另一实例中,查询创建单元210可以根据调度请求208推导任务是否是来自预定义领域的应用(例如hadoop或大数据、mpi调度器中的任务调度、spark调度器或cuda调度器),并检测cpu功率、存储器和系统存储装置所需要的量,以及相应地提供资源。

现在基于图5更详细描述查询创建单元210。图5示出根据本发明的第二方面的查询创建单元210的示意图概述。查询创建单元210可以包括提示收集器501、查询创建器502和提示信息数据库503。调度单元204所处理的调度请求208通过查询创建单元210借助于提示收集器501接收。提示收集器501可以提取显式调度约束并且根据调度请求208推导推测调度约束。

这具体来说通过分析接收到的请求208的语义、特征或类型来实现。查询创建单元210基于显式调度约束和/或推测调度约束借助于查询创建器502产生查询。所产生的查询继而通过查询创建器502转发到约束解算单元211。为了改进产生查询的性能,提示收集器501和查询创建者502可以将关于先前创建的查询的信息存储在提示信息数据库503中。所述提示信息数据库以调度信息数据库202相同的技术方式提供。提示信息数据库503可以包含于调度信息数据库202中。关于先前创建的查询的信息可以包含关于有关调度请求208、根据调度请求208推导的显式和推测调度约束以及根据调度请求208产生的查询的信息。

在下文中给出通过查询创建单元210评估的显式约束的实例表示。当根据显式约束产生查询时,所述约束可以例如是以下约束:

c1指定多个cpu要求,c2指定存储器大小要求,c3指定网络带宽要求,c4指定存储空间要求,c5指定gpu存在要求。当然,还可以指定额外或替代要求。

查询创建单元210所创建并考虑上述约束的查询的实例表示可以是:

“get_schedule(c1、c2、c3、c4、c5)”或

“get_schedule(4、500mb、1gb/s、1gb、是)”

可见,查询要求的量为超过4个cpu、超过500mb系统存储器、提供超过1gb/s的速度的网络接口、大于1gb的系统存储装置和待提供给任务的gpu。

通过查询创建单元210在创建查询时评估的其它显式调度约束可以是:对能耗和/或功耗的感知、对安全策略的遵从性和/或预定义安全设置的存在、预定义硬件设备的存在、对共调度的支持,以及将在vm中调度或调度为vm的任务的要求。

在下文中给出通过查询创建单元210评估的推测调度约束的实例:

在调度请求208要求至少两个计算节点来通信(例如,因为必须对单个任务分配多个计算节点的资源)的情况下,当调度所述任务以使所涉及的计算节点107之间的通信开销(例如,网络流量)减到最少时,所涉及的计算节点的地理距离和/或网络距离可以由查询创建单元210视为推测调度约束。

在将由调度请求208调度的任务是可以借助于多个计算线程执行且至少两个计算线程需要通信的计算处理的情况下,查询创建单元210可以将此视为推测调度约束,并且在计算节点107上调度所述任务以允许并行处理多个计算线程。多个计算线程可以通过不同cpu在单个计算节点107上处理,但也可以访问本地系统存储器,由所有计算处理共享。此存储器访问原理被称作非均匀存储器访问(non-uniformmemoryaccess,numa)。查询创建单元210可以将调度任务时对numa支持的存在的要求视为推测调度约束。

转回至图4,其示出一旦通过查询创建单元210创建了查询,所述查询将被转发到约束解算单元211。这通过连接查询创建单元210与约束解算单元211的双头箭头指示。

当约束解算单元211接收到查询时,其通过评估调度信息数据库202中的调度信息解算查询中提供的隐含和显式约束。

在第二计算系统200中,调度信息数据库202充当用于存储调度信息的数据库。调度信息数据库202也可以通过数据库(例如sql数据库、键值存储、nosql数据库等)或简单地一个或多个文本文件(例如,json格式文件)提供。

这使约束解算单元211能识别一组资源,所述资源可用于基于查询创建单元210根据调度信息产生的查询执行调度请求208。

约束解算单元211可以使用深度优先查询(depth-firstsearch,dfs)评估调度信息,dfs即用于穿越或查询树或图形数据结构的算法。

约束解算单元211所使用的调度信息可以包含例如根据本发明的第一实施例存储在调度信息数据库102中的资源信息和/或任务信息。调度信息还包括关于先前调度请求208的额外信息,例如先前调度请求208的类型、语义或特性,以及对应的信息,例如显式和隐含约束、根据先前调度请求分配给任务的硬件资源、以及任务的运行状态。约束解算单元211可以将上述信息存储在调度信息数据库202中,更新上述信息以及读取上述信息。由此,可以评估目前调度的任务的性能和位置(例如,所述任务在数据中心中执行的节点)等运行信息,并且可以改进未来任务的调度的资源发放。

第二计算系统200可以另外包括调度数据库209。调度数据库209同样可以通过数据库(例如sql数据库、键值存储、nosql数据库等)或简单地一个或多个文本文件(例如,json格式文件)提供。调度数据库209可以与调度单元204、调度信息数据库202、查询创建单元210和约束解算单元211通信以交换信息。这通过调度数据库209连接到调度单元204,调度单元204又连接所述调度数据库与图4中的其余实体指示。

调度数据库209可以存储由例如先前调度请求208引起的任务调度106。为了提高总体系统性能,约束解算单元211可以基于目前接收到的调度请求208或基于从查询创建单元210接收到的查询提取至少一个预创建任务调度。在调度数据库209中无法找到针对目前接收到的调度请求208的合适调度的情况下,约束解算单元211可以将至少一个新的任务调度106存储在调度数据库209中。这允许更有效地处理未来调度请求208。约束解算单元211还可以更新调度数据库209中存储的预创建调度以调整预创建调度,从而例如变更第二计算系统200的配置。

可以通过一个或多个一个数据库(例如sql数据库、键值存储、nosql数据库等)或从简单地一个或多个文本文件(例如,json格式文件)提供用于提供调度信息数据库202、调度数据库209和提示信息数据库503的构件。

鉴于图6,描述了当处理任务调度和/或资源发放时第二计算系统200的操作步骤。由此,描述调度单元204、约束解算单元211、调度数据库209和调度信息数据库202的通信和工作流。

在步骤61中,调度单元204从例如发送调度请求208的客户端接收所述请求208。在步骤62中,查询创建单元210根据调度请求208中的显式和隐含调度约束产生查询。此查询被转发到约束解算单元211。在步骤63a中,约束解算单元211查询调度数据库209以基于接收到的请求208提取预创建任务调度。在步骤63b中,如果查询调度数据库209成功,匹配的预创建调度(包含关于可用于执行任务的一组资源的信息)将从调度数据库209返回到约束解算单元211。如果在调度数据库209未找到预创建调度,将在步骤63c中基于调度信息数据库202中的信息创建调度。在步骤63d中,创建的调度(包含关于可用于执行任务的一组资源的信息)从调度信息数据库202返回到约束解算单元211。在步骤64中,此信息在调度单元204中经过进一步处理。在步骤65中,将关于接收到的任务请求208和调度任务的调度信息存储在调度信息数据库202中以改进未来约束解算和任务调度。在步骤66中,在数据中心中(通过例如将一个或多个计算节点的硬件资源发放给任务)调度任务。在步骤67中说明请求在数据中心中调度任务的客户端如何控制任务。

在图7中,示出根据本发明的第三实施例的用于提供任务调度以及管理任务调度和资源发放的第三计算系统300的示意图概述。第三计算系统300可以基本上对应于计算系统100和/或第二计算系统200。因此,类似组件以类似参考标号识别。

如图7所示,第三计算系统300包括代理管理器301、调度信息数据库302、至少一个可配置代理303、调度单元304、配置信息305、任务调度306、多个计算节点307、调度请求308、调度数据库309、查询创建单元310以及约束解算单元311。

根据第三实施例的代理管理器301、至少一个可配置代理303、配置信息305和多个计算节点307基本上对应于根据第一实施例的代理管理器101、至少一个可配置代理103、配置信息和多个计算节点107,并且包括如第一实施例所提供的相同功能。

查询创建单元310和约束解算单元311基本上对应于根据第二实施例的查询创建单元210和约束解算单元211,并且包括如第二实施例所提供的相同功能。

调度信息数据库302、调度单元304、任务调度306、调度请求308和调度数据库309基本上对应于根据第一实施例的调度信息数据库102、调度单元104、任务调度106、调度请求108和调度数据库109,以及对应于根据第二实施例的调度信息数据库202、调度单元204、任务调度206、调度请求208和调度数据库209,并且包括如第一所述第二实施例所提供的组合功能。

基本上借助于调度信息数据库302和调度单元304提供与第一实施例相关的实体和与第二实施例相关的实体之间的信息交换。

具体来说,根据第一实施例通过至少一个可配置代理103提供的资源和/或任务信息和根据第二实施例的调度信息以组合方式存储在调度信息数据库302并进行评估。资源和/或任务信息以及调度信息可以是分离的,但也可至少部分地重复。第三实施例因此优选地组合第一实施例和第二实施例的特征。

鉴于图8,描述当借助于代理管理器301配置代理303并且处理任务调度和/或资源发放时第三计算系统300的操作步骤。描述代理管理器301、至少一个可配置代理303、调度信息数据库302、约束解算单元311和调度数据库309的通信和工作流。

在步骤81中,代理管理器301接收例如由用户请求(例如,客户端)更改的更新后的配置信息305。在步骤12中,代理管理器301通过根据更新后的配置信息305向代理303提交更新后的配置指令来配置代理303。在步骤83中,可配置代理根据更新后的配置信息305收集资源和/或任务信息并填入调度信息数据库302。在步骤84中,由约束解算单元311通过基于调度信息数据库302中存储的调度信息和/或资源信息和/或任务信息来解算约束而创建调度。此动作通过调度请求308触发,图8中未示出。步骤85说明创建的调度如何在约束解算单元311中进一步处理。在步骤86中,将创建的调度存储在调度数据库309中以待能够由未来调度请求308再使用,从而改进任务调度和资源发放的总体效率。

因此,图8示出第一计算系统100和第二计算系统200当在第三计算系统300中组合时可以如何用以改进任务调度和资源发放。

在本发明的第四实施例中,提供一种存储介质,其存储指令,所述指令当在计算系统100、200、300上执行时执行如本文所描述的方法。下文还概括所述方法。

根据第一实施例的计算系统100可以执行一种用于在计算系统中提供任务调度的方法,所述方法包括以下步骤:通过代理管理器接收配置信息并且基于接收到的配置信息向至少一个可配置代理提交配置指令,通过至少一个可配置代理取决于配置指令监控计算系统中使用的资源和/或执行的任务,并将从资源和/或任务的监控推导的资源和/或任务信息存储在用于存储资源和/或任务信息的调度信息数据库中,以及通过调度单元基于调度信息数据库中存储的资源和/或任务信息产生并输出任务调度。

根据第二实施例的第二计算系统200可以执行一种用于在计算系统中管理任务调度和资源发放的方法,所述方法包括以下步骤:通过调度单元接收对调度任务和/或发放资源的请求,通过查询创建单元提取在接收到的请求中界定的显式调度约束,和/或通过查询创建单元推导与接收到的请求相关联的推测调度约束,通过查询创建单元基于显式调度约束和/或推测调度约束产生查询,通过约束解算单元基于调度信息数据库中的调度信息解算产生的查询中的约束,通过约束解算单元识别一组可用于基于产生的查询和/或调度信息执行请求的资源,并且通过调度单元基于识别的一组资源调度至少一个任务。

第三计算系统300可以执行一种用于在计算系统中提供任务调度以及管理任务调度和资源发放的方法,所述方法包括以下步骤:

通过调度单元接收对调度任务和/或发放资源的请求,

通过代理管理器接收配置信息并且基于接收到的配置信息向至少一个可配置代理提交配置指令,

通过至少一个可配置代理取决于配置指令监控计算系统中使用的资源和/或执行的任务,并将从资源和/或任务的监控推导的资源和/或任务信息存储在用于存储资源和/或任务信息的调度信息数据库中,

通过查询创建单元提取在接收到的请求中界定的显式调度约束,和/或通过查询创建单元推导与接收到的请求相关联的推测调度约束,通过查询创建单元基于显式调度约束和/或推测调度约束产生查询,

通过约束解算单元基于调度信息数据库中的调度信息解算产生的查询中的约束,

通过约束解算单元识别一组可用于基于产生的查询和/或调度信息执行请求的资源,通过调度单元基于识别的一组资源调度至少一个任务,并通过调度单元基于调度信息数据库中存储的资源和/或任务信息产生并输出任务调度。

用于执行所描述方法中的每个方法的指令可以各自存储在存储介质上。所述存储介质可以是计算机可读存储介质,例如但不限于任何类型的磁盘,包含软盘、光盘、cd-rom、磁光盘、只读权存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、eprom、eeprom、磁卡或光卡、专用集成电路(applicationspecificintegratedcircuit,asic),或适合于存储电子指令的任何类型的介质,所述存储介质各自耦合到计算机系统总线。

已经结合本文中的各种实施例描述了本发明。但本领域技术人员通过实践本发明,研究附图、本发明以及所附的权利要求,能够理解并获得公开实施例的其他变体。在权利要求书中,词语“包括”不排除其它元素或步骤,不定冠词“一”不排除多个。单个处理器或其他单元可以完成权利要求中描述的几个器件的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能被有效地使用。计算机程序可存储或分发到合适的介质上,例如与其它硬件一起或者作为其它硬件的部分提供的光存储介质或者固态介质,还可以以其它形式例如通过因特网或者其它有线或无线电信系统分发。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1