CN114756358B - 一种dag任务调度方法、装置、设备及存储介质 - Google Patents

一种dag任务调度方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114756358B
CN114756358B CN202210671115.8A CN202210671115A CN114756358B CN 114756358 B CN114756358 B CN 114756358B CN 202210671115 A CN202210671115 A CN 202210671115A CN 114756358 B CN114756358 B CN 114756358B
Authority
CN
China
Prior art keywords
task
dag
dag task
scheduling
network model
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
CN202210671115.8A
Other languages
English (en)
Other versions
CN114756358A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210671115.8A priority Critical patent/CN114756358B/zh
Publication of CN114756358A publication Critical patent/CN114756358A/zh
Application granted granted Critical
Publication of CN114756358B publication Critical patent/CN114756358B/zh
Priority to PCT/CN2022/142437 priority patent/WO2023241000A1/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种DAG任务调度方法、装置、设备及存储介质。该方法包括:按照有向图神经网络、顺序解码器的顺序构建网络模型,并以最小任务调度长度为目标定义网络模型的目标函数;获取DAG任务数据集,并对DAG任务数据集内每个DAG任务生成对应的信息矩阵;利用信息矩阵对网络模型进行训练,并根据目标函数利用强化学习更新网络模型的模型参数,以得到训练后的DAG任务调度模型;利用DAG任务调度模型确定待执行DAG任务内子任务的调度顺序,并根据调度顺序利用并行计算***执行待执行DAG任务。能够缩短DAG任务调度长度,提高DAG任务并行执行效率,解决难以为DAG任务的最佳优先级分配收集足够多监督标签的问题。

Description

一种DAG任务调度方法、装置、设备及存储介质
技术领域
本发明涉及任务调度技术领域,特别涉及一种DAG任务调度方法、装置、设备及存储介质。
背景技术
目前,在高性能和复杂功能需求的推动下,并行计算***越来越多地用于执行实时应用程序,如具有感知、规划和控制等复杂功能组件的对高性能和实时性要求极高的自动驾驶任务。DAG(Directed Acyclic Graph,有向无环图)任务常常用来表示类似实时应用程序的多个任务组件(子任务)之间复杂依赖关系和形式化描述细粒度的并行任务调度问题,即DAG任务调度问题。考虑到非抢占式任务模型可以避免任务迁移和切换开销,针对DAG任务的基于优先级的非抢占式调度受到广泛关注,该问题研究如何将给定的DAG任务非抢占式地调度到并行计算***上执行,使得处理时间最短,是一个典型的NP(Non-deterministic Polynomial Complete)完全问题。现有技术中,长期的并行计算实践积累了大量优秀的启发式调度算法,如表调度算法和聚类调度算法。但由于启发式策略的性质,这些算法无法为 DAG任务调度程序建立基本的设计原则,例如在不同DAG任务规模和配置下如何利用DAG任务执行时间和DAG任务图拓扑结构特征为各个子任务分配优先级,并且调度性能不理想。
发明内容
有鉴于此,本发明的目的在于提供一种DAG任务调度方法、装置、设备及介质,能够缩短DAG任务调度长度,提高DAG任务并行执行效率。其具体方案如下:
第一方面,本申请公开了一种DAG任务调度方法,包括:
按照有向图神经网络、顺序解码器的顺序构建网络模型,并以最小任务调度长度为目标定义所述网络模型的目标函数;
获取DAG任务数据集,并对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵;
利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,以得到训练后的DAG任务调度模型;
利用所述DAG任务调度模型确定待执行DAG任务内子任务的调度顺序,并根据所述调度顺序利用并行计算***执行所述待执行DAG任务。
可选的,所述按照有向图神经网络、顺序解码器的顺序构建网络模型之前,还包括:
基于聚合函数和非线性激活函数构建用于DAG任务特征学习的图卷积层;
按照输入层、K层图卷积层、输出层的顺序构建得到所述有向图神经网络。
可选的,所述按照有向图神经网络、顺序解码器的顺序构建网络模型之前,还包括:
以DAG任务内子任务的优先级分配状态为变量,为所述DAG任务定义上下文环境的向量表达式;
基于注意力机制和所述上下文环境的向量表达式构建用于优先级排序的顺序解码器。
可选的,所述以最小任务调度长度为目标定义所述网络模型的目标函数,包括:
以DAG任务在不同时间步下优先级排序对应的任务调度长度和任务调度长度下限为自变量,生成DAG任务的减速评价指标;所述任务调度长度下限根据DAG任务的关键路径的路径长度确定;
基于策略梯度算法和所述减速评价指标构建奖励函数;
基于所述奖励函数构建所述网络模型的目标函数。
可选的,所述获取DAG任务数据集,包括:
配置DAG任务参数;所述DAG任务参数包括任务层数、目标结点的子结点个数、目标结点的子结点生成概率、相邻两个任务层之间连接边添加概率以及各个子任务的计算负载;
根据所述DAG任务参数生成DAG任务以得到所述DAG任务数据集。
可选的,所述对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵,包括:
根据所述DAG任务数据集内所述DAG任务中每个子任务的特征生成结点特征矩阵;
根据所述DAG任务数据集内不同子任务之间的连接关系生成邻接矩阵;
基于所述结点特征矩阵和所述邻接矩阵得到所述DAG任务对应的信息矩阵。
可选的,所述利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,包括:
将所述信息矩阵输入至所述网络模型,利用所述有向图神经网络根据所述子任务的特征和子任务间依赖关系输出得到每个子任务的向量表示;
利用所述顺序解码器,根据所述子任务的向量表示基于注意力机制和所述DAG任务的上下文环境对所述DAG任务内的子任务进行优先级排序;
根据所述优先级排序利用DAG任务调度模拟器计算所述DAG任务的任务调度长度;
根据所述任务调度长度和所述目标函数,利用强化学习更新所述网络模型的模型参数,直至所述网络模型收敛。
第二方面,本申请公开了一种DAG任务调度装置,包括:
网络构建模块,用于按照有向图神经网络、顺序解码器的顺序构建网络模型,并以最小任务调度长度为目标定义所述网络模型的目标函数;
数据集获取模块,用于获取DAG任务数据集,并对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵;
训练模块,用于利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,以得到训练后的DAG任务调度模型;
调度顺序确定模块,用于利用所述DAG任务调度模型确定待执行DAG任务内子任务的调度顺序,并根据所述调度顺序利用并行计算***执行所述待执行DAG任务。
可选的,所述DAG任务调度装置,还包括:
图卷积层构建单元,用于基于聚合函数和非线性激活函数构建用于DAG任务特征学习的图卷积层;
有向图神经网络构建单元,用于按照输入层、K层图卷积层、输出层的顺序构建得到所述有向图神经网络。
可选的,所述DAG任务调度装置,还包括:
向量表达式定义单元,用于以DAG任务内子任务的优先级分配状态为变量,为所述DAG任务定义上下文环境的向量表达式;
顺序解码器构建单元,用于基于注意力机制和所述上下文环境的向量表达式构建用于优先级排序的顺序解码器,以得到所述解码器。
可选的,所述网络构建模块,包括:
减速评价指标构建单元,用于以DAG任务在不同时间步下优先级排序对应的任务调度长度和任务调度长度下限为自变量,生成DAG任务的减速评价指标;所述任务调度长度下限根据DAG任务的关键路径的路径长度确定;
奖励函数构建单元,用于基于策略梯度算法和所述减速评价指标构建奖励函数;
目标函数构建单元,用于基于所述奖励函数构建所述网络模型的目标函数。
可选的,所述数据集获取模块,包括:
任务参数配置单元,用于配置DAG任务参数;所述DAG任务参数包括任务层数、目标结点的子结点个数、目标结点的子结点生成概率、相邻两个任务层之间连接边添加概率以及各个子任务的计算负载;
任务生成单元,用于根据所述DAG任务参数生成DAG任务以得到所述DAG任务数据集。
可选的,所述数据集获取模块,包括:
结点特征矩阵生成单元,用于根据所述DAG任务数据集内所述DAG任务中每个子任务的特征生成结点特征矩阵;
邻接矩阵生成单元,用于根据所述DAG任务数据集内不同子任务之间的连接关系生成邻接矩阵;
信息矩阵确定单元,用于基于所述结点特征矩阵和所述邻接矩阵得到所述DAG任务对应的信息矩阵。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的DAG任务调度方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的DAG任务调度方法。
本申请中,按照有向图神经网络、顺序解码器的顺序构建网络模型,并以最小任务调度长度为目标定义所述网络模型的目标函数;获取DAG任务数据集,并对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵;利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,以得到训练后的DAG任务调度模型;利用所述DAG任务调度模型确定待执行DAG任务内子任务的调度顺序,并根据所述调度顺序利用并行计算***执行所述待执行DAG任务。本申请中基于有向图神经网络和强化学习得到DAG任务调度模型,有向图神经网络能自动识别DAG任务内子任务相关的丰富特征,顺序解码器能够利用这些特征对子任务进行任务优先级排序,同时,利用强化学习优化模型实现最小化DAG任务调度长度的调度目标,能够缩短DAG任务调度长度,提高DAG任务并行执行效率,并且利用强化学习能够解决难以为DAG任务的最佳优先级分配收集足够多监督标签的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种DAG任务调度方法流程图;
图2为本申请提供的一种具体的DAG任务调度***结构图;
图3为本申请提供的一种具体的有向图神经网络结构图;
图4为本申请提供的一种具体的DAG任务调度模型训练方法流程图;
图5为本申请提供的一种DAG任务调度装置结构示意图;
图6为本申请提供的一种电子设备结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,长期的并行计算实践积累了大量优秀的启发式调度算法,如表调度算法和聚类调度算法,但由于启发式策略的性质,这些算法无法为 DAG 任务调度程序建立基本的设计原则,例如在不同DAG任务规模和配置下如何利用DAG任务执行时间和DAG任务图拓扑结构特征为各个子任务分配优先级,并且调度性能不理想。为克服上述技术问题,本申请提出一种DAG任务调度方法,能够缩短DAG任务调度长度,提高DAG任务并行执行效率。
本申请实施例公开了一种DAG任务调度方法,参见图1所示,该方法可以包括以下步骤:
步骤S11:按照有向图神经网络、顺序解码器的顺序构建网络模型,并以最小任务调度长度为目标定义所述网络模型的目标函数。
本实施例中,首先按照有向图神经网络(DGNN,Directed Graph NeuralNetwork)、顺序解码器的顺序构建网络模型,并以最小任务调度长度为目标定义该网络模型的目标函数;其中,上述有向图神经网络用于识别DAG任务内子任务的任务特征并输出每个子任务对应的嵌入式表示,即向量表示,任务特征包括执行时间和依赖关系;上述顺序解码器用于根据有向图神经网络输出的嵌入式表示对所有子任务的优先级进行排序,输出子任务的优先级排序。目标函数用于指导网络模型的学习,以便网络模型最后能够实现根据输入的DAG任务输出该DAG任务的最小任务调度长度。其中,上述网络模型中还包括DAG任务调度模拟器,用于计算DAG任务在给定并行计算***上的调度长度。
在进行本实施例的详细描述之前,首先对本实施例中涉及的基础概念进行解释。并行计算***,一般可描述为一个四元组
Figure 581371DEST_PATH_IMAGE001
。其中:
Figure 577140DEST_PATH_IMAGE002
是处理节点集合;
Figure 419195DEST_PATH_IMAGE003
是处理节点之间通信链路集合;
Figure 329251DEST_PATH_IMAGE004
是处理节点的计算速度集合,
Figure 205940DEST_PATH_IMAGE005
表示
Figure 559561DEST_PATH_IMAGE006
的计算速度,且满足
Figure 108485DEST_PATH_IMAGE007
Figure 104123DEST_PATH_IMAGE008
是通信链路带宽的集合,
Figure 507422DEST_PATH_IMAGE009
表示通信链路
Figure 31944DEST_PATH_IMAGE010
的带宽。
DAG任务,是指具有复杂依赖关系的、可在并行计算***上并行执行的多个子任务,常用带权的有向无环图表示,并记为
Figure 583011DEST_PATH_IMAGE011
。其中,
Figure 123887DEST_PATH_IMAGE012
是结点集合,每个结点表示一个子任务,
Figure 381693DEST_PATH_IMAGE013
为子任务总数。
Figure 342696DEST_PATH_IMAGE014
是有向边集合,有向边
Figure 115480DEST_PATH_IMAGE015
表示从该边所连接的子任务
Figure 469232DEST_PATH_IMAGE016
到其另一子任务
Figure 643861DEST_PATH_IMAGE017
之间的通信和数据依赖关系,
Figure 510186DEST_PATH_IMAGE017
必须在收到
Figure 770266DEST_PATH_IMAGE016
的计算结果之后才能启动执行。
Figure 629506DEST_PATH_IMAGE018
是计算负载的集合,
Figure 861905DEST_PATH_IMAGE019
表示子任务
Figure 164710DEST_PATH_IMAGE016
的计算负载,并记所有子任务计算负载之和为
Figure 912086DEST_PATH_IMAGE020
,则有
Figure 325750DEST_PATH_IMAGE021
设Pred(ti)和Succ(ti) 分别为
Figure 694545DEST_PATH_IMAGE016
的直接前驱子任务集和直接后继子任务集。称
Figure 433831DEST_PATH_IMAGE016
与Pred(ti)和Succ(ti)中所有子任务间的连接边的集合分别为
Figure 402924DEST_PATH_IMAGE016
的入射边集
Figure 354700DEST_PATH_IMAGE022
和出射边集
Figure 607696DEST_PATH_IMAGE023
;记
Figure 252303DEST_PATH_IMAGE016
的入度和出度分别为
Figure 708693DEST_PATH_IMAGE024
Figure 667421DEST_PATH_IMAGE025
,则有
Figure 525656DEST_PATH_IMAGE026
Figure 544428DEST_PATH_IMAGE027
。若
Figure 238845DEST_PATH_IMAGE028
,则称
Figure 63582DEST_PATH_IMAGE016
是入口子任务并记为tentry;若
Figure 979585DEST_PATH_IMAGE029
,则称
Figure 700416DEST_PATH_IMAGE016
是出口子任务并记为texit。路径
Figure 396977DEST_PATH_IMAGE030
是子任务结点的有限序列,且满足
Figure 743514DEST_PATH_IMAGE031
,有
Figure 576340DEST_PATH_IMAGE032
。如果一条路径同时包含入口子任务和出口子任务,则称该路径为完整路径。λ的路径长度Λ(λ)是该路径上所有子任务的计算负载之和,即
Figure 671335DEST_PATH_IMAGE033
路径长度最长的完整路径称为关键路径。每个子任务结点vi的原始特征xi除了包含任务负载、入度、出度结点级特征外,还包括关键路径长度和非关键路径长度,非关键路径长度可通过DAG任务总计算负载减去关键路径长度得到。例如图2所示,为一种具体的DAG任务调度***,展示了一个含9个结点、具有唯一入口和出口的DAG任务,结点内的字符串表示子任务ID和计算负载。事实上,DAG任务可能有多个入口和出口,可以通过添加一个虚拟的入口子任务或出口子任务以及相应连接边,将其变成具有唯一入口和出口的DAG任务。除非特别说明,本实施例中均指后一类DAG任务,且满足子任务个数满足n远远大于并行计算***节点数m
本实施例中,所述按照有向图神经网络、顺序解码器的顺序构建网络模型之前,还可以包括:基于聚合函数和非线性激活函数构建用于DAG任务特征学习的图卷积层;按照输入层、K层图卷积层、输出层的顺序构建得到所述有向图神经网络。利用上述有向图神经网络学习上述DAG任务内每个子任务的向量表示;
上述向量表示,记做
Figure 589613DEST_PATH_IMAGE034
如图3所示,设计有向图神经网络,它由输入层(input layer)、K层图卷积层(graph conv layer)和输出层(output layer)组成,输入层读取DAG任务的结点特征矩阵X和邻接矩阵A;第k层图卷积层的图卷积操作由聚合函数(aggregate函数)和非线性激活函数实现,如下:
Figure 756152DEST_PATH_IMAGE035
(1)
Figure 928638DEST_PATH_IMAGE036
(2)
其中,aggregate函数聚合来自子任务
Figure 460114DEST_PATH_IMAGE037
的直接前驱发来的消息,update函数对聚合后的消息执行非线性变换;Pred(ti)为
Figure 600108DEST_PATH_IMAGE037
的直接前驱子任务集。对于aggregate函数,它可以采用多种方式如取最大值、取平均值等,本专利采用注意力机制实现:
Figure 304759DEST_PATH_IMAGE038
(3)
其中,αij表示子任务t j t i 的注意力系数,它通过训练学习得到。对于update函数,它可以是任意的非线性激活函数。不是一般性,本实施例中采用ReLu函数实现:
Figure 112178DEST_PATH_IMAGE039
输出层直接输出第K层图卷积层学习到的顶点嵌入式表示。可以理解的是,通过利用聚合函数和非线性激活函数构建的图卷积层,能更好的适应DAG任务图的有向特性,提取子任务间的依赖关系,能够识别子任务自身特征以及在DAG任务中与其余子任务的依赖关系,从而更加有效的学习子任务结点的嵌入式表示,以便为后续的子任务优先级排序提供更丰富的特征,进而提高优先级排序的准确性。
本实施例中,所述按照有向图神经网络、顺序解码器的顺序构建网络模型之前,还可以包括:以DAG任务内子任务的优先级分配状态为变量,为所述DAG任务定义上下文环境的向量表达式;基于注意力机制和所述上下文环境的向量表达式构建用于优先级排序的顺序解码器。可以理解的是,上述解码器为顺序解码器用于为DAG任务的所有子任务排序,具体的根据有向图神经网络学习到的DAG任务所有n个子任务结点的嵌入式表示。
顺序解码器基于注意力机制顺序选择子任务结点以生成大小为n的优先级排序
Figure 860560DEST_PATH_IMAGE040
,它对应一个优先级有序的子任务排列
Figure 487850DEST_PATH_IMAGE041
且满足:优先级
Figure 933875DEST_PATH_IMAGE042
本实施例中顺序解码器可以将DAG任务优先级分配形式化描述为如下公式定义的概率分布:
Figure 330222DEST_PATH_IMAGE043
(4)
其中,
Figure 265817DEST_PATH_IMAGE044
为待优化的网络参数。顺序解码器首先从概率分布
Figure 131136DEST_PATH_IMAGE045
中采样具有最高优先级的子任务结点,然后再从
Figure 912010DEST_PATH_IMAGE046
中采样次高优先级子任务结点,以此类推,直至采样选出所有子任务结点。
在每个时间步
Figure 428442DEST_PATH_IMAGE047
,顺序解码器按照如下规则选择子任务结点
Figure 472621DEST_PATH_IMAGE048
并赋予其优先级
Figure 74504DEST_PATH_IMAGE049
Figure 908336DEST_PATH_IMAGE050
(5)
其中,argmax函数用于确定最大值自变量点集;条件概率分布
Figure 544854DEST_PATH_IMAGE051
按照如下公式计算得到:
Figure 556672DEST_PATH_IMAGE052
(6)
其中,softmax为归一化指数函数;
Figure 380272DEST_PATH_IMAGE053
为待训练的特征变换矩阵;tanh为激活函数;att为注意力函数;
Figure 519260DEST_PATH_IMAGE054
是时间步
Figure 744705DEST_PATH_IMAGE055
尚未分配优先级的子任务集合,已分配优先级的子任务集合记为
Figure 130687DEST_PATH_IMAGE056
,且满足
Figure 707162DEST_PATH_IMAGE057
,针对一个DAG任务的优先级排序过程中,集合
Figure 633530DEST_PATH_IMAGE056
Figure 962749DEST_PATH_IMAGE054
会根据优先级分配状态实时更新;cont为顺序解码器实时子任务选择的上下文环境,可以理解的是,公式(6)中,将子任务的向量表示与上下文环境的向量表示进行比较,然后利用注意力机制分配子任务的权重;上下文环境的向量表示计算公式如下:
cont=W[contO; contU]+b, (7)
其中,W 表示线性变换,“[;]”表示张量连接符;contO和contU分别为
Figure 847528DEST_PATH_IMAGE056
Figure 645720DEST_PATH_IMAGE054
对应的嵌入式表示,它们通过以下公式计算得到:
Figure 375779DEST_PATH_IMAGE058
(8)
Figure 513499DEST_PATH_IMAGE059
(9)
其中,σ为非线性激活函数。由此基于注意力机制构建顺序解码器,将子任务结点的选择问题归结为从条件概率分布中随机选择子结点编号的问题,以根据子任务结点的向量表示,更加准确地确定子任务的优先级排序。
本实施例中,所述以最小任务调度长度为目标定义所述网络模型的目标函数,可以包括:以DAG任务在不同时间步下优先级排序对应的任务调度长度和任务调度长度下限为自变量,生成DAG任务的减速评价指标;所述任务调度长度下限根据DAG任务的关键路径的路径长度确定;基于策略梯度算法和所述减速评价指标构建奖励函数;基于所述奖励函数构建所述网络模型的目标函数。可以理解的是,DAG任务调度问题可以建模表示为马尔科夫决策过程(MDP,Markov Decision Process);一个基本的MDP通常可以用一个五元组来描述:
Figure 54333DEST_PATH_IMAGE060
其中,
Figure 339821DEST_PATH_IMAGE061
是所述顺序解码器n个时间步动作的集合,在时间步
Figure 607991DEST_PATH_IMAGE062
的动作表示顺序解码器从DAG任务中选择子任务结点
Figure 928114DEST_PATH_IMAGE063
并赋予其优先级
Figure 138384DEST_PATH_IMAGE064
Figure 645589DEST_PATH_IMAGE065
n个时间步的状态集合;时间步
Figure 920712DEST_PATH_IMAGE055
的状态
Figure 95342DEST_PATH_IMAGE066
包括DAG任务所有子任务结点的嵌入式表示
Figure 961667DEST_PATH_IMAGE067
以及已分配优先级的子任务
Figure 972479DEST_PATH_IMAGE068
Figure 848031DEST_PATH_IMAGE069
Figure 611588DEST_PATH_IMAGE070
表示环境即时返回值,用以评估顺序解码器上一个选择动作效果。由于DAG任务调度的目标是最小化任务调度长度,本实施例中基于减速评价指标设计一个奖励函数
Figure 648814DEST_PATH_IMAGE071
:
Figure 645458DEST_PATH_IMAGE072
(10)
其中,
Figure 324701DEST_PATH_IMAGE073
表示在时间步
Figure 739502DEST_PATH_IMAGE074
,DAG任务优先级排序
Figure 963941DEST_PATH_IMAGE075
对应的子任务
Figure 136296DEST_PATH_IMAGE063
的调度长度,
Figure 88072DEST_PATH_IMAGE076
表示在时间步
Figure 91800DEST_PATH_IMAGE077
,DAG任务优先级排序
Figure 736408DEST_PATH_IMAGE075
对应的子任务
Figure 442064DEST_PATH_IMAGE063
的任务调度长度的下界。在一个由m个计算节点组成的并行计算***上,
Figure 197531DEST_PATH_IMAGE078
可基于关键路径长度计算,具体计算公式如下:
Figure 790186DEST_PATH_IMAGE079
(11)
其中,
Figure 871275DEST_PATH_IMAGE080
为根据优先级排序
Figure 565692DEST_PATH_IMAGE075
确定的到子任务
Figure 859270DEST_PATH_IMAGE063
关键路径长度,
Figure 572011DEST_PATH_IMAGE081
为根据优先级排序
Figure 761684DEST_PATH_IMAGE075
确定的到子任务
Figure 458245DEST_PATH_IMAGE063
的所有子任务计算负载之和。
在MDP中,假设状态转换矩阵Π是确定性的,因为对于给定的状态和动作,下一个状态的确定没有随机性,这是因为调度动作不执行任务,它只影响调度策略并改变任务的排列。最后,设折扣因子Δ为常量1,根据公式(4)和(10),利用基于策略梯度算法,以最大化DAG任务优先级排序π对应的累计奖励的期望为目标,定义网络模型的目标函数J为:
Figure 804781DEST_PATH_IMAGE082
(12)
其中,
Figure 372029DEST_PATH_IMAGE083
表征指定DAG任务优先级顺序为从学习策略中采样得到的。
步骤S12:获取DAG任务数据集,并对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵。
本实施例中,获取用于模型训练的DAG任务数据集,然后提取DAG任务数据集内每个DAG任务的信息矩阵,包括结点特征矩阵和邻接矩阵。具体的,本实施例中,所述对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵,可以包括:根据所述DAG任务数据集内所述DAG任务中每个子任务的特征生成结点特征矩阵;所述结点特征矩阵为表征子任务的计算负载、归一化计算负载以及子任务的入度和出度的特征矩阵;根据所述DAG任务数据集内不同子任务之间的连接关系生成邻接矩阵;基于所述结点特征矩阵和所述邻接矩阵得到所述DAG任务对应的信息矩阵。
本实施例中,所述获取DAG任务数据集,可以包括:配置DAG任务参数;所述DAG任务参数包括任务层数、目标结点的子结点个数、目标结点的子结点生成概率、相邻两个任务层之间连接边添加概率以及各个子任务的计算负载;根据所述DAG任务参数生成DAG任务以得到所述DAG任务数据集。因缺乏公开可用的大规模DAG任务数据集,本实施例中首先生成DAG任务,具体可以基于DAG任务参数利用并行任务生成模型获取。如嵌套fork-join任务模型合成DAG任务;该模型由四个参数控制,分别是ndepth、nchild、pfork和ppert。其中,ndepth表示DAG任务层数或者深度;nchild表示某个结点的子结点个数;pfork表示为某结点生成子结点的概率;ppert在相邻两层结点之间随机添加连接边的概率。对于第k层中的每个子任务结点t i ,其子结点t j 和边e ij 是基于概率pfork生成的;第k+1层中的子结点数量由均匀分布n child 确定,即通过均匀分布确定目标结点下的子结点个数。此过程从入口子任务结点开始并重复ndepth次,从而创建具有ndepth层的DAG任务。此外,以概率ppert在DAG任务的第k层和第 k+1层结点之间随机添加连接边,ppert值越大生成的DAG任务的并行度就越高。最后,添加从最后一层结点到出口结点的边,并为每个子任务分配计算负载。其中,子任务的计算负载服从参数为μ(μ>0)和δ的正态分布,其中,μ表示子任务的平均计算负载,δ表示各个子任务的计算负载的标准差,当然,也可以假设为其它分布,只要保证各个子任务的计算负载为正值即可,此处不做限定。对构造好的DAG任务,提取每个子任务结点的特征并构造结点特征矩阵X;根据结点间互连关系,构造邻接矩阵A。
步骤S13:利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,以得到训练后的DAG任务调度模型。
本实施例中,构建得到网络模型后,首先进行模型参数初始化。按照特定策略如正态分布随机初始化、Xavier初始化或He Initialization初始化,对有向图神经网络各层参数W进行初始化,并对顺序解码器模型参数
Figure 732603DEST_PATH_IMAGE084
进行初始化。
然后,利用上述DAG任务数据集对应的信息矩阵对网络模型进行训练,其中,得到上述DAG任务数据集后,将上述DAG任务数据集划分为训练集和测试集,具体可以采用交叉验证法、留出法或留一法等划分方法,其中,测试集用于对上述网络模型进行训练,测试集用于对训练后的网络模型进行测试。
本实施例中,所述利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,可以包括:
S130:将所述信息矩阵输入至所述网络模型,利用所述有向图神经网络根据所述子任务的特征和子任务间依赖关系输出得到每个子任务的向量表示;
S131:利用所述顺序解码器,根据所述子任务的向量表示基于注意力机制和所述DAG任务的上下文环境对所述DAG任务内的子任务进行优先级排序;
S132:根据所述优先级排序利用DAG任务调度模拟器计算所述DAG任务的任务调度长度;
S133:根据所述任务调度长度和所述目标函数,利用强化学习更新所述网络模型的模型参数,直至所述网络模型收敛。
即以信息矩阵中包含的结点特征矩阵和邻接矩阵作为网络模型的输入,进行前向传播,经由有向图神经网络获取所有子任务的向量表示,顺序解码器输出子任务优先级排序,可以通过DAG任务模拟调度器按序调度子任务执行,并计算相应调度长度,然后按照公式(12)计算模型目标函数值;并按照一定策略如随机梯度下降或者Adam等算法,反向传播修正各层网络参数值。由此,利用强化学习算法,以最小化DAG任务调度长度为目标,通过奖励调度长度更短的DAG任务优先级排序,持续优化网络模型;因而得到的调度长度更短,并行计算效率更高。可有效避免难以为DAG任务的最佳优先级分配收集足够多监督标签的困难。
具体的,网络模型训练,通过对公式(11)定义的目标函数J求关于
Figure 650881DEST_PATH_IMAGE085
的梯度:
Figure 551841DEST_PATH_IMAGE086
(13)
其中,
Figure 989906DEST_PATH_IMAGE087
为梯度算子。公式(12)中的模型梯度可以用蒙特卡洛随机梯度下降法来估计:
Figure 521382DEST_PATH_IMAGE088
(14)
其中,
Figure 926955DEST_PATH_IMAGE089
表示由数据集中随机采样得到的DAG任务的子任务的集合。利用随机梯度下降法或Adam算法优化目标函数,待目标函数值不再减少或者达到最大迭代次数,模型训练终止,此时得到的调度方案即为最佳调度方案。即基于蒙特卡洛随机梯度下降法估计目标函数梯度。由此,本实施例中基于有向图神经网络和目标函数实现对DAG任务的深度强化学习。其中,DAG任务调度长度可以通过DAG任务调度模拟器按照排列依次调度所有子任务到并行计算***ARC上并行执行,并记录出口任务的完成时间,得到DAG任务调度长度。
步骤S14:利用所述DAG任务调度模型确定待执行DAG任务内子任务的调度顺序,并根据所述调度顺序利用并行计算***执行所述待执行DAG任务。
本实施例中,训练得到DAG任务调度模型后,将待执行DAG任务的结点特征矩阵和邻接矩阵输入至该模型,将模型求得的最佳DAG任务调度顺序作为结果进行输出,并根据调度顺序利用并行计算***执行待执行DAG任务。由此,针对DAG任务的非抢占式调度问题,本实施例基于深度强化学习和有向图神经网络进行任务优先级排序,进而确定任务的调度顺序,减少任务的执行时间,提高任务的执行效率。
本实施例中还提出一种基于深度强化学习和有向图神经网络的DAG任务调度***。如图2所示,该***由输入模块、有向图神经网络、顺序解码器、调度长度计算模块以及模型参数更新模块组成。输入模块负责读取DAG任务的结点特征矩阵X和邻接矩阵A;有向图神经网络以X和A为输入,识别DAG任务的执行时间和依赖关系,学习子任务的嵌入式表示;这些嵌入式表示经由顺序解码器解码,输出得到所有子任务的优先级排序;调度长度计算模块根据该排序,调度它们在并行计算***上执行,并将调度长度作为反馈信号,利用强化学习算法来更新模型参数。由此,上述基于深度强化学习和有向图神经网络的DAG任务调度***以DAG任务为输入,通过有向图神经网络为DAG任务的每个子任务生成嵌入式表示,利用顺序解码器产生所有子任务的优先级排序,并计算该排序对应的任务调度长度或完工时间。***以最小化DAG任务的调度长度为目标,计算出的调度长度被用作奖励信号以通过强化学习算法来更新模型。
由上可见,本实施例中按照有向图神经网络、顺序解码器的顺序构建网络模型,并以最小任务调度长度为目标定义所述网络模型的目标函数;获取DAG任务数据集,并对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵;利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,以得到训练后的DAG任务调度模型;利用所述DAG任务调度模型确定待执行DAG任务内子任务的调度顺序,并根据所述调度顺序利用并行计算***执行所述待执行DAG任务。本申请中基于有向图神经网络和强化学习得到DAG任务调度模型,有向图神经网络能自动识别DAG任务内子任务相关的丰富特征,顺序解码器能够利用这些特征对子任务进行任务优先级排序,同时,利用强化学习优化模型实现最小化DAG任务调度长度的调度目标,能够缩短DAG任务调度长度,提高DAG任务并行执行效率,并且利用强化学习能够解决难以为DAG任务的最佳优先级分配收集足够多监督标签的问题。
相应的,本申请实施例还公开了一种DAG任务调度装置,参见图5所示,该装置包括:
网络构建模块11,用于按照有向图神经网络、顺序解码器的顺序构建网络模型,并以最小任务调度长度为目标定义所述网络模型的目标函数;
数据集获取模块12,用于获取DAG任务数据集,并对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵;
训练模块13,用于利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,以得到训练后的DAG任务调度模型;
调度顺序确定模块14,用于利用所述DAG任务调度模型确定待执行DAG任务内子任务的调度顺序,并根据所述调度顺序利用并行计算***执行所述待执行DAG任务。
由上可见,本实施例中按照有向图神经网络、顺序解码器的顺序构建网络模型,并以最小任务调度长度为目标定义所述网络模型的目标函数;获取DAG任务数据集,并对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵;利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,以得到训练后的DAG任务调度模型;利用所述DAG任务调度模型确定待执行DAG任务内子任务的调度顺序,并根据所述调度顺序利用并行计算***执行所述待执行DAG任务。本申请中基于有向图神经网络和强化学习得到DAG任务调度模型,有向图神经网络能自动识别DAG任务内子任务相关的丰富特征,顺序解码器能够利用这些特征对子任务进行任务优先级排序,同时,利用强化学习优化模型实现最小化DAG任务调度长度的调度目标,能够缩短DAG任务调度长度,提高DAG任务并行执行效率,并且利用强化学习能够解决难以为DAG任务的最佳优先级分配收集足够多监督标签的问题。
在一些具体实施例中,所述DAG任务调度装置具体可以包括:
图卷积层构建单元,用于基于聚合函数和非线性激活函数构建用于DAG任务特征学习的图卷积层;
有向图神经网络构建单元,用于按照输入层、K层图卷积层、输出层的顺序构建得到所述有向图神经网络。
在一些具体实施例中,所述DAG任务调度装置具体可以包括:
向量表达式定义单元,用于以DAG任务内子任务的优先级分配状态为变量,为所述DAG任务定义上下文环境的向量表达式;
顺序解码器构建单元,用于基于注意力机制和所述上下文环境的向量表达式构建用于优先级排序的顺序解码器,以得到所述解码器。
在一些具体实施例中,所述网络构建模块11具体可以包括:
减速评价指标构建单元,用于以DAG任务在不同时间步下优先级排序对应的任务调度长度和任务调度长度下限为自变量,生成DAG任务的减速评价指标;所述任务调度长度下限根据DAG任务的关键路径的路径长度确定;
奖励函数构建单元,用于基于策略梯度算法和所述减速评价指标构建奖励函数;
目标函数构建单元,用于基于所述奖励函数构建所述网络模型的目标函数。
在一些具体实施例中,所述数据集获取模块12具体可以包括:
任务参数配置单元,用于配置DAG任务参数;所述DAG任务参数包括任务层数、目标结点的子结点个数、目标结点的子结点生成概率、相邻两个任务层之间连接边添加概率以及各个子任务的计算负载;
任务生成单元,用于根据所述DAG任务参数生成DAG任务以得到所述DAG任务数据集。
在一些具体实施例中,所述数据集获取模块12具体可以包括:
结点特征矩阵生成单元,用于根据所述DAG任务数据集内所述DAG任务中每个子任务的特征生成结点特征矩阵;
邻接矩阵生成单元,用于根据所述DAG任务数据集内不同子任务之间的连接关系生成邻接矩阵;
信息矩阵确定单元,用于基于所述结点特征矩阵和所述邻接矩阵得到所述DAG任务对应的信息矩阵。
在一些具体实施例中,所述训练模块13具体可以包括:
向量表示确定单元,用于将所述信息矩阵输入至所述网络模型,利用所述有向图神经网络根据所述子任务的特征和子任务间依赖关系输出得到每个子任务的向量表示;
优先级排序确定单元,用于利用所述顺序解码器,根据所述子任务的向量表示基于注意力机制和所述DAG任务的上下文环境对所述DAG任务内的子任务进行优先级排序;
任务调度长度确定单元,用于根据所述优先级排序利用DAG任务调度模拟器计算所述DAG任务的任务调度长度;
模型优化单元,用于根据所述任务调度长度和所述目标函数,利用强化学习更新所述网络模型的模型参数,直至所述网络模型收敛。
进一步的,本申请实施例还公开了一种电子设备,参见图6所示,图中的内容不能被认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的DAG任务调度方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作***221、计算机程序222及包括DAG任务在内的数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作***221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的DAG任务调度方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的DAG任务调度方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种DAG任务调度方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (14)

1.一种DAG任务调度方法,其特征在于,包括:
按照有向图神经网络、顺序解码器的顺序构建网络模型,并以最小任务调度长度为目标定义所述网络模型的目标函数;
获取DAG任务数据集,并对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵;
利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,以得到训练后的DAG任务调度模型;
利用所述DAG任务调度模型确定待执行DAG任务内子任务的调度顺序,并根据所述调度顺序利用并行计算***执行所述待执行DAG任务;
其中,所述利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,包括:
将所述信息矩阵输入至所述网络模型,利用所述有向图神经网络根据所述子任务的特征和子任务间依赖关系输出得到每个子任务的向量表示;
利用所述顺序解码器,根据所述子任务的向量表示基于注意力机制和所述DAG任务的上下文环境对所述DAG任务内的子任务进行优先级排序;
根据所述优先级排序利用DAG任务调度模拟器计算所述DAG任务的任务调度长度;
根据所述任务调度长度和所述目标函数,利用强化学习更新所述网络模型的模型参数,直至所述网络模型收敛。
2.根据权利要求1所述的DAG任务调度方法,其特征在于,所述按照有向图神经网络、顺序解码器的顺序构建网络模型之前,还包括:
基于聚合函数和非线性激活函数构建用于DAG任务特征学习的图卷积层;
按照输入层、K层图卷积层、输出层的顺序构建得到所述有向图神经网络。
3.根据权利要求1所述的DAG任务调度方法,其特征在于,所述按照有向图神经网络、顺序解码器的顺序构建网络模型之前,还包括:
以DAG任务内子任务的优先级分配状态为变量,为所述DAG任务定义上下文环境的向量表达式;
基于注意力机制和所述上下文环境的向量表达式构建用于优先级排序的顺序解码器。
4.根据权利要求1所述的DAG任务调度方法,其特征在于,所述以最小任务调度长度为目标定义所述网络模型的目标函数,包括:
以DAG任务在不同时间步下优先级排序对应的任务调度长度和任务调度长度下限为自变量,生成DAG任务的减速评价指标;所述任务调度长度下限根据DAG任务的关键路径的路径长度确定;
基于策略梯度算法和所述减速评价指标构建奖励函数;
基于所述奖励函数构建所述网络模型的目标函数。
5.根据权利要求1所述的DAG任务调度方法,其特征在于,所述获取DAG任务数据集,包括:
配置DAG任务参数;所述DAG任务参数包括任务层数、目标结点的子结点个数、目标结点的子结点生成概率、相邻两个任务层之间连接边添加概率以及各个子任务的计算负载;
根据所述DAG任务参数生成DAG任务以得到所述DAG任务数据集。
6.根据权利要求1所述的DAG任务调度方法,其特征在于,所述对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵,包括:
根据所述DAG任务数据集内所述DAG任务中每个子任务的特征生成结点特征矩阵;
根据所述DAG任务数据集内不同子任务之间的连接关系生成邻接矩阵;
基于所述结点特征矩阵和所述邻接矩阵得到所述DAG任务对应的信息矩阵。
7.一种DAG任务调度装置,其特征在于,包括:
网络构建模块,用于按照有向图神经网络、顺序解码器的顺序构建网络模型,并以最小任务调度长度为目标定义所述网络模型的目标函数;
数据集获取模块,用于获取DAG任务数据集,并对所述DAG任务数据集内每个所述DAG任务生成对应的信息矩阵;
训练模块,用于利用所述信息矩阵对所述网络模型进行训练,并根据所述目标函数利用强化学习更新所述网络模型的模型参数,以得到训练后的DAG任务调度模型;
调度顺序确定模块,用于利用所述DAG任务调度模型确定待执行DAG任务内子任务的调度顺序,并根据所述调度顺序利用并行计算***执行所述待执行DAG任务;
所述训练模块,还用于将所述信息矩阵输入至所述网络模型,利用所述有向图神经网络根据所述子任务的特征和子任务间依赖关系输出得到每个子任务的向量表示;利用所述顺序解码器,根据所述子任务的向量表示基于注意力机制和所述DAG任务的上下文环境对所述DAG任务内的子任务进行优先级排序;根据所述优先级排序利用DAG任务调度模拟器计算所述DAG任务的任务调度长度;根据所述任务调度长度和所述目标函数,利用强化学习更新所述网络模型的模型参数,直至所述网络模型收敛。
8.根据权利要求7所述的DAG任务调度装置,其特征在于,还包括:
图卷积层构建单元,用于基于聚合函数和非线性激活函数构建用于DAG任务特征学习的图卷积层;
有向图神经网络构建单元,用于按照输入层、K层图卷积层、输出层的顺序构建得到所述有向图神经网络。
9.根据权利要求7所述的DAG任务调度装置,其特征在于,还包括:
向量表达式定义单元,用于以DAG任务内子任务的优先级分配状态为变量,为所述DAG任务定义上下文环境的向量表达式;
顺序解码器构建单元,用于基于注意力机制和所述上下文环境的向量表达式构建用于优先级排序的顺序解码器,以得到所述解码器。
10.根据权利要求7所述的DAG任务调度装置,其特征在于,所述网络构建模块,包括:
减速评价指标构建单元,用于以DAG任务在不同时间步下优先级排序对应的任务调度长度和任务调度长度下限为自变量,生成DAG任务的减速评价指标;所述任务调度长度下限根据DAG任务的关键路径的路径长度确定;
奖励函数构建单元,用于基于策略梯度算法和所述减速评价指标构建奖励函数;
目标函数构建单元,用于基于所述奖励函数构建所述网络模型的目标函数。
11.根据权利要求7所述的DAG任务调度装置,其特征在于,所述数据集获取模块,包括:
任务参数配置单元,用于配置DAG任务参数;所述DAG任务参数包括任务层数、目标结点的子结点个数、目标结点的子结点生成概率、相邻两个任务层之间连接边添加概率以及各个子任务的计算负载;
任务生成单元,用于根据所述DAG任务参数生成DAG任务以得到所述DAG任务数据集。
12.根据权利要求7所述的DAG任务调度装置,其特征在于,所述数据集获取模块,包括:
结点特征矩阵生成单元,用于根据所述DAG任务数据集内所述DAG任务中每个子任务的特征生成结点特征矩阵;
邻接矩阵生成单元,用于根据所述DAG任务数据集内不同子任务之间的连接关系生成邻接矩阵;
信息矩阵确定单元,用于基于所述结点特征矩阵和所述邻接矩阵得到所述DAG任务对应的信息矩阵。
13.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的DAG任务调度方法。
14.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至6任一项所述的DAG任务调度方法。
CN202210671115.8A 2022-06-15 2022-06-15 一种dag任务调度方法、装置、设备及存储介质 Active CN114756358B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210671115.8A CN114756358B (zh) 2022-06-15 2022-06-15 一种dag任务调度方法、装置、设备及存储介质
PCT/CN2022/142437 WO2023241000A1 (zh) 2022-06-15 2022-12-27 一种dag任务调度方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210671115.8A CN114756358B (zh) 2022-06-15 2022-06-15 一种dag任务调度方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114756358A CN114756358A (zh) 2022-07-15
CN114756358B true CN114756358B (zh) 2022-11-04

Family

ID=82337171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210671115.8A Active CN114756358B (zh) 2022-06-15 2022-06-15 一种dag任务调度方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN114756358B (zh)
WO (1) WO2023241000A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756358B (zh) * 2022-06-15 2022-11-04 苏州浪潮智能科技有限公司 一种dag任务调度方法、装置、设备及存储介质
CN116151315B (zh) * 2023-04-04 2023-08-15 之江实验室 一种面向晶上***的注意力网络调度优化方法及装置
CN116739090B (zh) * 2023-05-12 2023-11-28 北京大学 基于Web浏览器的深度神经网络推理度量方法和装置
CN116755397B (zh) * 2023-05-26 2024-01-23 北京航空航天大学 一种基于图卷积策略梯度的多机协同任务调度方法
CN116880994B (zh) * 2023-09-07 2023-12-12 之江实验室 基于动态dag的多处理器任务调度方法、装置及设备
CN116974729B (zh) * 2023-09-22 2024-02-09 浪潮(北京)电子信息产业有限公司 大数据作业的任务调度方法、装置及电子设备和存储介质
CN117971411A (zh) * 2023-12-06 2024-05-03 南京财经大学 一种基于强化学***台任务调度方法及装置
CN117555306B (zh) * 2024-01-11 2024-04-05 天津斯巴克斯机电有限公司 一种基于数字孪生的多生产线任务自适应调度方法及***
CN117648174B (zh) * 2024-01-29 2024-04-05 华北电力大学 基于人工智能的云计算异构任务调度和容器管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111756653A (zh) * 2020-06-04 2020-10-09 北京理工大学 基于图神经网络深度强化学习的多coflow调度方法
CN113127169A (zh) * 2021-04-07 2021-07-16 中山大学 数据中心网络中动态工作流的高效链路调度方法
US20220100763A1 (en) * 2020-09-30 2022-03-31 Microsoft Technology Licensing, Llc Optimizing job runtimes via prediction-based token allocation
CN114422381A (zh) * 2021-12-14 2022-04-29 西安电子科技大学 通信网络流量预测方法、***、存储介质及计算机设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106228314A (zh) * 2016-08-11 2016-12-14 电子科技大学 基于深度增强学习的工作流调度方法
US20200042856A1 (en) * 2018-07-31 2020-02-06 International Business Machines Corporation Scheduler for mapping neural networks onto an array of neural cores in an inference processing unit
CN114327925A (zh) * 2021-09-30 2022-04-12 国网山东省电力公司营销服务中心(计量中心) 一种电力数据实时计算调度优化方法及***
CN114239711A (zh) * 2021-12-06 2022-03-25 中国人民解放军国防科技大学 基于异构信息网络少样本学习的节点分类方法
CN114625517A (zh) * 2022-04-13 2022-06-14 北京赛博云睿智能科技有限公司 一种dag图计算分布式大数据工作流任务调度平台
CN114756358B (zh) * 2022-06-15 2022-11-04 苏州浪潮智能科技有限公司 一种dag任务调度方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111756653A (zh) * 2020-06-04 2020-10-09 北京理工大学 基于图神经网络深度强化学习的多coflow调度方法
US20220100763A1 (en) * 2020-09-30 2022-03-31 Microsoft Technology Licensing, Llc Optimizing job runtimes via prediction-based token allocation
CN113127169A (zh) * 2021-04-07 2021-07-16 中山大学 数据中心网络中动态工作流的高效链路调度方法
CN114422381A (zh) * 2021-12-14 2022-04-29 西安电子科技大学 通信网络流量预测方法、***、存储介质及计算机设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
【论文解析】Fast Adaptive Task Offloading in Edge Computing Based on Meta Reinforcement Learning;橙子渣渣;《(graph neural network) or gnn》;20210318;第1-11页 *

Also Published As

Publication number Publication date
CN114756358A (zh) 2022-07-15
WO2023241000A1 (zh) 2023-12-21

Similar Documents

Publication Publication Date Title
CN114756358B (zh) 一种dag任务调度方法、装置、设备及存储介质
Tong et al. QL-HEFT: a novel machine learning scheduling scheme base on cloud computing environment
US11868890B2 (en) Workflow optimization
CN110737529B (zh) 一种面向短时多变大数据作业集群调度自适应性配置方法
Zhang et al. DeepMAG: Deep reinforcement learning with multi-agent graphs for flexible job shop scheduling
CN103092683A (zh) 用于数据分析的基于启发式的调度
CN113778646B (zh) 一种基于执行时间预测的任务层级调度方法及装置
CN113641445B (zh) 基于深度确定性策略的云资源自适应配置方法及***
Khajemohammadi et al. Efficient workflow scheduling for grid computing using a leveled multi-objective genetic algorithm
Sinclair et al. Hindsight learning for mdps with exogenous inputs
Fan et al. Dras: Deep reinforcement learning for cluster scheduling in high performance computing
Naghshnejad et al. A hybrid scheduling platform: a runtime prediction reliability aware scheduling platform to improve hpc scheduling performance
Peng et al. Genetic Algorithm‐Based Task Scheduling in Cloud Computing Using MapReduce Framework
US20050114849A1 (en) System and method for autonomic optimization by computer programs
Vahidipour et al. Priority assignment in queuing systems with unknown characteristics using learning automata and adaptive stochastic Petri nets
Tuli et al. Optimizing the performance of fog computing environments using ai and co-simulation
CN116069473A (zh) 一种基于深度强化学习的Yarn集群工作流调度方法
CN113220437B (zh) 一种工作流多目标调度方法及装置
CN114327925A (zh) 一种电力数据实时计算调度优化方法及***
Femmam et al. Labelled evolutionary Petri nets/genetic algorithm based approach for workflow scheduling in cloud computing
Hegde et al. COUNSEL: Cloud Resource Configuration Management using Deep Reinforcement Learning
Alkhanak et al. A hyper-heuristic approach using a prioritized selection strategy for workflow scheduling in cloud computing
Brueckner et al. Swarming Polyagents Executing Hierarchical Task Networks
Prasad et al. Adaptive smoothed functional algorithms for optimal staffing levels in service systems
CN112328364B (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