本申请涉及数据处理技术领域,尤其涉及一种算力资源分配的方法及装置。
背景技术:
在边缘推理应用场景中,存在集中部署多种人工智能(artificialintelligence,ai)业务到一个ai处理器上的场景。业务可能以容器、进程、线程维度为业务单元进行部署。
在多容器、多进程或者多线程业务运行在一个ai处理器时,为了保证关键业务的服务质量(qualityofservice,qos),需要提前再拉起业务时将芯片的ai算力资源“分割”给不同的业务单元。ai处理器在相应各个业务单元的ai请求时,可以按照指定的qos策略,保证优先级高的业务单元请求优先获得ai算力资源进行运算。
目前,一般采用虚拟化的方法,利用sr-iov技术,将设备资源虚拟成若干个vf设备,各个vf设备均分硬件资源(如图1所示)。然而,均分算力资源的方式并不能灵活地适应业务的弹性变化,使得算力资源利用效率低。
技术实现要素:
本申请实施例提供了一种算力资源分配的方法及装置,能够解决对不同业务均分算力资源导致的资源利用率低的问题。
第一方面,提供一种算力资源分配的方法,包括:计算第一业务单元累计使用的第一算力,所述第一业务单元为无优先级要求或优先级相同的多个业务单元中的一个;当所述第一算力大于预设算力时,停止对所述第一业务单元的第一业务进行处理,直至当调度周期次数达到第一阈值时,重新对所述第一业务进行处理。
可选地,预设算力可以是用户预先为不同业务单位设定的算力资源。
应理解,通过根据业务单元累计使用的算力资源来衡量该业务单元实际使用比例,不需要采用物理分割的方法分配算力资源,使得每个业务单元均可以暂时使用所用的ai核处理相关业务,提高了计算资源的利用效率。
结合第一方面,在第一方面的某些实现方式中,所述第一算力为每次处理所述第一业务单元的所述第一业务时所需的处理核的数量和处理时间的加权值累计后获得的。
结合第一方面,在第一方面的某些实现方式中,所述计算处理第一业务单元累计使用的第一算力,包括:接收第一请求消息,所述第一请求消息用于请求处理所述第一业务;根据所述第一请求消息计算当前处理第一业务所需的处理核的数量和处理时间;计算所述处理核的数量和处理时间加权值;对每次计算获得的所述加权值进行求和,获得所述第一算力。
结合第一方面,在第一方面的某些实现方式中,所述当所述第一算力大于预设算力时,停止对所述第一业务单元的第一业务进行处理,直至当调度周期次数达到第一阈值时,重新对所述第一业务进行处理,包括:当所述第一算力大于预设算力时,将所述第一比例和所述预设比例的差值映射为阻塞系数,并停止对所述第一业务进行处理;在每个调度周期对所述阻塞系数进行调整,直至当所述阻塞系数达到第二阈值时,所述调度周期的次数达到所述第一阈值,所述第一业务能够重新使用所述第一算力。
可选地,本申请实施例可以根据计算获得的业务单元累计消耗的算力资源和预设算力资源确定算力资源使用的超额程度,并且根据超额程度确定阻塞系数的值。
示例性的,当超额越严重时,该阻塞系数的值可以越大,在每个调度周期内,该阻塞系数的值均可以被减小特定数值,直至当阻塞系数减至第二阈值时,调度周期的次数达到第一阈值,算力资源已经充分被均衡给其他业务单元使用,此时,被暂时停止的业务可以重新被处理。
应理解,通过本申请实施例提供的算力资源分配的方法,可以灵活设置不同业务单元可以占用的算力资源,避免采用物理分割的方法为各个业务单元分配固定的、不可变更的算力资源,提高了算力资源的利用效率。
结合第一方面,在第一方面的某些实现方式中,所述当所述第一算力大于预设算力时,停止对所述第一业务单元的第一业务进行处理,直至当调度周期次数达到第一阈值时,重新对所述第一业务进行处理,包括:计算所述第一算力占总算力的第一比例;当所述第一比例小于预设比例时,停止对所述第一业务进行处理,直至当所述调度周期次数达到所述第一阈值时,重新对所述第一业务进行处理。
结合第一方面,在第一方面的某些实现方式中,当所述第一算力大于所述预设算力,且所述调度周期次数未达到所述第一阈值时,处理所述多个业务单元中除所述第一业务单元之外的其他业务单元中的业务。
第二方面,提供了一种算力资源分配的装置,其特征在于,所述装置包括任务控制单元和任务调度单元,其中,所述任务控制单元,用于计算第一业务单元累计使用的第一算力,所述第一业务单元为无优先级要求或优先级相同的多个业务单元中的一个;所述任务调度单元,用于当所述第一算力大于预设算力时,停止对所述第一业务单元的第一业务进行处理,直至当调度周期次数达到第一阈值时,重新对所述第一业务进行处理。
结合第二方面,在第二方面的某些实现方式中,所述第一算力为每次处理所述第一业务单元的所述第一业务时所需的处理核的数量和处理时间的加权值累计后获得的。
结合第二方面,在第二方面的某些实现方式中,所述装置还包括接收单元,所述接收单元,用于接收第一请求消息,所述第一请求消息用于请求处理所述第一业务;所述任务控制单元,还用于根据所述第一请求消息计算当前处理第一业务所需的处理核的数量和处理时间;计算所述处理核的数量和处理时间加权值;对每次计算获得的所述加权值进行求和,获得所述第一算力。
结合第二方面,在第二方面的某些实现方式中,所述任务调度单元,还用于当所述第一算力大于预设算力时,将所述第一比例和所述预设比例的差值映射为阻塞系数,并停止对所述第一业务进行处理;所述任务控制单元,还用于在每个调度周期对所述阻塞系数进行调整,直至当所述阻塞系数达到第二阈值时,所述调度周期的次数达到所述第一阈值,所述第一业务能够重新使用所述第一算力。
结合第二方面,在第二方面的某些实现方式中,所述任务控制单元,还用于计算所述第一算力占总算力的第一比例;所述任务调度单元,还用于当所述第一比例小于预设比例时,停止对所述第一业务进行处理,直至当所述调度周期次数达到所述第一阈值时,重新对所述第一业务进行处理。
结合第二方面,在第二方面的某些实现方式中,当所述第一算力大于所述预设算力,且所述调度周期次数未达到所述第一阈值时,所述任务调度单元,用于处理所述多个业务单元中除所述第一业务单元之外的其他业务单元中的业务。
第三方面,提供了一种通信装置,所述通信装置包括:至少一个处理器和通信接口,所述通信接口用于所述通信装置与其他通信装置进行信息交互,当程序指令在所述至少一个处理器中执行时,使得所述通信装置实现如第一方面中任一实现方式所述的方法。
第四方面,提供了一种计算机存储介质,所述计算机程序存储介质具有程序指令,当所述程序指令被直接或者间接执行时,使得如第一方面中任一实现方式所述的方法中在所述算力资源分配装置上的功能得以实现。
根据本申请实施例提供的算力资源分配的方法,通过采用业务单元累计的“占用时间”指标来衡量算力实际使用比例,取代了采用物理方法分割计算资源的做法,使得每个业务单元均可以暂时使用ai处理器内的所有ai核,提高计算资源的利用效率。此外,本申请实施例提供的算力资源的分配方法,基于累计算法,统计各业务单元已经占用的ai核的时间,并将其与实际使用的ai核的数量转化为计算资源占用指标,并结合用户预先为不同业务单元设定的配额比例,计算业务单元是否超额使用算力资源,根据超出配额的严重程度,确定阻塞系数。该算力资源分配的方法拜托了物理资源(ai核)个数的约束,可以设置任意分割的比例。
附图说明
图1示出了将设备虚拟为多个vf设备的示意图。
图2示出了一种ai算力资源分割应用架构图。
图3示出了本申请实施例提供的一种算力资源分配的方法。
图4示出了本申请实施例提供的算力资源分配的方法可能应用于的场景的示意图。
图5示出了本申请实施例提供的一种ai处理器的示意性结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解,首先对本申请实施例中可能出现的概念进行介绍。
1、容器(container)
容器是计算机操作系统中一种虚拟化技术。该技术使得进程运行于相对独立和隔离的环境(包含独立的文件系统、命名空间、资源视图等),从而能够简化软件的部署流程,增强软件的可移植性和安全性,并提高系统资源利用率。容器技术广泛应用于云计算领域的服务化场景。
2、进程和线程
进程时操作系统资源分配的基本单位;线程是任务调度和执行的基本单位(资源调度的最小单位)。就包含关系而言,一个进程内有多个线程,其执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,因而线程也被称为轻权进程或者轻量级进程。
3、任务(task)
一个作业内,程序实例集合中的实例个体,通常对应于一台计算机上的一个进程、容器或其他运行时实体。
由于目前算力资源分配一般采用虚拟化的方式,利用sr-iov技术,将设备资源虚拟成若干个vf设备,然后由该各个vf设备均分硬件资源。因此,其无法实现灵活地分配算力资源,示例性的,由于sr-iov的配置需要在系统启动阶段初始化,vf设备能力也在芯片设计阶段就设定完成,因此,通过虚拟化多个vf的方法,并不能灵活适应业务的弹性变化。以芯片支持的4个vf为例,当业务需要将算力资源由原来的1:1:1:1调整为2:3:1:1时,通过向该4个vf设备均分算力资源使得算力资源无法灵活分配,从而导致算力资源利用效率低的问题。
为了解决目前均分算力资源导致的算力资源利用率低的问题,本申请实施例提供了一种算力资源优化分配的方法,通过利用ai算力调度器算法,计算每个业务单元的ai请求所消耗的时间与占用ai核(core)个数的加权值,达到业务按照指定算力配比进行运行的目的,能够实现ai芯片在多业务场景下算力资源任意分割,提高算力资源的利用效率。
为便于理解,首先对本申请实施例提供的算力资源分配的方法可以应用的场景进行介绍。
本申请实施例提供的方法可以应用于多个不同优先级的业务单元几种部署到一个ai处理器,在该多个不同优先级的业务单元中存在部分优先级相同或者业务类型不需要谨记处理的业务单元,或者,多个优先级相同的业务单元集中部署在一个ai处理器上的场景中。
应理解,一般来说,业务单元可以分为实时响应、后台处理两大类,甚至后台处理的业务也分高低优先级。其中,实时响应的业务处理请求数量波动较大,例如在路口、高速公路上的实时人流、车流检测,早晚高峰期,或者交通事故发生时等情况下,分析业务量会比较大;而在人流、车流低谷期,或者交通顺畅时,其分析业务量比较小。为了避免低谷期或者平常期ai算力闲置,此时系统可以运行一些非紧急任务,如存档视频的交通违法行为分析、交通规律分析等。这些非紧急任务不会抢占实时响应任务必须的ai算力资源,进而不会导致需要紧急处理的业务无法获得实时响应,保证了关键业务的qos。
其中,非紧急业务可以是优先级相同的业务,其优先级较紧急业务的优先级低。当优先级不同的业务同时请求ai处理器的算力资源时,该算力资源优先分配给优先级高的业务,而对于优先级相同或者无优先级要求的业务,可以利用本申请实施例提供的算力资源分配的方法进行算力资源配置。
本申请实施例提供的算力资源分配的方法主要是基于时分复用的思想对ai算力资源在占用时间的维度划分分割比例,每个业务单元在单词ai请求时均可以使用整个芯片的ai算力,避免物理分割带来的硬件资源网格化(即每个业务单元仅可以使用部分算力资源),从而达到硬件资源利用率最大化。
图2示出了一种ai算力资源分割应用架构图。
可以看出,不同类型的业务单元可以经由ai运行库、ai驱动获取ai处理器分配的算力资源。其中,对每种类型的业务分配的算力资源的数量,可以由ai处理器进行计算后确定。
图3示出了本申请实施例提供的一种算力资源分配的方法。该方法可以通过ai处理器得以实现。该算力资源分配的方法包括以下内容。
s301,计算第一业务单元累计使用的第一算力,该第一业务单元为多个优先级相同的业务单元中的一个。
可选地,业务单元的请求处理的第一业务的调度粒度可以有多种,如线程级、进程级、容器级等。其中,容器(container)为计算机操作系统中的一种虚拟化技术,该技术使得进程运行于相对独立和隔离的环境(包括独立的文件系统、命名空间、资源视图等),从而能够简化软件的部署流程,增强软件的可移植性和安全性,并提高系统资源利用率。容器技术广泛应用于云计算领域的服务化场景。
应理解,第一算力可以是处理业务所使用或消耗的算力资源或者计算资源。示例性的,本申请实施例涉及的算力可以用业务被处理时,占用的ai核的数量和消耗的处理时间作为衡量指标。其中,该算力的计算过程将在下文进行介绍。
可选地,第一业务可以是第一业务单元当前待处理的至少一个业务中的任意一个。
可选地,ai处理器可以计算第一业务单元累计使用的第一算力。其中,第一业务单元可以是多个优先级相同的业务单元中的任意一个,该多个优先级相同的业务单元对应的待处理业务例如可以是不需要获得紧急响应的业务,如需要后台处理的业务等。
可选地,ai处理器可以根据用户指定的调度粒度,进行ai算力消耗统计。
作为一个示例,ai处理器计算第一业务累计使用或者累计消耗的算力的方法可以包括以下步骤。
(1)ai处理器接收第一请求消息,该第一请求消息用于请求处理第一业务。可选地,该第一请求消息可以包括当前请求处理的第一业务所需要的ai核的数量(记为n,n≥1)以及所需要占用的时间(记为t,t>0)。对该第一业务被处理时需要的ai核的数量和占用时间进行乘积,可以获得该次处理第一业务使用的ai处理器算力为n*t。
(2)将该次第一业务消耗的算力累加至之前第一业务单元已经使用的算力中,获得第一业务单元累计使用的第一算力,该第一算力可以作为第一业务单元累计消耗的算力指标。换句话说,将第一业务单元每次ai请求消耗的算力指标求和(记为sum(n*t)),计算获得该第一业务单元对应的业务单元累计消耗的的算力指标。
可选地,ai处理器还可以计算各业务单元占用ai处理器总算力的比例。具体地,ai处理器总算力指标的计算方法为:首先,计算ai核的总数量(记为n,n≥1)乘以ai核的总使用时间(记为t,t>0),即n*t;其次,计算各个业务单元占用总算力资源比例,以第一业务单元为例,将其占用总算力资源的比例记为p,则p=sum(n*t)/(n*t)。
可选地,在对ai处理器进行初始设置时,可以针对不同业务单元设置预设算力,也即预先设置分配给不同业务的算力资源数量;或者,预设不同业务单元的算力比例,也即预先设备各业务单元可以使用的算力资源占ai处理器总算力资源的比例。
s302,当第一算力大于预设算力时,停止对该第一业务进行处理,直至当调度周期次数达到第一阈值时,重新对第一业务进行处理。
可选地,根据预设算力和当前第一业务单元累计使用的算力指标,或者,根据预设算力比例和当前第一业务单元累计使用的算力比例,判断第一业务单元消耗的算力资源是否大于预设算力资源,也即判断第一业务消耗的算力资源是否超额。其中,当第一业务单元消耗的算力资源大于预设算力资源时,该第一业务单元消耗的算力资源超额,换句话说,第一业务单元消耗的算力资源过多。
可选地,当第一算力大于预设算力时,停止对该第一业务进行处理。也就是说,当第一业务单元消耗的算力资源超过预先分配的算力资源时,ai处理器可以暂时停止对该第一业务单元中的待处理业务的处理进程。具体地,该ai处理器可以不将该第一业务单元的ai请求消息发送给任务调度单元。
可选地,当第一算力大于预设算力,该ai处理器不将该第一业务单元的ai请求消息发送给任务调度单元时,可以标记该第一业务单元在后续的调度周期中被“阻塞”,也即使该第一业务单元暂时无法再使用ai算力。其中,停止第一业务单元使用ai算力资源的时间可以取决于“阻塞系数”,该阻塞系数可以与第一算力和预设算力的差值,或者,与第一算力比例和预设算力比例的差值具有映射关系,示例性的,第一业务单元消耗的算力资源超额越多,该阻塞系数可以越大。
可选地,在停止该第一业务单元的业务使用ai算力资源后,后续的每个调度周期都对该阻塞系数进行改变,直至该阻塞系数的值达到第二阈值时,重新允许该第一业务单元使用ai算力资源。其中,当阻塞系数的值达到第二阈值时,该调度周期的次数可以达到第一阈值。其中,第一阈值和第二阈值以及每个调度周期内对阻塞系数改变的数值可以根据应用场景灵活设置,本申请实施例对此并不限定。
作为一个示例,当第一业务单元累计使用的算力资源超过预先分配给该第一业务单元的算力资源时,该第一业务单元当前请求处理的业务需要被“阻塞”,并生成阻塞系数,例如根据该第一业务单元累计使用的算力资源的超额程度确定其阻塞系数为4;在之后的调度周期内,暂停对第一业务单元的业务进行处理,其具体方式可以是ai处理器暂停将第一业务单元的ai请求消息发送给任务调度单元,并且在每个调度周期内均对阻塞系数减1,直至阻塞系数减至为0(第二阈值)时,重新对该第一业务单元的业务进行处理,此时,ai处理器可以将第一业务单元的ai请求发送给任务控制单元。
应理解,当第一业务单元待处理的业务为多个时,当其被允许重新处理时,该多个业务可以同时被处理或者以一定顺序依次被处理,如根据ai请求时间顺序被依次处理等。
应理解,在每个调度周期内对阻塞系数进行改变,直至其达到第二阈值时,使第一业务单元重新使用ai算力资源,是为了使其他消耗的算力资源未超额的业务单元的业务优先被处理,灵活地使其他业务单元使用算力资源。当停止第一业务单元使用算力资源的调度周期达到第一阈值时,也即算力资源被各个业务单元消耗较为符合预设算力时,重新使该第一业务单元使用算力资源。
在一种实现方式中,阻塞系数可以设置为大于0的正整数,其具体值可以取决于超额程度,超额越多,阻塞系数的值可以越大;在每个调度周期内,该阻塞系数均减小一个固定值(如1),直至该阻塞系数减至0,此时认为调度周期次数达到第一阈值,允许第一业务单元重新使用算力资源。
可选地,阻塞系数不等于第二阈值的业务单元中的待处理业务,将被直接略过,ai处理器可以处理除所述第一业务单元之外的其他业务单元中的业务;或者,阻塞系数在每个调度周期被改变,但未达到第二阈值时,该业务也将被直接略过,其他未超额使用算力资源的业务单元的ai请求将会被发送给ai核,未超额使用算力资源的业务单元中的业务可以被该ai核处理。
根据本申请实施例提供的算力资源分配的方法,通过采用业务单元累计的“占用时间”指标来衡量算力实际使用比例,取代了采用物理方法分割计算资源的做法,使得每个业务单元均可以暂时使用ai处理器内的所有ai核,提高计算资源的利用效率。此外,本申请实施例提供的算力资源的分配方法,基于累计算法,统计各业务单元已经占用的ai核的时间,并将其与实际使用的ai核的数量转化为计算资源占用指标,并结合用户预先为不同业务单元设定的配额比例,计算业务单元是否超额使用算力资源,根据超出配额的严重程度,确定阻塞系数。该算力资源分配的方法拜托了物理资源(ai核)个数的约束,可以设置任意分割的比例。
以下结合附图对本申请实施例提供的算力资源分配的方法可能应用到的场景进行介绍。
图4示出了本申请实施例提供的算力资源分配的方法可能应用于的场景的示意图。
其中,本申请实施例提供的方法多任务竞争算力资源的场景。其中,具体过程可以包括以下内容。
(1)运行ai进程(或容器),确定算力分割粒度。
其中,主机侧可以运行ai进程或容器,其具体运行业务的粒度可以根据用户需求灵活设置。
在一种实现方式中,ai芯片在主机侧运行ai进程后,可以根据业务运行的粒度确定算力资源分割粒度,该算力资源分割粒度可以与业务运行粒度相对应,该粒度例如可以是:线程、进程或容器。
(2)ai处理器中的任务队列单元可以根据算力分割粒度,对不同类型的业务配置算力优先级和算力分配比例,并将配置好的算力优先级和算力分配比例发送到ai芯片的任务控制单元。
在一种实现方式中,ai芯片的任务控制单元可以确定针对不同业务的调度粒度,该调度粒度例如可以是:线程、进程或容器。其中,调度粒度可以与业务运行的粒度相同。
(3)当一业务单元的业务需要进行处理时,该业务单元通过ai进程向ai芯片请求ai请求,该ai请求可以进入ai芯片中任务队列单元中的任务队列。
在一种实现方式中,ai芯片的任务队列单元可以根据任务控制单元的配置,以调度粒度为单元,将各业务单元的ai请求在任务队列中进行排序。其中,可以根据各业务单元优先级的顺序进行排序,如按照优先级由高到低的顺序对ai请求进行排序。
在一种实现方式中,当优先级不同时,任务控制单元可以按照优先级的顺序将ai请求发送至任务调度单元,使该任务调度单元分配优先级高的业务需要的算力资源;当优先级相同时,或者各ai请求没有优先级要求时,认为控制单元可以根据本申请实施例提供的算力资源分配的方法,首先计算当前ai请求对应的业务单元累计消耗的算力资源,然后根据该累计消耗的算力资源是否超过预设算力资源或者该累计消耗的算力资源占ai芯片总算力资源的算力比例是否超过预设算力比例,进一步确定是否对其进行阻塞。其中,若需要对该业务单元的业务进行阻塞,则对该业务单元设置阻塞系数。
在一种实现方式中,当优先级不同时,任务控制单元也可以根据本申请实施例提供的算力资源分配的方法,计算任务队列中各ai请求对应的业务单元累计消耗的算力资源,然后根据该累计消耗的算力资源是否超过预设算力资源或者该累计消耗的算力资源占ai芯片总算力资源的算力比例是否超过预设算力比例,进一步确定是否对其进行阻塞。其中,若需要对该业务单元的业务进行阻塞,则对该业务单元设置阻塞系数。
(4)在一种实现方式中,当ai芯片中的任务控制单元判断当前ai请求对应的业务单元的存在阻塞系数或阻塞系数不等于第二阈值,则忽略该业务单元的业务请求,暂不处理。具体地,任务控制单元可以不讲该业务单元的业务请求发送给任务调度单元。
其中,ai处理器可以基于本申请实施例提供的方法将任务队列结构化,任务队列可以以线程、进程、容器为业务调度单元,配置ai算力资源分割比例。算力分割粒度可以是线程、进程或者容器。
应理解,将任务队列结构化可以是将优先级高的业务单元的调度顺序设置在前,将优先级低的业务单元的调度顺序设置在后,以便其后续依次请求ai调度。
(5)根据算力分割粒度,配置算力优先级与比例,下发到ai芯片的任务控制单元。
(6)各ai进程将ai请求发送到ai芯片,进入到任务队列。ai芯片按照任务控制单元中的配置,以调度粒度为单位,将各业务单元的请求在任务队列中按照优先级从高到付第的顺序重新排列。
(7)ai芯片中的任务控制单元以调度为粒度为单位,检查该业务调度单元是否被标识为“阻塞”(也即阻塞系数未达到第二阈值)。如果未标识为阻塞(阻塞系数为第二阈值),即可将该业务调度单元的业务发送给任务调度单元;如果被识别为阻塞,则忽略该业务的业务请求,对该业务调度单元的业务暂不处理。
(8)任务控制单元对所有发送出去的ai请求进行计时,并由任务调度单元反馈每个ai请求占用的ai核数目。
(9)任务控制单元重新计算所有业务单元的算力消耗比例,并核算是否超额使用算力,如果是超额使用,则标记该业务单元下一轮需要“阻塞”,并设置阻塞系数。
(10)任务调度单元,按照ai请求的需要,分配ai核、内存等计算资源,满足ai计算的需求。
图5示出了本申请实施例提供的一种算力资源分配装置的示意性结构图。其中,该算力资源分配装置500包括任务控制单元510和任务调度单元520。
在一种实现方式中,任务控制单元510,用于计算处理第一业务单元累计使用的第一算力,第一业务单元为多个无优先级要求或优先级相同的业务单元中的一个。
在一种实现方式中,任务调度单元520,用于当第一算力大于预设算力时,停止对第一业务单元的第一业务进行处理,直至当调度周期次数达到第一阈值时,重新对第一业务进行处理。
在一种实现方式中,第一算力为每次处理第一业务单元的第一业务时所需的处理核的数量和处理时间的加权值累计后获得的。
在一种实现方式中,算力资源分配装置500还包括接收单元,该接收单元,用于接收第一请求消息,第一请求消息用于请求处理所述第一业务。
在一种实现方式中,任务控制单元510,还用于根据第一请求消息计算当前处理第一业务所需的处理核的数量和处理时间;计算所述处理核的数量和处理时间加权值;对每次计算获得的加权值进行求和,获得所述第一算力。
在一种实现方式中,任务调度单元520,还用于当第一比例小于预设比例时,停止对第一业务进行处理,直至当调度周期次数达到第一阈值时,重新对第一业务进行处理。
在一种实现方式中,当第一算力大于预设算力,且调度周期次数未达到第一阈值时,任务调度单元520,用于处理多个优先级相同的业务单元中除第一业务单元之外的其他业务单元中的业务。
本申请实施例还提供了一种通信装置,该通信装置包括:至少一个处理器和通信接口,该通信接口用于该通信装置与其他通信装置进行信息交互,当程序指令在至少一个处理器中执行时,使得通信装置实现如上文实施例描述的算力资源分配的方法。
本申请实施例还提供了一种计算机存储介质,该计算机程序存储介质具有程序指令,当所述程序指令被直接或者间接执行时,使得如上文实施例描述的算力资源分配的方法得以实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。