CN114896049A - 电力人工智能平台作业任务调度方法、系统、设备及介质 - Google Patents
电力人工智能平台作业任务调度方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN114896049A CN114896049A CN202210680921.1A CN202210680921A CN114896049A CN 114896049 A CN114896049 A CN 114896049A CN 202210680921 A CN202210680921 A CN 202210680921A CN 114896049 A CN114896049 A CN 114896049A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- dependency
- batch
- memory
- 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
Links
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012163 sequencing technique Methods 0.000 claims abstract description 21
- 230000000737 periodic effect Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 11
- 238000004519 manufacturing process Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000012549 training Methods 0.000 description 21
- 238000011161 development Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 11
- 230000006872 improvement Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 238000007619 statistical method Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003054 catalyst Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- 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
- G06F9/505—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 considering the load
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/06—Energy or water supply
-
- 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
-
- 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
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- Databases & Information Systems (AREA)
- Water Supply & Treatment (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Public Health (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种电力人工智能平台作业任务调度方法、系统、设备及介质,该方法包括:获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次;对所述任务批次进行周期性的依赖状态检查,获得依赖状态检查结果;根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,然后计算工作节点得分并排序,根据工作节点得分的排序进行任务调度。该方法实现任务调度到合适的服务器执行任务。
Description
技术领域
本发明属于数据传输领域,特别是涉及一种电力人工智能平台作业任务调度方法、系统、设备及介质。
背景技术
为有效支撑电力各专业人工智能应用,建设电力人工智能平台,为电力业务提供模型训练和推理服务。电力人工智能平台为电力调度、运检等各业务领域开展人工智能应用提供基础工具和服务平台,包括样本标注与存储、模型训练、模型评估与管理、模型推理服务等。任务调度和资源管理是电力人工智能平台的关键核心技术,如何对电力各类作业任务进行调度分配合适的计算工作节点,关系平台的服务能力和效率。
发明内容
本发明的目的是针对电力人工智能平台的各类作业任务,提供一种电力人工智能平台作业任务调度方法、系统、设备及介质,该方法实现任务调度到合适的服务器执行任务。
为达到上述目的,本发明采用以下技术方案予以实现:
一种电力人工智能平台作业任务调度方法,包括:
获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次;
对所述任务批次进行周期性的依赖状态检查,获得依赖状态检查结果;
根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,然后计算工作节点得分并排序,根据工作节点得分的排序进行任务调度。
作为本发明的进一步改进,所述任务批次包括定时任务批次和手动任务批次;
所述定时任务批次,触发以时间时间单位为产出周期任务,生成需要执行的任务批次和相关配置信息存入任务批次表,并根据任务的定义解析出任务批次的依赖路径和产出路径、第三方依赖、逻辑父依赖,并存入任务批次从表;
所述手动任务批次,由手动执行或重跑任务得到,执行任务调度时间为当前时间,重跑任务时间区间自行输入;重跑任务选择只调度此任务本身,或选择级联调度,选择级联调度时除了生成此任务的相应批次还触发依赖于此任务的任务生成对应的批次。
作为本发明的进一步改进,所述依赖状态检查包括路径依赖检查、第三方依赖检查和逻辑依赖检查;
所述对所述任务批次进行周期性的依赖状态检查包括:
任务调度程序周期性触发依赖检查服务,依赖检查服务首先查询启用任务处于等待状态的批次,并到任务批次从表分别检查依赖是否满足。
作为本发明的进一步改进,所述根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,包括:
若满足依赖检查,则获取任务Task的CPU、内存、GPU的需求量参数;
针对工作节点列表中的每一个工作节点,获取工作节点CPU、内存、GPU总量和使用量,对满足任务资源需求量的工作节点进行预选,获得可调度工作节点列表。
作为本发明的进一步改进,所述计算工作节点得分基于动态负载均衡方法,包括以下步骤:
其中,cpuFraction为工作节点CPU,memoryFraction为内存使用率,
式中,Rcpu为待调度任务的CPU需求,Rmemory为内存需求为,Tcpu为待分配工作节点当前CPU总量,Ucpu为使用量,Tmemory为内存总量,Umemory为内存使用量。
作为本发明的进一步改进,所述根据工作节点得分的排序进行任务调度是指:
将任务调度给最高得分的工作节点;若存在多个相同最高得分的工作节点,随机选取一个最高得分的工作节点。
作为本发明的进一步改进,所述将任务调度给最高得分的工作节点后,并将所述任务的状态更新为已分配并存储相关信息,完成一次任务调度;完成调度后重新进行获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次步骤。
作为本发明的进一步改进,任务调度处理后,对于已经调度而未运行的任务批次,对任务进行再调度。
一种电力人工智能平台作业任务调度系统,包括:
任务批次生成模块,用于获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次;
任务依赖检查模块,用于对所述任务批次进行周期性的依赖状态检查,获得依赖状态检查结果;
任务调度模块,用于根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,然后计算工作节点得分并排序,根据工作节点得分的排序进行任务调度。
作为本发明的进一步改进,所述任务调度模块中,所述根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,包括:
若满足依赖检查,则获取任务Task的CPU、内存、GPU的需求量参数;
针对工作节点列表中的每一个工作节点,获取工作节点CPU、内存、GPU总量和使用量,对满足任务资源需求量的工作节点进行预选,获得可调度工作节点列表。
作为本发明的进一步改进,所述任务调度模块中,所述计算工作节点得分基于动态负载均衡方法,包括以下步骤:
其中,cpuFraction为工作节点CPU,memoryFraction为内存使用率,
式中,Rcpu为待调度任务的CPU需求,Rmemory为内存需求为,Tcpu为待分配工作节点当前CPU总量,Ucpu为使用量,Tmemory为内存总量,Umemory为内存使用量。
一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述电力人工智能平台作业任务调度方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述电力人工智能平台作业任务调度方法的步骤。
与现有技术相比,本发明具有以下有益效果:
本发明针对人工智能多类型异构资源,针对人工智能平台各类作业任务,提出了基于负载均衡的任务调度算法,并给出了任务调度具体技术方案,平台任务由用户提交或触发,提交到应用服务器将相关数据保存到数据库,任务调度组件根据算法分配任务到计算集群的计算工作节点,计算工作节点周期性反馈任务执行情况到状态同步组件,相关数据存储到数据库,供用户查看。本发明的任务调度方法实现电力人工智能平台模型开发、模型训练、模型服务等各类任务高效执行,有效支撑电力人工智能应用开展。
附图说明
图1为本发明平台任务处理流程图;
图2为本发明电力人工智能平台功能组件示意图;
图3为本发明平台任务调度流程图;
图4为本发明一种电力人工智能平台作业任务调度方法流程图;
图5为本发明一种电力人工智能平台作业任务调度系统框图;
图6为本发明一种电子设备示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
电力人工智能平台提供从样本管理、模型训练、模型评估到模型部署应用全流程服务,应用运行过程中产生数据反哺样本库,实现全过程协同闭环。
面向人工智能应用业务人员、模型开发人员、应用开发人员等不同用户,开展图像、视频、文本、语音等电力人工智能样本收集与标注、模型训练、模型评估,基于成熟模型为电力运检、调度、安监、营销等业务应用提供实时在线或离线调用服务。
电力人工智能平台任务包括模型开发类、模型训练类、模型推理服务类、样本数据批量处理类、运营统计分析类等。
模型开发为用户提供了多版本、多框架的深度学习开发环境以及各种登录方式,将需要的依赖打入镜像,通过Docker来创建一个容器提供给用户使用。用户可以通过控制台创建TensorFlow、Caffe、MxNet、PaddlePaddle等框架的开发环境,然后根据环境地址实现对开发环境的访问,开发调试自己的训练任务代码。代码调试完成后通过平台内提供的打包上传脚本,上传代码到对象存储,以供后续的模型训练任务使用。
模型训练为算法人员提交的图像识别、文本分析、语音处理等任务,用于支撑电力运检、调度、安监、营销等专业领域模型构建。模型训练用户通过平台创建包含Tensorflow、MxNet、Caffe、PaddlePaddle等深度学习框架的开发环境,指定对象存储的训练代码地址以及训练数据,就可以自动启动训练任务,并将训练好的模型输出到指定用户自行创建的对象存储的桶内,以方便模型的管理保存。
模型服务类为模型部署后提供的各类推理服务,直接向电力各专业业务系统开放在线调用。用户在平台的控制台,创建一个模型服务,选好对应的框架和模型所在对象存储的地址,可自动部署好一个模型服务,对外提供RESTful等接口的推理服务。
样本批量处理类任务为用户提供图像、视频、文本、语音等样本数据预处理,以及平台标注工具提供的自动化标注等任务,为电力专业模型研发提供训练数据和验证数据。运营统计分析类为平台日常运营统计分析报表等任务。
本发明的目的是针对电力人工智能平台的各类作业任务,提供一种作业任务调度方法,实现任务调度到合适的服务器执行任务。
实施例1
如图4所示,一种电力人工智能平台作业任务调度方法,包括:
S100,获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次;
S200,对所述任务批次进行周期性的依赖状态检查,获得依赖状态检查结果;
S300,根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,然后计算工作节点得分并排序,根据工作节点得分的排序进行任务调度。
本发明针对人工智能平台各类作业任务,提出了基于负载均衡的任务调度算法,并给出了任务调度具体技术方案,实现电力人工智能平台模型开发、模型训练、模型服务等各类任务高效执行,有效支撑电力人工智能应用开展。
作为本发明的可选实施例,所述定时任务批次,触发以时间时间单位为产出周期任务,生成需要执行的任务批次和相关配置信息存入任务批次表,并根据任务的定义解析出任务批次的依赖路径和产出路径、第三方依赖、逻辑父依赖,并存入任务批次从表;
所述手动任务批次,由手动执行或重跑任务得到,执行任务调度时间为当前时间,重跑任务时间区间自行输入;重跑任务选择只调度此任务本身,或选择级联调度,选择级联调度时除了生成此任务的相应批次还触发依赖于此任务的任务生成对应的批次。
作为本发明的可选实施例,所述对所述任务批次进行周期性的依赖状态检查包括:
任务调度程序周期性触发依赖检查服务,依赖检查服务首先查询启用任务处于等待状态的批次,并到任务批次从表分别检查依赖是否满足。
所述根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,包括:
若满足依赖检查,则获取任务Task的CPU、内存、GPU的需求量参数;
针对工作节点列表中的每一个工作节点,获取工作节点CPU、内存、GPU总量和使用量,对满足任务资源需求量的工作节点进行预选,获得可调度工作节点列表。
作为本发明的可选实施例,所述计算工作节点得分基于动态负载均衡方法,包括以下步骤:
其中,cpuFraction为工作节点CPU,memoryFraction为内存使用率,
式中,Rcpu为待调度任务的CPU需求,Rmemory为内存需求为,Tcpu为待分配工作节点当前CPU总量,Ucpu为使用量,Tmemory为内存总量,Umemory为内存使用量。
其中,所述根据工作节点得分的排序进行任务调度是指:
将任务调度给最高得分的工作节点;若存在多个相同最高得分的工作节点,随机选取一个最高得分的工作节点。
所述将任务调度给最高得分的工作节点后,并将所述任务的状态更新为已分配并存储相关信息,完成一次任务调度;完成调度后重新进行获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次步骤。任务调度处理后,对于已经调度而未运行的任务批次,对任务进行再调度。
实施例2
平台任务由用户提交或触发,提交到应用服务器将相关数据保存到数据库,任务调度组件根据算法分配任务到计算集群的计算工作节点,计算工作节点周期性反馈任务执行情况到状态同步组件,相关数据存储到数据库,供用户查看。具体流程如图1所示。
电力人工智能平台作为电力各专业领域样本数据处理、模型训练、模型推理服务支撑平台,承载用户手动提交、批处理、实时调用任务,任务量大、业务复杂、类型多样。面对大量电力各专业不同类任务,如何调度各类任务、分配相关资源,保证任务执行、按时完成,对平台任务处理和资源管理提出较大的挑战。
平台提供人工智能样本标注与管理、模型训练、模型服务、模型管理等能力,采用Kubemetes+Docker技术对底层的异构存储和计算资源进行调度和管理。平台实现了对多种异构存储的读写及管理,包括NFS、NAS等共享网络文件系统,也支持HDFS及S3等分布式文件系统。在计算能力方面,平台可以将计算任务调度到CPU及GPU计算资源中,同时支持RDMA对工作节点间通信进行加速。
平台资源管理说明如下:
(1)Docker技术
容器技术是一种轻量级的虚拟化技术,建立在物理服务器上,根据容器进程来区分使用资源。Docker是创建容器的主流工具,可将各种应用及其依赖的环境封装在镜像文件中。镜像文件可以在异构资源进行部署和迁移,而不用进行复杂的环境依赖部署,较大的提高了应用部署效率。
Docker容器化技术资源隔离性较好,不同容器互不影响,且不能访问对方资源。Docker底层采用宿主机器的操作系统,利用Linux操作系统的CG-roup以及Namespace技术实现资源分配和隔离。由于Docker可快速启动、编写镜像文件简单等特点,广泛应用于各类微服务应用部署。
电力人工智能平台采用Docker技术创建模型开发训练、模型服务等环境,可为用户提供快速服务环境,可实现秒级启动。根据用户需求不同,可根据不同训练框架及版本定制化多类型镜像。基于Docker容器技术实现模型训练等服务多用户互不干扰。
(2)Kubemetes容器编排服务
Kubemetes是一种开源的管理跨服务器的容器集群系统,其主要功能是管理Docker集群,实现Docker容器创建、调度、监控等能力。Kubemetes为Docker应用集群提供应用部署、资源弹性伸缩、日志收集、监控等全套方案。Kubemetes使用Docker来打包、分发和运行容器化应用,为部署应用的容器集群提供服务。Kubemetes在Docker之上进行抽象使用户方便透明地利用Docker。
容器技术中,调度是特别重要的技术。当平台具备几十台、上百台服务器,同时存在多类型资源配置,需要对集群中的容器进行合理的调度和管理,使容器运行在最合理的服务器中。
Pod是一个相对紧耦合的部署在同一台服务器的Docker容器组,其是Kubemetes调度及部署的最小单元。用户可通过向Kubemetes的API服务器发送一个HTTPPOST请求直接创建Pod。在面向应用的场景下,一个Pod即代表了一个微服务架构的应用,而Pod内的容器则为这个应用的独立组件。在面向资源分配和调度的场景下,一个Pod即代表了Kubemetes集群中一个运行的任务资源分配和调度的最小单位。
Kubemetes集群调度器针对待调度的Pod以及服务器集群工作节点,利用调度算法在服务工作节点集中选出最合理的工作节点作为工作节点。Kubemetes提供可扩展的调度算法架构,用户可以根据个性化需求自定义设计调度算法,然后集成到调度器中。
电力人工智能平台底层采用Docker技术和Kubemetes实现底层容器创建、管理、监控等能力,通过Kubemetes提供的API接口调用各类服务,实现模型训练、模型服务等应用支撑。
其中,任务调度是将一组任务分配到给定的一组工作节点资源上。工作节点资源包括CPU、GPU、内存等资源。设m个任务的集合用T={T1,T2,…,Tm}表示,n个工作节点的集合用N={N1,N2,…,Nn)表示。资源使用可以用m×n矩阵Pm×n表示,其如公式(1)所示,式中Pij表示Ti任务在Nj上执行。
在选择合适工作节点时,采用基于动态负载均衡的算法,该算法综合考虑工作节点的待执行任务量和当前负载情况。设待调度任务的CPU需求为Rcpu,内存需求为Rmemory。待分配工作节点当前CPU总量为Tcpu,使用量为Ucpu,内存总量为Tmemory,内存使用量为Umemory,则工作节点CPU、内存使用率如式(2)、(3)所示。
考虑工作节点CPU或内存使用率偏高,而另一种资源使用率偏低问题,采用公式(4)对待分配工作节点进行打分,使CPU、内存负载均衡的工作节点得分较高。
任务调度实现基于负载均衡的任务调度流程包括生成任务批次、任务依赖检查、任务超时检查、任务调度(任务再调度),具体如图3所示。具体包括如下步骤:
(1)生成任务列表
通过周期定时扫描任务表生成任务批次,获取平台的定时和手动任务,包含任务批次和相关配置、任务依赖路径和产出路径、任务的第三方依赖、任务的逻辑父依赖等。仅生成任务批次,不真正执行任务,任务批次此时处于等待状态。
针对定时任务,触发以月、周、天、小时、分钟等为产出周期的任务,生成需要执行的任务批次和相关配置信息存入任务批次表,并根据任务的定义解析出任务批次的依赖路径和产出路径、第三方依赖、逻辑父依赖,并存入任务批次从表。
用户可手动执行或重跑任务,生成手动任务批次,执行任务调度时间为当前时间,重跑任务时间区间用户可自行输入。重跑功能可以选择只调度此任务本身,也可以选择级联调度,选择级联调度时除了生成此任务的相应批次还触发依赖于此任务的任务生成对应的批次。
(2)任务依赖检查
对任务批次进行周期性的依赖状态检查,获得依赖状态检查结果。依赖状态检查包括路径依赖检查、第三方依赖检查和逻辑依赖检查。任务调度程序周期性触发依赖检查服务,依赖检查服务首先查询启用任务处于等待状态的批次,并到任务批次从表分别检查依赖是否满足。
(3)任务调度
将依赖状态检查结果符合预设要求的任务批次,由任务调度组件获取集群机器的运行信息,然后根据公式(4)计算工作节点得分并排序,将任务调度给最高得分的工作节点,若存在多个相同最高得分的工作节点,随机选取一个最高得分的工作节点。任务调度处理后,对于已经调度而未运行的任务批次,对任务进行再调度。
任务调度中具体任务调度算法如下:
1)选取任务队列中的一个任务Task,检查任务数据依赖、逻辑依赖、第三方依赖等,若满足依赖检查,则获取任务Task的CPU、内存、GPU卡的需求量参数;否则继续步骤1),选取下一个任务。
2)针对工作节点列表中的每一个工作节点,获取工作节点CPU、内存、GPU总量和使用量,对满足任务资源需求量的工作节点进行预选,获得可调度工作节点列表。
3)针对可调度工作节点列表,根据公式(4)分别计算工作节点得分,然后对可调度工作节点进行排序,得分最高的工作节点即为要分配的工作节点。
4)任务调度组件将该任务调度到得分最高的工作节点,任务状态更新为已分配并存储相关信息,重新进行步骤1)。
如图5所示,本发明还提供一种电力人工智能平台作业任务调度系统,包括:
任务批次生成模块,用于获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次;
任务依赖检查模块,用于对所述任务批次进行周期性的依赖状态检查,获得依赖状态检查结果;
任务调度模块,用于根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,然后计算工作节点得分并排序,根据工作节点得分的排序进行任务调度。
作为进一步改进,所述任务调度模块中,所述根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,包括:
若满足依赖检查,则获取任务Task的CPU、内存、GPU的需求量参数;
针对工作节点列表中的每一个工作节点,获取工作节点CPU、内存、GPU总量和使用量,对满足任务资源需求量的工作节点进行预选,获得可调度工作节点列表。
作为进一步改进,所述任务调度模块中,所述计算工作节点得分基于动态负载均衡方法,包括以下步骤:
其中,cpuFraction为工作节点CPU,memoryFraction为内存使用率,
式中,Rcpu为待调度任务的CPU需求,Rmemory为内存需求为,Tcpu为待分配工作节点当前CPU总量,Ucpu为使用量,Tmemory为内存总量,Umemory为内存使用量。
如图3所示,本发明第三个目的是提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述电力人工智能平台作业任务调度方法的步骤。
所述电力人工智能平台作业任务调度方法包括以下步骤:
获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次;
对所述任务批次进行周期性的依赖状态检查,获得依赖状态检查结果;
根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,然后计算工作节点得分并排序,根据工作节点得分的排序进行任务调度。
本发明第四个目的是提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述电力人工智能平台作业任务调度方法的步骤。
所述电力人工智能平台作业任务调度方法包括以下步骤:
获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次;
对所述任务批次进行周期性的依赖状态检查,获得依赖状态检查结果;
根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,然后计算工作节点得分并排序,根据工作节点得分的排序进行任务调度。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (13)
1.一种电力人工智能平台作业任务调度方法,其特征在于,包括:
获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次;
对所述任务批次进行周期性的依赖状态检查,获得依赖状态检查结果;
根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,然后计算工作节点得分并排序,根据工作节点得分的排序进行任务调度。
2.根据权利要求1所述的一种电力人工智能平台作业任务调度方法,其特征在于,所述任务批次包括定时任务批次和手动任务批次;
所述定时任务批次,触发以时间时间单位为产出周期任务,生成需要执行的任务批次和相关配置信息存入任务批次表,并根据任务的定义解析出任务批次的依赖路径和产出路径、第三方依赖、逻辑父依赖,并存入任务批次从表;
所述手动任务批次,由手动执行或重跑任务得到,执行任务调度时间为当前时间,重跑任务时间区间自行输入;重跑任务选择只调度此任务本身,或选择级联调度,选择级联调度时除了生成此任务的相应批次还触发依赖于此任务的任务生成对应的批次。
3.根据权利要求1所述的一种电力人工智能平台作业任务调度方法,其特征在于,所述依赖状态检查包括路径依赖检查、第三方依赖检查和逻辑依赖检查;
所述对所述任务批次进行周期性的依赖状态检查包括:
任务调度程序周期性触发依赖检查服务,依赖检查服务首先查询启用任务处于等待状态的批次,并到任务批次从表分别检查依赖是否满足。
4.根据权利要求1所述的一种电力人工智能平台作业任务调度方法,其特征在于,所述根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,包括:
若满足依赖检查,则获取任务的CPU、内存、GPU的需求量参数;
针对工作节点列表中的每一个工作节点,获取工作节点CPU、内存、GPU总量和使用量,对满足任务资源需求量的工作节点进行预选,获得可调度工作节点列表。
6.根据权利要求1所述的一种电力人工智能平台作业任务调度方法,其特征在于,所述根据工作节点得分的排序进行任务调度是指:
将任务调度给最高得分的工作节点;
若存在多个相同最高得分的工作节点,则随机选取一个最高得分的工作节点。
7.根据权利要求6所述的一种电力人工智能平台作业任务调度方法,其特征在于,所述将任务调度给最高得分的工作节点后,并将所述任务的状态更新为已分配并存储相关信息,完成一次任务调度;完成调度后重新进行获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次步骤。
8.根据权利要求1所述的一种电力人工智能平台作业任务调度方法,其特征在于,任务调度处理后,对于已经调度而未运行的任务批次,对任务进行再调度。
9.一种电力人工智能平台作业任务调度系统,其特征在于,包括:
任务批次生成模块,用于获取周期定时扫描的电力人工智能平台作业任务列表,生成任务批次;
任务依赖检查模块,用于对所述任务批次进行周期性的依赖状态检查,获得依赖状态检查结果;
任务调度模块,用于根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,然后计算工作节点得分并排序,根据工作节点得分的排序进行任务调度。
10.根据权利要求9所述的一种电力人工智能平台作业任务调度系统,其特征在于,
所述任务调度模块中,所述根据依赖状态检查结果得到符合预设要求的任务批次,并获取符合预设要求的任务批次对应的集群机器的运行信息,包括:
若满足依赖检查,则获取任务的CPU、内存、GPU的需求量参数;
针对工作节点列表中的每一个工作节点,获取工作节点CPU、内存、GPU总量和使用量,对满足任务资源需求量的工作节点进行预选,获得可调度工作节点列表。
12.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-10任一项所述电力人工智能平台作业任务调度方法的步骤。
13.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-10任一项所述电力人工智能平台作业任务调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210680921.1A CN114896049A (zh) | 2022-06-16 | 2022-06-16 | 电力人工智能平台作业任务调度方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210680921.1A CN114896049A (zh) | 2022-06-16 | 2022-06-16 | 电力人工智能平台作业任务调度方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114896049A true CN114896049A (zh) | 2022-08-12 |
Family
ID=82728457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210680921.1A Pending CN114896049A (zh) | 2022-06-16 | 2022-06-16 | 电力人工智能平台作业任务调度方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114896049A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115981865A (zh) * | 2022-12-29 | 2023-04-18 | 广州趣研网络科技有限公司 | 一种业务资源调度方法、装置、电子设备及存储介质 |
-
2022
- 2022-06-16 CN CN202210680921.1A patent/CN114896049A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115981865A (zh) * | 2022-12-29 | 2023-04-18 | 广州趣研网络科技有限公司 | 一种业务资源调度方法、装置、电子设备及存储介质 |
CN115981865B (zh) * | 2022-12-29 | 2024-05-07 | 广州趣研网络科技有限公司 | 一种业务资源调度方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021213293A1 (zh) | 一种面向群智感知的泛在操作系统 | |
CN110069334A (zh) | 一种基于包管理的分布式数据作业调度的方法和系统 | |
CN108243012B (zh) | 在线计费系统ocs中计费应用处理系统、方法及装置 | |
US10228974B2 (en) | Intelligent management of processing tasks on multi-tenant or other constrained data processing platform | |
Kurowski et al. | Grid scheduling simulations with GSSIM | |
KR20210129584A (ko) | 동적으로 할당된 클라우드 작업자 관리 시스템 및 그의 방법 | |
CN112579267A (zh) | 一种去中心化大数据作业流调度方法及装置 | |
CN106845746A (zh) | 一种支持大规模实例密集型应用的云工作流管理系统 | |
Rossetti et al. | A cloud computing architecture for supply chain network simulation | |
Galleguillos et al. | AccaSim: a customizable workload management simulator for job dispatching research in HPC systems | |
Chandrashekar | Robust and fault-tolerant scheduling for scientific workflows in cloud computing environments. | |
Ye et al. | SHWS: Stochastic hybrid workflows dynamic scheduling in cloud container services | |
Davami et al. | Fog-based architecture for scheduling multiple workflows with high availability requirement | |
Lv et al. | An attribute-based availability model for large scale IaaS clouds with CARMA | |
Pugliese et al. | Modeling and supporting grid scheduling | |
CN114896049A (zh) | 电力人工智能平台作业任务调度方法、系统、设备及介质 | |
CN109656692B (zh) | 一种大数据任务管理方法、装置、设备及存储介质 | |
Amoretti et al. | Efficient autonomic cloud computing using online discrete event simulation | |
Galleguillos et al. | Accasim: an HPC simulator for workload management | |
Wang et al. | An Organizational Structure and Self-Adaptive Mechanism for Holonic Multi-Agent Systems | |
CN115237547A (zh) | 一种非侵入式hpc计算集群的统一容器集群托管系统和方法 | |
Shan et al. | Adaptive resource allocation for workflow containerization on Kubernetes | |
Hernández et al. | A Simulation-based Scheduling Strategy for Scientific Workflows. | |
Yu et al. | Qos-based scheduling of workflows on global grids | |
Gao et al. | Research and Application of Task Scheduling and Resource Management Technology in Electric Power Artificial Intelligence Platform |
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 |