CN109871270B - 调度方案生成方法及装置 - Google Patents

调度方案生成方法及装置 Download PDF

Info

Publication number
CN109871270B
CN109871270B CN201910057758.1A CN201910057758A CN109871270B CN 109871270 B CN109871270 B CN 109871270B CN 201910057758 A CN201910057758 A CN 201910057758A CN 109871270 B CN109871270 B CN 109871270B
Authority
CN
China
Prior art keywords
node
scheduling scheme
task
time
queue
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
CN201910057758.1A
Other languages
English (en)
Other versions
CN109871270A (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.)
Shenzhen University
Original Assignee
Shenzhen University
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 Shenzhen University filed Critical Shenzhen University
Priority to CN201910057758.1A priority Critical patent/CN109871270B/zh
Publication of CN109871270A publication Critical patent/CN109871270A/zh
Application granted granted Critical
Publication of CN109871270B publication Critical patent/CN109871270B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种调度方案生成方法及装置,应用于数据处理技术领域。该方法包括:终端获取用户输入的初始操作信息。根据初始操作信息建立有向无环图模型,有向无环图模型的多个任务节点与多个初始操作一一对应,各任务节点之间的数据依赖关系与各初始操作之间的传输数据的数据依赖关系相同,各任务节点的执行时间与对应的初始操作的执行时间相等。将有向无环图模型重复执行不同次数作为不同的周期,并将各周期内的多个任务节点根据执行时间的长短进行排序,依次分配给终端的多个处理单元中完成时间最小的处理单元,得到对应各周期的调度方案,并从多个调度方案中确定初始调度方案。该方法可提高利用率和计算效率。

Description

调度方案生成方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及调度方案生成方法及装置。
背景技术
随着我国计算机技术的快速发展,为了提高计算效率,利用并行处理单元进行数据处理的方法已被广泛应用开来,如多核处理器。其中,深度学习的推理过程具有高度的并行性,不同样本之间的计算过程没有相互依赖,在利用并行处理单元的基础上,通过合理的调度可以起到极大地加速其深度学习的推理过程。
在目前的调度方案生成方法中,通常将多个不同样本的相同任务安排在该任务与其他任务的传输数据的等待时间内,以提高并行处理单元的利用率和计算效率。但是,若该任务的执行时间远远大于其他的任务的执行时间,达到稳定状态前的前序时间较长,这就会存在利用率和计算效率较低的问题。
发明内容
本发明实施例的主要目的在于提供调度方案生成方法及装置,可提高利用率和计算效率。
本发明实施例第一方面提供了一种调度方案生成方法,所述方法包括:终端获取用户输入的初始操作信息,所述初始操作信息包括多个初始操作、各初始操作之间的传输数据和各初始操作的执行时间;根据所述初始操作信息建立有向无环图模型,所述有向无环图模型的多个任务节点与多个所述初始操作一一对应,各所述任务节点之间的数据依赖关系与各所述初始操作之间的传输数据的数据依赖关系相同,各所述任务节点的执行时间与对应的初始操作的执行时间相等;将所述有向无环图模型重复执行不同次数作为不同的周期,并将各所述周期内的多个任务节点根据执行时间的长短进行排序,依次分配给所述终端的多个处理单元中完成时间最小的处理单元,得到对应各所述周期的调度方案,并从多个所述调度方案中确定初始调度方案,所述初始调度方案包括所述初始调度方案内的各任务节点与分配的处理单元的分配关系以及所述初始调度方案内的各任务节点的开始处理时间。
本发明实施例第二方面提供了一种调度方案生成装置,所述装置包括:获取单元,用于终端获取用户输入的初始操作信息,所述初始操作信息包括多个初始操作、各初始操作之间的传输数据和各初始操作的执行时间;建立单元,用于根据所述初始操作信息建立有向无环图模型,所述有向无环图模型的多个任务节点与多个所述初始操作一一对应,各所述任务节点之间的数据依赖关系与各所述初始操作之间的传输数据的数据依赖关系相同,各所述任务节点的执行时间与对应的初始操作的执行时间相等;处理单元,用于将所述有向无环图模型重复执行不同次数作为不同的周期,并将各所述周期内的多个任务节点根据执行时间的长短进行排序,依次分配给所述终端的多个处理单元中完成时间最小的处理单元,得到对应各所述周期的调度方案,并从多个所述调度方案中确定初始调度方案,所述初始调度方案包括所述初始调度方案内的各任务节点与分配的处理单元的分配关系以及所述初始调度方案内的各任务节点的开始处理时间。
从上述实施例可知,通过将所述有向无环图模型重复执行不同次数作为不同的周期,将各周期内的任务节点按照执行时间的长短依次分配给完成时间最小的处理单元,以将执行时间较长的任务节点和执行时间较短的任务节点分开处理,极大地提高了利用率和计算效率。
附图说明
图1是本发明提供的第一实施例中的调度方案生成方法的实现流程示意图;
图2是本发明提供的第二实施例中的调度方案生成方法的实现流程示意图;
图3是本发明提供的第二实施例中的步骤203的细化步骤的流程示意图;
图4是本发明提供的第二实施例中的步骤205的细化步骤的流程示意图;
图5是本发明提供的第二实施例中的步骤402的细化步骤的流程示意图;
图6是本发明提供的第二实施例中的步骤407的细化步骤的流程示意图;
图7是本发明提供的第二实施例中的调度方案生成方法的调整示意图;
图8是本发明提供的第三实施例中的调度方案生成装置的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本发明提供的第一实施例中的调度方案生成方法的实现流程示意图。如图1所示,该方法主要包括以下步骤:
101、终端获取用户输入的初始操作信息,该初始操作信息包括多个初始操作、各初始操作之间的传输数据和各初始操作的执行时间。
具体的,将深度学习应用的推理过程进行划分得到初始操作信息。初始操作信息包括多个初始操作和各初始操作之间的传输数据。各初始操作的执行时间可在输入终端时估算得到,也可将各初始操作执行一次得到执行时间。在实际应用过程中,初始操作信息可为:
4 4;
0 A 1;
1 B 2;
2 C 1;
3 D 2;
0 1 2 a;
0 2 1 b;
1 3 1 c;
2 3 1 d。
其中,第一行表示共有4个初始操作和4个初始操作之间的传输数据。第2-5行表示各初始操作的编号、操作名称及执行时间。例如0 A 1表示操作编号是0,操作名称是A,操作耗时是1。第6-9行表示各初始操作之间的传输数据、数据大小和数据名称,例如0 1 2 a表示,编号为0的初始操作向编号为1的初始操作传输数据,确定编号为0的初始操作向编号为1的初始操作之间的数据依赖关系,数据大小为2,数据名称为a。
102、根据该初始操作信息建立有向无环图模型,该有向无环图模型的多个任务节点与多个该初始操作一一对应,各该任务节点之间的数据依赖关系与各该初始操作之间的传输数据的数据依赖关系相同,各该任务节点的执行时间与对应的初始操作的执行时间相等。
具体的,将深度学习应用的推理过程转换为有向无环图模型,有向无环图模型是指无回路的有向图。将深度学习应用的各初始操作与有向无环图模型的各任务节点一一对应,各初始操作之间的传输数据的数据依赖关系与有向无环图模型的各任务节点之间的数据依赖关系,即有向无环图的有向边相同,以使初始操作的分布情况与有向无环图模型的任务节点的分布情况相同。
在实际应用过程中,有向无环图模型表示为G=(V,E),其中V={T1,...,Tn},n表示任务节点的个数,每个任务节点Ti对应一个执行时间ci,ci等于任务节点Ti对应的初始操作的执行时间。任务节点Ti与任务节点Tj之间的传输数据的传输时间表示为ci,j。步骤101中示例的初始操作信息对应的有向无环图模型包括4个任务节点,4条有向边。
103、将该有向无环图模型重复执行不同次数作为不同的周期,并将各该周期内的多个任务节点根据执行时间的长短进行排序,依次分配给该终端的多个处理单元中完成时间最小的处理单元,得到对应各该周期的调度方案,并从多个该调度方案中确定初始调度方案,该初始调度方案包括该初始调度方案内的各任务节点与分配的处理单元的分配关系以及该初始调度方案内的各任务节点的开始处理时间。
具体的,当深度学习应用执行N次时,即有向无环图模型重复执行N次,通常将多个不同样本的相同任务节点安排在该任务节点与其他任务节点的传输数据的等待时间内,对于终端的处理单元的利用率较低。在本实施例中,将有向无环图模型重复执行不同次数作为不同的周期,将各周期内的多个任务节点进行组合分配,将执行时间长的任务节点优先分配在完成时间小的处理单元上,将执行时间长的任务节点和执行时间短的任务节点分开处理,极大地提高了利用率和计算效率,并降低了深度学习应用执行N次的总体运行时间。
在本发明实施例中,通过将所述有向无环图模型重复执行不同次数作为不同的周期,将各周期内的任务节点按照执行时间的长短依次分配给完成时间最小的处理单元,以将执行时间较长的任务节点和执行时间较短的任务节点分开处理,极大地提高了利用率和计算效率。
请参阅图2,图2是本发明提供的第一实施例中的调度方案生成方法的实现流程示意图。如图2所示,该方法主要包括以下步骤:
201、终端获取用户输入的初始操作信息,该初始操作信息包括多个初始操作、各初始操作之间的传输数据和各初始操作的执行时间。
202、根据该初始操作信息建立有向无环图模型,该有向无环图模型的多个任务节点与多个该初始操作一一对应,各该任务节点之间的数据依赖关系与各该初始操作之间的传输数据的数据依赖关系相同,各该任务节点的执行时间与对应的初始操作的执行时间相等。
203、将该有向无环图模型重复执行不同次数作为不同的周期,并将各该周期内的多个任务节点根据执行时间的长短进行排序,依次分配给该终端的多个处理单元中完成时间最小的处理单元,得到对应各该周期的调度方案,并从多个该调度方案中确定初始调度方案,该初始调度方案包括该初始调度方案内的各任务节点与分配的处理单元的分配关系以及该初始调度方案内的各任务节点的开始处理时间。
进一步地,如图3所示,步骤203包括如下步骤:
301、将该有向无环图模型执行一次作为一个周期,该周期内的全部的任务节点为待分配任务节点,并将该待分配任务节点按照该执行时间的大小顺序进行排序。
具体的,若存在多个待分配任务节点的执行时间相等的情况,则根据有向无环图模型得到各待分配节点的拓扑序,并根据各待分配节点的拓扑序进行排序。若存在多个待分配任务节点的执行时间相等和拓扑序相同的情况,则将各待分配节点进行编号,并根据编号顺序进行排序。
302、将排在首位的待分配任务节点分配给该终端的多个处理单元中完成时间最小的处理单元,并根据该排在首位的待分配任务节点的执行时间更新该完成时间最小的处理单元的完成时间。
具体的,将终端的各处理单元的初始完成时间均设置为0,则各终端的各处理单元的完成时间相同,可将排在首位的待分配任务节点随机分配给其中一个处理单元,或者按照系统编号的顺序进行分配。将排在首位的待分配任务节点分配后,更新分配的处理单元的完成时间。
进一步地,可通过如下公式,根据该排在首位的待分配任务节点的执行时间更新该完成时间最小的处理单元的完成时间:
cpk=cpk+ci
其中,等号左边的cpk表示更新后的完成时间最小的处理单元的完成时间,等号右边的cpk表示更新前的完成时间最小的处理单元的完成时间,ci表示排在首位的待分配任务节点的执行时间。
303、将排在第二位的待分配任务节点作为新的排在首位的待分配任务节点,并执行该将排在首位的待分配任务节点分配给该终端的多个处理单元中完成时间最小的处理单元的步骤,直至将全部的该待分配任务节点分配完毕,得到对应该周期的调度方案。
具体的,该调度方案内的任务节点为有向无环图模型执行一次所包括的任务节点。
304、该调度方案包括该调度方案内的各任务节点的开始处理时间,根据该调度方案内的各任务节点的开始处理时间和该调度方案内的各任务节点的执行时间,确定该调度方案内的各任务节点的结束处理时间的最大值。
具体的,调度方案内的各任务节点的开始处理时间加上执行时间,可得到调度方案内的各任务节点的结束处理时间。从调度方案内的多个任务节点的结束处理时间中,确定结束处理时间的最大值。
305、根据该终端的处理单元的数量、该有向无环图形模型的执行次数和该调度方案内的各任务节点的结束处理时间的最大值,得到该调度方案的利用率,并判断该调度方案的利用率是否大于预设利用率阈值。
具体的,根据调度方案的利用率来判断当前的调度方案是否为初始调度方案。
进一步地,通过如下公式,根据该终端的处理单元的数量、该有向无环图形模型的执行次数和该调度方案内的各任务节点的结束处理时间的最大值,得到该调度方案的利用率:
Figure BDA0001953094080000081
其中,V表示该调度方案中任务节点Ti(i=1,...,n)的集合,Xp表示该有向无环图形模型的执行次数,ci表示任务节点Ti的执行时间,h表示该终端的处理单元的数量,cp表示该调度方案内的各任务节点的结束处理时间的最大值。
306、若该调度方案的利用率大于预设利用率阈值,则该调度方案为初始调度方案。
307、若该调度方案的利用率不大于预设利用率阈值,则增加该有向无环图模型的执行次数,将增加执行次数后的有向无环图模型作为一个新的周期,执行该周期内的全部的任务节点为待分配任务节点,并将该待分配任务节点按照该执行时间的大小顺序进行排序的步骤,直至该有向无环图形模型的执行次数达到该预设次数,则各调度方案中利用率最大的调度方案为该初始调度方案。
204、根据该初始调度方案确定该初始调度方案内的各任务节点的重定时值。
具体的,当深度学习应用执行N次时,即有向无环图模型重复执行N次,将有向无环图模型的N次执行次数划分为多个初始调度方案所对应的周期。任务节点Ti向任务节点Tj传输数据,即有向无环图模型的有向边(Ti,Tj),可能存在当前周期内的任务节点Tj无法利用当前周期的任务节点Ti的情况,则对每个任务节点Ti定义重定时值R(Ti),表示任务节点Tj需要利用前R(Ti)个周期的任务节点Ti的计算结果。
205、根据该初始调度方案内的各任务节点的执行时间和各该任务节点之间的数据依赖关系,调整该初始调度方案内的各任务节点的开始处理时间和重定时值,得到目标调度方案。
具体的,该目标调度方案包括该初始调度方案内的各任务节点与分配的处理单元的分配关系、初始调度方案内的各任务节点调整后的开始处理时间以及初始调度方案内的各任务节点调整后的重定时值。
进一步地,如图4所示,步骤205包括如下步骤:
401、将该初始调度方案内的任务节点标记为未确定位置状态。
402、根据该初始调度方案内未确定位置状态的各任务节点的执行时间,确定一个或多个关键节点。
进一步地,如图5所示,步骤402可包括如下步骤:
4021、根据该初始调度方案内未确定位置状态的执行时间最长的任务节点的执行时间,确定关键节点执行时间阈值,该关键节点执行时间阈值为该执行时间最长的任务节点的执行时间的预设百分比。
4022、从该初始调度方案内未确定位置状态的多个任务节点中选取一个或多个关键节点,该关键节点的执行时间不小于该关键节点执行时间阈值。
具体的,预设百分比可设置为80%。
403、将全部的该关键节点加入预设的待遍历节点队列,该待遍历节点队列的初始状态为空队列,该待遍历节点队列中的该关键节点按照执行时间的长短进行排列。
404、从该待遍历节点队列中取出位于队首的关键节点,将该位于队首的关键节点标记为已确定位置状态。
405、根据该位于队首的关键节点以及该任务节点之间的数据依赖关系,在该调度方案的任务节点中确定该位于队首的关键节点的一个或多个前继节点。
具体的,在有向无环图模型的有向边(Ti,Tj)中,任务节点Tj的前继节点为任务节点Ti。也就是说,任务节点Tj的前继节点为向其传输数据的任务节点Ti
406、将全部的该前继节点按照执行时间的大小进行排序。
407、根据该位于队首的关键节点依次将各该前继节点的开始处理时间和重定时值进行调整,并将调整后的前继节点标记为该已确定位置状态,加入该待遍历节点队列。
进一步地,如图6所示,步骤407主要包括以下步骤:
501、根据该初始调度方案内剩下的未确定位置状态的任务节点的开始处理时间和执行时间,以及该调度方案内的各任务节点与分配的处理单元的分配关系,确定各该处理单元上的可活动处理时间段。
502、判断该位于队首的前继节点的位置状态为该已确定位置状态或该未确定位置状态。
503、若该位于队首的前继节点的位置状态为该未确定位置状态,则判断该位于队首的前继节点的结束处理时间是否早于该位于队首的关键节点的开始处理时间。
504、若该位于队首的前继节点的结束处理时间早于该位于队首的关键节点的开始处理时间,则根据该位于队首的前继节点的结束处理时间和位于该位于队首的关键节点的开始处理时间,得到该位于队首的前继节点和该位于队首的关键节点之间的间隔时间。
505、根据各初始操作之间的传输数据确定该位于队首的前继节点和该位于队首的关键节点之间的数据传输时间,并判断该间隔时间是否小于该数据传输时间。
506、若该间隔时间不小于该数据传输时间,则将该位于队首的前继节点的开始处理时间延后,使该间隔时间等于该数据传输时间,并更新该位于队首的前继节点的重定时值,将该位于队首的前继节点标记为该已确定位置状态,加入该待遍历节点队列。
具体的,如图7(a)所示,PEk表示处理单元,[li,ri]表示任务节点Ti的可活动处理时间段,任务节点Ti此时表示位于队首的前继节点,任务节点Tj此时表示位于队首的关键节点,Disi,j表示间隔时间,ci,j表示数据传输时间。
进一步地,通过如下公式,更新该位于队首的前继节点的重定时值:
Figure BDA0001953094080000111
其中,R(Ti)表示任务节点Ti的重定时值,sj表示任务节点Ti的开始处理时间,di表示任务节点Ti的结束处理时间,cp表示该初始调度方案内的各任务节点的结束处理时间的最大值,
Figure BDA0001953094080000112
表示对x下取整。
507、若该间隔时间小于该数据传输时间,则将该位于队首的前继节点的开始处理时间延后,使该位于队首的前继节点的结束处理时间为该可活动处理时间段的最晚时间,并更新该位于队首的前继节点的重定时值,将该位于队首的前继节点标记为该已确定位置状态,加入该待遍历节点队列。
具体的,如图7(b)所示,图中符号与图7(a)中符号意义相同。
另外,若步骤503中判断该位于队首的前继节点的结束处理时间不早于该位于队首的关键节点的开始处理时间,则执行步骤507,如图7(c)所示,图中符号与图7(a)中符号意义相同。
508、若该位于队首的前继节点的位置状态为该已确定位置状态,则根据该位于队首的关键节点的开始处理时间和该位于队首的前继节点的结束处理时间,更新该位于队首的前继节点的重定时值,并加入该待遍历节点队列。
509、根据该初始调度方案内剩下的未确定位置状态的任务节点的开始处理时间和执行时间,以及该调度方案内的各任务节点与分配的处理单元的分配关系,更新各该处理单元上的可活动处理时间段,并将位于第二位的前继节点作为新的位于队首的前继节点,执行该判断该位于队首的前继节点的位置状态为该确已定位置状态或该未确定位置状态的步骤,直至将全部的前继节点处理完毕。
408、根据该任务节点之间的数据依赖关系,依次将被标记为该已确定位置状态的前继节点从该待遍历节点队列取出,确定取出后的前继节点的一个或多个前继节点,并执行该将全部的该前继节点按照执行时间的大小进行排序的步骤,直至该待遍历节点队列中不存在前继节点。
具体的,待遍历节点队列中不存在前继节点,可认为这一轮基于位于队首的关键节点的扩散结束。
409、将位于第二位的关键节点作为新的位于队首的关键节点,执行该从该待遍历节点队列中取出位于队首的关键节点的步骤,直至该待遍历节点队列为空队列。
410、根据该初始调度方案内剩下的未确定位置状态的任务节点,执行该根据该初始调度方案内未确定位置状态的各任务节点的执行时间,确定一个或多个关键节点的步骤,直至该初始调度方案内不存在未确定位置状态的任务节点,则该初始调度方案内的各任务节点的开始处理时间和重定时值调整完毕,得到目标调度方案。
在本发明实施例中,通过将所述有向无环图模型重复执行不同次数作为不同的周期,将各周期内的任务节点按照执行时间的长短依次分配给完成时间最小的处理单元,以将执行时间较长的任务节点和执行时间较短的任务节点分开处理,极大地提高了利用率和计算效率。另外,在初始调度方案的多个任务节点中提取关键节点,并根据关键节点调整其前继节点的开始处理时间,进一步降低了前序时间和总体运行时间。
请参阅图8,图8是本发明提供的第三实施例中的调度方案生成装置的结构示意图。如图8所示,该装置主要包括:
601、获取单元,用于终端获取用户输入的初始操作信息,初始操作信息包括多个初始操作、各初始操作之间的传输数据和各初始操作的执行时间。
602、建立单元,用于根据初始操作信息建立有向无环图模型,有向无环图模型的多个任务节点与多个初始操作一一对应,各任务节点之间的数据依赖关系与各初始操作之间的传输数据的数据依赖关系相同,各任务节点的执行时间与对应的初始操作的执行时间相等。
603、处理单元,用于将有向无环图模型重复执行不同次数作为不同的周期,并将各周期内的多个任务节点根据执行时间的长短进行排序,依次分配给终端的多个处理单元中完成时间最小的处理单元,得到对应各周期的调度方案,并从多个调度方案中确定初始调度方案,初始调度方案包括初始调度方案内的各任务节点与分配的处理单元的分配关系以及初始调度方案内的各任务节点的开始处理时间。
在本发明实施例中,通过将所述有向无环图模型重复执行不同次数作为不同的周期,将各周期内的任务节点按照执行时间的长短依次分配给完成时间最小的处理单元,以将执行时间较长的任务节点和执行时间较短的任务节点分开处理,极大地提高了利用率和计算效率。另外,在初始调度方案的多个任务节点中提取关键节点,并根据关键节点调整其前继节点的开始处理时间,进一步降低了前序时间和总体运行时间。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上为本发明所提供的调度方案生成方法及装置的描述,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均有改变之处,综上,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种调度方案生成方法,其特征在于,所述方法包括:
终端获取用户输入的初始操作信息,所述初始操作信息包括多个初始操作、各初始操作之间的传输数据和各初始操作的执行时间;
根据所述初始操作信息建立有向无环图模型,所述有向无环图模型的多个任务节点与多个所述初始操作一一对应,各所述任务节点之间的数据依赖关系与各所述初始操作之间的传输数据的数据依赖关系相同,各所述任务节点的执行时间与对应的初始操作的执行时间相等;
将所述有向无环图模型重复执行不同次数作为不同的周期,并将各所述周期内的多个任务节点根据执行时间的长短进行排序,依次分配给所述终端的多个处理单元中完成时间最小的处理单元,得到对应各所述周期的调度方案,并从多个所述调度方案中确定初始调度方案,所述初始调度方案包括所述初始调度方案内的各任务节点与分配的处理单元的分配关系以及所述初始调度方案内的各任务节点的开始处理时间,其中,
所述将所述有向无环图模型重复执行不同次数作为不同的周期,并将各所述周期内的多个任务节点根据执行时间的长短进行排序,依次分配给所述终端的多个处理单元中完成时间最小的处理单元,得到对应各所述周期的调度方案,并从多个所述调度方案中确定初始调度方案包括:
将所述有向无环图模型执行一次作为一个周期,所述周期内的全部的任务节点为待分配任务节点,并将所述待分配任务节点按照所述执行时间的大小顺序进行排序;
将排在首位的待分配任务节点分配给所述终端的多个处理单元中完成时间最小的处理单元,并根据所述排在首位的待分配任务节点的执行时间更新所述完成时间最小的处理单元的完成时间;
将排在第二位的待分配任务节点作为新的排在首位的待分配任务节点,并执行所述将排在首位的待分配任务节点分配给所述终端的多个处理单元中完成时间最小的处理单元的步骤,直至将全部的所述待分配任务节点分配完毕,得到对应所述周期的调度方案;
所述调度方案包括所述调度方案内的各任务节点的开始处理时间,根据所述调度方案内的各任务节点的开始处理时间和所述调度方案内的各任务节点的执行时间,确定所述调度方案内的各任务节点的结束处理时间的最大值;
根据所述终端的处理单元的数量、所述有向无环图形模型的执行次数和所述调度方案内的各任务节点的结束处理时间的最大值,得到所述调度方案的利用率,并判断所述调度方案的利用率是否大于预设利用率阈值;
若所述调度方案的利用率大于预设利用率阈值,则所述调度方案为初始调度方案;
若所述调度方案的利用率不大于预设利用率阈值,则增加所述有向无环图模型的执行次数,将增加执行次数后的有向无环图模型作为一个新的周期,执行所述周期内的全部的任务节点为待分配任务节点,并将所述待分配任务节点按照所述执行时间的大小顺序进行排序的步骤,直至所述有向无环图形模型的执行次数达到该预设次数,则各调度方案中利用率最大的调度方案为所述初始调度方案。
2.如权利要求1所述的调度方案生成方法,其特征在于,所述方法还包括:
根据所述初始调度方案确定所述初始调度方案内的各任务节点的重定时值;
根据所述初始调度方案内的各任务节点的执行时间和各所述任务节点之间的数据依赖关系,调整所述初始调度方案内的各任务节点的开始处理时间和重定时值,得到目标调度方案,所述目标调度方案包括所述初始调度方案内的各任务节点与分配的处理单元的分配关系、初始调度方案内的各任务节点调整后的开始处理时间以及初始调度方案内的各任务节点调整后的重定时值。
3.如权利要求1所述的调度方案生成方法,其特征在于,通过如下公式,根据所述终端的处理单元的数量、所述有向无环图形模型的执行次数和所述调度方案内的各任务节点的结束处理时间的最大值,得到所述调度方案的利用率:
Figure FDA0002859838160000031
其中,V表示所述调度方案中任务节点Ti(i=1,...,n)的集合,Xp表示所述有向无环图形模型的执行次数,ci表示任务节点Ti的执行时间,h表示所述终端的处理单元的数量,cp表示所述调度方案内的各任务节点的结束处理时间的最大值。
4.如权利要求1所述的调度方案生成方法,其特征在于,通过如下公式,根据所述排在首位的待分配任务节点的执行时间更新所述完成时间最小的处理单元的完成时间:
cpk=cpk+ci
其中,等号左边的cpk表示更新后的完成时间最小的处理单元的完成时间,等号右边的cpk表示更新前的完成时间最小的处理单元的完成时间,ci表示所述排在首位的待分配任务节点的执行时间。
5.如权利要求1所述的调度方案生成方法,其特征在于,所述根据所述初始调度方案内的各任务节点的执行时间和各所述任务节点之间的数据依赖关系,调整所述初始调度方案内的各任务节点的开始处理时间和重定时值,得到目标调度方案包括:
将所述初始调度方案内的任务节点标记为未确定位置状态;
根据所述初始调度方案内未确定位置状态的各任务节点的执行时间,确定一个或多个关键节点;
将全部的所述关键节点加入预设的待遍历节点队列,所述待遍历节点队列的初始状态为空队列,所述待遍历节点队列中的所述关键节点按照执行时间的长短进行排列;
从所述待遍历节点队列中取出位于队首的关键节点,将所述位于队首的关键节点标记为已确定位置状态;
根据所述位于队首的关键节点以及所述任务节点之间的数据依赖关系,在所述调度方案的任务节点中确定所述位于队首的关键节点的一个或多个前继节点;
将全部的所述前继节点按照执行时间的大小进行排序,根据所述位于队首的关键节点依次将各所述前继节点的开始处理时间和重定时值进行调整,并将调整后的前继节点标记为所述已确定位置状态,加入所述待遍历节点队列;
根据所述任务节点之间的数据依赖关系,依次将各被标记为所述已确定位置状态的前继节点从所述待遍历节点队列取出,确定取出后的前继节点的一个或多个前继节点,并执行所述将全部的所述前继节点按照执行时间的大小进行排序的步骤,直至所述待遍历节点队列中不存在前继节点;
将位于第二位的关键节点作为新的位于队首的关键节点,执行所述从所述待遍历节点队列中取出位于队首的关键节点的步骤,直至所述待遍历节点队列为空队列;
根据所述初始调度方案内剩下的未确定位置状态的任务节点,执行所述根据所述初始调度方案内未确定位置状态的各任务节点的执行时间,确定一个或多个关键节点的步骤,直至所述初始调度方案内不存在未确定位置状态的任务节点,则所述初始调度方案内的各任务节点的开始处理时间和重定时值调整完毕,得到目标调度方案。
6.如权利要求5所述的调度方案生成方法,其特征在于,所述根据所述初始调度方案内未确定位置状态的各任务节点的执行时间,确定一个或多个关键节点包括:
根据所述初始调度方案内未确定位置状态的执行时间最长的任务节点的执行时间,确定关键节点执行时间阈值,所述关键节点执行时间阈值为所述执行时间最长的任务节点的执行时间的预设百分比;
从所述初始调度方案内未确定位置状态的多个任务节点中选取一个或多个关键节点,所述关键节点的执行时间不小于所述关键节点执行时间阈值。
7.如权利要求5所述的调度方案生成方法,其特征在于,所述根据所述位于队首的关键节点依次将所述前继节点的开始处理时间和重定时值进行调整,并将调整后的前继节点标记为所述已确定位置状态,加入所述待遍历节点队列包括:
根据所述初始调度方案内剩下的未确定位置状态的任务节点的开始处理时间和执行时间,以及所述调度方案内的各任务节点与分配的处理单元的分配关系,确定各所述处理单元上的可活动处理时间段;
判断所述位于队首的前继节点的位置状态为所述已确定位置状态或所述未确定位置状态;
若所述位于队首的前继节点的位置状态为所述未确定位置状态,则判断所述位于队首的前继节点的结束处理时间是否早于所述位于队首的关键节点的开始处理时间;
若所述位于队首的前继节点的结束处理时间早于所述位于队首的关键节点的开始处理时间,则根据所述位于队首的前继节点的结束处理时间和位于所述位于队首的关键节点的开始处理时间,得到所述位于队首的前继节点和所述位于队首的关键节点之间的间隔时间;
根据各初始操作之间的传输数据确定所述位于队首的前继节点和所述位于队首的关键节点之间的数据传输时间,并判断所述间隔时间是否小于所述数据传输时间;
若所述间隔时间不小于所述数据传输时间,则将所述位于队首的前继节点的开始处理时间延后,使所述间隔时间等于所述数据传输时间,并更新所述位于队首的前继节点的重定时值,将所述位于队首的前继节点标记为所述已确定位置状态,加入所述待遍历节点队列;
若所述间隔时间小于所述数据传输时间,则将所述位于队首的前继节点的开始处理时间延后,使所述位于队首的前继节点的结束处理时间为所述可活动处理时间段的最晚时间,并更新所述位于队首的前继节点的重定时值,将所述位于队首的前继节点标记为所述已确定位置状态,加入所述待遍历节点队列;
若所述位于队首的前继节点的结束处理时间不早于所述位于队首的关键节点的开始处理时间,则执行所述将所述位于队首的前继节点的开始处理时间延后,使所述位于队首的前继节点的结束处理时间为所述可活动处理时间段的最晚时间,并更新所述位于队首的前继节点的重定时值,将所述位于队首的前继节点标记为所述已确定位置状态,加入所述待遍历节点队列的步骤;
若所述位于队首的前继节点的位置状态为所述已确定位置状态,则根据所述位于队首的关键节点的开始处理时间和所述位于队首的前继节点的结束处理时间,更新所述位于队首的前继节点的重定时值,并加入所述待遍历节点队列;
根据所述初始调度方案内剩下的未确定位置状态的任务节点的开始处理时间和执行时间,以及所述调度方案内的各任务节点与分配的处理单元的分配关系,更新各所述处理单元上的可活动处理时间段,并将位于第二位的前继节点作为新的位于队首的前继节点,执行所述判断所述位于队首的前继节点的位置状态为所述已确定位置状态或所述未确定位置状态的步骤,直至将全部的前继节点处理完毕。
8.如权利要求7所述的调度方案生成方法,其特征在于,通过如下公式,更新所述位于队首的前继节点的重定时值:
Figure FDA0002859838160000061
其中,R(Ti)表示任务节点Ti的重定时值,sj表示任务节点Ti的开始处理时间,di表示任务节点Ti的结束处理时间,cp表示所述初始调度方案内的各任务节点的结束处理时间的最大值,
Figure FDA0002859838160000071
表示对x下取整。
9.一种调度方案生成装置,其特征在于,所述装置包括:
获取单元,用于终端获取用户输入的初始操作信息,所述初始操作信息包括多个初始操作、各初始操作之间的传输数据和各初始操作的执行时间;
建立单元,用于根据所述初始操作信息建立有向无环图模型,所述有向无环图模型的多个任务节点与多个所述初始操作一一对应,各所述任务节点之间的数据依赖关系与各所述初始操作之间的传输数据的数据依赖关系相同,各所述任务节点的执行时间与对应的初始操作的执行时间相等;
处理单元,用于将所述有向无环图模型重复执行不同次数作为不同的周期,并将各所述周期内的多个任务节点根据执行时间的长短进行排序,依次分配给所述终端的多个处理单元中完成时间最小的处理单元,得到对应各所述周期的调度方案,并从多个所述调度方案中确定初始调度方案,所述初始调度方案包括所述初始调度方案内的各任务节点与分配的处理单元的分配关系以及所述初始调度方案内的各任务节点的开始处理时间,其中,
所述将所述有向无环图模型重复执行不同次数作为不同的周期,并将各所述周期内的多个任务节点根据执行时间的长短进行排序,依次分配给所述终端的多个处理单元中完成时间最小的处理单元,得到对应各所述周期的调度方案,并从多个所述调度方案中确定初始调度方案包括:
将所述有向无环图模型执行一次作为一个周期,所述周期内的全部的任务节点为待分配任务节点,并将所述待分配任务节点按照所述执行时间的大小顺序进行排序;
将排在首位的待分配任务节点分配给所述终端的多个处理单元中完成时间最小的处理单元,并根据所述排在首位的待分配任务节点的执行时间更新所述完成时间最小的处理单元的完成时间;
将排在第二位的待分配任务节点作为新的排在首位的待分配任务节点,并执行所述将排在首位的待分配任务节点分配给所述终端的多个处理单元中完成时间最小的处理单元的步骤,直至将全部的所述待分配任务节点分配完毕,得到对应所述周期的调度方案;
所述调度方案包括所述调度方案内的各任务节点的开始处理时间,根据所述调度方案内的各任务节点的开始处理时间和所述调度方案内的各任务节点的执行时间,确定所述调度方案内的各任务节点的结束处理时间的最大值;
根据所述终端的处理单元的数量、所述有向无环图形模型的执行次数和所述调度方案内的各任务节点的结束处理时间的最大值,得到所述调度方案的利用率,并判断所述调度方案的利用率是否大于预设利用率阈值;
若所述调度方案的利用率大于预设利用率阈值,则所述调度方案为初始调度方案;
若所述调度方案的利用率不大于预设利用率阈值,则增加所述有向无环图模型的执行次数,将增加执行次数后的有向无环图模型作为一个新的周期,执行所述周期内的全部的任务节点为待分配任务节点,并将所述待分配任务节点按照所述执行时间的大小顺序进行排序的步骤,直至所述有向无环图形模型的执行次数达到该预设次数,则各调度方案中利用率最大的调度方案为所述初始调度方案。
CN201910057758.1A 2019-01-22 2019-01-22 调度方案生成方法及装置 Active CN109871270B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910057758.1A CN109871270B (zh) 2019-01-22 2019-01-22 调度方案生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910057758.1A CN109871270B (zh) 2019-01-22 2019-01-22 调度方案生成方法及装置

Publications (2)

Publication Number Publication Date
CN109871270A CN109871270A (zh) 2019-06-11
CN109871270B true CN109871270B (zh) 2021-04-02

Family

ID=66917973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910057758.1A Active CN109871270B (zh) 2019-01-22 2019-01-22 调度方案生成方法及装置

Country Status (1)

Country Link
CN (1) CN109871270B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110362315B (zh) * 2019-07-17 2023-05-12 中国工商银行股份有限公司 基于dag的软件系统调度方法及装置
CN111488211A (zh) * 2020-04-09 2020-08-04 北京嘀嘀无限科技发展有限公司 基于深度学习框架的任务处理方法、装置、设备及介质
CN113407322B (zh) * 2021-06-21 2022-05-06 平安国际智慧城市科技股份有限公司 多终端的任务分配方法、装置、电子设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102364447A (zh) * 2011-10-28 2012-02-29 北京航空航天大学 一种优化多任务间通信能耗的作业调度方法
CN102508708A (zh) * 2011-11-30 2012-06-20 湖南大学 基于改进遗传算法的异构多核节能任务调度方法
CN102799474A (zh) * 2012-06-21 2012-11-28 浙江工商大学 一种基于可靠性驱动的云资源容错调度方法
US9003425B2 (en) * 2010-03-18 2015-04-07 International Business Machines Corporation Optimizing workflow engines
CN104915260A (zh) * 2015-06-19 2015-09-16 北京搜狐新媒体信息技术有限公司 一种Hadoop集群管理任务的分发方法和系统
CN105900064A (zh) * 2014-11-19 2016-08-24 华为技术有限公司 调度数据流任务的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003425B2 (en) * 2010-03-18 2015-04-07 International Business Machines Corporation Optimizing workflow engines
CN102364447A (zh) * 2011-10-28 2012-02-29 北京航空航天大学 一种优化多任务间通信能耗的作业调度方法
CN102508708A (zh) * 2011-11-30 2012-06-20 湖南大学 基于改进遗传算法的异构多核节能任务调度方法
CN102799474A (zh) * 2012-06-21 2012-11-28 浙江工商大学 一种基于可靠性驱动的云资源容错调度方法
CN105900064A (zh) * 2014-11-19 2016-08-24 华为技术有限公司 调度数据流任务的方法和装置
CN104915260A (zh) * 2015-06-19 2015-09-16 北京搜狐新媒体信息技术有限公司 一种Hadoop集群管理任务的分发方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
异构多核处理器的任务调度策略研究;陈文艳;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140715(第07期);论文第3.2-3.3节 *

Also Published As

Publication number Publication date
CN109871270A (zh) 2019-06-11

Similar Documents

Publication Publication Date Title
CN111381950B (zh) 一种面向边缘计算环境基于多副本的任务调度方法和系统
CN109871270B (zh) 调度方案生成方法及装置
Dogan et al. Matching and scheduling algorithms for minimizing execution time and failure probability of applications in heterogeneous computing
CN104765640B (zh) 一种智能服务调度方法
CN110569252B (zh) 一种数据处理系统及方法
CN111079921A (zh) 一种基于异构分布式系统的高效神经网络训练调度方法
US20200184366A1 (en) Scheduling task graph operations
CN110187965B (zh) 神经网络的运行优化及数据处理方法、设备及存储介质
CN107341041B (zh) 基于优先队列的云任务多维约束回填调度方法
CN108108233B (zh) 任务多副本执行的集群作业调度方法及系统
CN114237869B (zh) 基于强化学习的Ray双层调度方法、装置和电子设备
CN109032630B (zh) 一种参数服务器中全局参数的更新方法
CN105867998A (zh) 一种虚拟机集群部署算法
CN110780985A (zh) 一种有限时间的并行任务调度方法与装置
CN106326005B (zh) 一种迭代型MapReduce作业的参数自动调优方法
Bhatnagar et al. Stochastic algorithms for discrete parameter simulation optimization
CN111061565A (zh) 一种Spark环境下的两段式流水线任务调度方法及系统
CN106855825B (zh) 一种任务处理方法及其装置
CN111930485B (zh) 一种基于性能表现的作业调度方法
CN106802825A (zh) 一种基于实时系统的动态任务调度方法与系统
CN111612155B (zh) 一种分布式机器学习系统及适用于其的通信调度方法
CN109426554B (zh) 一种服务器的定时实现方法及装置
CN115098240B (zh) 一种多处理器应用调度方法和系统及存储介质
CN109189581B (zh) 一种作业调度方法和装置
CN111475297A (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