一种算力资源分配方法及装置与流程

文档序号:25543423发布日期:2021-06-18 20:40
一种算力资源分配方法及装置与流程

本发明涉及数据处理技术领域,尤其涉及一种算力资源分配方法及装置。



背景技术:

常用的公有云环境,以gpu裸算力出租,或者算法层saas服务为主要形式输出。以云服务商的异构算力服务为例,通常分为以下几种:

1.gpu裸算力服务,以裸服务器的方式,提供搭载cpu+gpu的云服务器;

2.ai标注服务;结合商品标签、车牌识别等应用场景,为用户提供在线标注服务;

3.ai模型开发:在模型标注的基础上,利用小量数据在线对模型进行调整,对gpu等异构算力有一定的需求,但是需求量碎片化;

4.ai模型训练:在标注、模型开发的基础上,用大量数据进行训练。这一阶段需要大量的计算资源。

5.ai推衍服务:在公有云海量计算节点的基础上,提供自动负载均衡,动态扩容,并提供面向图像识别、自然语言处理等多个行业领域的服务。

公有云上以上服务流程由于所需算力资源量相差大,目前算力资源动态调度困难,采用切割成若干产品,以算力加服务的形式提供给用户,导致用户数据管理复杂,资源调度慢,资源利用率低等问题。因此,针对上述问题,有必要提出进一步地解决方案。



技术实现要素:

本发明旨在提供一种算力资源分配方法及装置,以克服现有技术中存在的不足。

为解决上述技术问题,本发明的一个技术方案是:

一种算力资源分配方法,包括:

接收带有用户类型标记的任务请求,所述任务请求包括任务类型、任务时长、算力资源需求量、任务优先级以及资源池选择、队列选择;

根据所述用户类型对任务请求进行初分配,满足第一条件则控制该任务请求进入下一步骤,否则控制该任务请求进入所选资源池内的所选队列;

根据所述用户类型以及其已用算力资源量计算其算力资源余量,若所述用户的算力资源余量满足该任务请求的所述算力资源需求量,则控制该任务请求进入所选资源池内的所选队列,否则,控制该任务请求进入所述用户的任务请求队列;

当监测到所述用户的算力资源余量满足该任务请求的所述算力资源需求量,从所述用户的任务请求队列调度所述任务请求进入所选资源池内的所选队列。

本发明的一个较佳实施例中,当该任务请求位于所选资源池内的所选队列时,

按照该任务请求的所述算力资源需求量与所选资源池内空闲资源的匹配度确定算力资源,并调度给所述任务;或,

按照队列排序,根据用户分值以及该任务请求的所述算力资源需求量确定算力资源,并调度给所述任务。

本发明的一个较佳实施例中,当调度给该任务的算力资源量小于其算力资源需求量时,按照预设时段,检测该任务的算力资源占用率,若所述算力资源占用率达到调度阈值,则再次根据用户分值以及该任务请求的所述算力资源需求量确定算力资源直至该任务累计调度的算力资源量等于算力资源需求量。

本发明的一个较佳实施例中,所述用户分值根据本年度合作指数、前n年内付费年次数以及用户重点指数评估。

本发明的一个较佳实施例中,所述用户分值f>20,则调度的算力资源最大值≤m,其中,

f=5a+2b+5c,m为gpu卡数,

a为本年度合作指数,已签合同且付款则指数为2,已签合同未付款则指数为1;b为前5年内付费年次数;c为用户重点指数,长期重点用户的指数为2,短期重点用户的指数为1。

本发明的另一个技术方案是:

一种算力资源分配装置,包括:

接收模块,用于接收带有用户类型标记的任务请求,所述任务请求包括任务类型、任务时长、算力资源需求量、任务优先级以及资源池选择、队列选择;

一级分配模块,用于根据所述用户类型对任务请求进行初分配,满足第一条件则控制该任务请求进入二级分配模块,否则控制该任务请求进入所选资源池内的所选队列;

二级分配模块,用于根据所述用户类型以及其已用算力资源量计算其算力资源余量,若所述用户的算力资源余量满足该任务请求的所述算力资源需求量,则控制该任务请求进入所选资源池内的所选队列,否则,控制该任务请求进入所述用户的任务请求队列;

监测模块,用于监测所述用户的算力资源余量,当监测到所述用户的算力资源余量满足该任务请求的所述算力资源需求量,从所述用户的任务请求队列调度所述任务请求进入所选资源池内的所选队列。

本发明的一个较佳实施例中,还包括:

调度模块,用于当该任务请求位于所选资源池内的所选队列时,按照该任务请求的所述算力资源需求量与所选资源池内空闲资源的匹配度确定算力资源,并调度给所述任务;或,按照队列排序,根据用户分值以及该任务请求的所述算力资源需求量确定算力资源,并调度给所述任务。

本发明的一个较佳实施例中,还包括:

持续调度模块,用于当调度给该任务的算力资源量小于其算力资源需求量时,按照预设时段,检测该任务的算力资源占用率,若所述算力资源占用率达到调度阈值,则再次根据用户分值以及该任务请求的所述算力资源需求量确定算力资源直至累计调度的算力资源量等于算力资源需求量。

本发明的另一个技术方案是:

一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以上任一所述方法。

本发明的另一个技术方案是:

一种计算机可读存储介质,所述计算机可读存储介质存储有执行以上任一所述方法的计算机程序。

与现有技术相比,本发明的有益效果是:

本发明通过设置多种资源池以及队列,既可以对用户提供多种选择,又可以对用户的多种算力资源需求进行自动调度管理,减少用户管理难度,进一步通过阈值设定实现多次调度,提高算力资源利用率,避免资源浪费。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的流程图;

图2为本发明算力资源分配装置的示意性框图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

如图1所示,一种算力资源分配方法,包括:

步骤s1:接收带有用户类型标记的任务请求,任务请求包括任务类型、任务时长、算力资源需求量、任务优先级以及资源池选择、队列选择。

用户类型与其资源池选择相关,例如,用户类型包括付费用户和非付费用户,以对应共享资源池和独占资源池。本方法将算力资源以预设比例划分为共享资源池和独占资源池,一般而言按照2:8分为共享资源池和独占资源池,共享资源池供所有用户使用,独占资源池仅供付费用户使用,可以理解的是,资源池的分割比例也可以是其他,也可以根据实际情况进行调整以避免资源过载。系统用户端或服务端根据用户类型的不同提供资源池选项供用户选择。同样地,不限于付费用户和非付费用户两种用户类型,也不限于共享资源池和独占资源池两种资源池。

任务类型至少包括模型开发和模型训练。模型开发任务所需算力资源较少,一般涉及在线调试算法及参数等,用户可以选择共享资源池或独占资源池,模型训练任务所需算力资源较多,一般限制用户仅可选择独占资源池,以避免共享资源池的算力资源被快速占用尽。任务类型选项可由系统用户端或服务端根据用户类型的不同提供,或由系统用户端或服务端根据用户类型进行判断任务类型的选择是否符合要求。

任务时长指任务完成所需时间,以供用户端或服务端控制用户占用算力资源的时间,提高算力资源的利用率。

算力资源需求量指用户对该任务的预期所需算力资源量,一般包含cpu核数、gpu显存数,同时算力资源需求量还会影响队列选择。

本方法提供两个队列,第一队列排队任务按照先进先出的方式进行管理,具体含义为先创建的任务优先获取运行所需的资源,并且任务获取资源的方式是必须按照任务队列中的顺序来配置资源的,该排队算法的应用场景是适合于不紧急的任务;第二队列排队任务根据资源优先满足原则,决策出满足高优先级资源的任务并优先从排队队列中选择合适该任务,该排队算法的应用场景是适合于紧急的任务,更好地利用资源完成任务,相对比较灵活。

用户端或服务端根据算力资源需求量提供不同队列选项,优选地,对于2张gpu卡以内的算力任务,提供第一队列选项和第二队列选项;超过2张gpu卡的算力任务仅提供第一队列选项。通过对2张gpu卡的算力资源需求量的划分,确保用户的跨卡任务能顺利执行。

任务优先级为用户对自己任务的打分评级,一般而言分为最高、一般、较低,其中,普通用户选择一般和较低两种,最高优先级由用户管理员指定。根据任务优先级对在用户的任务请求队列中的任务请求进行排序,从而提高用户管理的自由度。

步骤s2:根据用户类型对任务请求进行初分配,满足第一条件则控制该任务请求进入下一步骤,否则控制该任务请求进入所选资源池内的所选队列。

第一条件可以设置为付费情况。付费用户可以选择共享资源池或独占资源池,非付费用户仅能够选择共享资源池。

步骤s3:根据用户类型以及其已用算力资源量计算其算力资源余量,若用户的算力资源余量满足该任务请求的算力资源需求量,则控制该任务请求进入所选资源池内的所选队列,否则,控制该任务请求进入用户的任务请求队列。

用户所能使用的算力资源上限受其付费等情况限制,一般以用户类型进行区分限制,或根据用户类型进行相关情况查询。

其中,控制该任务请求进入用户的任务请求队列,并按照任务优先级排序。用户管理员也可以对其权限下的各个任务优先级修改。

当监测到用户的算力资源余量满足该任务请求的算力资源需求量,从用户的任务请求队列调度任务请求进入所选资源池内的所选队列,以进行后续算力资源调度。

其中,当该任务请求位于所选资源池内的所选队列时,按照该任务请求的算力资源需求量与所选资源池内空闲资源的匹配度确定算力资源,并调度给任务,即对应于第二队列。或者,按照队列排序,即对应于第一队列,根据用户分值以及该任务请求的算力资源需求量确定算力资源,并调度给任务。

由于第一队列的算力资源需求量一般较大,因此,一般根据用户分值以及该任务请求的算力资源需求量采用多次调度的方式。

具体而言,用户分值根据本年度合作指数、前n年内付费年次数以及用户重点指数评估。

当用户分值f>20,则调度的算力资源最大值≤m,其中,

f=5a+2b+5c,m为gpu卡数,本实施例中为4。

a为本年度合作指数,已签合同且付款则指数为2,已签合同未付款则指数为1;b为前5年内付费年次数;c为用户重点指数,长期重点用户的指数为2,短期重点用户的指数为1。

当调度给该任务的算力资源量小于其算力资源需求量时,按照预设时段,检测该任务的算力资源占用率,若算力资源占用率达到调度阈值,则再次根据用户分值以及该任务请求的算力资源需求量确定算力资源直至该任务累计调度的算力资源量等于算力资源需求量。

进一步地,当调度给该任务的算力资源量小于其算力资源需求量时,按照预设时段,检测该任务的算力资源占用率,若算力资源占用率低于使用阈值,则不再对该任务调度算力资源。

例如,每12小时,系统管理员与用户管理员确认系统资源使用情况,如果资源占用率在12小时内超过80%,则持续发放算力资源,直到用户所需资源已经满足,或者独占资源的使用率低于50%则不再发放。通过以上预设时段以及调度阈值、使用阈值设置,既满足了用户任务需求,又提高了算力资源的利用率。

以上用户,既可以指个体用户,也可以指团体用户,一个团体下的个体用户共享其算力资源额度,用户管理员可以对其权限下的任务进行管理。

参考实施例算力资源分配方法,如图2所示,本发明还公开了一种算力资源分配装置,包括接收模块100、一级分配模块200、二级分配模块300以及监测模块400。

具体地,接收模块100用于接收带有用户类型标记的任务请求,任务请求包括任务类型、任务时长、算力资源需求量、任务优先级以及资源池选择、队列选择。

一级分配模块200用于根据用户类型对任务请求进行初分配,满足第一条件则控制该任务请求进入二级分配模块300,否则控制该任务请求进入所选资源池内的所选队列。

二级分配模块300用于根据用户类型以及其已用算力资源量计算其算力资源余量,若用户的算力资源余量满足该任务请求的算力资源需求量,则控制该任务请求进入所选资源池内的所选队列,否则,控制该任务请求进入用户的任务请求队列。

其中,控制该任务请求进入用户的任务请求队列,并按照任务优先级排序。用户管理员也可以对其权限下的各个任务优先级修改。

监测模块400用于监测用户的算力资源余量,当监测到用户的算力资源余量满足该任务请求的算力资源需求量,从用户的任务请求队列调度任务请求进入所选资源池内的所选队列。

本装置还包括调度模块500,调度模块500用于当该任务请求位于所选资源池内的所选队列时,按照该任务请求的算力资源需求量与所选资源池内空闲资源的匹配度确定算力资源,并调度给任务;或,按照队列排序,根据用户分值以及该任务请求的算力资源需求量确定算力资源,并调度给任务。

具体而言,用户分值根据本年度合作指数、前n年内付费年次数以及用户重点指数评估。

当用户分值f>20,则调度的算力资源最大值≤m,其中,

f=5a+2b+5c,m为gpu卡数,本实施例中为4。

a为本年度合作指数,已签合同且付款则指数为2,已签合同未付款则指数为1;b为前5年内付费年次数;c为用户重点指数,长期重点用户的指数为2,短期重点用户的指数为1。

本装置还包括持续调度模块600,持续调度模块600用于当调度给该任务的算力资源量小于其算力资源需求量时,按照预设时段,检测该任务的算力资源占用率,若算力资源占用率达到调度阈值,则再次根据用户分值以及该任务请求的算力资源需求量确定算力资源直至累计调度的算力资源量等于算力资源需求量。持续调度模块600还用于当调度给该任务的算力资源量小于其算力资源需求量时,按照预设时段,检测该任务的算力资源占用率,若算力资源占用率低于使用阈值,则不再对该任务调度算力资源。

例如,持续调度模块600每12小时确认该任务的资源使用情况,如果资源占用率在12小时内超过80%,则持续发放算力资源,直到用户所需资源已经满足,或者独占资源的使用率低于50%则不再发放。通过以上预设时段以及调度阈值、使用阈值设置,既满足了用户任务需求,又提高了算力资源的利用率。

本发明还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上任一方法。

本发明还公开了一种计算机可读存储介质,计算机可读存储介质存储有执行以上任一方法的计算机程序。

综上所述,本发明通过设置多种资源池以及队列,既可以对用户提供多种选择,又可以对用户的多种算力资源需求进行自动调度管理,减少用户管理难度,进一步通过阈值设定实现多次调度,提高算力资源利用率,避免资源浪费。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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