本申请涉及计算机资源调度领域,特别地,涉及用于调度多类型的计算资源的方法、装置和系统。
背景技术:
计算资源是用于解决专业问题的核心计算系统或核心软件系统。求解这类专业问题通常需要很强的专业知识和核心算法。例如,运筹求解器是用于求解运筹优化问题的核心运筹优化器系统。业务场景在大规模使用计算资源求解专业问题时,需要对使用成本进行综合考量,以最大程度利用计算资源的性能和系统消耗,达到节约成本和提升效率的效果。
业内现有很多商业求解器和开源求解器致力于解决诸如运筹优化的专业问题,但是不同的求解器软件在运行时的计算性能、所消耗的系统资源各不相同,授权条款和价格差异很大。
例如,对于运筹优化问题,商业版本的求解器计算效率高,但价格昂贵,而开源版本的求解器计算效率低,但价格便宜。针对大规模的业务使用场景的计算需求,某些商业求解器虽然在单机版本的基础上提供求解器集群功能,但是仅支持基于单一求解器的集群版本,并且该集群版本的价格相对单机版本成本增加巨大。
此外,在诸如运筹求解器的计算资源协调和调度领域,当前市面上没有解决方案从综合成本角度考虑以组合各类不同计算资源来最大程度利用计算资源、节约成本和提升效率。
因此存在对调度计算资源的方案进行改进的需求。
技术实现要素:
本申请旨在面对特别是多业务场景的专业问题求解应用时,提供用于解决和克服如上所述的至少一个问题和缺陷的调度计算资源的方法、装置和系统。
根据本申请的一方面,提出一种调度计算资源的方法,包括:
针对业务场景确定包括至少一个计算任务的计算任务序列;
确定用于所述计算任务序列的计算资源集群的调度方案,其中所述计算资源集群包括多个具有不同类型的计算资源;以及
基于所述调度方案使用所述计算资源获得计算结果。
根据本申请的另一方面,提出一种调度计算资源的装置,包括:
应用管理模块,被配置为针对业务场景确定包括至少一个计算任务的计算任务序列;
资源管理模块,被配置为确定用于所述计算任务序列的计算资源集群的调度方案,以及基于所述调度方案使用所述计算资源获得计算结果,其中所述计算资源集群包括多个具有不同类型的计算资源。
根据本申请的又一方面,提出用于调度计算资源的系统,包括如上所述的应用管理模块和资源管理模块,以及至少一个包括计算资源的计算节点。
根据本申请的再一方面,提出一种计算机可读存储介质,其上存储有计算机程序,该计算机程序包括可执行指令,当该可执行指令被处理器执行时,实施如上所述的方法。
根据本申请的实施例的方法、装置和系统能够基于业务场景的特定需求动态调整计算资源集群的规模以提高计算资源的运行效率,支持业务场景按需组合多种具有不同的价格和类型的计算资源以有效节约使用成本,通过多业务场景共享不同类型的计算资源来提高计算资源的利用率,以及通过通用的数据接口实现业务场景与计算资源集群的简单对接来提高软件开发效率。
附图说明
通过参照附图详细描述其示例性实施例,本申请的上述和其它特征及优点将变得更加明显。
图1为根据本申请的示例实施例的用于调度计算资源的装置的框图;
图2为根据本申请的示例实施例的用于调度计算资源的方法的流程图;
图3为根据本申请的示例实施例的资源描述图;以及
图4为根据本申请的示例实施例的电子设备的示意框图。
具体实施方式
现在将参考附图更全面地描述示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本申请的内容更全面和完整,并将示例性实施例的构思全面地传达给本领域的技术人员。在图中,为了清晰的目的,可能会夸大部分元件的尺寸或加以变形。在图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、元件等。在其它情况下,不详细示出或描述公知结构、方法或者操作以避免模糊本申请的各方面。
本文以用于解决运筹优化问题的运筹求解器或运筹优化器作为示例介绍本申请的构思,但是本领域技术人员将理解,这种调节计算资源的方法和装置可以应用于更广泛的计算资源,该计算资源例如但不限于诸如求解器或优化器的计算模块,或诸如提供语音转文字服务,图片识别服务或视频处理服务等的服务模块,等等。计算资源可以是商业类型的,也可以是开源类型的。因此,在上下文中,计算资源可以理解为用于解决或优化专业问题的任何单元、模块、设备、系统,并且计算资源可以是算法、软件、固件和硬件单元或产品的各种组合。通常,计算资源被配置在计算节点或计算设备上,由计算节点或计算设备运行或维护。
对于运筹优化问题,可以采用例如包括运筹求解器的商业求解器。运筹求解器作为运筹优化器的一种,其输入为表示运筹优化规则或目标的运筹表达式(例如以不等式形式表征),而且其所支持的接口规范的格式相对单一。商业求解器仅支持由供应商提供的单一求解器构成的求解器集群并且无法按需动态调整集群规模,其固定接口规范对实际业务场景的对接支持也没有优化。集群版本的商业求解器相比单机版本昂贵许多而并没有显著的效率提高。此外,商业求解器一般不提供不同类型求解器,特别是与该供应商提供的求解器不同的其它求解器组成的集群。因此,现有的商业求解器集群版本无法引入成本较低并且支持更多业务此场景的其它求解器(例如开源求解器)以构成混合类型求解器集群。
进一步,即使解决了多类型求解器的组合,在多业务应用场景中存在计算峰值随着时间动态变化的情况。这需要求解器集群能够动态调整集群规模,对求解器的计算能力进行扩缩容以适应计算需求的瞬时变化,提高集群的计算效率。提高求解器资源的利用效率还可以通过针对不同业务场景共享相同类型的求解器实现,并且可以进一步复用相同类型的求解器资源,形成业务场景需求与求解器资源之间的多对多关系。
现有的商业求解器和开源求解器往往针对特定问题开发,其数据接口规范不统一使得将不同类型的求解器组合为求解器集群时需要考虑的数据交换非常复杂,造成软件开发人员的开发效率无法提高。可以通过为各种不同类型的求解器资源设计通用的应用接口以规范化数据交换,提高在针对不同业务场景开发求解器集群时的开发效率。
下面结合图1和图2所示的根据本申请的示例实施例的用于调度计算资源的装置和方法详细描述本申请的构思。
图1中所示的示例性装置100包括应用管理模块110和资源管理模块120。
应用管理模块110负责场景对接和任务调度,用于针对一个或多个业务场景130确定计算任务序列。根据业务场景的特性、类型、需求和复杂程度,需要从业务场景所需的计算性能、完成业务场景期望的资源利用率和使用成本等多个角度综合考虑,确定与业务场景130对应的计算任务序列。根据本申请的实施例,具有满足业务场景所需的足够计算性能,优化的资源利用率和较低的使用成本的计算任务序列是制定计算任务序列的目标。计算任务序列可以包括一个或多个计算任务。应用管理模块110还可以自定义编排业务场景的运行流程,并基于该流程确定相应的计算任务序列的具体内容和次序。
应用管理模块110包括应用流程控制器111,任务排序单元112和应用管理接口113。应用流程控制器111作为应用管理模块110的核心单元,可以根据业务场景的需要灵活地定义和编排业务处理流程。通常,应用流程控制器111可以并行地执行如下主要任务:基于业务场景130的需求数据确定计算任务序列,并将所确定的计算任务序列输出到资源管理模块120;监控计算任务序列的完成情况,实时或周期性地接收计算资源集群中的计算资源的负载信息以及计算任务的计算结果;将来自资源管理模块120的计算结果返回给业务场景130。在基于业务场景130的需求确定计算任务序列时,可以考虑业务场景所需的计算性能、完成业务场景期望的资源利用率和使用成本等。
应用接口单元113用于定义通用的数据接口来统一规范,对接各类使用计算资源的业务场景130。应用接口单元113接收业务场景130的需求,将需求信息以诸如指令和数据的形式提供给应用流程控制器111。应用流程控制器111可以通过将来自应用接口单元113的业务场景130的需求信息转换为待计算资源运行和计算的计算任务。例如,对于统筹优化问题来说,计算任务可以是业务场景130的需求中所定义的一个或多个运筹不等式,也可以将相关的多个运筹不等式构成一个计算任务。一个业务场景130可以对应于一个或多个计算任务。计算任务序列可以包括一个业务场景130的计算任务,也可以包括多个业务场景130的计算任务。
根据业务场景130的特性、类型和要求,进一步需要从计算性能、资源利用率和使用成本等多个角度综合考虑来针对不同类型的业务场景130选择合适的类型和数量的计算资源来处理。例如,一个业务场景130可以需要一个或多个相同或不同类型的计算资源进行处理,多个业务场景130也可以需要至少一个相同或不同类型的计算资源进行处理(即,可以共享相同类型的计算资源或分别使用对应的不同类型的计算资源)。因此,从应用接口单元113接收的业务场景130的需求信息中包括对于所需求的计算资源的类型信息。应用流程控制器111所确定的计算任务序列中的计算任务包括用于处理该计算任务的对应计算资源的类型或子类型,例如经编排后的某个业务场景130的计算任务不仅包括该业务所需求的计算数据(例如运筹多项式),还包括该业务所需求或指定的计算资源的类型(例如运筹优化业务场景指定采用商业求解器或其它求解器类型的计算资源)。在下文中,将业务场景130所需求或指定的计算资源的类型或子类型,即计算任务所需求或指定的计算资源的类型或子类型,称为业务场景130或计算任务的类型或子类型。因此,在向资源管理模块120输出计算任务序列时,计算任务还包括计算任务的类型信息。这样,通过计算任务和计算资源的类型对应关系,可以将业务场景130的计算性能、资源利用率和使用成本等多个角度的综合需求目标转化为对计算任务(队列)的确定和规划,进而转化为相应计算资源的配置。
计算资源的负载信息包括与计算资源的类型(以及子类型)对应的负载信息。计算资源的类型或子类型与上文中的业务场景130或计算任务的类型或子类型对应。例如,计算任务的负载信息可以采用计算资源的已使用部分或空闲部分占该计算资源的比例(例如百分比)的形式表示。由于计算资源位于相应的计算节点上或者可以说由该计算节点运行,因此计算资源的负载信息还可以包括该计算资源所在的计算节点的负载信息。计算节点的负载信息可以包括计算节点的处理能力的负载信息,例如以总处理能力中的已使用部分或空闲部分占该总处理能力的比例(例如百分比)。进一步,如果该计算节点上具有多个计算资源,根据计算资源的分配规则,计算节点的负载信息还可以表示为基于被分配给该计算资源的该计算节点的处理能力中,已使用部分或空闲部分占该被分配的处理能力的比例(例如百分比)。
应用流程控制器111监控计算任务的完成情况,并将由资源管理模块120处理完成的计算结果经由应用管理接口113返回到业务场景130。
任务排序单元112用于在计算任务序列中包括多个计算任务时对计算任务进行排序。任务排序单元112作为应用流程控制器111的附属单元,基于从业务场景130的需求信息中提取的优先级信息和由应用流程控制器111转发的来自资源管理模块120的计算资源的负载信息对计算任务进行排序。优先级信息指示业务场景的特定需求。该特定需求例如包括计算结果返回期限的时间限制,计算资源使用权限限制,以及任务优先等级限制等限定信息。优先级信息还可以包括应用管理模块110对于不同业务场景130的预设规则。这样,任务排序单元112通过考虑业务场景所需的计算性能、完成业务场景期望的资源利用率和使用成本等,调整计算任务的次序。在任务排序单元112的辅助下,应用流程控制器111维护的计算任务序列在接收到新业务场景130的需求信息或新的负载信息后被实时更新。
应用流程控制器111还基于所接收的计算资源的负载信息控制计算任务序列的输出。例如,应用流程控制器111可以被设置为仅在当前空闲的计算资源的类型中包括计算任务序列中当前正要待处理的计算任务的类型时,向资源管理模块120输出该计算任务。进一步,应用流程控制器111还可以向资源管理模块120输出当前计算任务序列中的计算任务的数量和类型,以供资源管理模块120作为调度计算资源的参考。例如,资源管理模块120可以针对排队情况严重的计算任务序列增加计算节点和相应的计算资源以提高计算能力,也可以针对持续的空闲或较短的计算任务序列(表明没有足够的计算任务供计算资源处理)释放计算节点,从而动态调节计算资源集群的规模以优化计算效率。
资源管理模块120用于基于来自应用管理模块110的计算任务或计算任务序列,确定用于该计算任务序列中的计算任务的计算资源集群的调度方案,基于调度方案使用相应的计算资源处理计算任务以获得计算结果,以及将计算结果返回给应用管理模块110。计算资源集群是用于处理计算任务序列中的计算任务的具有不同类型的多个计算资源的集合。与应用管理模块110类似,根据业务场景的特性、类型、需求和复杂程度,需要从业务场景所需的计算性能、完成业务场景期望的资源利用率和使用成本等多个角度综合考虑,确定业务场景130所需的用于该计算任务序列中的计算任务的计算资源集群的调度方案。根据本申请的实施例,具有满足业务场景所需的足够计算性能,优化的资源利用率和较低的使用成本的计算任务序列是调度计算资源的目标。
资源管理模块120包括节点管理单元121,资源调度单元122,任务执行单元123和资源管理接口124。资源调度单元122作为资源管理模块120的核心单元,用于生成和维护在统一调度计算节点和该计算节点上的计算资源以及为计算任务分配计算资源的过程中使用的资源描述图。资源描述图的建立和调整,可以考虑业务场景所需的计算性能、完成业务场景期望的资源利用率和使用成本等。资源描述图用于对计算资源集群进行资源描述,如图3所示。下文中以树形图为例介绍根据本申请的实施例的资源描述图,但是本领域技术人员将理解,本申请的资源描述图不仅仅限于树形图的形式,而包括任何能够实现计算资源调度的具有多个节点的资源描述图或资源关系架构。
图3所示的资源描述图包括多个节点0,1,2,11,12,21,121,122和212。从层级来看,这些节点形成四个层级,分别是第一层节点(即根节点)0,第二层节点1和2,第三层节点11,12和21,以及第四层节点121,122和212。下一层节点是上一层的相应节点的子节点,上一层节点是下一层节点的父节点。例如,节点0是节点1和2的父节点,对应地,节点1和2是节点0的子节点。再例如,节点121和122是节点12的子节点,节点12是节点121和节点122的父节点。节点121和122以及节点212虽然属于同一层级的节点,但是分别具有不同的父节点12和21。
每个节点表示用于处理计算任务的计算资源组成的集合,该集合为计算资源集群的子集。计算资源集群在本文中指系统能够使用的所有计算资源的总和,集群的子集指专用于某个或某类计算任务的计算资源的组合。与计算资源集群的子集对应的节点具有描述信息,描述信息包括:与该节点对应的子集中的计算资源所在的计算节点的信息,与该节点对应的子集中的计算资源的类型信息,以及与该节点对应的子集中的计算资源的负载信息。描述信息指示在当前时刻具有描述信息中的类型的计算资源的静态信息,例如该类型的计算资源都位于哪些计算节点上,每个计算资源存在多少空闲资源等。通过描述信息,可以获知当前可用于该类型的计算任务的计算资源的具体数据。子节点的描述信息指示具有类型为其父节点的描述信息中的类型的子类型的计算资源的静态信息。父节点所对应的子集中的计算资源包括其子节点所对应的子集中的所有计算资源,即父节点指示的计算资源是其子节点的所有计算资源构成的集合。通过子节点所对应的子集的计算资源的负载信息,可以确定该子节点的父节点所对应的子集的计算资源的负载信息。
下面举例说明资源描述图所指示的资源状态信息和相应的调度规则。计算资源集合中的计算资源都是用于统筹优化的求解器,可用的所有求解器资源与节点0对应。在这些求解器资源中,分为专用于专业问题1的求解器资源(与节点1对应)和专用于专业问题2的求解器资源(与节点2对应)。专用于专业问题1的求解器资源中分为开源类型的求解器资源(与节点11对应)和商业求解器资源(与节点12对应)。进一步,专用于专业问题1的商业求解器资源又分为不可共享的求解器资源(与节点121对应)和可与其它业务场景的计算任务共享的求解器资源(与节点122对应)。节点11表示求解器资源中专用于专业问题1的开源求解器资源,则节点11的描述信息中包含了这些求解器资源所位于的计算节点,类型(即专用于专业问题1的开源求解器),以及每个求解器资源的负载信息。节点12则表示求解器资源中专用于专业问题1的商业求解器资源,节点12的描述信息相应地包含对应的求解器资源所位于的计算节点,类型(即专用于专业问题1的商业求解器),以及每个求解器资源的负载信息。实际上,专用于专业问题1的商业求解器由其中的专用求解器和共享求解器组成(即节点121和122对应的求解器子集中的求解器资源的组合),因此节点12所对应的子集也可以称为虚拟计算资源,其最终的计算资源信息需要通过其子节点121和122的信息确定,如果子节点121和122还有子节点,则还需要进一步通过下一级的子节点的信息确定。通过这种父子层级结构,准确描述了计算资源集群的资源分布情况。
在确定计算任务所需的计算资源时,可以从计算任务序列中的计算任务信息提取计算任务的类型,并根据计算任务的类型在资源描述图中找到并选择其描述信息的型数据中具有该类型的节点,确定可用于处理该计算任务的计算资源。这些计算资源包括该节点和/或该节点的子节点所对应的子集中的计算资源。确定可用的计算资源后,还需要基于资源调度策略确定多个计算资源之间的计算任务分配。根据本申请的实施例,资源调度策略可以包括如下中的至少一项:1)先进先出,即空闲时间较久的计算资源被优先分配处理计算任务;2)具有低负载的计算资源和/或计算节点优先,即空闲资源量较多的计算资源和/或计算节点被优先分配计算任务;3)计算节点之间的负载平衡,例如优先考虑每个计算节点获得相同或相似的处理量;4)计算资源之间的负载平衡,例如相同类型的计算资源之间尽可能平均地分配计算任务,节点和子节点所对应的子集中的计算资源之间采用预定的调度规则分配计算任务等。
在确定用于处理计算任务队列中的计算任务的计算资源后,资源调度单元122更新资源描述图中相应节点的描述信息中的计算资源的负载信息。
节点管理单元121用于管理系统中与用于运行和维护计算资源的计算节点,获取计算节点上的计算资源的类型和数量以及计算资源的负载信息相关联的原始数据。节点管理单元121的另一个关键任务是基于计算任务序列中的计算任务数量和类型所指示的队列排队情况和业务场景的需求,结合当前系统中的计算节点上的计算资源负载信息来动态调整计算资源集群的规模。例如,在与计算任务队列中需求较大的计算任务的类型对应的计算资源不足时,节点管理单元121可以申请增加新的计算节点以提供更多对应类型的计算资源,或者在某种类型的计算资源空闲量较大和/或维持预定水平的空闲状态达到预定时间阈值时,释放对应的计算资源和/或该计算资源所在的计算节点。节点管理单元121对计算节点数量以及计算资源的数量和类型的动态调整需要结合计算任务序列和当前计算资源和/或计算节点的负载信息综合考虑。因此,节点管理单元121的功能可以同样参考业务场景所需的计算性能、完成业务场景期望的资源利用率和使用成本等。
计算节点的硬件可以预先配置,即计算节点的处理能力是预定的。当增加计算节点时,根据计算资源的需求预先配置计算节点上提供的计算资源的数量、类型/子类型、以及各种计算资源在计算节点上的可用处理能力。一般来说,在申请增加的计算节点启用后,该计算节点上的计算资源配置不再调整。
在节点管理单元121申请增加或释放计算节点及其上的计算资源时,更新资源描述图中的相应计算节点处的描述信息,例如增加具有相应类型的计算资源所在的计算节点的数据以及该计算资源的负载信息。在节点管理单元121动态调整计算资源集群的规模后和资源调度单元122确定调度方案后进行更新时,并不调整资源描述图的节点拓扑结构,仅更新相应节点的描述信息。但是,当基于业务场景130的需求而增加新的计算资源的类型时,一般需要在资源描述图中增加新的节点以与该新的类型对应。
任务执行单元123用于基于调度方案使用计算资源获得计算结果,并将计算结果经由资源管理接口124返回给应用管理模块110。任务执行单元123在获得资源调度单元122确定的调度方案后,将计算任务提交到相应的计算节点,构建计算资源的运行环境并处理获得计算结果。在计算任务执行完成后,任务执行单元123还可以释放所使用的计算资源并通知资源调度单元122该计算资源的使用结束,资源调度单元122更新与所释放的先前使用计算资源对应的节点处的计算资源的负载信息,指示与该计算任务对应的计算资源再次处于空闲状态。
与应用管理接口113部分类似,资源管理接口124定义通用的数据接口来统一和对接使用计算资源的各种计算任务,从应用管理模块110的应用流程控制器111接收计算任务序列,输出计算资源集群中的计算资源的负载信息,和/或计算结果。应用管理接口113和资源管理接口124都可以采用restful接口技术标准。标准统一的接口可以提高开发人员的效率,实现业务场景对计算资源的直接对接。
图2示出根据本申请的示例实施例的用于调度计算资源的方法。不再赘述方法中的与在介绍图1所示的装置过程中的相同或相似的部分。
根据本申请的示例实施例,该方法包括如下步骤:
步骤s210:针对至少一个业务场景130(在图中以3个为例),确定计算任务序列。根据业务场景的需求,计算任务序列包括一个或多个计算任务。
步骤s210进一步包括子步骤s211至s213。在子步骤s211中,通过如图1中所示的应用管理接口接收业务场景130的规范化需求数据。接下来,在子步骤s212中基于所接收的业务场景的需求数据确定计算任务,并将计算任务组成为计算任务序列。所确定的计算任务序列可以通过如图1中所示的资源管理接口传输给资源管理模块。还可以通过子步骤s213,基于从业务场景的需求数据中提取的优先级信息以及来自资源管理模块的资源调度单元的计算资源的负载信息,对计算任务序列中的计算任务进行排序。在子步骤s212的计算任务序列的确定过程和子步骤s213的计算任务排序过程中,可以考虑业务场景所需的计算性能、完成业务场景期望的资源利用率和使用成本等。
在步骤s210完成后,方法继续执行步骤s220,确定用于上述计算任务序列的计算资源集群的调度方案。步骤s220包括子步骤s221至s222。在子步骤s221中,首先生成和/或维护包括多个节点的资源描述图,以及根据从计算任务队列中提取的计算任务的类型和需求,在资源描述图中找到对应的节点,并根据节点所对应的计算资源集群的子集中所包含的计算资源的负载信息,选择可用于该计算任务的计算资源。如上文所述,资源描述图中的节点对应于计算资源集群的子集,并且具有描述计算资源静态信息的描述信息,具体可以包括计算资源的类型、计算资源所在的计算节点,以及计算资源的负载信息。节点间采用父子层级结构,例如以树形图体现。获得可用的计算资源后,根据资源调度策略确定可用于该计算任务的节点和/或该节点的子节点所对应的子集中的计算资源和/或计算节点之间的计算任务调度和分配方案。资源调度策略例如可以采用先进先出,具有低负载的计算资源和/或计算节点优先,计算节点之间的负载平衡,以及计算资源之间的负载平衡等。根据节点所对应的计算资源的类型,还可以实现计算资源的共享。
步骤s220中的子步骤s222可以基于计算任务序列中的待处理的计算任务的数量和类型以及当前空闲的计算资源信息对计算资源集群的规模进行调整,由节点管理单元增加或释放计算节点。在增加计算节点时,预先配置新的计算节点上提供的计算资源的类型、数量和计算资源对于计算节点的处理能力的权限。在每次为计算任务确定调度方案以分配相应的计算资源以及对计算资源集群进行动态规模调整后,更新资源描述图中相应节点的描述信息中与计算节点信息、计算资源负载信息相关的数据。如果根据业务场景的需求,增加、删除或修改计算任务的类型并导致与计算任务类型对应的计算资源类型的增加、删除或修改,则相应地更新资源描述图的结构和参数数据。
分别在用于确定计算资源调度的步骤s220的子步骤s221的资源描述图的确定和更新和子步骤s222的计算资源集群规模调整过程中,可以考虑业务场景所需的计算性能、完成业务场景期望的资源利用率和使用成本等。
在确定计算资源的调度方案后,执行步骤s230,由被分配计算任务的计算节点和其上的计算资源处理以获得计算结果。其中,计算节点构建计算资源所需要的运行环境,并在该运行环境中执行计算资源的代码。
获得计算任务的计算结果后,在步骤s240中将计算结果经由资源管理接口返回到应用管理模块,并进一步经由应用管理接口返回到业务场景130。同时,计算节点释放所使用的计算资源,并更新和调整资源描述图中与所释放的计算资源对应的节点处的计算节点和计算资源的负载信息以便于下一计算任务使用。
根据本申请的实施例,用于调度计算资源的系统包括图1中所示的应用管理模块、资源管理模块和提供计算资源的一个或多个计算节点。计算节点可以以本地计算机或服务器、位于网络或云环境的计算机或服务器等形式实现。
如上所述的根据本申请的实施例的示例性方法、装置和系统至少具有如下的多个优点:能够基于业务场景的特定需求动态调整计算资源集群的规模以提高计算资源的运行效率,支持业务场景按需组合多种具有不同的价格和类型的计算资源以有效节约使用成本,通过多业务场景共享不同类型的计算资源来提高计算资源的利用率,以及通过通用的数据接口实现业务场景与计算资源集群的简单对接来提高软件开发效率。
应当注意,尽管在上文详细描述中提及了用于调度计算资源的装置和系统的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在本申请的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序包括可执行指令,该可执行指令被例如处理器执行时可以实现上述任意一个实施例中所述用于调度计算资源的方法的步骤。在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书用于调度计算资源的方法中描述的根据本申请各种示例性实施例的步骤。
根据本申请的实施例的用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
在本申请的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中的用于调度计算资源的方法的步骤。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图4来描述根据本申请的这种实施方式的电子设备300。图4显示的电子设备300仅仅是一个示例,不应对本申请的实施例的功能和使用范围带来任何限制。
如图4所示,电子设备300以通用计算设备的形式表现。电子设备300的组件可以包括但不限于:至少一个处理单元310、至少一个存储单元320、连接不同系统组件(包括存储单元320和处理单元310)的总线330、显示单元340等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元310执行,使得所述处理单元310执行本说明书用于调度计算资源的方法中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元310可以执行如图2中所示的步骤。
所述存储单元320可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)3201和/或高速缓存存储单元3202,还可以进一步包括只读存储单元(rom)3203。
所述存储单元320还可以包括具有一组(至少一个)程序模块3205的程序/实用工具3204,这样的程序模块3205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线330可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备300也可以与一个或多个外部设备400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备300交互的设备通信,和/或与使得该电子设备300能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口350进行。并且,电子设备300还可以通过网络适配器360与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器360可以通过总线330与电子设备300的其它模块通信。应当明白,尽管在图中未示出,可以结合电子设备300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请的实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的用于调度计算资源的方法。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求指出。
1.一种调度计算资源的方法,其特征在于,该方法包括:
针对业务场景确定包括至少一个计算任务的计算任务序列;
确定用于所述计算任务序列的计算资源集群的调度方案,其中所述计算资源集群包括多个具有不同类型的计算资源;以及
基于所述调度方案使用所述计算资源获得计算结果。
2.如权利要求1所述的方法,其特征在于,所述计算资源分别被设置在至少一个计算节点上,确定用于所述计算任务序列的计算资源集群的调度方案还包括:
基于所述计算任务序列中的所述计算任务的数量和类型以及具有与所述计算任务的类型对应的类型的所述计算资源的负载信息来增加或释放计算节点。
3.如权利要求2所述的方法,其特征在于,在增加计算节点时,确定所增加的计算节点上的所述计算资源的数量和类型。
4.如权利要求2或3所述的方法,其特征在于,确定用于所述计算任务序列的计算资源集群的调度方案还包括:
生成包括多个节点的资源描述图,所述节点与所述计算资源集群的子集对应并且具有描述信息,所述描述信息包括以下中的至少一项:与所述节点对应的所述子集中的所述计算资源所在的计算节点,与所述节点对应的所述子集中的所述计算资源的类型,以及与所述节点对应的所述子集中的所述计算资源的负载信息;以及
基于所述计算任务序列和资源调度策略从所述资源描述图中选择用于所述计算任务的计算资源。
5.如权利要求4所述的方法,其特征在于,所述节点包括子节点,与所述节点对应的所述子集包括与所述节点的子节点对应的所述子集中的所有计算资源,所述节点的子节点的所述计算资源的类型为所述节点的所述计算资源的类型的子类型,以及基于所述节点的子节点的所述计算资源的负载信息确定所述节点的所述计算资源的负载信息。
6.如权利要求5所述的方法,其特征在于,基于所述计算任务序列和资源调度策略从所述资源描述图中选择用于所述计算任务序列的计算资源还包括:
确定与所述计算任务对应的所述计算资源的类型;
基于所确定的所述计算资源的类型从所述资源描述图中选择相应的节点;以及
基于所述资源调度策略确定用于所述计算任务的与所述节点和/或所述节点的子节点对应的子集中的计算资源。
7.根据权利要求6所述的方法,其特征在于,所述资源调度策略包括以下中的至少一项:先进先出,具有低负载的计算资源和/或计算节点优先,计算节点之间的负载平衡,以及计算资源之间的负载平衡。
8.如权利要求4至7中任一项所述的方法,其特征在于,所述资源描述图为树形图。
9.根据权利要求4所述的方法,其特征在于,
在增加或释放计算节点时,调整与所增加或释放的计算节点上的计算资源对应的所述资源描述图的节点的计算资源的负载信息。
10.根据权利要求4所述的方法,其特征在于,还包括在获得所述计算结果后释放所使用的计算资源,以及调整与所释放的所使用的计算资源对应的所述资源描述图的节点的计算资源的负载信息。
11.根据权利要求2或3所述的方法,其特征在于,针对业务场景确定包括至少一个计算任务的计算任务序列还包括:
通过应用管理接口接收所述业务场景的数据;
基于所述业务场景的数据确定所述计算任务序列;以及
通过资源管理接口传输所述计算任务序列。
12.根据权利要求11所述的方法,其特征在于,基于所述业务场景的数据确定所述计算任务序列还包括:
基于从所述业务场景的数据中提取的优先级信息和所述计算资源集群中的所述计算资源的负载信息对所述计算任务序列中的所述计算任务进行排序。
13.根据权利要求11所述的方法,其特征在于,还包括以下中的至少一项:
通过所述资源管理接口获取所述计算资源集群中的所述计算资源的负载信息;
通过所述应用管理接口传输来自所述资源管理接口的所述计算结果。
14.根据权利要求1至13中任一项所述的方法,其特征在于,还包括:
基于所述业务场景的计算性能、资源利用率和使用成本中的至少一个的需求,确定所述计算任务序列和用于所述计算任务序列的计算资源集群的调度方案中的至少一个。
15.一种调度计算资源的装置,其特征在于,该装置包括:
应用管理模块,被配置为针对业务场景确定包括至少一个计算任务的计算任务序列;
资源管理模块,被配置为确定用于所述计算任务序列的计算资源集群的调度方案,以及基于所述调度方案使用所述计算资源获得计算结果,其中所述计算资源集群包括多个具有不同类型的计算资源。
16.如权利要求15所述的装置,其特征在于,所述计算资源分别被设置在至少一个计算节点上,所述资源管理模块包括:
节点管理单元,被配置为基于所述计算任务序列中的所述计算任务的数量和类型以及具有与所述计算任务的类型对应的类型的所述计算资源的负载信息来增加或释放计算节点。
17.如权利要求16所述的装置,所述节点管理单元还被配置为在增加计算节点时,确定所增加的计算节点上的所述计算资源的数量和类型。
18.如权利要求16或17所述的装置,其特征在于,所述资源管理模块还包括资源调度单元,其被配置为:
生成包括多个节点的资源描述图,所述节点与所述计算资源集群的子集对应并且具有描述信息,所述描述信息包括以下中的至少一项:与所述节点对应的所述子集中的所述计算资源所在的计算节点,与所述节点对应的所述子集中的所述计算资源的类型,以及与所述节点对应的所述子集中的所述计算资源的负载信息;以及
基于所述计算任务序列和资源调度策略从所述资源描述图中选择用于所述计算任务的计算资源。
19.如权利要求18所述的装置,其特征在于,所述节点包括子节点,与所述节点对应的所述子集包括与所述节点的子节点对应的所述子集中的所有计算资源,所述节点的子节点的所述计算资源的类型为所述节点的所述计算资源的类型的子类型,以及基于所述节点的子节点的所述计算资源的负载信息确定所述节点的所述计算资源的负载信息。
20.如权利要求19所述的装置,其特征在于,所述资源调度单元还被配置为:
确定与所述计算任务对应的所述计算资源的类型;
基于所确定的所述计算资源的类型从所述资源描述图中选择相应的节点;以及
基于所述资源调度策略确定用于所述计算任务的与所述节点和/或所述节点的子节点对应的子集中的计算资源。
21.根据权利要求20所述的装置,其特征在于,所述资源调度策略包括以下中的至少一项:先进先出,具有低负载的计算资源和/或计算节点优先,计算节点之间的负载平衡,以及计算资源之间的负载平衡。
22.如权利要求18至21中任一项所述的装置,其特征在于,所述资源描述图为树形图。
23.根据权利要求18所述的装置,其特征在于,所述资源调度单元还被配置为:
在增加或释放计算节点时,调整与所增加或释放的计算节点上的计算资源对应的所述资源描述图的节点的计算资源的负载信息。
24.根据权利要求15所述的装置,其特征在于,所述资源管理模块还包括任务执行单元,被配置为基于所述调度方案使用所述计算资源获得计算结果。
25.根据权利要求18所述的装置,其特征在于,所述资源调度单元还被配置为:
在获得所述计算结果后释放所使用的计算资源,以及调整与所释放的所使用的计算资源对应的所述资源描述图的节点的所述计算资源的负载信息。
26.根据权利要求15所述的装置,其特征在于,所述资源管理模块还包括资源管理接口,被配置为接收所述计算任务序列以及输出所述计算资源集群中的所述计算资源的负载信息和/或所述计算结果。
27.根据权利要求16或17所述的装置,其特征在于,所述应用管理模块包括:
应用管理接口,被配置为接收所述业务场景的数据以及输出所述计算结果;以及
应用流程控制器,被配置为基于所述业务场景的数据确定所述计算任务序列,输出所述计算任务序列,以及接收所述计算资源集群中的所述计算资源的负载信息和/或所述计算结果。
28.根据权利要求27所述的装置,其特征在于,所述应用管理模块还包括任务排序单元,其被配置为:
基于从所述业务场景的数据中提取的优先级信息和所述计算资源集群中的所述计算资源的负载信息对所述计算任务序列中的所述计算任务进行排序。
29.根据权利要求15至28中任一项所述的装置,其特征在于,
所述装置被进一步配置为基于所述业务场景的计算性能、资源利用率和使用成本中的至少一个的需求,确定所述计算任务序列和用于所述计算任务序列的计算资源集群的调度方案中的至少一个。
30.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序包括可执行指令,当该可执行指令被处理器执行时,实施如权利要求1至14中任一项所述的方法。
31.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器设置为执行所述可执行指令以实施如权利要求1至14中任一项所述的方法。
32.一种用于调度计算资源的系统,其特征在于,包括如权利要求15至29所述的应用管理模块和资源管理模块,以及至少一个包括计算资源的计算节点。
技术总结