CN115562877A - 分布式算力资源的编排方法、装置、设备及存储介质 - Google Patents
分布式算力资源的编排方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115562877A CN115562877A CN202211420673.3A CN202211420673A CN115562877A CN 115562877 A CN115562877 A CN 115562877A CN 202211420673 A CN202211420673 A CN 202211420673A CN 115562877 A CN115562877 A CN 115562877A
- Authority
- CN
- China
- Prior art keywords
- training
- task
- computing power
- resource
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及资源数据管理技术领域,公开了一种分布式算力资源的编排方法、装置、设备及存储介质,所述方法包括:在接收到任务训练请求时,通过分布式锁将算力资源池进行锁定,并将训练任务添加至排队任务队列;在接收到训练任务添加成功信息时,根据预设资源算法计算出训练任务所需的算力资源;在训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从排队任务队列中移除;根据训练任务所需的算力资源通过训练节点对所述训练任务进行训练;通过上述方式,训练任务由分布式协调器中间件来协调任务请求和资源占用,根据分配的算力资源对训练任务进行训练,能够有效提高训练模型任务的效率和高并发训练任务的稳定性。
Description
技术领域
本发明涉及资源数据管理技术领域,尤其涉及分布式算力资源的编排方法、装置、设备及存储介质。
背景技术
模型训练是一个非常耗费资源和时间的过程。对于一个模型训练任务来说,即便在高端的消费级显卡上进行训练也需要数个小时,并且作为办公的电脑来说,所配置的显卡的性能往往都不高,就会造成训练所耗费的时间更长,为解决上述问题,目前常用的相关技术是通过提升个人电脑的配置或者通过多个训练节点进行训练,对于提升个人电脑的配置的方案来说,存在投入较大、收益不高且使用率较低等缺陷,对于通过多个训练节点进行训练的方案来说,每次训练任务都将使用机器上的全部算力资源,同一时间每台机器只能进行一个训练任务,面对多个训练任务的场景时,不同训练任务串行处理,后续任务必须等待先前的训练任务结束后才能开始执行,造成训练模型任务的效率较低,以及高并发训练任务的稳定性较差。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种分布式算力资源的编排方法、装置、设备及存储介质,旨在解决现有技术训练模型任务的效率较低,以及高并发训练任务的稳定性较差的技术问题。
为实现上述目的,本发明提供了一种分布式算力资源的编排方法,所述分布式算力资源的编排方法包括以下步骤:
在接收到任务训练请求时,通过分布式锁将算力资源池进行锁定,并将所述任务训练请求对应的训练任务添加至排队任务队列;
在接收到训练任务添加成功信息时,根据预设资源算法计算出所述训练任务所需的算力资源;
在所述训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从所述排队任务队列中移除;
根据所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练。
可选地,所述在所述训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从所述排队任务队列中移除,包括:
将目标算力资源申请请求发送至算力资源控制模块,以使所述算力资源控制模块根据所述目标算力资源申请请求反馈剩余算力资源;
在所述训练任务所需的算力资源小于剩余算力资源时,对训练任务模块的当前状态进行调整;
在调整完成后,向所述排队任务队列发送任务训练退出请求,以使所述排队任务队列将所述训练任务进行移除。
可选地,所述将目标算力资源申请请求发送至算力资源控制模块,以使所述算力资源控制模块根据所述目标算力资源申请请求反馈剩余算力资源之后,包括:
在所述训练任务所需的算力资源大于剩余算力资源时,判断所述训练任务是否为多个;
在所述训练任务为多个时,将所述训练任务划分为第一训练任务和第二训练任务;
根据预设资源算法计算出所述第一训练任务和第二训练任务所需的算力资源;
在所述第一训练任务和第二训练任务所需的算力资源均小于剩余算力资源时,获取所述第一训练任务和第二训练任务的训练规模和训练复杂度;
通过预设调度策略对所述第一训练任务和第二训练任务的训练规模和训练复杂度进行计算,得到训练优先级;
在所述第一训练任务的训练优先级高于所述第二训练任务的训练优先级时,将所述第一训练任务移除至所述排队任务队列;
在所述第一训练任务的训练优先级低于所述第二训练任务的训练优先级时,将所述第二训练任务移除至所述排队任务队列;
在所述第一训练任务的训练优先级等于所述第二训练任务的训练优先级时,将默认训练任务移除至所述排队任务队列,所述默认训练任务包括第一训练任务或第二训练任务。
可选地,所述根据所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练,包括:
在接收到排队任务队列发送的所述训练任务退出队列成功信息时,将训练任务模块的当前状态调整为可训练状态;
在调整完成后,通过所述训练任务模块向可训练任务队列发送任务训练启动信息,以使所述可训练任务队列根据所述任务训练启动信息反馈对应的确定启动信息;
根据所述确定启动信息和所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练。
可选地,所述根据所述确定启动信息和所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练之后,还包括:
在训练结束后,通过分布式锁将其他正在执行的训练任务进行解锁;
在解锁完成后,判断所述排队任务队列中是否还存在其他训练任务;
在所述排队任务队列中还存在其他训练任务时,将所述训练节点所占用的算力资源释放至算力资源池,以供其他训练任务的使用。
可选地,所述在所述排队任务队列中还存在其他训练任务时,将所述训练节点所占用的算力资源释放至算力资源池之后,还包括:
获取训练节点的分布式lease协议状态;
在所述分布式lease协议状态为失效状态时,将所述训练节点所占用的算力资源从所述算力资源池进行排除。
可选地,所述在所述分布式lease协议状态为失效状态时,将所述训练节点所占用的算力资源从所述算力资源池进行排除之后,还包括:
获取所述算力资源池的算力资源总量,以及所述算力资源总量被完全耗尽时训练节点数量集合;
对所述训练节点数量集合进行均值计算,得到平均训练节点数量;
根据所述平均训练节点数量和所述算力资源总量计算出各训练节点所需的算力资源;
在接收到训练节点增加请求时,根据所述训练节点增加请求确定增加训练节点数量;
根据所述增加训练节点数量和所述各训练节点所需的算力资源计算出所需增加的算力资源;
根据所述所需增加的算力资源对所述算力资源池进行扩容。
此外,为实现上述目的,本发明还提出一种分布式算力资源的编排装置,所述分布式算力资源的编排装置包括:
锁定模块,用于在接收到任务训练请求时,通过分布式锁将算力资源池进行锁定,并将所述任务训练请求对应的训练任务添加至排队任务队列;
计算模块,用于在接收到训练任务添加成功信息时,根据预设资源算法计算出所述训练任务所需的算力资源;
判断模块,用于在所述训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从所述排队任务队列中移除;
训练模块,用于根据所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练。
此外,为实现上述目的,本发明还提出一种分布式算力资源的编排设备,所述分布式算力资源的编排设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分布式算力资源的编排程序,所述分布式算力资源的编排程序配置为实现如上文所述的分布式算力资源的编排方法。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有分布式算力资源的编排程序,所述分布式算力资源的编排程序被处理器执行时实现如上文所述的分布式算力资源的编排方法。
本发明提出的分布式算力资源的编排方法,通过在接收到任务训练请求时,通过分布式锁将算力资源池进行锁定,并将所述任务训练请求对应的训练任务添加至排队任务队列;在接收到训练任务添加成功信息时,根据预设资源算法计算出所述训练任务所需的算力资源;在所述训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从所述排队任务队列中移除;根据所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练;通过上述方式,训练任务由分布式协调器中间件来协调任务请求和资源占用,根据分配的算力资源对训练任务进行训练,能够有效提高训练模型任务的效率和高并发训练任务的稳定性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的分布式算力资源的编排设备的结构示意图;
图2为本发明分布式算力资源的编排方法第一实施例的流程示意图;
图3为本发明分布式算力资源的编排方法第二实施例的流程示意图;
图4为本发明分布式算力资源的编排方法一实施例的整体流程示意图;
图5为本发明分布式算力资源的编排装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的分布式算力资源的编排设备结构示意图。
如图1所示,该分布式算力资源的编排设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对分布式算力资源的编排设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及分布式算力资源的编排程序。
在图1所示的分布式算力资源的编排设备中,网络接口1004主要用于与网络一体化平台工作站进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明分布式算力资源的编排设备中的处理器1001、存储器1005可以设置在分布式算力资源的编排设备中,所述分布式算力资源的编排设备通过处理器1001调用存储器1005中存储的分布式算力资源的编排程序,并执行本发明实施例提供的分布式算力资源的编排方法。
基于上述硬件结构,提出本发明分布式算力资源的编排方法实施例。
参照图2,图2为本发明分布式算力资源的编排方法第一实施例的流程示意图。
在第一实施例中,所述分布式算力资源的编排方法包括以下步骤:
步骤S10,在接收到任务训练请求时,通过分布式锁将算力资源池进行锁定,并将所述任务训练请求对应的训练任务添加至排队任务队列。
需要说明的是,本实施例的执行主体为分布式算力资源的编排设备,还可为其他可实现相同或相似功能的设备,例如分布式任务协调器等,本实施例对此不作限制,在本实施例中,以分布式任务协调器为例进行说明。
应当理解的是,任务训练请求指的是需要进行新的训练任务时由排队任务队列发起的,在接收到任务训练请求时,通过分布式锁将算力资源池进行锁定,以避免出现训练错误,并根据任务训练请求得到对应的训练任务,该训练任务可以为多个,然后将训练任务添加至排队任务队列进行排队,在本实施例中,采用分布式架构的高可用训练集群来进行集中训练的模式实现多个训练任务的同时进行,使得多个训练任务可以同时进行模型训练。
步骤S20,在接收到训练任务添加成功信息时,根据预设资源算法计算出所述训练任务所需的算力资源。
可以理解的是,预设资源算法指的是根据训练任务的参数计算出所需算力资源的算法,在接收到训练任务添加成功信息时,表明将训练任务添加至排队任务队列添加成功,此时会通过预设资源算法计算出训练任务进行模型训练时所需要的算力资源。
步骤S30,在所述训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从所述排队任务队列中移除。
应当理解的是,剩余算力资源指的是算力资源池中剩余的算力资源,在得到训练任务所需的算力资源后,判断训练任务所需的算力资源是否小于或等于算力资源池中剩余的算力资源,若是,则表明从算力资源池申请到算力资源对训练任务进行训练,在成功从算力资源池申请训练任务所需的算力资源后,调整训练任务模块的当前状态,然后将训练任务移除至所述排队任务队列。
步骤S40,根据所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练。
可以理解的是,训练节点指的是训练任务进行模型训练时的节点,该训练节点可以为训练服务器,在得到训练任务所需的算力资源后,在训练节点上通过训练任务所需的算力资源对训练任务进行训练。
进一步地,步骤S40,包括:在接收到排队任务队列发送的所述训练任务退出队列成功信息时,将训练任务模块的当前状态调整为可训练状态;在调整完成后,通过所述训练任务模块向可训练任务队列发送任务训练启动信息,以使所述可训练任务队列根据所述任务训练启动信息反馈对应的确定启动信息;根据所述确定启动信息和所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练。
应当理解的是,在接收到排队任务队列发送的训练任务退出队列成功信息时,表明训练任务不在排队任务队列进行排队,此时需要准备进行模型训练,首先,需要将训练任务模块的当前状态调整为可训练状态,然后向可训练任务队列发送任务训练启动信息,在接收到可训练任务队列反馈的确定启动信息时,开始在训练节点上通过训练任务所需的算力资源对训练任务进行训练,在训练结束后,可训练任务队列还会向训练任务模块反馈训练成功信息,训练任务模块在接收到训练成功信息后,继续通过训练任务模块将训练成功信息转发给分布式任务协调器,以通知分布式任务协调器训练结束。
进一步地,所述根据所述确定启动信息和所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练之后,还包括:在训练结束后,通过分布式锁将其他正在执行的训练任务进行解锁;在解锁完成后,判断所述排队任务队列中是否还存在其他训练任务;在所述排队任务队列中还存在其他训练任务时,将所述训练节点所占用的算力资源释放至算力资源池,以供其他训练任务的使用。
可以理解的是,在训练任务训练结束后,就会通过分布式锁将其他正在执行的训练任务进行解锁,然后判断排队任务队列中是否还存在其他训练任务,若是,则需要将训练节点所占用的算力资源释放至算力资源池,然后由分布式任务协调器将释放的资源以及算力资源池中剩余的算力资源分配给排队等待的任务,并在达到任务需求时下发任务至训练节点开始训练。
进一步地,所述在所述排队任务队列中还存在其他训练任务时,将所述训练节点所占用的算力资源释放至算力资源池之后,还包括:获取训练节点的分布式lease协议状态;在所述分布式lease协议状态为失效状态时,将所述训练节点所占用的算力资源从所述算力资源池进行排除。
应当理解的是,分布式lease协议状态指的是分布式架构在进行模型训练时所遵循的lease协议的状态,在得到训练节点的分布式lease协议状态时,需要判断训练节点的分布式lease协议状态是否为失效状态,若是,则表明该训练节点出现节点宕机的情况,此时为了避免算力资源的浪费,需要将训练节点所占用的算力资源从算力资源池进行排除。
进一步地,所述在所述分布式lease协议状态为失效状态时,将所述训练节点所占用的算力资源从所述算力资源池进行排除之后,还包括:获取所述算力资源池的算力资源总量,以及所述算力资源总量被完全耗尽时训练节点数量集合;对所述训练节点数量集合进行均值计算,得到平均训练节点数量;根据所述平均训练节点数量和所述算力资源总量计算出各训练节点所需的算力资源;在接收到训练节点增加请求时,根据所述训练节点增加请求确定增加训练节点数量;根据所述增加训练节点数量和所述各训练节点所需的算力资源计算出所需增加的算力资源;根据所述所需增加的算力资源对所述算力资源池进行扩容。
可以理解的是,平均训练节点数量指的是在算力资源总量被完全耗尽时训练节点的平均数量,例如,第一次算力资源总量被完全耗尽时训练节点的数量为A,第二次算力资源总量被完全耗尽时训练节点的数量为B,第三次算力资源总量被完全耗尽时训练节点的数量为C,则平均训练节点数量为(A+B+C)/3,在得到平均训练节点数量后,根据平均训练节点数量和算力资源总量计算出各训练节点所需的算力资源,然后根据训练节点增加请求确定的增加训练节点数量和各训练节点所需的算力资源计算出所需增加的算力资源,在架构层面,每个训练节点保持相对独立,最后通过所需增加的算力资源对算力资源池进行扩容。
本实施例通过在接收到任务训练请求时,通过分布式锁将算力资源池进行锁定,并将所述任务训练请求对应的训练任务添加至排队任务队列;在接收到训练任务添加成功信息时,根据预设资源算法计算出所述训练任务所需的算力资源;在所述训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从所述排队任务队列中移除;根据所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练;通过上述方式,训练任务由分布式协调器中间件来协调任务请求和资源占用,根据分配的算力资源对训练任务进行训练,能够有效提高训练模型任务的效率和高并发训练任务的稳定性。
在一实施例中,如图3所述,基于第一实施例提出本发明分布式算力资源的编排方法第二实施例,所述步骤S30,包括:
步骤S301,将目标算力资源申请请求发送至算力资源控制模块,以使所述算力资源控制模块根据所述目标算力资源申请请求反馈剩余算力资源。
应当理解的是,目标算力资源申请请求指的是请求算力资源控制模块反馈剩余的算力资源的请求,该算力资源控制模块指的是控制算力资源的模块,资源控制模块在接收到分布式任务协调器发送的目标算力资源申请请求后,会将算力资源池的剩余算力资源进行反馈。
进一步地,所述步骤S301之后,还包括:在所述训练任务所需的算力资源大于剩余算力资源时,判断所述训练任务是否为多个;在所述训练任务为多个时,将所述训练任务划分为第一训练任务和第二训练任务;根据预设资源算法计算出所述第一训练任务和第二训练任务所需的算力资源;在所述第一训练任务和第二训练任务所需的算力资源均小于剩余算力资源时,获取所述第一训练任务和第二训练任务的训练规模和训练复杂度;通过预设调度策略对所述第一训练任务和第二训练任务的训练规模和训练复杂度进行计算,得到训练优先级;在所述第一训练任务的训练优先级高于所述第二训练任务的训练优先级时,将所述第一训练任务移除至所述排队任务队列;在所述第一训练任务的训练优先级低于所述第二训练任务的训练优先级时,将所述第二训练任务移除至所述排队任务队列;在所述第一训练任务的训练优先级等于所述第二训练任务的训练优先级时,将默认训练任务移除至所述排队任务队列,所述默认训练任务包括第一训练任务或第二训练任务。
可以理解的是,在判定训练任务为多个时,需要将训练任务划分为第一训练任务和第二训练任务,以示区分,在第一训练任务和第二训练任务所需的算力资源均小于剩余算力资源时,表明算力资源池剩余的资源满足第一训练任务或者第二训练任务进行训练所需耗费的算力资源,训练规模指的是训练任务训练出模型的规模,训练复杂度指的是训练任务训练出模型的复杂度,该训练复杂度的数值越大,表明训练的难度越高,预设调度策略指的是确定训练任务的训练优先级并进行算力资源调度的策略,具体是通过预设调度策略根据训练规模和训练复杂度计算出第一训练任务和第二训练任务的训练优先级,然后需要比较第一训练任务和第二训练任务的训练优先级,若第一训练任务的训练优先级高,则将第一训练任务移除至排队任务队列进行训练,若第二训练任务的训练优先级高,则将第二训练任务移除至排队任务队列进行训练,若两者的优先级相同,则将默认训练任务移除至排队任务队列,例如,默认训练任务为先进入排队任务队列的训练,且第一训练任务比第二训练任务先进入至排队任务队列,则第一训练任务移除至排队任务队列,反之,则第二训练任务移除至排队任务队列。
步骤S302,在所述训练任务所需的算力资源小于剩余算力资源时,对训练任务模块的当前状态进行调整。
可以理解的是,在判定训练任务所需的算力资源小于剩余算力资源时,表明算力资源池冲剩余的算力资源满足训练任务的训练要求,此时需要对训练任务模块的当前状态进行调整。
步骤S303,在调整完成后,向所述排队任务队列发送任务训练退出请求,以使所述排队任务队列将所述训练任务进行移除。
应当理解的是,在调整完成后,由训练任务模块向排队任务队列发送任务训练退出请求,而排队任务队列在接收到任务训练退出请求时,会将训练任务进行移除,此时的训练任务将不在排队任务队列进行排队,而是准备进行训练。
可以理解的是,参考图4,图4为整体流程示意图,具体为:在排队任务队列根据新的训练任务发起任务训练请求时,分布式任务协调器会获取分布式锁,然后将任务训练请求对应的训练任务添加至排队任务队列,排队任务队列会向分布式任务协调器反馈训练任务添加成功信息,分布式任务协调器在接收到训练任务添加成功信息时,判断训练任务所需的算力资源是否小于或等于算力资源池剩余的算力资源,若是,则向算力资源池申请所需的算力资源,在申请成功后,修改训练任务模块的当前状态,然后将排队任务队列发送任务训练退出请求,在退出排队任务队列后,将训练任务模块的状态修改为可训练状态,然后向可训练任务队列发送可训练消息,在训练结束后,可训练任务队列还会向训练任务模块反馈训练成功信息,训练任务模块在接收到训练成功信息后,继续通过训练任务模块将训练成功信息转发给分布式任务协调器,以通知分布式任务协调器训练结束,此时的分布式任务协调释放分布式锁。
本实施例通过将目标算力资源申请请求发送至算力资源控制模块,以使所述算力资源控制模块根据所述目标算力资源申请请求反馈剩余算力资源;在所述训练任务所需的算力资源小于剩余算力资源时,对训练任务模块的当前状态进行调整;在调整完成后,向所述排队任务队列发送任务训练退出请求,以使所述排队任务队列将所述训练任务进行移除;通过上述方式,在根据目标算力资源申请请求得到算力资源控制模块反馈的剩余算力资源后,判断训练任务所需的算力资源是否小于剩余算力资源,若是,则调整训练任务模块的当前状态,并以使排队任务队列根据任务训练退出请求将训练任务进行移除,从而能够有效提高移除训练任务的准确性。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有分布式算力资源的编排程序,所述分布式算力资源的编排程序被处理器执行时实现如上文所述的分布式算力资源的编排方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,参照图5,本发明实施例还提出一种分布式算力资源的编排装置,所述分布式算力资源的编排装置包括:
锁定模块10,用于在接收到任务训练请求时,通过分布式锁将算力资源池进行锁定,并将所述任务训练请求对应的训练任务添加至排队任务队列。
计算模块20,用于在接收到训练任务添加成功信息时,根据预设资源算法计算出所述训练任务所需的算力资源。
判断模块30,用于在所述训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从所述排队任务队列中移除。
训练模块40,用于根据所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练。
本实施例通过在接收到任务训练请求时,通过分布式锁将算力资源池进行锁定,并将所述任务训练请求对应的训练任务添加至排队任务队列;在接收到训练任务添加成功信息时,根据预设资源算法计算出所述训练任务所需的算力资源;在所述训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从所述排队任务队列中移除;根据所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练;通过上述方式,训练任务由分布式协调器中间件来协调任务请求和资源占用,根据分配的算力资源对训练任务进行训练,能够有效提高训练模型任务的效率和高并发训练任务的稳定性。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的分布式算力资源的编排方法,此处不再赘述。
本发明所述分布式算力资源的编排装置的其他实施例或具有实现方法可参照上述各方法实施例,此处不再赘余。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,一体化平台工作站,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种分布式算力资源的编排方法,其特征在于,所述分布式算力资源的编排方法包括以下步骤:
在接收到任务训练请求时,通过分布式锁将算力资源池进行锁定,并将所述任务训练请求对应的训练任务添加至排队任务队列;
在接收到训练任务添加成功信息时,根据预设资源算法计算出所述训练任务所需的算力资源;
在所述训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从所述排队任务队列中移除;
根据所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练。
2.如权利要求1所述的分布式算力资源的编排方法,其特征在于,所述在所述训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从所述排队任务队列中移除,包括:
将目标算力资源申请请求发送至算力资源控制模块,以使所述算力资源控制模块根据所述目标算力资源申请请求反馈剩余算力资源;
在所述训练任务所需的算力资源小于剩余算力资源时,对训练任务模块的当前状态进行调整;
在调整完成后,向所述排队任务队列发送任务训练退出请求,以使所述排队任务队列将所述训练任务进行移除。
3.如权利要求2所述的分布式算力资源的编排方法,其特征在于,所述将目标算力资源申请请求发送至算力资源控制模块,以使所述算力资源控制模块根据所述目标算力资源申请请求反馈剩余算力资源之后,包括:
在所述训练任务所需的算力资源大于剩余算力资源时,判断所述训练任务是否为多个;
在所述训练任务为多个时,将所述训练任务划分为第一训练任务和第二训练任务;
根据预设资源算法计算出所述第一训练任务和第二训练任务所需的算力资源;
在所述第一训练任务和第二训练任务所需的算力资源均小于剩余算力资源时,获取所述第一训练任务和第二训练任务的训练规模和训练复杂度;
通过预设调度策略对所述第一训练任务和第二训练任务的训练规模和训练复杂度进行计算,得到训练优先级;
在所述第一训练任务的训练优先级高于所述第二训练任务的训练优先级时,将所述第一训练任务移除至所述排队任务队列;
在所述第一训练任务的训练优先级低于所述第二训练任务的训练优先级时,将所述第二训练任务移除至所述排队任务队列;
在所述第一训练任务的训练优先级等于所述第二训练任务的训练优先级时,将默认训练任务移除至所述排队任务队列,所述默认训练任务包括第一训练任务或第二训练任务。
4.如权利要求1所述的分布式算力资源的编排方法,其特征在于,所述根据所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练,包括:
在接收到排队任务队列发送的所述训练任务退出队列成功信息时,将训练任务模块的当前状态调整为可训练状态;
在调整完成后,通过所述训练任务模块向可训练任务队列发送任务训练启动信息,以使所述可训练任务队列根据所述任务训练启动信息反馈对应的确定启动信息;
根据所述确定启动信息和所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练。
5.如权利要求4所述的分布式算力资源的编排方法,其特征在于,所述根据所述确定启动信息和所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练之后,还包括:
在训练结束后,通过分布式锁将其他正在执行的训练任务进行解锁;
在解锁完成后,判断所述排队任务队列中是否还存在其他训练任务;
在所述排队任务队列中还存在其他训练任务时,将所述训练节点所占用的算力资源释放至算力资源池,以供其他训练任务的使用。
6.如权利要求5所述的分布式算力资源的编排方法,其特征在于,所述在所述排队任务队列中还存在其他训练任务时,将所述训练节点所占用的算力资源释放至算力资源池之后,还包括:
获取训练节点的分布式lease协议状态;
在所述分布式lease协议状态为失效状态时,将所述训练节点所占用的算力资源从所述算力资源池进行排除。
7.如权利要求6所述的分布式算力资源的编排方法,其特征在于,所述在所述分布式lease协议状态为失效状态时,将所述训练节点所占用的算力资源从所述算力资源池进行排除之后,还包括:
获取所述算力资源池的算力资源总量,以及所述算力资源总量被完全耗尽时训练节点数量集合;
对所述训练节点数量集合进行均值计算,得到平均训练节点数量;
根据所述平均训练节点数量和所述算力资源总量计算出各训练节点所需的算力资源;
在接收到训练节点增加请求时,根据所述训练节点增加请求确定增加训练节点数量;
根据所述增加训练节点数量和所述各训练节点所需的算力资源计算出所需增加的算力资源;
根据所述所需增加的算力资源对所述算力资源池进行扩容。
8.一种分布式算力资源的编排装置,其特征在于,所述分布式算力资源的编排装置包括:
锁定模块,用于在接收到任务训练请求时,通过分布式锁将算力资源池进行锁定,并将所述任务训练请求对应的训练任务添加至排队任务队列;
计算模块,用于在接收到训练任务添加成功信息时,根据预设资源算法计算出所述训练任务所需的算力资源;
判断模块,用于在所述训练任务所需的算力资源小于或等于剩余算力资源时,将所述训练任务从所述排队任务队列中移除;
训练模块,用于根据所述训练任务所需的算力资源通过训练节点对所述训练任务进行训练。
9.一种分布式算力资源的编排设备,其特征在于,所述分布式算力资源的编排设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分布式算力资源的编排程序,所述分布式算力资源的编排程序配置有实现如权利要求1至7中任一项所述的分布式算力资源的编排方法。
10.一种存储介质,其特征在于,所述存储介质上存储有分布式算力资源的编排程序,所述分布式算力资源的编排程序被处理器执行时实现如权利要求1至7中任一项所述的分布式算力资源的编排方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211420673.3A CN115562877B (zh) | 2022-11-15 | 2022-11-15 | 分布式算力资源的编排方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211420673.3A CN115562877B (zh) | 2022-11-15 | 2022-11-15 | 分布式算力资源的编排方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115562877A true CN115562877A (zh) | 2023-01-03 |
CN115562877B CN115562877B (zh) | 2023-03-24 |
Family
ID=84770772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211420673.3A Active CN115562877B (zh) | 2022-11-15 | 2022-11-15 | 分布式算力资源的编排方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115562877B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116737178A (zh) * | 2023-08-10 | 2023-09-12 | 北京万界数据科技有限责任公司 | 一种训练任务编排方法及系统 |
CN117349026A (zh) * | 2023-12-04 | 2024-01-05 | 环球数科集团有限公司 | 一种用于aigc模型训练的分布式算力调度系统 |
CN117873734A (zh) * | 2024-03-11 | 2024-04-12 | 南京认知物联网研究院有限公司 | 一种智能算力动态优化调度的分布式模型训练装置及方法 |
CN118260065A (zh) * | 2023-07-06 | 2024-06-28 | 陈英豪 | 一种基于共享算力的ai模型训练方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009823A (zh) * | 2017-11-03 | 2018-05-08 | 厦门快商通信息技术有限公司 | 基于区块链智能合约的分布式算力资源的调用方法和系统 |
US10063658B1 (en) * | 2015-04-30 | 2018-08-28 | V2COM, Inc. | Dedicated network platform for data producing devices that emulates distinct data and control channels via bifurcation of single channel environments |
CN111949395A (zh) * | 2020-07-16 | 2020-11-17 | 广州玖的数码科技有限公司 | 基于区块链的共享算力数据处理方法、系统及存储介质 |
EP3746960A1 (en) * | 2019-04-24 | 2020-12-09 | Alibaba Group Holding Limited | Distributed resource allocation |
CN112380020A (zh) * | 2020-12-03 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 一种算力资源分配方法、装置、设备及存储介质 |
CN112667594A (zh) * | 2021-01-14 | 2021-04-16 | 北京智源人工智能研究院 | 一种基于混合云资源的异构计算平台及模型训练方法 |
CN113392863A (zh) * | 2020-03-13 | 2021-09-14 | 深圳云天励飞技术有限公司 | 一种机器学习训练数据集的获取方法、获取装置及终端 |
CN114780225A (zh) * | 2022-06-14 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 一种分布式模型训练系统、方法及装置 |
-
2022
- 2022-11-15 CN CN202211420673.3A patent/CN115562877B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10063658B1 (en) * | 2015-04-30 | 2018-08-28 | V2COM, Inc. | Dedicated network platform for data producing devices that emulates distinct data and control channels via bifurcation of single channel environments |
CN108009823A (zh) * | 2017-11-03 | 2018-05-08 | 厦门快商通信息技术有限公司 | 基于区块链智能合约的分布式算力资源的调用方法和系统 |
EP3746960A1 (en) * | 2019-04-24 | 2020-12-09 | Alibaba Group Holding Limited | Distributed resource allocation |
CN113392863A (zh) * | 2020-03-13 | 2021-09-14 | 深圳云天励飞技术有限公司 | 一种机器学习训练数据集的获取方法、获取装置及终端 |
CN111949395A (zh) * | 2020-07-16 | 2020-11-17 | 广州玖的数码科技有限公司 | 基于区块链的共享算力数据处理方法、系统及存储介质 |
CN112380020A (zh) * | 2020-12-03 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 一种算力资源分配方法、装置、设备及存储介质 |
CN112667594A (zh) * | 2021-01-14 | 2021-04-16 | 北京智源人工智能研究院 | 一种基于混合云资源的异构计算平台及模型训练方法 |
CN114780225A (zh) * | 2022-06-14 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 一种分布式模型训练系统、方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118260065A (zh) * | 2023-07-06 | 2024-06-28 | 陈英豪 | 一种基于共享算力的ai模型训练方法和系统 |
CN116737178A (zh) * | 2023-08-10 | 2023-09-12 | 北京万界数据科技有限责任公司 | 一种训练任务编排方法及系统 |
CN116737178B (zh) * | 2023-08-10 | 2023-10-20 | 北京万界数据科技有限责任公司 | 一种训练任务编排方法及系统 |
CN117349026A (zh) * | 2023-12-04 | 2024-01-05 | 环球数科集团有限公司 | 一种用于aigc模型训练的分布式算力调度系统 |
CN117349026B (zh) * | 2023-12-04 | 2024-02-23 | 环球数科集团有限公司 | 一种用于aigc模型训练的分布式算力调度系统 |
CN117873734A (zh) * | 2024-03-11 | 2024-04-12 | 南京认知物联网研究院有限公司 | 一种智能算力动态优化调度的分布式模型训练装置及方法 |
CN117873734B (zh) * | 2024-03-11 | 2024-05-07 | 南京认知物联网研究院有限公司 | 一种智能算力动态优化调度的分布式模型训练装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115562877B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115562877B (zh) | 分布式算力资源的编排方法、装置、设备及存储介质 | |
CN107911478B (zh) | 基于化学反应优化算法的多用户计算卸载方法及装置 | |
EP4242843A1 (en) | Graphics card memory management method and apparatus, device, and system | |
CN111427675B (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
CN105159782A (zh) | 基于云主机为订单分配资源的方法和装置 | |
CN109300217B (zh) | 排队叫号方法、计算机存储介质、排队叫号服务器及系统 | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN106528288A (zh) | 一种资源管理方法、装置和系统 | |
WO2021159831A1 (zh) | 编程平台的用户代码运行方法及平台、节点、设备、介质 | |
US9665409B2 (en) | Methods and apparatus facilitating access to storage among multiple computers | |
CN112672382A (zh) | 混合协作计算卸载方法、装置、电子设备及存储介质 | |
CN113608852B (zh) | 任务调度方法、调度模块、推理节点和协同作业系统 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN112114935B (zh) | 一种热插拔方法及相关设备 | |
JP2006107197A (ja) | メモリ制御方法およびプログラムならびに端末装置 | |
CN117221326A (zh) | 软件负载均衡调度方法、系统、电子设备和存储介质 | |
CN115601221B (zh) | 一种资源的分配方法、装置和一种人工智能训练系统 | |
CN114116220B (zh) | 一种gpu共享控制方法、gpu共享控制装置及存储介质 | |
CN114610465A (zh) | 任务处理方法、装置及存储介质 | |
CN112130979B (zh) | 调度任务及训练神经网络模型的方法、装置、终端和介质 | |
CN111984424A (zh) | 任务处理方法、装置、设备及计算机可读存储介质 | |
JP2003288188A (ja) | 印刷ジョブ管理装置および印刷ジョブ管理方法 | |
CN116112976B (zh) | 设备计算迁移方法、装置、设备及存储介质 | |
CN114866612B (zh) | 一种电力微服务卸载方法及装置 | |
CN117493022B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |