CN114764371A - 任务调度方法及管理系统 - Google Patents

任务调度方法及管理系统 Download PDF

Info

Publication number
CN114764371A
CN114764371A CN202110044643.6A CN202110044643A CN114764371A CN 114764371 A CN114764371 A CN 114764371A CN 202110044643 A CN202110044643 A CN 202110044643A CN 114764371 A CN114764371 A CN 114764371A
Authority
CN
China
Prior art keywords
task
management system
resource
quota
resources
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110044643.6A
Other languages
English (en)
Inventor
朱杰
初雨
王亮
贺骞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110044643.6A priority Critical patent/CN114764371A/zh
Priority to PCT/CN2021/141119 priority patent/WO2022151951A1/zh
Publication of CN114764371A publication Critical patent/CN114764371A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Abstract

本申请提供了一种任务调度方法及管理系统,属于计算机技术领域。本申请向BMC的系统架构中引入了针对AI任务的管理系统,管理系统与上层的AI应用交互,并利用底层的基础AI库生成AI任务。管理系统通过统一为各个AI任务分配BMC的资源,并统一调度各个AI任务,从而将AI应用与AI任务以及底层的基础AI库解耦开来,从而强化了对AI任务的管控,防止AI任务不加限制的使用超过期望的资源,避免AI任务过多占用资源影响到BMC的基础业务,有助于保障BMC的基础业务的稳定性。

Description

任务调度方法及管理系统
技术领域
本申请涉及计算机技术领域,特别涉及一种任务调度方法及管理系统。
背景技术
服务器等计算设备通常包括独立的管理模块,即基板管理控制器(BaseboardManagementController,BMC)。随着云与大数据集群规模的日益增长,以及云边协同等场景的逐渐增多,为了适应多种不同的场景中运维的快速需求响应(如故障预测、故障自愈、性能亚健康发现等),越来越多的厂商为BMC中增加了基于机器学习、深度学习等多种人工智能(artificialintelligence,AI)应用。
然而,目前AI应用经常过多的占用BMC的资源,容易影响BMC基础业务的执行。
发明内容
本申请实施例提供了一种任务调度方法及管理系统,有助于避免AI应用使用过多资源导致影响BMC的基础业务。所述技术方案如下。
第一方面,提供了一种任务调度方法,所述方法应用于BMC中,所述BMC包括至少一个AI应用、管理系统和基础AI库,所述方法包括:所述管理系统响应于所述至少一个AI应用中第一AI应用的请求,使用所述基础AI库生成至少一个AI任务;所述管理系统从所述BMC的资源中为第一AI任务分配第一资源,所述第一AI任务是所述至少一个AI任务中的一个AI任务;所述管理系统使用所述第一资源执行所述第一AI任务,从而得到执行结果;所述管理系统向所述第一AI应用提供所述执行结果。
本实施例提供的方法,通过在BMC内引入了针对AI任务的管理系统,从而将AI应用与AI任务以及底层的基础AI库解耦开来,由管理系统来统一为各个AI任务进行资源管理以及任务调度,从而强化了对AI任务的管控,防止AI任务不加限制的使用超过期望的资源,避免AI任务过多占用资源影响到BMC的基础业务,一定程度上有助于保障BMC的基础业务的稳定性。
可选地,所述管理系统从所述BMC的资源中为第一AI任务分配第一资源,包括:所述管理系统根据配额为第一AI任务分配第一资源,所述第一资源不超过所述配额。
通过这种可选方式,用配额限制了AI任务能获得的资源,从而避免AI任务使用的资源超过上限而影响BMC的基础业务。
可选地,所述配额包括总体配额,所述总体配额指示所述至少一个AI任务总体的配额,所述管理系统根据配额为第一AI任务分配第一资源,包括:所述管理系统根据所述总体配额,为所述至少一个AI任务分配总体资源,所述总体资源不超过所述总体配额:所述管理系统从所述总体资源中分配所述第一资源。
通过引入上述总体配额的机制,有助于对BMC内所有AI任务的总体资源开销进行管控,便于对各个AI任务统一进行资源管理。
可选地,所述配额还包括比例配额,所述比例配额指示所述第一AI任务的配额占所述总体配额的比例,所述管理系统从所述总体资源中分配所述第一资源,包括:所述管理系统根据所述比例配额,从所述总体资源中分配所述第一资源,所述第一资源不超过所述总体资源与所述比例配额的乘积。
通过这种方式,更加精细地限制了各个AI任务分别使用的资源,有助于提高总体的资源利用率。
可选地,所述管理系统根据配额为第一AI任务分配第一资源之后,所述方法还包括:如果所述第一AI任务占用的资源超过所述配额,所述管理系统杀死所述第一AI任务;或者,如果所述第一AI任务占用的资源超过所述配额,所述管理系统将所述BMC的内存中所述第一AI任务的数据保存至swap分区中,并释放所述数据在所述BMC的内存中占用的空间。
通过这种方式,在AI任务过多占用资源时及时释放其占用的资源,便于为其他AI任务留出可分配的资源,从而有助于提高总体的资源利用率。
可选地,所述第一资源是所述至少一个AI任务中第二AI任务原本占用的资源,所述第二AI任务的优先级低于所述第一AI任务的优先级,所述管理系统从所述BMC的资源中为第一AI任务分配第一资源,包括:若剩余资源不满足所述第一AI任务的资源需求,所述管理系统杀死所述第二AI任务,从所述第二AI任务释放的资源中为第一AI任务分配第一资源;或者,若剩余资源不满足所述第一AI任务的资源需求,所述管理系统调用控制组Cgroup从而调整所述第一AI任务的资源和所述第二任务的资源。
通过这种方式,允许高优先级的AI任务抢占低优先级的AI任务的资源,保证高优先级的AI任务获得更多资源,从而满足服务质量(QoS)的需求。
可选地,所述管理系统使用所述第一资源执行所述第一AI任务之前,所述方法还包括:所述管理系统基于历史信息确定所述BMC的业务周期,所述业务周期指示业务的资源开销与时间之间的对应关系;所述管理系统根据所述业务周期从所述至少一个AI任务中确定第一AI任务。
通过这种方式,由于选择待执行的AI任务时考虑了基础业务的业务周期,有助于在基础业务高峰期时避免执行资源开销大的AI任务,从而保障BMC基础业务的稳定性。
可选地,所述业务周期包括所述BMC的基础业务的业务周期以及所述至少一个AI任务的业务周期,所述管理系统根据所述业务周期从所述至少一个AI任务中确定第一AI任务,包括:所述管理系统从所述基础业务的业务周期中,确定所述基础业务的高峰期,所述高峰期是指业务周期中资源开销的最大值对应的时间段;所述管理系统从所述至少一个AI任务的业务周期中,确定所述至少一个AI任务的高峰期;所述管理系统根据所述基础业务的高峰期以及所述至少一个AI任务的高峰期确定所述第一AI任务,所述第一AI任务的高峰期与所述基础业务的高峰期不同。
通过这种方式,有助于实现错峰处理,避免AI任务的资源开销出现高峰期时基础业务的资源开销也出现高峰期,从而降低AI任务的执行对基础业务造成的影响。
可选地,所述管理系统使用所述第一资源执行所述第一AI任务,包括:所述管理系统根据所述BMC的基础业务的业务周期确定目标时间,所述目标时间位于所述基础业务的高峰期之外的时间段;所述管理系统在所述目标时间,使用所述第一资源执行所述第一AI任务。
通过这种方式,能让AI任务的执行时间与基础业务的高峰期错开,避免在基础业务的高峰期执行AI任务,从而避免AI任务对基础业务造成影响。
可选地,所述管理系统基于历史信息确定所述管理系统的业务周期,包括:所述管理系统采用回归学习算法基于历史信息确定所述业务周期。
通过这种方式,能够动态地自动地学习出业务周期,降低配置复杂度。
可选地,所述管理系统执行所述第一AI任务,包括:所述管理系统按照所述第一AI任务的执行计划执行所述第一AI任务,所述执行计划指示开始执行所述第一AI任务的时间点。
通过这种方式,支持设定AI任务的执行计划,提高灵活性。
可选地,所述执行计划包括定时执行计划以及按需执行计划,所述定时执行计划指示在预设时间点执行所述第一AI任务或者每隔预设周期执行所述第一AI任务,所述按需执行计划指示当接收到指令时执行所述第一AI任务。
通过这种方式,支持设定定时执行计划以及按需执行计划,满足更多的应用场景。
可选地,所述至少一个AI任务为多个AI任务,所述管理系统获取至少一个AI任务之后,所述方法还包括:所述管理系统根据所述多个AI任务的优先级,确定所述多个AI任务的执行顺序,所述AI任务的优先级越高,所述AI任务越先执行。
通过这种方式,支持基于优先级来执行AI任务,有助于提高资源的总体利用率。
第二方面,提供了一种管理系统,该管理系统具有实现上述第一方面或第一方面任一种可选方式的功能。该管理系统包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面任一种可选方式所提供的方法。
在一些实施例中,管理系统中的单元通过软件实现,管理系统中的单元是程序模块。在另一些实施例中,管理系统中的单元通过硬件或固件实现。第二方面提供的管理系统的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第三方面,提供了一种BMC,该BMC包括上述第二方面所述的管理系统、至少一个AI应用和基础AI库。
第四方面,提供一种BMC,该BMC包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,使得该BMC执行上述第一方面或者第一方面的各种可选方式提供的方法。
第五方面,提供一种计算设备,该计算设备例如为服务器,该计算设备包括上述第四方面提供的BMC。
第六方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令指示该BMC执行上述第一方面或者第一方面的各种可选方式提供的方法。
第七方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。BMC的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该BMC执行上述第一方面或者第一方面的各种可选方式提供的方法。
第八方面,提供一种芯片,该芯片可以包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现上述第一方面或者第一方面的各种可选方式提供的方法。
附图说明
图1是本申请实施例提供的一种BMC的系统架构的示意图;
图2是本申请实施例提供的一种任务调度方法的流程图;
图3是本申请实施例提供的一种任务调度方法的流程图;
图4是本申请实施例提供的一种无管理系统时资源开销的效果图;
图5是本申请实施例提供的一种有管理系统时资源开销的效果图;
图6是本申请实施例提供的一种BMC的结构示意图;
图7是本申请实施例提供的一种管理系统的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本申请实施例涉及的一些概念做解释说明。
BMC:支持行业标准的智能平台管理接口(Intelligent Platform ManagementInterface,IPMI)规范。该规范描述了已经内置到主板上的管理功能.这些功能包括:本地和远程诊断、控制台支持、配置管理、硬件管理和故障排除。BMC提供下列功能:与IPMI 1.0的兼容性、用于风扇转速监视的转速计输入、用于风扇转速控制的脉冲宽度调节器输出、用于前面板按钮和开关的按钮输入、与服务器控制台端口进行多路传输的一个串行端口、远程访问和智能机箱管理总线(Intelligent Chassis Management Bus,ICMB)支持、三个I2C主端口和备用端口(其中一个端口用于智能机箱管理总线)、LPC(Low Pin Count,低针计数)总线提供对三种KCS(Keyboard Controller Style,键盘控制器方式)和BT(One-BlockTransfer,单块传输)接口的访问、32位ARM7处理器、160针LQFP(Low Profile Flat Pack,薄形扁平封装)、为下列接口提供固件:IPMI、IPMB。
批处理(batch processing):计算机系统执行程序的一种方式,能够在非人工干预的情况下按照指定的规则有序执行一系列预先定义或随机输入的程序。批处理执行方式通常用于各类调度系统,它能够提高资源利用率、降低人机交互开销。
作业(job):完成一项特定的计算业务所需要执行的一组程序实例的集合,通常对应于一台或多台计算机上的一组进程、容器或其他运行时实体。在批处理系统中,作业也称为“批作业”(batch job)。
任务(task):一个作业内程序实例集合中的实例个体。通常,任务对应于一台计算机上的一个进程、容器或其他运行时实体。
下面对AI技术在BMC的应用做简单介绍。
当前的服务器设备中存在独立的管理模块BMC。随着云与大数据集群规模的日益增长,以及云边协同等场景的逐渐增多,为了适应多种不同的场景中运维的快速需求响应(如故障预测、故障自愈、性能亚健康发现等),越来越多的厂商为BMC中增加了多种基于机器学习、深度学习等多种AI应用。其中,BMC通常采用烟囱式AI应用的架构。烟囱式是指,各个AI应用之间没有统一的管控,相互之间没有联通、数据更没有整合,各个AI应用像一个个烟囱,因此称其为“烟囱式应用”。
然而,设备中的BMC受限于自身极为有限的资源以及业务处理能力,难以承载日益增加的AI应用,因为AI应用往往大量消耗着系统资源与处理能力。
为了解决该问题,主要是基于嵌入式系统的处理芯片(如ARM64、ARM32等)通过重写业界的通用算法数学库,数据处理模块等,尽可能地对这些库、模块进行基于指令集的优化以降低算法库在被调用时所占的内存空间以及计算开销等,并由对应的智能运维等AI应用直接调用这些数学库,从而尽可能地降低AI应用在执行时的资源开销。
然而,这种方式难以解决当BMC系统中的AI应用越来越多时的多AI应用竞争系统资源的问题,过多的AI应用在并发执行时依然会对BMC系统带来过大的负载压力从而(甚至)会影响系统中基础的系统管理功能的执行。
举例说明,BMC总内存1C 512M,其中主体系统运行,加常规系统业务执行时已占用70%CPU,380M内存,由于需要引入AI推理应用如:内存故障预测(15%,50M)、机械硬盘(hard disk drive,HDD)故障预测(5%,50M)、固态硬盘(solid state drive,SSD)故障预测(5%,50M)以及联邦学习(20%,75M)等,如果这4个AI推理应用在同一时间的条件都被触发,就会并发执行,这时CPU:70%+15%+5%+5%+20%=115%,内存:380+50+50+50+75=605M,均已超过了资源使用上限,势必影响到基础核心的BMC系统与业务的执行。
有鉴于此,本实施例提出了一种BMC内对于AI应用中与其AI任务解耦的管理思路,并给出了相应的AI任务管理系统设计,通过资源管控、任务调度等方式来弥补以上方案的不足。通过本实施例提供的方案,有助于BMC在有限资源中高效的执行多个AI应用,并限制AI应用的资源开销,避免影响BMC基础业务应用的执行。
下面对本申请实施例的系统架构举例说明。
附图1是本申请实施例提供的一种BMC的系统架构的示意图。如附图1所示,BMC包括至少一个AI应用、管理系统和基础AI库。下面通过(1)至(3),对附图1中各个组件具体说明。
(1)AI应用
BMC内的AI应用例如为智能运维应用。例如,AI应用包括而不限于故障预测应用、性能分析应用、功耗分析应用等。故障预测应用用于根据AI算法预测BMC管理的系统硬件发生故障的概率。例如,故障预测应用包括而不限于内存故障预测应用以及硬盘故障预测应用。硬盘故障预测应用如HDD故障预测应用、SSD故障预测应用等。性能分析应用用于根据AI算法分析BMC管理的系统硬件的性能。功耗分析应用用于根据AI算法分析BMC管理的系统硬件的功耗。可选地,功耗分析应用还用于为系统各个硬件找到合理的功耗并将找到的功耗提供给BMC,BMC会将系统硬件的功耗调节至功耗分析应用找到的功耗。
(2)管理系统
管理系统也称AI任务以及模型管理系统。管理系统用于AI任务进行资源分配以及任务调度。具体地,管理系统会监控BMC内AI任务的资源消耗情况以及BMC的基础业务的资源消耗情况,结合配额、优先级、资源消耗情况、执行计划、业务周期等智能化动态的进行作业调度。管理系统是软件。
管理系统为BMC内AI运行时框架。管理系统为BMC提供了统一的AI应用安全、高性能执行的运行时管控能力,避免了AI应用由于资源开销较大,多个AI应用无序并发产生资源竞争,影响BMC的基础业务有效执行的问题。管理系统包括历史信息回归学习模块、动态资源配额管理模块以及任务管理(调度执行)模块。
历史信息回归学习模块用于基于历史信息进行自学习回归优化。具体地,历史信息回归学习模块基于特征为内存密集型(MEM intensive,如训练、联邦学习等)或CPU密集型(CPUintensive,如推理,batch数据处理)的系统业务周期,合理选择AI任务进行调度。开启历史信息的自学习回归优化功能后,管理系统会自动学习当前BMC的负载周期,识别不同场景下的负载特征,动态驱动AI任务(如区分训练、推理等),在合理资源使用时间段进行区分调度执行。
动态资源配额管理模块用于对各个AI任务总体的资源开销进行管控,从而实现资源总包以及总体资源封顶的功能。动态资源配额管理模块在执行时,会基于资源配额动态管控AI任务的资源分配与调整。
任务管理(调度执行)模块支持AI任务的执行计划管理。执行计划包括定时执行计划、按需执行计划等。任务管理(调度执行)模块还支持基于优先级的执行管理。任务管理(调度执行)模块配合动态资源配额管理模块提高资源的利用率。
(3)基础AI库
基础AI库包括基础数学库以及数据采集与处理模块。基础数学库包括至少一个模型。基础数学库中的模型例如是通过机器学习算法训练后的模型。例如,基础数学库包括联邦学习(Collaborative Metric Learning,CML)模型、神经网络(Neural Network,NN)模型、随机森林模型、K均值(K-means)模型等。
下面对本申请实施例的方法流程举例说明。
附图2是本申请实施例提供的一种任务调度方法200的流程图。方法200包括以下步骤S201至步骤S205。
在一些实施例中,方法200所基于的系统架构如上述附图1所示。例如,结合附图1来看,方法200中的BMC为附图1中的BMC,方法200中的至少一个AI应用包括附图1中的AI应用1、AI应用2、AI应用3和AI应用n,方法200中的基础AI库为附图1中的基础AI库。
方法200涉及多个AI任务以及多个AI应用。为了区分不同的AI任务,用“第一AI任务”、“第二AI任务”区分描述不同的AI任务。为了区分不同的AI应用,用“第一AI应用”、“第二AI应用”区分描述不同的AI应用。
可选地,方法200用于多个AI应用并发执行的场景。为了便于读者理解,方法200以管理系统与第一AI应用交互为例进行说明。管理系统与其他AI应用的交互可参考与第一AI应用的交互流程。
步骤S201、第一AI应用生成并向管理系统发送请求。
第一AI应用为BMC中的一个AI应用。第一AI应用的请求用于指示管理系统执行至少一个AI任务。在一些实施例中,第一AI应用的请求包括基础AI库中至少一个模型的标识以及模型的至少一个输入参数。
模型的标识用于标识基础AI库中对应的模型。第一AI应用通过在请求中携带模型的标识,从而指明调用基础AI库中的哪一种模型进行计算。例如,请求包括随机森林模型的标识,请求指示管理系统调用随机森林模型从而执行AI任务。
请求中的输入参数包括BMC管理的系统硬件的属性,属性的具体类型与第一AI应用具体的业务逻辑以及针对的系统硬件的类型相关。以系统硬件为硬盘为例,当第一AI应用为故障预测应用时,请求携带的输入参数用于预测硬盘是否故障,具体是硬盘的健康状况信息,例如硬盘的扫描错误数量、重新分配计数和试用计数等。又如,第一AI应用为性能分析应用时,请求携带的输入参数为硬盘的性能参数,比如硬盘的转速、容量、平均寻道时间、传输速率等。
步骤S202、管理系统响应于第一AI应用的请求,使用基础AI库生成至少一个AI任务。
AI任务是调用基础AI库中的模型进行运算的任务。AI任务有时也称为AI作业。AI任务包括而不限于训练任务以及推理任务。训练任务包括而不限于计算模型的梯度值、计算模型参数等。推理任务为通过训练好的模型进行推理的任务。在一些实施例中,请求指示调用基础AI库中的分类模型,分类模型对应的推理任务为确定类别或者类别的概率。在另一些实施例中,请求指示调用基础AI库中的回归模型,回归模型对应的推理任务为确定目标值。
在一些实施例中,AI任务具体为根据AI应用的请求中的输入参数、采用AI应用的请求中指示的模型进行运算的任务。具体地,管理系统从第一AI应用的请求中获取模型的标识以及模型的输入参数。管理系统根据模型的标识,从基础AI库中的至少一个模型中选择对应的模型,将请求中携带的输入参数输入至模型,通过模型对输入参数进行处理。其中,通过模型进行处理的过程即为AI任务。
步骤S203、管理系统从BMC的资源中为第一AI任务分配第一资源。
BMC的资源包括而不限于:计算资源、存储资源和网络资源。计算资源包括而不限于CPU、内存、GPU等。存储资源包括硬盘,如HDD、SSD等。网络资源包括带宽、网际互连协议(internet protocol,IP)地址、端口号等。
第一AI任务是至少一个AI任务中的一个AI任务。第一资源是指为第一AI任务分配的资源。第一资源是BMC的资源中的部分资源。例如,第一资源是一定量的CPU和一定量的内存空间。
在一些实施例中,管理系统基于资源配额(resource quota)的机制来管控AI任务占用的资源。具体地,配额用于对AI任务的资源消耗总量提供限制。管理系统会监控AI任务占用的资源,从而保证AI任务的资源用量不超过限额。例如,管理系统在针对第一AI任务做资源分配时,管理系统根据配额为第一AI任务分配第一资源。第一资源不超过配额。例如,如果第一AI任务所需的资源是内存,而配额是n兆,那么管理系统分配的内存(第一资源)会不超过n兆。在一些实施例中,配额是BMC的配置文件的内容。配额是用户预先设定的。
管理系统通过配额来管理AI任务的资源,能够防止AI任务不加限制的使用资源,从而避免AI任务使用的资源超过上限而影响BMC的基础业务。
资源配额的机制包括多种实现方式,下面结合两种实现方式举例说明。
实现方式一、将至少一个AI任务作为一个总体,通过为这些AI任务引入总体配额从而实现总资源封顶的功能。
具体地,上述配额包括总体配额,管理系统在做资源分配时,会根据总体配额,为至少一个AI任务分配总体资源。在针对第一AI任务进行资源分配时,管理系统会从总体资源中分配第一资源。
总体配额指示至少一个AI任务总体的配额。例如,总体配额为各个AI任务的配额的和。管理系统为至少一个AI任务分配的总体资源不超过总体配额。其中,单个AI任务分配的资源是总体资源中的一部分,单个AI任务分配的资源最多为总体资源。例如,在执行一个AI任务的情况下,管理系统为这一个AI任务分配的资源最多为总体配额。在并发执行多个AI任务的情况下,管理系统为每个AI任务分配的资源均小于总体配额,且,管理系统为所有AI任务分配的资源之和不超过总体配额。
例如,上述资源为内存,总体配额为20M。如果目前共计有n个AI任务,那么管理系统为n个AI任务总共分配20M内存,各个AI任务相当于在这20M内存中分资源。如果当前只有一个AI任务需要执行,那么这一个AI任务最多获得20M内存。如果当前并发执行多个AI任务,那么为每一个AI任务分配的内存均小于20M,且为所有AI任务分配的内存之和不超过20M。
通过引入上述总体配额的机制,有助于对BMC内所有AI任务的总体资源开销进行管控。
在一些实施例中,在总体配额的基础上为各个AI任务引入对应的比例配额。具体地,上述配额不仅包括总体配额,还包括比例配额。比例配额也称资源配比,比例配额指示一个AI任务的配额占总体配额的比例,比例配额越大的AI任务能获得的资源越多。管理系统在针对第一AI任务进行资源分配时,会根据第一AI任务的比例配额,从总体资源中分配第一资源。其中,第一AI任务的比例配额指示第一AI任务的配额占总体配额的比例。第一资源不超过总体资源与比例配额的乘积。例如,资源为内存,总体配额为20M,如果第一AI任务的比例配额为0.7,则第一资源不超过14M。
在一些实施例中,比例配额是在多个AI任务并发执行的情况下使用的。具体地,如果管理系统要执行多个AI任务,比如需要执行的AI任务不仅包括上面举例的第一AI任务,还包括第二AI任务等其他AI任务,那么管理系统根据第一AI任务的比例配额为第一AI任务分配第一资源。如果管理系统执行第一AI任务这一个AI任务,那么管理系统可选地为第一AI任务分配超过比例配额的资源,且为第一AI任务分配的资源最多为所有AI任务的总体资源。
实现方式二、为每个AI任务分别设置具体的配额,在针对第一AI任务进行资源分配时,管理系统会根据AI任务与配额之间的对应关系,为第一AI任务分配第一资源。其中,第一资源不超过第一AI任务的配额。
在一些实施例中,当AI任务占用的资源超过配额时,管理系统会对AI任务执行指定的行为从而释放AI任务过多占用的资源。指定的行为包括而不限于杀死(kill)job、内存转交换(swap)分区等。例如,如果第一AI任务占用的资源超过配额,管理系统杀死第一AI任务,从而释放第一AI任务占用的资源。又如,上述资源包括内存,如果第一AI任务占用的资源超过配额,管理系统将BMC的内存中第一AI任务的数据保存至swap分区中,并释放第一AI任务的数据在BMC的内存中占用的空间,从而腾出内存空间供第一AI任务之外的其他AI任务使用。
在一些实施例中,管理系统会基于AI任务的优先级管控AI任务的资源分配。具体地,允许高优先级的AI任务抢占低优先级的AI任务的资源。其中,资源抢占的实现方式包括而不限于kill任务或者调用linux中的控制组(control groups,Cgroup)动态资源调整等。例如,存在第一AI任务和第二任务,第二AI任务的优先级低于第一AI任务的优先级。管理系统针对第一AI任务进行资源分配时,若剩余资源不满足第一AI任务的资源需求,管理系统杀死第二AI任务,从第二AI任务释放的资源中为第一AI任务分配第一资源;或者,若剩余资源不满足第一AI任务的资源需求,管理系统调用Cgroup从而调整第一AI任务的资源和第二任务的资源。通过这种方式,有助于提高资源的利用率。
在一些实施例中,管理系统还通过历史信息回归学习,选择合理的AI任务在合理的时间段执行。具体地,管理系统基于历史信息确定BMC的业务周期;管理系统根据业务周期从至少一个AI任务中确定第一AI任务。
历史信息包括业务在多个历史时间段的资源开销。其中,业务包括BMC的基础业务以及AI任务。基础业务例如监控风扇的状态、日志记录等。BMC的基础业务的历史信息包括基础业务在历史时间段的资源开销。AI任务的历史信息包括AI任务在历史时间段的资源开销。在一些实施例中,历史信息是BMC预先采集的。例如,BMC中基础AI库中的数据采集与处理模块预先采集并保存系统硬件的历史信息。
业务周期指示业务的资源开销与时间之间的对应关系。例如,业务周期的数据形式是一条曲线,曲线的波峰为资源开销的最大值,曲线的波谷为资源开销的最小值。在一些实施例中,业务周期包括CPU、内存等多个维度。CPU维度的业务周期指示业务对CPU的开销与时间之间的对应关系。内存维度的业务周期指示业务对内存的开销与时间之间的对应关系。在一些实施例中,业务周期包括BMC的基础业务的业务周期以及至少一个AI任务的业务周期。
在一些实施例中,管理系统采用回归学习算法基于历史信息确定业务周期。回归学习算法例如是时间序列预测算法。时间序列预测算法包括而不限于差分整合移动平均自回归模型(Autoregressive Integrated Moving Average model,ARIMA)、指数平滑、周期识别算法等等。
在一些实施例中,管理系统基于学习出的基础业务的高峰期来选择AI任务调度。例如,管理系统从基础业务的业务周期中,确定基础业务的高峰期;管理系统从至少一个AI任务的业务周期中,确定至少一个AI任务的高峰期;管理系统根据基础业务的高峰期以及至少一个AI任务的高峰期确定第一AI任务。
高峰期是指业务周期中资源开销的最大值对应的时间段。比如,业务周期是一条曲线,曲线的纵坐标表示资源开销,曲线的横坐标表示时间,高峰期是曲线的波峰对应的时间段。
可选地,管理系统找到基础业务的高峰期和AI任务的高峰期之后,从至少一个AI任务中找到高峰期与基础业务的高峰期相错开的AI任务,调度找到的AI任务(第一AI任务)执行。换句话说,上述第一AI任务的高峰期与基础业务的高峰期不同。通过这种方式,有助于实现错峰处理,避免AI任务的资源开销出现高峰期时基础业务的资源开销也出现高峰期,从而降低AI任务的执行对基础业务造成的影响。
步骤S204、管理系统使用第一资源执行第一AI任务,从而得到执行结果。
执行结果是指执行第一AI任务得到的结果。具体地,执行结果为基础AI库中的模型的输出参数。例如,执行结果包括而不限于二分类结果、分类的概率、预测的目标值等。例如,第一AI应用为SSD故障预测应用,管理系统调用的基础AI库中的模型是一个分类模型。在这种场景下,例如,执行结果是二分类结果,执行结果是0时表示SSD是正常盘,执行结果是1时表示SSD是故障盘。又如,执行结果是概率,执行结果的取值范围在(0,1)之间,执行结果越大表示SSD是故障盘的概率越大。
在一些实施例中,管理系统根据多个AI任务的优先级,确定多个AI任务的执行顺序。其中,AI任务的优先级越高,AI任务越先执行。例如,优先级包括三种,分别是高优先级、中优先级以及低优先级。所有AI任务按照优先级分为高优先级的AI任务、中优先级的AI任务以及低优先级的AI任务。管理系统会设置三种队列,分别是高优先级的队列、中优先级的队列以及低优先级的队列。每种队列用于缓存对应优先级的AI任务。管理系统要执行任务时,会优先获取并执行高优先级的队列中的任务。例如,管理系统首先判断高优先级的队列是否包含AI任务。如果高优先级的队列包含AI任务,则管理系统从高优先级的队列获取AI任务并执行。如果高优先级的队列不包含AI任务,则管理系统继续判断中优先级的队列是否包含AI任务。如果中优先级的队列不包含AI任务,则管理系统继续判断低优先级的队列是否包含AI任务。通过支持基于优先级的执行管理,有助于提高资源的利用率。
在一些实施例中,管理系统基于历史学习得出基础业务的高峰期,确定AI任务的执行时间。具体地,管理系统根据BMC的基础业务的业务周期确定目标时间;管理系统在目标时间,使用第一资源执行第一AI任务。其中,目标时间是第一AI任务的执行时间点,目标时间位于基础业务的高峰期之外的时间段。通过这种方式,能让AI任务的执行时间与基础业务的高峰期错开,避免在基础业务的高峰期执行AI任务,从而避免AI任务对基础业务造成影响。
在一些实施例中,支持设定AI任务的执行计划。执行计划指示开始执行AI任务的时间点。执行计划包括而不限于定时执行计划以及按需执行计划。执行计划例如是预先设定的配置。
例如,针对第一AI任务来说,管理系统获取第一AI任务的执行计划,管理系统按照第一AI任务的执行计划执行第一AI任务。执行计划指示开始执行第一AI任务的时间点。
可选地,定时执行计划指定一个具体时间点,或者指定一个时间周期。例如,第一AI任务的执行计划为定时执行计划,定时执行计划指示在预设时间点执行第一AI任务,管理系统会从定时执行计划中获取该预设时间点,在预设时间点开始执行第一AI任务。又如,第一AI任务的执行计划为定时执行计划,定时执行计划指示每隔预设周期执行第一AI任务,管理系统会从定时执行计划中获取该预设周期,启动定时器,每隔预设周期开始执行第一AI任务。
又如,第一AI任务的执行计划为按需执行计划,按需执行计划指示当接收到指令时执行第一AI任务。指令用于指示管理系统开始执行第一AI任务。当上层业务应用或者AI应用需要时,可以生成并向管理系统发送指令。管理系统接收到指令时,会按照该按需执行计划开始执行第一AI任务。
步骤S205、管理系统向第一AI应用提供执行结果。
管理系统提供执行结果的实现方式包括很多种。例如,管理系统向第一AI任务发送执行结果。在一种可能的实现中,管理系统提供执行结果的查询接口。第一AI应用调用查询接口,向管理系统发送查询请求。管理系统响应于查询请求,向第一AI应用发送查询响应,查询响应包括执行结果。第一AI应用接收查询响应,从查询响应获得执行结果。又如,管理系统将执行结果保存至指定地址,第一AI应用访问指定地址从而获得执行结果。
本实施例提供的方法,通过在BMC内引入了针对AI任务的管理系统,从而将AI应用与AI任务以及底层的基础AI库解耦开来,由管理系统来统一为各个AI任务进行资源管理以及任务调度,从而强化了对AI任务的管控,防止AI任务不加限制的使用超过期望的资源,避免AI任务过多占用资源影响到BMC的基础业务,一定程度上有助于保障BMC的基础业务的稳定性。
下面结合一个实例,对上述方法200举例说明。附图2所示方法200中的资源为实例1中的CPU和内存。附图2所示方法200中的第一AI任务是实例1中的AI-1,方法200中的第二AI任务是实例1中的AI-2。
实例1
请参考附图3,附图3是实例1的流程图。首先向BMC的管理系统输入配置文件,然后执行下述步骤301至步骤313。
配置文件包括BMC内AI特性的总体配额以及每个AI任务各自的比例配额。其中,AI特性的总体配额包括CPU维度的总体配额以及内存维度的总体配额。CPU维度的总体配额为50%CPU。内存维度的总体配额为20M。BMC中包含AI任务内存故障预测(简称AI-1)和AI任务HDD故障预测(简称AI-2)以及AI-3。配置文件中设定AI-1的比例配额为0.7,AI-2的比例配额为0.2,AI-3的比例配额为0.1。AI-1优先级高,AI-2优先级中,AI-3优先级低。
步骤301、管理系统启动加载AI任务的设定配额。具体地,管理系统为各个AI任务共分配20M内存,或最多允许AI任务占用50%CPU。
步骤302、管理系统检测是否开启历史信息回归学习。如果开启历史信息回归学习,则执行下述步骤303。如果未开启历史信息回归学习,则执行下述步骤304。
步骤303、管理系统基于业务周期挑选Al-1,Al-2,Al-3。
步骤304、管理系统将Al-1,Al-2,Al-3加载至任务执行队列。
步骤305、管理系统执行任务Al-1、Al-2和Al-3(按配额设定执行)。具体地,如果AI-1没有执行,或者AI-1业务量较小资源占用较少,AI-2可占用超过20x0.3的内存、50%x0.3的CPU。如果AI-1、AI-2均正在执行,且计算密度均较大,则管理系统会将AI-1占用的CPU限制在(50%x0.7),将AI-1占用的内存限制在(20Mx0.7);管理系统会将AI-2占用的CPU限制在(50%x0.3),将AI-2占用的内存限制在(20Mx0.3)。具体参见附图3中的步骤306至步骤313。
步骤306、任务AI-2需要使用额外资源。
步骤307、管理系统检测总体配额对应的总体资源是否剩余。如果总体资源有剩余,那么进入步骤308。如果总体资源没有剩余,那么进入步骤313。
步骤308、管理系统确定任务AI-1未消耗完总体资源。
步骤309、管理系统将总体资源中的剩余资源(AI-1未使用的资源)分配给AI-2。
步骤310、任务AI-1需要消费更多资源(满配额使用)。
步骤311、管理系统将AI-2的资源下降至(50%0.2),将AI-2内存中额外数据保存在Swap中。
步骤312、AI-1任务满配额使用给定资源。
步骤313、AI-2保持既定配额执行(不额外分配资源)。
上述方法中,当开启历史信息的自学习回归优化功能后,管理系统会自动学习当前设备的负载周期,识别不同场景下的负载特征,动态驱动AI作业(如区分训练、推理等),在合理资源使用时间段进行区分调度执行。
下面结合两个附图描述本实施例的有益效果。
附图4和附图5中的横坐标均表示时间。图4和图5中的纵坐标均表示AI任务的资源开销(如内存使用量或内存比例)。图4和图5中的两个曲线分别表示AI-1在各个时间段的资源开销以及AI-2在各个时间段的资源开销。图4示出了无管理系统时的资源开销。图5示出了有管理系统调度时的资源开销。图4加粗直线也称期望封顶值,含义是期望的资源开销最大值,即期望所有AI任务最多占用多少资源。附图5加粗直线表示总体配额,也称AI任务总包,单位为M。
请参考附图4,在没有管理系统参与资源分配与任务调度时,AI应用资源开销大,缺乏管控会产生资源竞争,并发执行时会占用额外系统资源影响BMC基础系统的执行。具体地,如附图4所示,AI-1的资源开销已超过了期望的资源开销最大值,此外AI-1和AI-2经常出现并发执行的情况。
请参考附图5,通过引入了AI任务的管理系统,管理系统有序的对多AI作业并发执行进行管控,并错开基于历史学习得出的业务高峰期,保障BMC基础系统的基础能力稳定运行以及资源消耗大的AI作业正确执行。
下面对BMC的基本硬件结构举例说明。
附图6是本申请实施例提供的一种BMC的结构示意图。附图6所示的BMC600用于实施上述附图2或附图3描述的方法。
可选地,结合附图1来看,附图6所示的BMC600是附图1中的BMC。
BMC600包括至少一个处理器601、通信总线602、存储器603以及至少一个网络接口604。
处理器601例如是通用中央处理器(central processing unit,CPU)、网络处理器(networkprocesser,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-networkprocessing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器601包括专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complex programmablelogic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线602用于在上述组件之间传送信息。通信总线602可以分为地址总线、数据总线、控制总线等。为便于表示,附图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器603例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electricallyerasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-onlymemory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的计算机指令并能够由计算机存取的任何其它介质,但不限于此。存储器603例如是独立存在,并通过通信总线602与处理器601相连接。存储器603也可以和处理器601集成在一起。
网络接口604使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口604包括有线网络接口,还可以包括无线网络接口。其中,有线网络接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线网络接口可以为无线局域网(wirelesslocal area networks,WLAN)接口,蜂窝网络网络接口或其组合等。
在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,如附图6中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,BMC600可以包括多个处理器,如附图6中所示的处理器601和处理器605。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,BMC600还可以包括输出设备和输入设备。输出设备和处理器601通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquidcrystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathoderay tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器601通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
可选地,处理器601通过读取存储器603中保存的计算机指令610实现上述实施例中的方法,或者,处理器601通过内部存储的计算机指令实现上述实施例中的方法。在处理器601通过读取存储器603中保存的计算机指令610实现上述实施例中的方法的情况下,存储器603中保存实现本申请实施例提供的方法的计算机指令。
处理器601实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
附图7是本申请实施例提供的一种管理系统70的结构示意图。附图7所示的管理系统70例如实现方法200中管理系统的功能。
请参考附图7,管理系统70包括处理单元701和提供单元702。管理系统70中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。管理系统70中的各个单元用于执行上述方法200中管理系统的相应功能。具体地,处理单元701用于支持管理系统70执行S202至S204。提供单元702用于支持管理系统70执行S205。
附图7所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。附图7中上述各个单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。例如,采用软件实现时,上述处理单元701可以是由附图6中的至少一个处理器601读取存储器603中存储的程序代码后,生成的软件功能单元来实现。附图7中上述各个单元也可以由管理系统70中的不同硬件分别实现,例如处理单元701由附图6中的至少一个处理器601中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,而提供单元702由附图6中至少一个处理器601中的其余部分处理资源(例如多核处理器中的其他核),或者采用现场可编程门阵列(field-programmable gate array,FPGA)、或协处理器等可编程器件来完成。或者,提供单元702由附图6中的网络接口604实现。显然上述功能单元也可以采用软件硬件相结合的方式来实现,例如提供单元702由硬件可编程器件实现,而处理单元701是由CPU读取存储器中存储的程序代码后,生成的软件功能单元。
在本申请实施例的描述中,除非另有说明,“至少一个”的含义是指一个或多个。“多个”的含义是指两个或两个以上。例如,多个AI应用是指两个或两个以上的AI应用。A参考B,指的是A与B相同或者A为B的简单变形。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上该,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (22)

1.一种任务调度方法,其特征在于,所述方法应用于基板管理控制器BMC中,所述BMC包括至少一个人工智能AI应用、管理系统和基础AI库,所述方法包括:
所述管理系统响应于所述至少一个AI应用中第一AI应用的请求,使用所述基础AI库生成至少一个AI任务;
所述管理系统从所述BMC的资源中为第一AI任务分配第一资源,所述第一AI任务是所述至少一个AI任务中的一个AI任务;
所述管理系统使用所述第一资源执行所述第一AI任务,从而得到执行结果;
所述管理系统向所述第一AI应用提供所述执行结果。
2.根据权利要求1所述的方法,其特征在于,所述管理系统从所述BMC的资源中为第一AI任务分配第一资源,包括:
所述管理系统根据配额为第一AI任务分配第一资源,所述第一资源不超过所述配额。
3.根据权利要求2所述的方法,其特征在于,所述配额包括总体配额,所述总体配额指示所述至少一个AI任务总体的配额,所述管理系统根据配额为第一AI任务分配第一资源,包括:
所述管理系统根据所述总体配额,为所述至少一个AI任务分配总体资源,所述总体资源不超过所述总体配额:
所述管理系统从所述总体资源中分配所述第一资源。
4.根据权利要求3所述的方法,其特征在于,所述配额还包括比例配额,所述比例配额指示所述第一AI任务的配额占所述总体配额的比例,所述管理系统从所述总体资源中分配所述第一资源,包括:
所述管理系统根据所述比例配额,从所述总体资源中分配所述第一资源,所述第一资源不超过所述总体资源与所述比例配额的乘积。
5.根据权利要求2所述的方法,其特征在于,所述管理系统根据配额为第一AI任务分配第一资源之后,所述方法还包括:
如果所述第一AI任务占用的资源超过所述配额,所述管理系统杀死所述第一AI任务;或者,
如果所述第一AI任务占用的资源超过所述配额,所述管理系统将所述BMC的内存中所述第一AI任务的数据保存至交换swap分区中,并释放所述数据在所述BMC的内存中占用的空间。
6.根据权利要求1所述的方法,其特征在于,所述第一资源是所述至少一个AI任务中第二AI任务原本占用的资源,所述第二AI任务的优先级低于所述第一AI任务的优先级,所述管理系统从所述BMC的资源中为第一AI任务分配第一资源,包括:
若剩余资源不满足所述第一AI任务的资源需求,所述管理系统杀死所述第二AI任务,从所述第二AI任务释放的资源中为第一AI任务分配第一资源;或者,
若剩余资源不满足所述第一AI任务的资源需求,所述管理系统调用控制组Cgroup从而调整所述第一AI任务的资源和所述第二任务的资源。
7.根据权利要求1所述的方法,其特征在于,所述管理系统使用所述第一资源执行所述第一AI任务之前,所述方法还包括:
所述管理系统基于历史信息确定所述BMC的业务周期,所述业务周期指示业务的资源开销与时间之间的对应关系;
所述管理系统根据所述业务周期从所述至少一个AI任务中确定第一AI任务。
8.根据权利要求7所述的方法,其特征在于,所述业务周期包括所述BMC的基础业务的业务周期以及所述至少一个AI任务的业务周期,所述管理系统根据所述业务周期从所述至少一个AI任务中确定第一AI任务,包括:
所述管理系统从所述基础业务的业务周期中,确定所述基础业务的高峰期,所述高峰期是指业务周期中资源开销的最大值对应的时间段;
所述管理系统从所述至少一个AI任务的业务周期中,确定所述至少一个AI任务的高峰期;
所述管理系统根据所述基础业务的高峰期以及所述至少一个AI任务的高峰期确定所述第一AI任务,所述第一AI任务的高峰期与所述基础业务的高峰期不同。
9.根据权利要求1所述的方法,其特征在于,所述管理系统使用所述第一资源执行所述第一AI任务,包括:
所述管理系统根据所述BMC的基础业务的业务周期确定目标时间,所述目标时间位于所述基础业务的高峰期之外的时间段;
所述管理系统在所述目标时间,使用所述第一资源执行所述第一AI任务。
10.根据权利要求7至9中任一项所述的方法,其特征在于,所述管理系统基于历史信息确定所述管理系统的业务周期,包括:
所述管理系统采用回归学习算法基于历史信息确定所述业务周期。
11.根据权利要求1所述的方法,其特征在于,所述管理系统执行所述第一AI任务,包括:
所述管理系统按照所述第一AI任务的执行计划执行所述第一AI任务,所述执行计划指示开始执行所述第一AI任务的时间点。
12.根据权利要求11所述的方法,其特征在于,所述执行计划包括定时执行计划以及按需执行计划,所述定时执行计划指示在预设时间点执行所述第一AI任务或者每隔预设周期执行所述第一AI任务,所述按需执行计划指示当接收到指令时执行所述第一AI任务。
13.根据权利要求1所述的方法,其特征在于,所述至少一个AI任务为多个AI任务,所述管理系统获取至少一个AI任务之后,所述方法还包括:
所述管理系统根据所述多个AI任务的优先级,确定所述多个AI任务的执行顺序,所述AI任务的优先级越高,所述AI任务越先执行。
14.一种管理系统,其特征在于,所述管理系统应用于基板管理控制器BMC中,所述BMC包括至少一个人工智能AI应用、管理系统和基础AI库,所述管理系统包括:
处理单元,用于响应于所述至少一个AI应用中第一AI应用的请求,使用所述基础AI库生成至少一个AI任务;
所述处理单元,还用于从所述BMC的资源中为第一AI任务分配第一资源,所述第一AI任务是所述至少一个AI任务中的一个AI任务;
所述处理单元,还用于使用所述第一资源执行所述第一AI任务,从而得到执行结果;
提供单元,用于向所述第一AI应用提供所述执行结果。
15.根据权利要求14所述的管理系统,其特征在于,所述处理单元,用于根据配额为第一AI任务分配第一资源,所述第一资源不超过所述配额。
16.根据权利要求15所述的管理系统,其特征在于,所述配额包括总体配额,所述总体配额指示所述至少一个AI任务总体的配额,所述处理单元,用于根据所述总体配额,为所述至少一个AI任务分配总体资源,所述总体资源不超过所述总体配额:从所述总体资源中分配所述第一资源。
17.根据权利要求16所述的管理系统,其特征在于,所述配额还包括比例配额,所述比例配额指示所述第一AI任务的配额占所述总体配额的比例,所述处理单元,用于根据所述比例配额,从所述总体资源中分配所述第一资源,所述第一资源不超过所述总体资源与所述比例配额的乘积。
18.根据权利要求15所述的管理系统,其特征在于,所述处理单元,还用于如果所述第一AI任务占用的资源超过所述配额,杀死所述第一AI任务;或者,如果所述第一AI任务占用的资源超过所述配额,将所述BMC的内存中所述第一AI任务的数据保存至swap分区中,并释放所述数据在所述BMC的内存中占用的空间。
19.根据权利要求14所述的管理系统,其特征在于,所述第一资源是所述至少一个AI任务中第二AI任务原本占用的资源,所述第二AI任务的优先级低于所述第一AI任务的优先级,所述处理单元,还用于若剩余资源不满足所述第一AI任务的资源需求,杀死所述第二AI任务,从所述第二AI任务释放的资源中为第一AI任务分配第一资源;或者,若剩余资源不满足所述第一AI任务的资源需求,调用控制组Cgroup从而调整所述第一AI任务的资源和所述第二任务的资源。
20.一种基板管理控制器BMC,其特征在于,所述BMC包括如权利要求14至19中任一项所述的管理系统、至少一个AI应用和基础AI库。
21.一种基板管理控制器BMC,其特征在于,包括:
处理器和存储器;
所述存储器,用于存储计算机指令;
所述处理器,用于执行所述存储器存储的计算机指令,使得所述BMC执行权利要求1至13任一所述的方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机指令,所述计算机指令指示基板管理控制器BMC执行权利要求1至13任一所述的方法。
CN202110044643.6A 2021-01-13 2021-01-13 任务调度方法及管理系统 Pending CN114764371A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110044643.6A CN114764371A (zh) 2021-01-13 2021-01-13 任务调度方法及管理系统
PCT/CN2021/141119 WO2022151951A1 (zh) 2021-01-13 2021-12-24 任务调度方法及管理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110044643.6A CN114764371A (zh) 2021-01-13 2021-01-13 任务调度方法及管理系统

Publications (1)

Publication Number Publication Date
CN114764371A true CN114764371A (zh) 2022-07-19

Family

ID=82363650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110044643.6A Pending CN114764371A (zh) 2021-01-13 2021-01-13 任务调度方法及管理系统

Country Status (2)

Country Link
CN (1) CN114764371A (zh)
WO (1) WO2022151951A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070255833A1 (en) * 2006-04-27 2007-11-01 Infosys Technologies, Ltd. System and methods for managing resources in grid computing
CN104301257B (zh) * 2014-09-17 2018-01-02 华为技术有限公司 一种资源分配方法、装置及设备
CN108052384B (zh) * 2017-12-27 2022-01-18 联想(北京)有限公司 一种任务处理方法、服务平台及电子设备
CN110995614B (zh) * 2019-11-05 2022-04-05 华为技术有限公司 一种算力资源分配的方法及装置
CN111367679A (zh) * 2020-03-31 2020-07-03 中国建设银行股份有限公司 人工智能算力资源复用方法及装置
CN111738488A (zh) * 2020-05-14 2020-10-02 华为技术有限公司 一种任务调度方法及其装置

Also Published As

Publication number Publication date
WO2022151951A1 (zh) 2022-07-21

Similar Documents

Publication Publication Date Title
CN106776005B (zh) 一种面向容器化应用的资源管理系统及方法
US7945913B2 (en) Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
US8910153B2 (en) Managing virtualized accelerators using admission control, load balancing and scheduling
CN111966500B (zh) 资源调度方法、装置、电子设备及存储介质
US20200174844A1 (en) System and method for resource partitioning in distributed computing
CN110221920B (zh) 部署方法、装置、存储介质及系统
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
JP2015146154A (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
WO2017010922A1 (en) Allocation of cloud computing resources
CN114741207A (zh) 一种基于多维度组合并行的gpu资源调度方法和系统
CN114787830A (zh) 异构集群中的机器学习工作负载编排
CN113946431B (zh) 一种资源调度方法、系统、介质及计算设备
CN112783659A (zh) 一种资源分配方法、装置、计算机设备及存储介质
CN115543577B (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
CN115396377B (zh) 对象存储的服务质量优化方法、装置、设备及存储介质
CN112181613A (zh) 异构资源分布式计算平台批量任务调度方法及存储介质
CN113032102A (zh) 资源重调度方法、装置、设备和介质
US11521042B2 (en) System and method to dynamically and automatically sharing resources of coprocessor AI accelerators
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
KR20230062566A (ko) 엣지 존의 컴퓨팅 노드와 인프라 노드 간의 자동 노드 대체 가능성
EP4189542A1 (en) Sharing of compute resources between the virtualized radio access network (vran) and other workloads
CN114741180A (zh) 机架管理系统、方法及控制器
CN109408230B (zh) 基于能耗优化的Docker容器部署方法及系统
US20230037293A1 (en) Systems and methods of hybrid centralized distributive scheduling on shared physical hosts
CN116339989A (zh) 一种混部服务器、混部服务器的资源管理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination