一种算力资源分配方法及装置
文献发布时间:2023-06-19 11:29:13
技术领域
本发明涉及数据处理技术领域,尤其涉及一种算力资源分配方法 及装置。
背景技术
常用的公有云环境,以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%则不再发放。 通过以上预设时段以及调度阈值、使用阈值设置,既满足了用户任务 需求,又提高了算力资源的利用率。
本发明还公开了一种计算机设备,包括存储器、处理器以及存储 在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程 序时实现以上任一方法。
本发明还公开了一种计算机可读存储介质,计算机可读存储介质 存储有执行以上任一方法的计算机程序。
综上所述,本发明通过设置多种资源池以及队列,既可以对用户 提供多种选择,又可以对用户的多种算力资源需求进行自动调度管理, 减少用户管理难度,进一步通过阈值设定实现多次调度,提高算力资 源利用率,避免资源浪费。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和 方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示 意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实 现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以 集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示 或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以 是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、 机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开 的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位 于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选 择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处 理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两 个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形 式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并 不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范 围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。 因此,本发明的保护范围应以所述权利要求的保护范围为准。
- 一种算力资源分配方法及装置
- 算力分配方法、装置及算力服务器