CN108897625B - 基于dag模型的并行调度方法 - Google Patents

基于dag模型的并行调度方法 Download PDF

Info

Publication number
CN108897625B
CN108897625B CN201810735815.2A CN201810735815A CN108897625B CN 108897625 B CN108897625 B CN 108897625B CN 201810735815 A CN201810735815 A CN 201810735815A CN 108897625 B CN108897625 B CN 108897625B
Authority
CN
China
Prior art keywords
time
task
processing
nodes
clustering
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
Application number
CN201810735815.2A
Other languages
English (en)
Other versions
CN108897625A (zh
Inventor
陈霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201810735815.2A priority Critical patent/CN108897625B/zh
Publication of CN108897625A publication Critical patent/CN108897625A/zh
Application granted granted Critical
Publication of CN108897625B publication Critical patent/CN108897625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本发明公布了一种基于DAG模型的并行调度方法,利用重构生成的随机参数再次进行模型重构的动态的调度算法,与现有的基于任务集群或聚簇的调度算法有着本质的区别;从真实系统处理角度分析构建的关联、参数的扰动、任务间的通信延迟的变化、模型构造的变化和处理器的数目的变化对多处理并行系统任务调度的影响,使得多处理器并行系统任务调度算法更符合实际需求、更能体现其动态的特征。

Description

基于DAG模型的并行调度方法
技术领域
本发明涉及高性能计算机的多处理器任务调度领域,具体涉及一种并行调度方法。
背景技术
近年来,对于拥有高性能计算功能的多处理器(包括多核处理器)系统的研究已逐渐成熟,在很多的并行系统中已经开始采用多处理器,例如大数据时代下的云计算就是采用多处理的一种并行处理方式来完成。但是现在针对多处理器的平台的任务调度算法尚未成熟,多数的算法还是停留在理论阶段,对于实际的拥有复杂结构的大规模系统来说,很难或不能保证多处理器并行系统在这种情况下实际的性能需求。使之现在对于大多数的多处理器并行系统的调度来说仍然采用的是传统的任务调度技术(将各个任务随机分配给处于空闲状态下的处理器),这样就导致了分配到各个处理器上的任务不均等,出现一些处理器超负荷的工作而另一些处理器处于空置状态的情况,从而使得多处理器的高效处理的优势不能得到充分的发挥,造成资源上的浪费。所以研究具有应对大规模系统的任务调度算法在多处理器并行系统技术的研究中变得尤为重要。
发明内容
本发明的目的在于针对上述问题,提供一种基于DAG模型的并行调度方法,根据具有多处理器的复杂处理系统,进行两次集群化处理,满足最大化并行执行各个任务的同时,减少各个任务间的通信延迟,保证让总的任务执行时间最小化,提高多处理器的运算效率。
为此本发明公布了一种基于DAG模型的并行调度方法,主要包括以下步骤:
S1:根据多任务处理器的复杂调度系统构建DAG模型图,使得所述DAG模型图满足有向无环的特点;
S2:重构DAG模型图:
S201:将满足第一次集群化条件的两个任务节点进行第一次集群化处理;
S202:将第一次集群化处理后的任务节点进行优先等级排序,构造第一级优先调度表;
S203:采用基于DAG模型重构的调度算法来计算各任务节点的处理时间上限和下限;
S204:根据对比计算出的各任务节点的处理时间上限和下限将满足第二次集群化条件的两个节点进行第二次集群化处理;
S205:将第二次集群化处理后的任务节点进行优先等级重新排序,并构造第二级优先调度表。
集群化处理前各任务节点之间均存在通信延迟。
步骤S201所述的满足第一次集群化条件的两个节点具有相同的祖先任务节点且具有相同的子孙任务节点。
步骤S203所述的基于DAG模型重构的调度算法主要通过以下方式实现:
zf={zf1,zf2,…zfm}是任务节点zx的父任务节点的集合,zs={zs1,zs2,…zsn}是任务节点zx的子任务节点的集合,
Figure BDA0001721984830000021
其中esf是zf的最早开始时刻,cg,f和cf,y是zf的读入时间和写出时间;
Figure BDA0001721984830000031
其中lsx是zs的最迟开始时刻,γx是zx的权值,cf,x和cx,s分别是zx的读入时间和写出时间;
由此计算出各任务节点的处理时间上限和下限。
所述读入时间和写出时间为通信时间,所述权值为任务节点的处理时间。
步骤S204所述的第二次集群化条件通过以下方法判定:
当任务节点之间的关系为多个父任务节点对应一个子任务节点时,子任务节点和其中一个父任务节点组成的块开始处理的时刻不早于其他的父任务节点处理结束的时刻;
当任务节点之间的关系为一个父任务节点对应多个子任务节点时,父任务节点和其中一个子任务节点组成的块处理结束的时刻不晚于其他的子任务节点开始处理的时刻。
任务节点在根据基于DAG模型重构的调度算法计算出的任务节点的处理时间上限和下限之间的时间段被处理器处理。
两个任务节点满足第二次集群化条件时,则消除集群中两个任务节点之间的通信延迟。
对于满足第二次集群化条件的任务节点进行第二次集群化处理,并将第二次集群化后形成的块分配给同一个处理器处理。
对于两个相邻任务节点zx和zy,块可以被调度到同一个处理器进行处理需满足以下条件:
zx和zy必须是父子任务节点;
满足st(zx)≥et(IP(zy)),其中st(zx)是zx的处理开始时刻,et(IP(zy))是zy全部父任务节点的处理结束时刻;
满足et(zy)-2cx,y≤st(IS(zx)),其中et(zy)是zy的处理结束时刻,st(IS(zx))是zx全部子任务节点的处理开始时刻,cx,y是zx和zy的通信时间。
本发明的有益效果是:利用重构生成的随机参数再次进行模型重构的动态的调度算法,与现有的基于任务集群或聚簇的调度算法有着本质的区别;从真实系统处理角度分析构建的关联、参数的扰动、任务间的通信延迟的变化、模型构造的变化和处理器的数目的变化对多处理并行系统任务调度的影响,使得多处理器并行系统任务调度算法更符合实际需求、更能体现其动态的特征。
附图说明:
图1为本发明所述的基于DAG模型的并行调度方法中两个任务节点具有共同祖先节点的结构示意图。
图2为本发明所述的基于DAG模型的并行调度方法中两个任务节点具有共同子孙节点的结构示意图。
图3为本发明所述的基于DAG模型的并行调度方法中zx任务节点的父任务节点和子任务节点的分布图。
图4为本发明所述的基于DAG模型的并行调度方法中第二次集群化过程中对于一个父任务节点对应多个子任务节点的情况下满足第二次集群化条件的任务节点第二次集群化处理过程示意图。
图5为本发明所述的基于DAG模型的并行调度方法中第二次集群化过程中对于多个父任务节点对应一个子任务节点的情况下满足第二次集群化条件的任务节点第二次集群化处理过程示意图。
图6为本发明所述的基于DAG模型的并行调度方法集群化处理前后任务节点的通信时间变化示意图。
图7为本发明所述的基于DAG模型的并行调度方法采用基于Matlab/Simulink设计的汽车控制模型转化为DAG模型图。
图8为本发明所述的基于DAG模型的并行调度方法代表DAG模型各个参数的任务图队列及与系统图相关的部件关联表。
图9为本发明所述的基于DAG模型的并行调度方法中不同情况下的集群化处理过程示意图。
具体实施方式
下面结合具体实施方式对本发明作进一步说明。
实施例
结合图1、图2、图3、图4、图5、图6、图9,本发明公布的基于DAG模型的并行调度方法,包括以下步骤:
S1:根据多任务处理器的复杂调度系统构建DAG模型图,使得所述DAG模型图满足有向无环的特点;
S2:因为大多数多处理器系统中的任务节点之间均存在通信延迟或者说通信时间,因此根据此类系统结构重构DAG模型图:
S201:将满足第一次集群化条件的两个任务节点进行第一次集群化处理;在这一步中,满足第一次集群化条件的两个节点必须具有相同的祖先任务节点且具有相同的子孙任务节点。
S202:将第一次集群化处理后的任务节点进行优先等级排序,构造第一级优先调度表;此时,部分节点已经被第一次集群化处理了,形成了新的块,第一级优化过程已经完成。
第一次集群化处理的目的是让大规模的复杂调度系统趋于简单,而后再根据被第一次集群化处理后的较为简单的任务节点关系进行第二次集群化处理,进一步提高处理速度。
S203:采用基于DAG模型重构的调度算法来计算各任务节点的处理时间上限和下限;通过以下方法来进行计算:
设定zf={zf1,zf2,…zfm}是任务节点zx的父任务节点的集合,zs={zs1,zs2,…zsn}是任务节点zx的子任务节点的集合,
Figure BDA0001721984830000061
其中esf是zf的最早开始时刻,cg,f和cf,y是zf的读入时间和写出时间,其中,读入时间和写出时间即为通信时间;
Figure BDA0001721984830000062
其中lsx是zs的最迟开始时刻,γx是zx的权值,即任务节点的处理时间,cf,x和cx,s分别是zx的读入时间和写出时间;
由上述公式(1)和公式(2)可以计算出各个任务节点被处理的时间上限以及时间下限,处理器在任务节点的处理时间的上限和下限之间对任务节点进行处理,则不会影响到系统任务的总时长。
S204:根据对比计算出的各任务节点的处理时间上限和下限将满足第二次集群化条件的两个节点进行第二次集群化处理;当两个节点之间满足以下条件则对这两个节点进行第二次集群化处理,并消除满足第二次集群化条件的两个任务节点之间的通信延迟;
当任务节点之间的关系为多个父任务节点对应一个子任务节点时,子任务节点和其中一个父任务节点组成的块开始处理的时刻不早于其他的父任务节点处理结束的时刻;
当任务节点之间的关系为一个父任务节点对应多个子任务节点时,父任务节点和其中一个子任务节点组成的块处理结束的时刻不晚于其他的子任务节点开始处理的时刻。
S205:将第二次集群化处理后的任务节点进行优先等级重新排序,并构造第二级优先调度表;对于两个相邻任务节点zx和zy第二次集群化后组成的块需要同时满足以下三个条件才能被调度到同一个处理器进行处理:
zx和zy必须是父子任务节点;st(zx)≥et(IP(zy)),其中st(zx)是zx的处理开始时刻,et(IP(zy))是zy全部父任务节点的处理结束时刻;et(zy)-2cx,y≤st(IS(zx)),其中et(zy)是zy的处理结束时刻,st(IS(zx))是zx全部子任务节点的处理开始时刻,cx,y是zx和zy的通信时间。
结合附图7和图8,本实施例将汽车控制系统模型转化为DAG模型进行仿真,首先将汽车控制系统模型转化为DAG模型,根据DAG模型中的任务节点之间的不同情况,对满足第一次集群化的任务节点进行第一次集群化处理,然后根据第一次集群化处理的结果构造第一级优先调度表,然后再根据第一级优先调度表将任务节点分配给处理器处理,再根据第二次集群化条件对所有任务节点进行判定,对于满足条件的任务节点做第二次集群化处理,并构造第二级优先调度表,对于第二次集群化处理后且满足分配给同一个处理器处理条件的节点进行任务分配。以此来最大化缩短任务处理时间,消除不必要的通信延迟,最大化提高多处理器系统的高效运算。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.基于DAG模型的并行调度方法,其特征在于,其包括以下步骤:
S1:根据多任务处理器的复杂调度系统构建DAG模型图,使得所述DAG模型图满足有向无环的特点;
S2:重构DAG模型图:
S201:将满足第一次集群化条件的两个任务节点进行第一次集群化处理;满足第一次集群化条件的两个任务节点具有相同的祖先任务节点且具有相同的子孙任务节点;
S202:将第一次集群化处理后的任务节点进行优先等级排序,构造第一优先调度表;
S203:采用基于DAG模型重构的调度算法来计算各任务节点的处理时间上限和下限;基于DAG模型重构的调度算法主要通过以下方式实现:zf={zf1,zf2,…, zfm}是任务节点zx的父任务节点的集合,zs={zs1,zs2, …, zsn}是任务节点zx的子任务节点的集合,
Figure FDA0003693652260000011
其中esf是zf的最早开始时刻,cg,f和cf,y是zf的读入时间和写出时间;
Figure FDA0003693652260000012
其中lsx是zs的最迟开始时刻,γx是zx的权值,cf,x和cx,s分别是zx的读入时间和写出时间;
由此计算出各任务节点的处理时间上限和下限;
S204:根据对比计算出的各任务节点的处理时间上限和下限将满足第二次集群化条件的两个节点进行第二次集群化处理;第二次集群化条件通过以下方法判定:
当任务节点之间的关系为多个父任务节点对应一个子任务节点时,子任务节点和其中一个父任务节点组成的块开始处理的时刻不早于其他的父任务节点处理结束的时刻;
当任务节点之间的关系为一个父任务节点对应多个子任务节点时,父任务节点和其中一个子任务节点组成的块处理结束的时刻不晚于其他的子任务节点开始处理的时刻;
S205:将第二次集群化处理后的任务节点进行优先等级重新排序,并构造第二优先调度表。
2.根据权利要求1所述的基于DAG模型的并行调度方法,其特征在于,集群化处理前各任务节点之间均存在通信延迟。
3.根据权利要求2所述的基于DAG模型的并行调度方法,其特征在于,所述读入时间和写出时间为通信时间,所述权值为任务节点的处理时间。
4.根据权利要求3所述的基于DAG模型的并行调度方法,其特征在于,任务节点在根据基于DAG模型重构的调度算法计算出的任务节点的处理时间上限和下限之间的时间段被处理器处理。
5.根据权利要求4所述的基于DAG模型的并行调度方法,其特征在于,两个任务节点满足第二次集群化条件时,则消除集群中两个任务节点之间的通信延迟。
6.根据权利要求4所述的基于DAG模型的并行调度方法,其特征在于,对于满足第二次集群化条件的任务节点进行第二次集群化处理,并将第二次集群化后形成的块分配给同一个处理器处理。
7.根据权利要求6所述的基于DAG模型的并行调度方法,其特征在于,对于两个相邻任务节点zx和zy构成的块可以被调度到同一个处理器进行处理需满足以下条件:
zx和zy必须是父子任务节点;
满足st(zx)≥et(IP(zy)),其中st(zx)是zx的处理开始时刻,et(IP(zy))是zy全部父任务节点的处理结束时刻;
满足et(zy)-2cx,y≤st(IS(zx)),其中et(zy)是zy的处理结束时刻,st(IS(zx))是zx全部子任务节点的处理开始时刻,cx,y是zx和zy的通信时间。
CN201810735815.2A 2018-07-06 2018-07-06 基于dag模型的并行调度方法 Active CN108897625B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810735815.2A CN108897625B (zh) 2018-07-06 2018-07-06 基于dag模型的并行调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810735815.2A CN108897625B (zh) 2018-07-06 2018-07-06 基于dag模型的并行调度方法

Publications (2)

Publication Number Publication Date
CN108897625A CN108897625A (zh) 2018-11-27
CN108897625B true CN108897625B (zh) 2022-07-29

Family

ID=64348085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810735815.2A Active CN108897625B (zh) 2018-07-06 2018-07-06 基于dag模型的并行调度方法

Country Status (1)

Country Link
CN (1) CN108897625B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109561148B (zh) * 2018-11-30 2021-03-23 湘潭大学 边缘计算网络中基于有向无环图的分布式任务调度方法
CN112115192B (zh) * 2020-10-09 2021-07-02 北京东方通软件有限公司 一种etl系统的高效流程编排方法和系统
CN114884830B (zh) * 2022-07-11 2023-02-03 成都众享天地网络科技有限公司 基于广域网的分布式并行仿真推演系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336713A (zh) * 2013-06-19 2013-10-02 西北工业大学 一种基于任务复制与聚簇的并行任务分配方法
CN107015856A (zh) * 2017-03-30 2017-08-04 青海大学 云环境下科学工作流中的任务调度方案生成方法及装置
CN107943561B (zh) * 2017-12-14 2019-06-11 长春工程学院 一种面向云计算平台的科学工作流任务调度方法

Also Published As

Publication number Publication date
CN108897625A (zh) 2018-11-27

Similar Documents

Publication Publication Date Title
CN108897625B (zh) 基于dag模型的并行调度方法
US8881158B2 (en) Schedule decision device, parallel execution device, schedule decision method, and program
CN111079921A (zh) 一种基于异构分布式系统的高效神经网络训练调度方法
CN111381950A (zh) 一种面向边缘计算环境基于多副本的任务调度方法和系统
CN110413389A (zh) 一种资源不均衡Spark环境下的任务调度优化方法
You et al. A load-aware scheduler for MapReduce framework in heterogeneous cloud environments
CN108270805B (zh) 用于数据处理的资源分配方法及装置
Tang et al. Dynamic slot allocation technique for MapReduce clusters
Morad et al. Generalized MultiAmdahl: Optimization of heterogeneous multi-accelerator SoC
Petrov et al. Adaptive performance model for dynamic scaling Apache Spark Streaming
Vasudevan et al. G-charm: an adaptive runtime system for message-driven parallel applications on hybrid systems
CN114327811A (zh) 一种任务调度方法、装置、设备及可读存储介质
CN111400010A (zh) 任务调度方法及装置
CN114489942A (zh) 一种面向应用集群的队列任务调度方法及系统
Wang et al. A throughput driven task scheduler for improving mapreduce performance in job-intensive environments
CN111258730A (zh) 一种基于竞态条件的任务调度方法
Sudarsan et al. Scheduling resizable parallel applications
CN116244050A (zh) 一种基于高响应比的气动特性算例调度方法
CN116303219A (zh) 一种网格文件的获取方法、装置及电子设备
Tang et al. A network load perception based task scheduler for parallel distributed data processing systems
Wenjie et al. An expansion-aided synchronous conservative time management algorithm on GPU
CN112598112B (zh) 一种基于图神经网络的资源调度方法
CN110415162B (zh) 大数据中面向异构融合处理器的自适应图划分方法
Kulkarni et al. A survey on improving performance of real time scheduling for cloud systems
CN113485845A (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