CN117891584B - 基于dag分组的任务并行度调度方法、介质和设备 - Google Patents
基于dag分组的任务并行度调度方法、介质和设备 Download PDFInfo
- Publication number
- CN117891584B CN117891584B CN202410299261.1A CN202410299261A CN117891584B CN 117891584 B CN117891584 B CN 117891584B CN 202410299261 A CN202410299261 A CN 202410299261A CN 117891584 B CN117891584 B CN 117891584B
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- parallelism
- parallel
- group
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 27
- 230000006978 adaptation Effects 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
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
-
- 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
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于DAG分组的任务并行度调度方法、介质和设备,所述方法根据初始并行度以及任务节点的执行顺序,对执行各分组的调度任务的任务节点进行初步划分,得到第一划分结果;而后根据各分组内任务节点的元数据规模及历史执行耗时信息对所述第一划分结果进行修正,得到第二划分结果;而后根据所述第二划分结果确定分组内任务节点的调度关系,自动生成分组内的DAG图;而后根据生成的所述DAG图调度分组内的并行任务节点组执行所述调度任务。本申请通过调度任务对应的元数据规模和历史执行时长,采用最佳适应算法自动对调度任务进行划分,同时确保分组内任务具有良好并行性。
Description
技术领域
本发明涉及任务调度领域,具体涉及一种基于DAG分组的任务并行度调度方法、介质和设备。
背景技术
离线计算是对离线批量及延时较高的静态数据进行处理的一种数据计算技术,适用于对大规模数据集在离线环境中进行处理分析。离线计算的任务调度是对数据处理任务进行配置检查,依据执行顺序生成任务流,并分配对应节点以对离线任务进行管理。在传统大数据平台的离线计算流程节点调度中,调度流程包含任务数量多,对所有调度任务需手动确定执行顺序,以生成任务DAG图再进行节点分配。
目前,主流大数据平台的离线计算任务调度中,对于某一调度流程中的众多任务需独立确定节点依赖,以进行资源分配,不利于平台集群的资源利用,且调度流程执行效率低。且现有的任务调度技术中需手动确定任务执行顺序及资源分配情况,操作流程繁琐,复杂度高,不利于资源均匀分配,可能导致任务执行并行度低的问题,不能有效满足实际应用需求。
公开号为“CN108984284A”的中国专利申请公开了一种基于离线计算平台的DAG任务调度方法及装置,方法包括:根据预先存储的元数据信息构建多个任务节点,及根据元数据间依赖关系构建多个任务节点间的依赖关系;对任务节点进行拓扑排序,生成DAG任务关系图;根据触发地对任务节点的调度请求,执行对应的任务节点的任务,并实时修改DAG任务关系图中对应的任务节点的显示样式。但该方法更多地是为了实现实时对任务调度进行监听,方便利用DAG任务关系图对任务异常进行追溯,查找任务异常源头。其主要是基于多个相关任务节点并根据元数据间依赖关系进行拓扑排序生成DAG图,依然存在着任务的执行效率低下等问题。
发明内容
鉴于上述问题,本发明提供了一种基于DAG分组的任务并行度调度的技术方案,用以解决现有技术的任务并行度调度方式执行速度慢,效率不高等问题。
为实现上述目的,第一方面,本发明提供了一种基于DAG分组的任务并行度调度方法,所述方法包括以下步骤:
对相同类型的调度任务进行分组;
根据初始并行度以及任务节点的执行顺序,对执行各分组的调度任务的任务节点进行初步划分,得到第一划分结果,所述第一划分结果包括若干并行任务节点组,每一所述并行任务节点组包括至少一个任务节点;
根据各分组内任务节点的元数据规模及历史执行耗时信息对所述第一划分结果进行修正,得到第二划分结果,所述第二划分结果包括各并行任务节点组所包含的任务节点的划分修正结果;
根据所述第二划分结果确定分组内任务节点的调度关系,自动生成分组内的DAG图;
根据生成的所述DAG图调度分组内的并行任务节点组执行所述调度任务;
执行所述调度任务对应的分组内的并行任务节点组根据最佳适应算法确定,所述最佳适应算法包括以下步骤:
将接收的需要调度的任务按所占资源大小进行降序排序;
对已排序的任务进行遍历,判断是否完成遍历,若是则遍历完成,终止流程,若否则每次处理一所述任务的分配,具体包括:
判断当前任务是否存在最优并行任务节点组;
若存在则将当前任务分配至所述最优并行任务节点组进行执行,所述最优并行任务节点组为分组内使用资源最少且可用资源数大于当前任务的并行任务节点组;
若不存在则将当前任务划分至当前资源总数最小的并行任务节点组,等待该并行任务节点组中可用资源数大于或等于该任务时再将当前任务分配给该并行任务节点组。
进一步的,所述初始并行度根据用户输入的设定指令进行确定或根据离线计算资源默认并行度进行确定,所述任务节点的执行顺序根据分组内任务节点的依赖关系进行确定。
进一步的,所述元数据规模根据元数据表中所描述的实际表的数据量进行确定 ,所述元数据表中记载有多个元数据信息,所述元数据信息包括任务节点的名称、数据类型、调度类型和任务执行状态。
进一步的,所述历史执行耗时信息从任务节点的历史执行日志信息中获取,所述历史执行日志信息包括任务节点的历史执行耗时信息、任务节点分配情况和任务执行状态。
进一步的,各个并行任务节点组所分配的资源总数的差异在预设误差范围内。
进一步的,所述方法包括:按照预设周期定时更新所述并行任务节点组中各个任务节点的运行状态。
进一步的,所述对相同类型的调度任务进行分组包括:根据调度任务执行所需的资源大小以及历史执行时长对调度任务进行分组;
所述方法包括:
根据并行度生成并行任务流,每一并行任务流包括若干任务,所述任务被配置为通过所述最佳适应算法分配至所述并行任务节点组中的并行节点,每一并行节点用于执行一个所述任务。
进一步的,所述资源包括硬件资源和/或软件资源;
所述硬件资源包括处理器核心、内存、存储空间、网络设备、输入/输出设备中的任一项或多项;
所述软件资源包括线程、许可证、连接、数据库中的任一项或多项。
在第二方面,本发明还提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现在第一方面所述的方法。
在第三方面,本发明还提供一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现在第一方面所述的方法。
区别于现有技术,上述技术方案涉及的基于DAG分组的任务并行度调度方法、存储介质和电子设备,所述方法根据初始并行度以及任务节点的执行顺序,对执行各分组的调度任务的任务节点进行初步划分,得到第一划分结果;而后根据各分组内任务节点的元数据规模及历史执行耗时信息对所述第一划分结果进行修正,得到第二划分结果;而后根据所述第二划分结果确定分组内任务节点的调度关系,自动生成分组内的DAG图;而后根据生成的所述DAG图调度分组内的并行任务节点组执行所述调度任务。本申请通过调度任务对应的元数据规模和历史执行时长,采用最佳适应算法自动对调度任务进行划分,同时确保分组内任务具有良好并行性。
上述发明内容相关记载仅是本发明技术方案的概述,为了让本领域普通技术人员能够更清楚地了解本发明的技术方案,进而可以依据说明书的文字及附图记载的内容予以实施,并且为了让本发明的上述目的及其它目的、特征和优点能够更易于理解,以下结合本发明的具体实施方式及附图进行说明。
附图说明
附图仅用于示出本发明具体实施方式以及其他相关内容的原理、实现方式、应用、特点以及效果等,并不能认为是对本发明的限制。
在说明书附图中:
图1为本发明第一示例性实施例涉及的基于DAG分组的任务并行度调度方法的流程图;
图2为本发明第二示例性实施例涉及的基于DAG分组的任务并行度调度方法的流程图;
图3为本发明第三示例性实施例涉及的基于DAG分组的任务并行度调度方法的流程图;
图4为本发明第四示例性实施例涉及的基于DAG分组的任务并行度调度方法的流程图;
图5为本发明一示例性实施例涉及的任务调度的网络拓扑图;
图6为本发明一示例性实施例涉及的对分组内调度任务进行任务节点分配的示意图;
图7为本发明一示例性实施例涉及的电子设备的示意图。
上述各附图中涉及的附图标记说明如下:
10、电子设备;
11、处理器;
12、存储器。
具体实施方式
为详细说明本发明可能的应用场景,技术原理,可实施的具体方案,能实现目的与效果等,以下结合所列举的具体实施例并配合附图详予说明。本文所记载的实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中各个位置出现的“实施例”一词并不一定指代相同的实施例,亦不特别限定其与其它实施例之间的独立性或关联性。原则上,在本发明中,只要不存在技术矛盾或冲突,各实施例中所提到的各项技术特征均可以以任意方式进行组合,以形成相应的可实施的技术方案。
除非另有定义,本文所使用的技术术语的含义与本发明所属技术领域的技术人员通常理解的含义相同;本文中对相关术语的使用只是为了描述具体的实施例,而不是旨在限制本发明。
在本发明的描述中,用语“和/或”是一种用于描述对象之间逻辑关系的表述,表示可以存在三种关系,例如A和/或B,表示:存在A,存在B,以及同时存在A和B这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”的逻辑关系。
在本发明中,诸如“第一”和“第二”之类的用语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何实际的数量、主次或顺序等关系。
在没有更多限制的情况下,在本发明中,语句中所使用的“包括”、“包含”、“具有”或者其他类似的开放式表述,意在涵盖非排他性的包含,这些表述并不排除在包括所述要素的过程、方法或者产品中还可以存在另外的要素,从而使得包括一系列要素的过程、方法或者产品中不仅可以包括那些限定的要素,而且还可以包括没有明确列出的其他要素,或者还包括为这种过程、方法或者产品所固有的要素。
与《审查指南》中的理解相同,在本发明中,“大于”、“小于”、“超过”等表述理解为不包括本数;“以上”、“以下”、“以内”等表述理解为包括本数。此外,在本发明实施例的描述中“多个”的含义是两个以上(包括两个),与之类似的与“多”相关的表述亦做此类理解,例如“多组”、“多次”等,除非另有明确具体的限定。
如图1所示,本申请提供了一种基于DAG分组的任务并行度调度方法,所述方法包括以下步骤:
首先进入步骤S101对相同类型的调度任务进行分组;
而后进入步骤S102根据初始并行度以及任务节点的执行顺序,对执行各分组的调度任务的任务节点进行初步划分,得到第一划分结果,所述第一划分结果包括若干并行任务节点组,每一所述并行任务节点组包括至少一个任务节点;
而后进入步骤S103根据各分组内任务节点的元数据规模及历史执行耗时信息对所述第一划分结果进行修正,得到第二划分结果,所述第二划分结果包括各并行任务节点组所包含的任务节点的划分修正结果;
而后进入步骤S104根据所述第二划分结果确定分组内任务节点的调度关系,自动生成分组内的DAG图;
而后进入步骤S105根据生成的所述DAG图调度分组内的并行任务节点组执行所述调度任务。
在步骤S101中,相同类型的调度任务优选为历史处理时长相近或所需资源量规模相当的调度任务。通过将同一类型的调度任务归为一组,再将执行同一分组任务的任务节点划分为若干并行任务节点组,可以使得并行任务节点组所处理的任务所消耗的时长或资源相当,从而提升任务的执行效率。
在步骤S102中,所述初始并行度根据用户输入的设定指令进行确定或根据离线计算资源默认并行度进行确定,所述任务节点的执行顺序根据分组内任务节点的依赖关系进行确定。
具体的,设定指令可以由用户通过触控、按键、遥控、轨迹、生物特征认证等方式进行设定。离线计算资源默认并行度可以根据平台预先设定好的离线计算资源默认并行度进行确定;对于分组内任务节点,通常存在0个或若干个相邻节点的依赖关系,通过依赖关系用于确定任务节点执行顺序。而后可以根据获取的任务并行度与任务节点的执行顺序,初步确定任务节点划分关系。
在步骤S103中,可以根据已采集的元数据表,获取任务节点的元数据信息与数据规模,元数据表中记录有元数据表信息、元数据表字段信息、任务节点定义信息等,以确定任务节点的规模与耗时;同时获取任务节点的历史执行日志信息,确定任务节点历史执行情况,用于后续拆分及并行度划分。
具体的,所述元数据规模根据元数据表中所描述的实际表的数据量进行确定 ,所述元数据表中记载有多个元数据信息,所述元数据信息包括任务节点的名称、数据类型、调度类型和任务执行状态,调度流程中的任务节点基于元数据信息确定。任务节点的数据规模与采集的元数据的数据量相关,通过平台的元数据管理模块获取任务对应元数据规模与具体数据内容。所述历史执行耗时信息从任务节点的历史执行日志信息中获取,所述历史执行日志信息包括任务节点的历史执行耗时信息、任务节点分配情况和任务执行状态。平台可获取离线任务历史执行记录,得到各任务节点历史执行情况,在确立分组内并行任务划分前需获取以上数据规模与执行时长信息,用于后续划分与并行度修正。
在步骤S104中,DAG是有向无环图(Directed Acyclic Graph)的缩写,它是一种数学结构,由顶点和有向边组成,并且不存在任何环路。在DAG中,每个顶点代表一个节点,每条有向边代表节点之间的关系或依赖关系。由于 DAG不存在环路,因此可以从一个节点出发通过有向边到达另一个节点,但不能形成闭合的循环路径。任务调度系统可以使用DAG来表示任务之间的依赖关系,有效地管理和调度任务的执行顺序;数据流分析算法也常使DAG来表示数据流的传递和处理过程。
在步骤S105中,所述方法包括:按照预设周期定时更新所述并行任务节点组中各个任务节点的运行状态,确保调度流程的有序进行。
如图2所示,执行所述调度任务对应的分组内的并行任务节点组根据最佳适应算法确定,所述最佳适应算法包括以下步骤:
首先进入步骤S201将接收的需要调度的任务按所占资源大小进行降序排序;
而后进入步骤S202对已排序的任务进行遍历,判断是否完成遍历,若是则进入步骤S206遍历完成,终止流程,若否则每次处理一所述任务的分配,并进入步骤S203判断当前任务是否存在最优并行任务节点组;
若步骤S203的结果判断为是则将当前任务分配至所述最优并行任务节点组进行执行,所述最优并行任务节点组为分组内使用资源最少且可用资源数大于当前任务的并行任务节点组;
若步骤S203的结果判断为否则将当前任务划分至当前资源总数最小的并行任务节点组,等待该并行任务节点组中可用资源数大于或等于该任务时再将当前任务分配给该并行任务节点组。
优选的,在本实施例中,各个并行任务节点组所分配的资源总数的差异在预设误差范围内。这样,根据任务节点数据规模或历史执行耗时进行并行任务划分时,采用最佳适应算法为任一并行节点分配调度任务,确保并行任务内资源分配均匀,且划分效率较高。
在某些实施例中,所述对相同类型的调度任务进行分组包括:根据调度任务执行所需的资源大小以及历史执行时长对调度任务进行分组;所述方法包括:根据并行度生成并行任务流,每一并行任务流包括若干任务,所述任务被配置为通过所述最佳适应算法分配至所述并行任务节点组中的并行节点,每一并行节点用于执行一个所述任务。这样可以使得任务的执行有序进行。
在某些实施例中,所述资源包括硬件资源和/或软件资源;所述硬件资源包括处理器核心、内存、存储空间、网络设备、输入/输出设备中的任一项或多项;所述软件资源包括线程、许可证、连接、数据库中的任一项或多项。
在大数据平台离线计算任务中,一个调度流程中通常包含非常多调度任务,对任务确定节点依赖降低了集群资源利用率及调度流程执行效率,且需手动确定任务执行顺序以进行分配资源,导致操作繁琐,且容易导致任务并行度低的情况发生。为了方便平台的管理运维,本申请提供一种基于DAG分组可控并行度调度算法,对相同的任务进行分组,分组内任务无须通过手动设计DAG图以确定执行顺序,系统可以通过获取任务节点数据规模及历史执行情况对组内任务进行拆分,采用最佳适应算法,根据并行度自动分配分组内的任务规模,生成最优的并行任务。本发明所提供的基于DAG分组可控并行度调度算法,可基于用户输入方式确立调度并行度,实现并行度的调控功能。引入本申请的算法用于离线计算中的任务调度后,可简化调度流程中调度任务的顺序确定过程,省去人工分配耗时,提高调度流程执行速率;该算法能确保分组内并行任务资源耗费相近,在可控并行度内提升执行调度流程时的资源利用率。
具体的,如图3所示,基于DAG分组可控并行度调度算法(即前文所述的基于DAG分组的任务并行度调度方法),该调度算法包括以下几个步骤:
S10:获取任务节点数据规模及历史执行情况。
具体的,根据已采集的元数据表,获取任务节点的元数据信息与数据规模,获取的信息包括元数据表信息、元数据表字段信息、任务节点定义信息等,以确定任务节点的规模与耗时;同时获取任务节点的历史执行日志信息,确定任务节点历史执行情况,用于后续拆分及并行度划分。
元数据信息包括任务节点如名称、数据类型、调度类型、任务执行状态等信息,调度流程中的任务节点基于元数据信息确定。任务节点的数据规模与采集的元数据的数据量相关,通过平台的元数据管理模块获取任务对应元数据规模与具体数据内容。平台可获取离线任务历史执行记录,得到各任务节点历史执行情况,各任务节点历史执行情况包括历史执行时长、节点分配情况、执行状态等信息。在确立分组内并行任务划分前需获取以上数据规模与执行时长信息,用于后续划分与并行度修正。
S20:根据并行度及任务节点执行顺序,对分组内任务节点初步划分。
具体的,可以根据用户设定并行度或平台离线计算资源默认并行度,确定任务执行并行度;对于分组内任务节点,通常存在0个或若干个相邻节点的依赖关系,用于确定任务节点执行顺序。根据获取的任务并行度与任务节点执行顺序,初步确定任务节点划分关系。
S30:根据节点元数据规模及历史执行耗时情况,对任务节点进行拆分并修正组内并行度划分。
具体的,可以根据步骤S10所获取的任务节点对应的元数据规模或历史执行耗时,量化任务节点的调度资源消耗,以确立所有任务节点执行所需要的平台资源。将平台资源依据调度并行度划分,计算平台所有并行节点所包含的资源总数。根据任务节点数据规模或历史执行耗时进行并行任务划分时,采用最佳适应算法为任一并行节点分配调度任务,确保并行任务内资源分配均匀,且划分效率较高。
S40:自动生成分组内DAG图。
具体的,经由步骤S20确定任务节点执行顺序,步骤S30对任务节点根据并行度与资源消耗进行自动划分,实现确立分组内任务节点的调度关系,生成调度流程的有向无环图。DAG图内包括任一并行度中的任务节点调度顺序,且并行度间资源总数相近,调度流程资源利用率高。
S50:并行调度分组内任务节点。
具体的,根据生成的DAG图,并行执行任务节点中的任务,同时周期性更新任务节点运行状态,确保调度流程有序执行。
本申请涉及的最佳适应算法可以根据任务数据规模或历史执行时间进行节点分配,如图4所示,最佳适应算法包括以下步骤:
步骤S01:将传入调度任务按所占资源大小进行降序排序,具体可分为根据任务元数据规模和任务历史执行时间进行排序,完成排序后任务列表用于后续节点划分;
步骤S02:对已排序的任务进行遍历,判断是否完成遍历,完成遍历则终止流程;
步骤S03:对于每一任务,寻找所有并行节点中当前使用资源最少且可用资源数大于该任务的资源节点,即为最优并行节点;
步骤S04:判断是否存在最优节点,存在则将当前任务分配至该并行节点中;不存在则说明当前所有并行节点可用资源数均小于该任务,则将当前任务划分至当前资源总数最小的节点中,等待该节点中可用资源数大于等于该任务时再进行分配;
步骤S05:完成任务划分,重复至步骤S02,直至完成节点分配。
如图5所示,为本发明一示例性实施例涉及的任务调度的网络拓扑图。
在自动生成DAG图时,可以采用如图5所示的拓扑结构的部署方式。记录分组中调度任务数据规模及历史执行时长的数据预先由平台通过元数据采集,具体步骤为:获取元数据信息及依赖关系,并经筛选处理后存储在平台共享数据库中。运行离线计算的调度流程时,客户机请求经由Nginx反向代理,负载均衡并传至服务器集群中,服务器首先获取MySQL服务器中调度任务的元数据信息并调度任务计算资源大小,随后通过基于DAG分组可控并行度调度算法对调度流程的分组内任务进行自动划分,依据并行度生成并行任务流,传入调度器服务节点服务集群运行,并行执行分组内调度任务。
如图6所示,为本发明一示例性实施例涉及的对分组内调度任务进行任务节点分配的示意图。
对于调度流程中的分组内任务,进行节点分配时已确定任务总数m及采用并行度n。在确定所需资源消耗后,将m个任务按照资源消耗由大至小进行排序,用于后续按序采用最佳适应算法进行节点分配。在进行节点分配时,对于每一任务总是选择调度器节点服务器集群中已分配资源总数最少且可用资源大于当前任务所需资源的并行节点(即前文所述的并行任务节点组),以确保完成自动分配时节点服务器集群中所有并行节点对应的已分配资源总数相近。
采用上述基于DAG分组可控并行度的调度算法进行离线计算任务调度,可将相同类型的调度任务进行分组,便于相同类型调度任务的管理和运维,同时节省服务器执行重复任务所占用的资源消耗。在同一分组内,无须手动设计DAG图以明确任务执行顺序,系统可通过调度任务对应的元数据规模和历史执行时长,采用最佳适应算法自动对调度任务进行划分,同时确保分组内任务具有良好并行性。此外,在离线计算平台中,引入本调度算法可支持用户自定义运行并行度,根据设定并行度进行后续调度任务划分,实现并行度可控。本算法能简化离线计算调度流程中调度任务的执行顺序确定过程,简化操作流程,提高平台的管理和执行效率,有效满足用户的实际需求。
在第二方面,本发明还提供了一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如本发明第一方面所述的方法。
其中,所述计算机可读存储介质可以是易失性存储器或非易失性存储器,也可以包括易失性和非易失性存储器两者。
所述非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read- Only Memory)、可擦除可编程只读存储器(EPROM,Erasable ProgrammableRead- Only Memory)、电可擦除可编程只读存储器 (EEPROM,Electrically Erasable ProgrammableRead- Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD- ROM,Compact Disc Read- Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。
所述易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的 RAM 可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器 (SSRAM,Synchronous Static RandomAccess Memory)、动态随机存取存储器(DRAM,DynamicRandom Access Memory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic RandomAccess Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data RateSynchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的计算机可读存储介质旨在包括这些和任意其它适合类型的存储器。
如图7所示,在第三方面,本发明提供了一种电子设备10,包括处理器11和存储器12,所述存储器用于存储一条或多条计算机程序指令,所述计算机程序指令被所述处理器执行时实现如本发明第一方面所述的基于DAG分组的任务并行度调度方法。
在一些实施例中,所述处理器可以通过软件、硬件、固件或者其组合实现,可以使用电路、单个或多个为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(DigitalSignal Processing Device,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器 (CentralProcessing Unit,CPU)、控制器、微控制器、微处理器中的至少一种,从而使得该处理器可以执行本申请的各个实施例中的基于 DAG 分组的任务并行度调度方法中的部分步骤或全部步骤或其中步骤的任意组合。
最后需要说明的是,尽管在本发明的说明书文字及附图中已经对上述各实施例进行了描述,但并不能因此限制本发明的专利保护范围。凡是基于本发明的实质理念,利用本发明说明书文字及附图记载的内容所作的等效结构或等效流程替换或修改产生的技术方案,以及直接或间接地将以上实施例的技术方案实施于其他相关的技术领域等,均包括在本发明的专利保护范围之内。
Claims (10)
1.一种基于DAG分组的任务并行度调度方法,其特征在于,所述方法包括以下步骤:
对相同类型的调度任务进行分组;
根据初始并行度以及任务节点的执行顺序,对执行各分组的调度任务的任务节点进行初步划分,得到第一划分结果,所述第一划分结果包括若干并行任务节点组,每一所述并行任务节点组包括至少一个任务节点;
根据各分组内任务节点的元数据规模及历史执行耗时信息对所述第一划分结果进行修正,得到第二划分结果,所述第二划分结果包括各并行任务节点组所包含的任务节点的划分修正结果;
根据所述第二划分结果确定分组内任务节点的调度关系,自动生成分组内的DAG图;
根据生成的所述DAG图调度分组内的并行任务节点组执行所述调度任务;
执行所述调度任务对应的分组内的并行任务节点组根据最佳适应算法确定,所述最佳适应算法包括以下步骤:
将接收的需要调度的任务按所占资源大小进行降序排序;
对已排序的任务进行遍历,判断是否完成遍历,若是则遍历完成,终止流程,若否则每次处理一所述任务的分配,具体包括:
判断当前任务是否存在最优并行任务节点组;
若存在则将当前任务分配至所述最优并行任务节点组进行执行,所述最优并行任务节点组为分组内使用资源最少且可用资源数大于当前任务的并行任务节点组;
若不存在则将当前任务划分至当前资源总数最小的并行任务节点组,等待所述当前资源总数最小的并行任务节点组的可用资源数大于或等于当前任务后,再将当前任务分配给所述当前资源总数最小的并行任务节点组。
2.如权利要求1所述的基于DAG分组的任务并行度调度方法,其特征在于,所述初始并行度根据用户输入的设定指令进行确定或根据离线计算资源默认并行度进行确定,所述任务节点的执行顺序根据分组内任务节点的依赖关系进行确定。
3.如权利要求1所述的基于DAG分组的任务并行度调度方法,其特征在于,所述元数据规模根据元数据表中所描述的实际表的数据量进行确定,所述元数据表中记载有多个元数据信息,所述元数据信息包括任务节点的名称、数据类型、调度类型和任务执行状态。
4.如权利要求1所述的基于DAG分组的任务并行度调度方法,其特征在于,所述历史执行耗时信息从任务节点的历史执行日志信息中获取,所述历史执行日志信息包括任务节点的历史执行耗时信息、任务节点分配情况和任务执行状态。
5.如权利要求1所述的基于DAG分组的任务并行度调度方法,其特征在于,各个并行任务节点组所分配的资源总数的差异在预设误差范围内。
6.如权利要求1所述的基于DAG分组的任务并行度调度方法,其特征在于,所述方法包括:
按照预设周期定时更新所述并行任务节点组中各个任务节点的运行状态。
7.如权利要求1所述的基于DAG分组的任务并行度调度方法,其特征在于,所述对相同类型的调度任务进行分组包括:根据调度任务执行所需的资源大小以及历史执行时长对调度任务进行分组;
所述方法包括:
根据并行度生成并行任务流,每一并行任务流包括若干任务,所述任务被配置为通过所述最佳适应算法分配至所述并行任务节点组中的并行节点,每一并行节点用于执行一个所述任务。
8.如权利要求1-7任一项所述的基于DAG分组的任务并行度调度方法,其特征在于,所述资源包括硬件资源和/或软件资源;
所述硬件资源包括处理器核心、内存、存储空间、网络设备、输入/输出设备中的任一项或多项;
所述软件资源包括线程、许可证、连接、数据库中的任一项或多项。
9.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-8中任一项所述的方法。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410299261.1A CN117891584B (zh) | 2024-03-15 | 2024-03-15 | 基于dag分组的任务并行度调度方法、介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410299261.1A CN117891584B (zh) | 2024-03-15 | 2024-03-15 | 基于dag分组的任务并行度调度方法、介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117891584A CN117891584A (zh) | 2024-04-16 |
CN117891584B true CN117891584B (zh) | 2024-05-14 |
Family
ID=90651015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410299261.1A Active CN117891584B (zh) | 2024-03-15 | 2024-03-15 | 基于dag分组的任务并行度调度方法、介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117891584B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943561A (zh) * | 2017-12-14 | 2018-04-20 | 长春工程学院 | 一种面向云计算平台的科学工作流任务调度方法 |
CN108984284A (zh) * | 2018-06-26 | 2018-12-11 | 杭州比智科技有限公司 | 基于离线计算平台的dag任务调度方法及装置 |
CN112328380A (zh) * | 2020-11-10 | 2021-02-05 | 武汉理工大学 | 一种基于异构计算的任务调度方法及装置 |
CN112507171A (zh) * | 2020-12-03 | 2021-03-16 | 深圳市易平方网络科技有限公司 | 一种任务调度方法、智能终端及存储介质 |
WO2022087415A1 (en) * | 2020-10-22 | 2022-04-28 | Arizona Board Of Regents On Behalf Of Arizona State University | Runtime task scheduling using imitation learning for heterogeneous many-core systems |
CN114546617A (zh) * | 2022-02-23 | 2022-05-27 | 南京航空航天大学 | 一种车载云环境下低服务成本的任务调度方法 |
CN116880994A (zh) * | 2023-09-07 | 2023-10-13 | 之江实验室 | 基于动态dag的多处理器任务调度方法、装置及设备 |
CN117311937A (zh) * | 2023-09-27 | 2023-12-29 | 海尔数字科技(上海)有限公司 | 一种分布式任务调度方法、装置、电子设备及存储介质 |
CN117331674A (zh) * | 2023-11-13 | 2024-01-02 | 贝壳找房(北京)科技有限公司 | 任务调度执行方法、电子设备和计算机可读存储介质 |
CN117667332A (zh) * | 2022-08-31 | 2024-03-08 | 华为云计算技术有限公司 | 一种任务调度方法及系统 |
-
2024
- 2024-03-15 CN CN202410299261.1A patent/CN117891584B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943561A (zh) * | 2017-12-14 | 2018-04-20 | 长春工程学院 | 一种面向云计算平台的科学工作流任务调度方法 |
CN108984284A (zh) * | 2018-06-26 | 2018-12-11 | 杭州比智科技有限公司 | 基于离线计算平台的dag任务调度方法及装置 |
WO2022087415A1 (en) * | 2020-10-22 | 2022-04-28 | Arizona Board Of Regents On Behalf Of Arizona State University | Runtime task scheduling using imitation learning for heterogeneous many-core systems |
CN112328380A (zh) * | 2020-11-10 | 2021-02-05 | 武汉理工大学 | 一种基于异构计算的任务调度方法及装置 |
CN112507171A (zh) * | 2020-12-03 | 2021-03-16 | 深圳市易平方网络科技有限公司 | 一种任务调度方法、智能终端及存储介质 |
CN114546617A (zh) * | 2022-02-23 | 2022-05-27 | 南京航空航天大学 | 一种车载云环境下低服务成本的任务调度方法 |
CN117667332A (zh) * | 2022-08-31 | 2024-03-08 | 华为云计算技术有限公司 | 一种任务调度方法及系统 |
CN116880994A (zh) * | 2023-09-07 | 2023-10-13 | 之江实验室 | 基于动态dag的多处理器任务调度方法、装置及设备 |
CN117311937A (zh) * | 2023-09-27 | 2023-12-29 | 海尔数字科技(上海)有限公司 | 一种分布式任务调度方法、装置、电子设备及存储介质 |
CN117331674A (zh) * | 2023-11-13 | 2024-01-02 | 贝壳找房(北京)科技有限公司 | 任务调度执行方法、电子设备和计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Storm下基于最佳并行度的贪心调度算法;熊安萍;段杭彪;蒋亚雄;;计算机应用研究;20180314(第04期);全文 * |
基于最佳并行度的任务依赖图调度;杜建成, 黄皓, 陈道蓄, 谢立;软件学报;19991005(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117891584A (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI786564B (zh) | 任務調度方法和裝置、儲存媒體及計算機設備 | |
CN112231081B (zh) | 云环境下基于pso-ahp的单调速率资源调度方法及系统 | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN113225269B (zh) | 基于容器的工作流调度方法、装置、系统及存储介质 | |
CN112748993A (zh) | 任务执行方法、装置、存储介质及电子设备 | |
US11775344B1 (en) | Training task queuing cause analysis method and system, device and medium | |
CN110088730B (zh) | 任务处理方法、装置、介质及其设备 | |
Daoud et al. | Efficient compile-time task scheduling for heterogeneous distributed computing systems | |
CN117891584B (zh) | 基于dag分组的任务并行度调度方法、介质和设备 | |
CN117687774A (zh) | 用于算力调度的任务模型训练方法及算力调度方法和系统 | |
CN116737370A (zh) | 一种多资源调度方法、系统、存储介质及终端 | |
CN110362387B (zh) | 分布式任务的处理方法、装置、系统和存储介质 | |
CN112363819B (zh) | 大数据任务动态编排调度方法、装置及计算设备 | |
CN110008002B (zh) | 基于平稳分布概率的作业调度方法、装置、终端和介质 | |
KR101558807B1 (ko) | 호스트 프로세서와 협업 프로세서 간에 협업 처리를 위한 프로세서 스케줄링 방법 및 그 방법을 수행하는 호스트 프로세서 | |
CN117178257A (zh) | 任务调度架构和方法 | |
CN112612606A (zh) | 消息主题的处理方法、装置、计算机设备和可读存储介质 | |
CN110008026A (zh) | 基于额外预算均分的作业调度方法、装置、终端和介质 | |
Thai et al. | Algorithms for optimising heterogeneous Cloud virtual machine clusters | |
CN113391886A (zh) | 任务调度方法和装置 | |
CN113127289A (zh) | 一种基于yarn集群的资源管理方法、计算机设备和存储介质 | |
Kunis et al. | Optimizing layer‐based scheduling algorithms for parallel tasks with dependencies | |
CN117421109B (zh) | 训练任务的调度方法、装置、计算机设备及存储介质 | |
Wang | Building efficient large-scale big data processing platforms |
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 |