CN113553103A - 基于cpu+gpu异构处理平台的多核并行调度方法 - Google Patents

基于cpu+gpu异构处理平台的多核并行调度方法 Download PDF

Info

Publication number
CN113553103A
CN113553103A CN202110622040.XA CN202110622040A CN113553103A CN 113553103 A CN113553103 A CN 113553103A CN 202110622040 A CN202110622040 A CN 202110622040A CN 113553103 A CN113553103 A CN 113553103A
Authority
CN
China
Prior art keywords
task
cpu
gpu
processor
scheduling
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.)
Granted
Application number
CN202110622040.XA
Other languages
English (en)
Other versions
CN113553103B (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.)
Information Engineering University of PLA Strategic Support Force
Original Assignee
Information Engineering University of PLA Strategic Support Force
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 Information Engineering University of PLA Strategic Support Force filed Critical Information Engineering University of PLA Strategic Support Force
Priority to CN202110622040.XA priority Critical patent/CN113553103B/zh
Publication of CN113553103A publication Critical patent/CN113553103A/zh
Application granted granted Critical
Publication of CN113553103B publication Critical patent/CN113553103B/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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

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

本发明涉及任务调度技术领域,公开一种基于CPU+GPU异构处理平台的多核并行调度方法,包括以下步骤:步骤1,构建应用的DAG图,所述DAG图包括多个任务节点;步骤2,进行负载部署决策,确定GPU和CPU两组任务调度队列;步骤3,按照最长路径列表中的排序依次调度任务,确定任务优先级;步骤4,在处理器选择阶段,在两组调度队列范围中,按照所选择的处理器可使任务的最早完成时间与其后续任务到出口任务的最长路径之和最小的原则分配GPU和CPU;步骤5,通过分配的CPU或GPU对任务进行调度。本发明提高了CPU和GPU的利用率以及任务调度效率。

Description

基于CPU+GPU异构处理平台的多核并行调度方法
技术领域
本发明属于任务调度技术领域,尤其涉及一种基于CPU+GPU异构处理平台 的多核并行调度方法。
背景技术
随着CPU的峰值性能随核数不断提高,以及GPU因其较高的性价比和能效 比被广泛应用于科学计算中,使得多核CPU+GPU计算平台得到了广泛应用。 CPU+GPU异构处理平台就是这样一种多核异构计算平台。
目前,常用的调度算法主要有聚类调度算法、任务复制调度算法以及列表调 度算法。相比其他类型的调度算法而言,列表调度算法由于具有较小的算法复杂 度和较高的鲁棒性而被广泛的使用在大量的异构平台中。典型的表调度算法有 HEFT(HeterogeneousEarliest Finish Time)(ALEBRAHIM S,AHMAD I.Task scheduling for heterogeneouscomputing systems[J].Journal of supercomputing,2017, 73(6):2313-2338.)、CPOP(Critical Path On a Processor)(TOPCUOGLU H,HARIRI S,WU M Y.Performance-effective and low-complexity task scheduling for heterogeneous computing[J].IEEE transactions on parallel&distributed systems, 2002,13(3):260-274.)等,其中HEFT算法因其具有效率较高等特点,而成为一 种经典的对比算法。
然而,在CPU+GPU异构处理平台上,当节点任务中部分计算量很小或者有 分支结构时,由于这些算法设计之初并没有区分处理器类型,因此常会把计算量 小或者有分支结构的任务给GPU,致使GPU无法发挥出强大的并行计算能力, 往往计算的时间还不如传输时间成本多,因此总的计算速度甚至不如CPU快, 也降低了GPU的利用率,算法的作用就大打折扣了。
发明内容
本发明针对现有的CPU+GPU异构处理平台上,由于未区分处理器类型,常 会把计算量小或者有分支结构的任务给GPU,致使GPU无法发挥出强大的并行 计算能力,降低了GPU的利用率的问题,提出一种基于CPU+GPU异构处理平 台的多核并行调度方法。
为了实现上述目的,本发明采用以下技术方案:
一种基于CPU+GPU异构处理平台的多核并行调度方法,包括:
步骤1,构建应用的DAG图,所述DAG图包括多个任务节点;
步骤2,基于构建的DAG图进行负载部署决策,计算GPU与CPU在任务 调度队列中的“交汇点”P点的位置,队首到P点之间的任务预分配给GPU类型 处理器,P点到队尾之间的任务预分配给CPU类型处理器,得到GPU和CPU 两组任务调度队列;
步骤3,按照最长路径列表中的排序依次调度任务,确定任务优先级;
步骤4,在处理器选择阶段,在GPU和CPU两组任务调度队列范围中,按 照所选择的处理器可使任务的最早完成时间与其后续任务到出口任务的最长路 径之和最小的原则分配GPU和CPU;
步骤5,通过分配的CPU或GPU对任务进行调度。
进一步地,所述DAG图表示为:DAG=[V,E,C,TC,P,PPC,PTS],其中V={vi} 表示任务节点集合;E={eij}表示两节点的有向边集合,eij表示数据流向是从节 点i流向节点j;C={Ci}表示节点的计算量集合;TC={TCi}是节点的数据传输量 集合,其中的元素值为节点vi到后续节点的数据传输总量;P={pi}表示处理器集 合;PPC={PPCi}表示处理器的属性集合,体现了其执行处理能力;PTS={PTSij}表 示处理器间的传输速率集合。
进一步地,所述步骤2包括:
步骤2.1,负载判断决策:针对可预测的负载进行分析判断,计算出各个子 任务的计算量,并保存相应结果到数组里;
步骤2.2,负载分支预测:对于有负载分支的任务,在步骤2.1进行的同时 进行分支的预测,并保存结果;
步骤2.3,分配子任务调度队列:根据计算结果,将数组内元素按照从大到 小的顺序进行排列,并将子任务分配到调度队列中;将分支预测的结果按照相同 计算类型进行合并,整体划到队列中;
步骤2.4,处理器迭代任务预处理:将相同类型的处理器分别预部署到任务 调度队列上,在该队列中队首的迭代任务计算量大,预分配给高速的GPU;队 尾的迭代任务计算量小,预分配给低速的CPU;根据CPU、GPU的处理能力以 及任务计算量数据,预先计算出GPU与CPU在调度队列中的“交汇点”P的位置, 队首到P点之间的任务预分配给GPU类型处理器,P点到队尾之间的任务预分 配给CPU类型处理器,得到GPU和CPU两组调度队列。
进一步地,按照如下方式计算出GPU与CPU在调度队列中的“交汇点”P的 位置:
Figure BDA0003099959490000031
Figure BDA0003099959490000032
CAC(vp)≤CAC(vG)<CAC(vp+1) (3)
其中,CAC(vk)是在数组队列k个任务的累计计算量,CAC(vG)是GPU获得的 累计计算量,Tnum是CPU线程总数,CAC(vn)是所有n个任务的计算量总和,CS 是GPU相对一个CPU内核的计算加速比。
进一步地,所述步骤3包括:
按照如下公式确定任务优先级:
Figure BDA0003099959490000033
RT(vk,pl)=Ck/PPCl (5)
DTT(vik)=TCi/PTSik (6)
Figure BDA0003099959490000034
其中,LPL(vi,pj)表示任务节点vi选择处理器pj时,vi的直接后续节点到出 口节点的最长路径的最大值;foll(vi)表示任务节点vi所有的直接后续节点的集合; RT(vk,pl)表示节点vk在处理器pl上的运行时间;DTT(vik)表示节点vi到vk的数据 传输时间;Ck表示任务节点vk的计算量;PPCl表示处理器pl的属性;TCi表示节 点vi到后续节点的数据传输总量;PTSik表示处理器pi至pk间的传输速率;Rank(vi) 表示任务节点vi的优先级。
进一步地,所述步骤4包括:
按照式(9)计算当前任务在每个处理器上的最早完成时间:
ECT(vi,pj)=max{EAT(pj),DRT(vi)}+RT(vi,pj) (9)
按照式(10)计算当前任务和其直接后续任务到出口任务的完成时间:
ECTLPL(vi,pj)=ECT(vi,pj)+LPL(vi,pj) (10)
其中,ECT(vi,pj)表示当前任务在每个处理器上的最早完成时间;EAT(pj)表 示处理器pj最早可用时间;DRT(vi)表示任务节点vi的数据就绪时间;RT(vi,pj)表 示任务节点vi在处理器pj上的运行时间。
与现有技术相比,本发明具有的有益效果:
本发明依托负载部署决策方案,预先将不适合在GPU上执行的任务划分给 CPU,避免了让GPU执行计算量小的任务,也让CPU参与到了并行计算中。并 基于最长路径列表计算优先级,使得最耗时路径上的任务被优先调度;同时将每 个任务分配到使其最早完成时间与其后续任务到出口任务的最长路径之和最小 的处理器上。通过仿真实验可以看出,相比于HEFT算法,MCPS算法不仅有效 的降低了处理器之间的通信开销,有效的保障硬件资源的负载均衡,还能够真正 发挥平台上CPU和GPU的计算效能,有效提高了平台上多处理器的利用率,规 范了任务的执行顺序,使得整体调度时间更短,负载更加均衡,是解决CPU+GPU 异构处理平台上任务调度问题的一种可行方法。
附图说明
图1为本发明实施例一种基于CPU+GPU异构处理平台的多核并行调度方法 的基本流程图;
图2为本发明又一实施例的一种基于CPU+GPU异构处理平台的多核并行调 度方法的基本流程图;
图3为典型DAG图;
图4为HEFT算法和本发明方法关于典型DAG图的调度流程;
图5为HEFT算法和本发明方法关于随机DAG图的ISLR指数对比图;
图6为本发明方法关于随机DAG图的VATP指数对比图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
实施例1
如图1所示,一种基于CPU+GPU异构处理平台的多核并行调度方法,包括:
步骤S101,构建应用的DAG图,所述DAG图包括多个任务节点;
步骤S102,基于构建的DAG图进行负载部署决策,计算GPU与CPU在任 务调度队列中的“交汇点”P点的位置,队首到P点之间的任务预分配给GPU类 型处理器,P点到队尾之间的任务预分配给CPU类型处理器,得到GPU和CPU 两组任务调度队列;
步骤S103,按照最长路径列表中的排序依次调度任务,确定任务优先级;
步骤S104,在处理器选择阶段,在GPU和CPU两组任务调度队列范围中, 按照所选择的处理器可使任务的最早完成时间与其后续任务到出口任务的最长 路径之和最小的原则分配GPU和CPU;
步骤S105,通过分配的CPU或GPU对任务进行调度。
进一步地,所述DAG图表示为:DAG=[V,E,C,TC,P,PPC,PTS],其中V={vi} 表示任务节点集合;E={eij}表示两节点的有向边集合,eij表示数据流向是从节 点i流向节点j;C={Ci}表示节点的计算量集合;TC={TCi}是节点的数据传输量 集合,其中的元素值为节点vi到后续节点的数据传输总量;P={pi}表示处理器集 合;PPC={PPCi}表示处理器的属性集合,体现了其执行处理能力;PTS={PTSij}表 示处理器间的传输速率集合。
进一步地,所述步骤S102包括:
步骤S102.1,负载判断决策:针对可预测的负载进行分析判断,计算出各个 子任务的计算量,并保存相应结果到数组里;
步骤S102.2,负载分支预测:对于有负载分支的任务,在步骤S102.1进行 的同时进行分支的预测,并保存结果;
步骤S102.3,分配子任务调度队列:根据计算结果,将数组内元素按照从大 到小的顺序进行排列,并将子任务分配到调度队列中;将分支预测的结果按照相 同计算类型进行合并,整体划到队列中;
步骤S102.4,处理器迭代任务预处理:将相同类型的处理器分别预部署到任 务调度队列上,在该队列中队首的迭代任务计算量大,预分配给高速的GPU; 队尾的迭代任务计算量小,预分配给低速的CPU;根据CPU、GPU的处理能力 以及任务计算量数据,预先计算出GPU与CPU在调度队列中的“交汇点”P的位 置,队首到P点之间的任务预分配给GPU类型处理器,P点到队尾之间的任务 预分配给CPU类型处理器,得到GPU和CPU两组调度队列。
进一步地,步骤S102.4中,按照如下方式计算出GPU与CPU在调度队列 中的“交汇点”P的位置:
Figure BDA0003099959490000061
Figure BDA0003099959490000062
CAC(vp)≤CAC(vG)<CAC(vp+1) (3)
其中,CAC(vk)是在数组队列k个任务的累计计算量,CAC(vG)是GPU获得的 累计计算量,Tnum是CPU线程总数,CAC(vn)是所有n个任务的计算量总和,CS 是GPU相对一个CPU内核的计算加速比。
进一步地,所述步骤S103包括:
按照如下公式确定任务优先级:
Figure BDA0003099959490000063
RT(vk,pl)=Ck/PPCl (5)
DTT(vik)=TCi/PTSik (6)
Figure BDA0003099959490000064
其中,LPL(vi,pj)表示任务节点vi选择处理器pj时,vi的直接后续节点到出 口节点的最长路径的最大值;foll(vi)表示任务节点vi所有的直接后续节点的集合; RT(vk,pl)表示节点vk在处理器pl上的运行时间;DTT(vik)表示节点vi到vk的数据 传输时间;Ck表示任务节点vk的计算量;PPCl表示处理器pl的属性;TCi表示节 点vi到后续节点的数据传输总量;PTSik表示处理器pi至pk间的传输速率;Rank(vi) 表示任务节点vi的优先级。
进一步地,所述步骤S104包括:
按照式(9)计算当前任务在每个处理器上的最早完成时间:
ECT(vi,pj)=max{EAT(pj),DRT(vi)}+RT(vi,pj) (9)
按照式(10)计算当前任务和其直接后续任务到出口任务的完成时间:
ECTLPL(vi,pj)=ECT(vi,pj)+LPL(vi,pj) (10)
其中,ECT(vi,pj)表示当前任务在每个处理器上的最早完成时间;EAT(pj)表 示处理器pj最早可用时间;DRT(vi)表示任务节点vi的数据就绪时间;RT(vi,pj)表 示任务节点vi在处理器pj上的运行时间。
实施例2
如图2所示,另一种基于CPU+GPU异构处理平台的多核并行调度方法,包 括:
步骤S201,构建CPU+GPU异构处理平台;
步骤S202,构建应用的DAG图,所述DAG图包括多个任务节点;
任务调度算法一般依托DAG图进行设计和实现,由于MCPS算法更关注平 台及任务的计算性能,所以其DAG图可以表示为:DAG=[V,E,C,TC,P,PPC,PTS], 其中V={vi}表示任务节点集合;E={eij}表示两节点的有向边集合,eij表示数据 流向是从节点i流向节点j,节点及有向边信息由应用中各个任务的属性信息所 决定;C={Ci}表示节点的计算量集合,其元素值主要由根据指令所需进行的浮点 计算次数所决定;TC={TCi}是节点的数据传输量集合,其中的元素值为节点vi到 后续节点的数据传输总量,它是由输入数据量以及任务的输出决定的;P={pi}表 示处理器集合;PPC={PPCi}表示处理器的属性集合,体现了其执行处理能力;PTS={PTSij}表示处理器间的传输速率集合。
步骤S203,进行负载部署决策,确定GPU和CPU两组任务调度队列;
在完成任务到应用DAG图抽象后,算法进行负载部署决策,主要包括以下 几个步骤:
(1)负载判断决策。针对可预测的负载进行分析判断,计算出各个子任务 的计算量,并保存相应结果到数组里。
(2)负载分支预测。对于有负载分支的任务,在第1步进行的同时进行分 支的预测,并保存结果。
(3)分配子任务调度队列。根据计算结果,将数组内元素按照从大到小的 顺序进行排列,并将子任务分配到调度队列中;将分支预测的结果按照相同计算 类型进行合并,整体划到队列中。
(4)处理器迭代任务预处理。将相同类型的处理器分别预部署到任务调度 队列上,在该队列中队首的迭代任务计算量大,预分配给高速的GPU;队尾的 迭代任务计算量小,预分配给低速的CPU。由此需要根据CPU、GPU的处理能 力以及任务计算量等数据,预先计算出GPU与CPU在调度队列中的“交汇点”P 的位置。
Ci是任务vi的计算量,定义CAC(vk)是在数组队列k个任务的累计计算量,因 此:
Figure BDA0003099959490000081
定义CAC(vG)是GPU获得的累计计算量,因此CAC(vG)满足:
Figure BDA0003099959490000082
其中Tnum是CPU线程总数(Total Number of Threads),CAC(vn)是所有n个任 务的计算量总和,CS是GPU相对一个CPU内核的计算加速比,这可以通过实 验获得。由于P所在位置处的任务是GPU获取的最后一个任务。因此P点满足 以下不等式:
CAC(vp)≤CAC(vG)<CAC(vp+1) (3)
通过以上2个不等式很容易求得GPU与CPU在调度队列中的“交汇点P”在 队列中的位置,此处即为两类处理器参与迭代任务的分界点,队首到P点之间的 任务预分配给GPU类型处理器,P点到队尾的之间的任务预分配给CPU类型处 理器。
步骤S204,按照最长路径列表中的排序依次调度任务,确定任务优先级;
在此阶段,任务的优先级分配基于当前任务的最长路径列表(Longest pathlist,LPL),它表示当前任务到出口任务的最长路径,用矩阵LPL表示,矩阵的行 数是节点数量n,列数是处理器数量m,其中的元素LPL(vi,pj)表示节点vi选择处 理器pj时,vi的直接后续节点到出口节点的最长路径的最大值,用公式表示为:
Figure BDA0003099959490000091
式中foll(vi)表示的任务vi所有的直接后续节点的集合,对于出口的任务vexit,LPL(vexit,pj)=0,RT(vk,pl)表示节点vk在处理器pl上的运行时间,DTT(vik)表示节 点vi到vk的数据传输时间,当pj=pl时,即当前节点vi与后续节点vk在同一处理 器pj上时,DTT(vik)=0。
RT(vk,pl)=Ck/PPCl (5)
DTT(vik)=TCi/PTSik (6)
式中Ck表示任务节点vk的计算量;PPCl表示处理器pl的属性;TCi表示节点 vi到后续节点的数据传输总量;PTSik表示处理器pi至pk间的传输速率。
得到各个节点的最长路径列表后,计算各节点的优先级Rank(vi):
Figure BDA0003099959490000092
任务优先级顺序按照Rank(vi)值由大到小排列,由于处理器个数是固定的, 所以优先级的确定取决于节点的LPL,而拥有最长路径的节点被优先调度,这就 达到了减小调度总时间、提升调度效率的目的。
步骤S205,在处理器选择阶段,在GPU和CPU两组任务调度队列范围中, 按照所选择的处理器可使任务的最早完成时间与其后续任务到出口任务的最长 路径之和最小的原则分配GPU和CPU;
为任务选择处理器时,依据负载部署决策结果,各个任务在选择处理器时, 只能选择规范好的处理器类型,不能交叉选择。即处于GPU执行计算队列的任务 只能在GPU类型处理器中选择,处于CPU执行计算队列的任务只能在CPU类型处 理器中选择。以此为前提,以所选择的处理器可使任务的最早完成时间与其后续 任务到出口任务的最长路径之和最小的原则,在满足优先次序的情况下,为任务 分配适合的处理器。
算法为任务选择处理器时,首先节点vi在处理器pj上的执行时间RT(vi,pj)、 节点vh到vi的数据传输时间DTT(vhi)、最长路径列表LPL(vi,pj),分别由公式(5)、 (6)、(4)求得。
然后计算DRT(vi),即节点vi数据就绪时间(Data Ready Time,DRT),根据 平台的工作模式,可以确定其值。DRT(vi)计算公式可表示为:
Figure BDA0003099959490000101
式中节点vi的数据准备时间是由其前任节点pred(vi)所决定的,其函数值为 其所有前任节点中完成计算和数据传输的最大完成时间,ACT(vh)表示节点vh实 际完成时间(Actual Completion Time,ACT),在计算过程中可知,对于入口节点 数据就绪时间DRT(ventry)=0。
接下来,计算当前任务在每个处理器上的最早完成时间(Earliest CompletionTime,ECT),用ECT(vi,pj)表示,公式如下:
ECT(vi,pj)=max{EAT(pj),DRT(vi)}+RT(vi,pj) (9)
式中EAT(pj)表示处理器pj最早可用时间(Earliest Available Time,EAT),由 其上执行的任务决定,在进行调度之前无法确定,需要根据执行过程中,平台上 各个处理器的状态进行动态调控。对于入口节点所在处理器的最早可用时间 EAT(pentry)=0。
其次,计算基于LPL的ECT(ECTLPL),其值等于ECT和LPL之和,具体公 式如下:
ECTLPL(vi,pj)=ECT(vi,pj)+LPL(vi,pj) (10)
最后,当求得当前任务最早完成时间ECTLPL(vi,pj)最小时,此时的处理器pj即是为节点vi分配的处理器。
本发明方法在为任务选择处理器时,不仅基于当前任务的ECT,还考虑所 选择的处理器对当前任务的LPL影响。因此,该策略综合考虑了当前任务和其直 接后续任务到出口任务的完成时间,使得整体时间更短。另外,在求解任务在各 个处理器上的完成时间时,综合考虑了传输以及计算对任务的影响,是在当前策 略下,实现各个处理器上负载均衡的有效保证,避免了异构处理平台中计算资源 的浪费。
步骤S206,通过分配的CPU或GPU对任务进行调度。
为使调度算法评估结果更加科学、准确,本实施例采用应用完成时间 (ImprovedScheduling Length Ratio,ISLR)指数以及处理器负载是否均衡 (Variance of theAmount of Task on the Processors,VATP)指数,对本发明方法(简 称为MCPS(Multi-Core Parallel Scheduling)算法)进行评估。分别表示为:
Figure BDA0003099959490000111
式中Solution代指任务调度策略,MakeSpan(Solution)表示在Solution策略下完成 任务所花费的时间,SumTime表示串行完成整个任务所花费的全部时间,其中各 节点任务所花时间取其在各处理器上的平均值,SumTime可以通过下式表示:
Figure BDA0003099959490000112
式中Vn和En分别表示节点和边的总数,T(vi)和T(eij)分别表示完成任务vi以 及完成eij传输所花费的时间。
Figure BDA0003099959490000113
式中Pn表示异构处理平台上所具有的处理器的总数,Taskn表示在第n个处 理器上的任务数,
Figure BDA0003099959490000114
表示在异构处理平台上,各个处理器的平均任务数。
通过公式(11)和式(13)可知,ISLR指数以及VATP指数越小,说明调度算法 的性能越好。
为了测试MCPS算法在平台上的调度效率,需进行仿真测试,实验选取 QUADROP2000(5G GDDR5显存,流处理器数量为1024个,计算性能为 3.0TFLOPS),NVIDIA GeForceGTX580(1536M DDR5显存,流处理器数量为 512个,计算性能为2.37TFLOPS),Inter Core(TM)i5 2500K(主频为3.3GHz,4 核心,4线程)构成含有2个不同GPU和1个多核CPU的简易异构处理平台, 采用PCIe 3.0传输协议(传输速率为8GT/s,有效带宽为7.88Gbps),根据设备信息,可以确定处理器的处理能力,并将数据代入到文献[Wang X,Ma J,Yue C,et al.TaskScheduling in Graphic Processing Units Heterogeneous with Density of theGraph[J].IOP Conference Series:M arterials Science and Engineering,2019, 569(11):042059.]中处理器量化模型中,获得相应的CPU以及GPU的计算能力量 化值。测试的方式主要利用典型DAG图以及随机DAG图进行计算量差异化任 务调度仿真实验,同时将传统HEFT算法和MCPS算法进行比较,通过测试及 对比,分析比较两种算法的性能。
由于HEFT算法公式中没有考虑到GPU硬件结构的特点,实际执行过程中, 虽然按照算法的设计执行预定顺序,但会漏掉在执行节点任务的前后,GPU读 取和写入内存的时间。而面对这部分时间成本,当任务计算量规模较大时,GPU 可以利用CUDA的折叠隐藏特性掩盖掉;但在计算量很小时,远比GPU执行计 算量小的任务时所花费的执行时间长的多,无法利用特性,必须考虑时间成本的 影响。
因此,对于HEFT算法关于典型DAG图的调度流程,要在原本的小计算量 的节点执行时间的基础上,增加GPU读取和写入内存的时间成本,而这个时间 根据硬件和总线情况不同而不同,按照当前仿真实验中GPU和CPU的参数,尤 其是PCIE总线3.0传输速率为8GT/s,相较于QUADRO P2000浮点计算性能约 为3TFLOPS,再考虑设备反应时间、任务计算量规模、结构复杂程度、数据实 际处理时间等因素影响,大致可以估算这个时间成本约为GPU计算时间的百倍 数量级,此次实验仿真取200倍以简化运算。
a.典型DAG图仿真对比
为了测试本实施例方法的调度的有效性,首先利用典型DAG任务图设计实 验,进行仿真测试,典型DAG图如图3。按照节点差异化数据结构设计节点在 各个处理器上执行时间,如表1。采用矩阵DETC表示有向边传输成本(Directed Edge Transmission Cost,DETC),行是父节点,列是子节点,其中元素表示的是 父子节点之间的传输成本,如式(14)所示。
表1节点在各个处理器上的执行时间
Figure BDA0003099959490000131
Figure BDA0003099959490000132
据此,得到HEFT、MCPS算法关于典型DAG图的调度流程图,如图4。其 中,HEFT算法的调度总长度为208,MCPS算法的调度总长度为185.19,MCPS 算法在调度时间上相较于HEFT算法节省了10.97%。ISLR和VATP指数的结果 分别显示在表2和表3中。从表中可知,在同等条件下,MCPS算法比HEFT算 法ISLR指数更低,说明前者调度完成时间更小,调度效率更高。两种算法VATP 指数差距明显,主要原因就在于HEFT算法本身设计上忽略了处理器实际情况, 没能有效利用CPU的性能,使这种计算量很小的任务,没有有效的规避办法, 使其仍然在GPU上执行,导致负载不均衡,造成了计算资源的极大浪费。而反 观MCPS算法有效利用了所有的处理器,并能够维持负载平衡。
表2典型DAG图下HEFT算法和MCPS算法的ISLR指数
Figure BDA0003099959490000141
表3典型DAG图下HEFT算法和MCPS算法的VATP指数
Figure BDA0003099959490000142
b.随机DAG图仿真对比
为继续探究MCPS算法在这种差异化数据量结构任务的普遍调度效果,实 验通过设计生成不同的节点数、不同树形结构的DAG图以及差异化节点计算量 和有向边传输成本,其中设定三分之一的节点计算量粒度较小,以满足调度曲线 的连续性和可比性。利用MCPS和HEFT算法对随机DAG任务图进行调度,记 录对应的调度时间,将其列入公式中,进而求得ISLR指数,对比如图5所示。
根据图5发现,MCPS算法、HEFT算法随着任务节点数量的提高,ISLR 指数越来越小,调度的优势越来越明显;在此过程中,MCPS算法的ISLR指数 始终小于HEFT算法,说明LPLS算法调度效率更高。
同样设置3个处理器,即Pn=3,因为HEFT算法基于最小化完成时间,只 会选择最短完成时间的处理器来完成任务,所以无法确保将粒度较小的任务分配 到CPU上,因此其VATP的指数势必会随着节点数的增加成几何倍数增长而无 法收敛,没有可比性,不计算VATP指数,因此只绘出MCPS算法的VATP指数 图,具体的结果如图6所示。
由图6可以得出,针对这类差异化数据量结构任务,相对于HEFT调度算法 的VATP指数无法收敛,MCPS算法收敛速度快,收敛极限小,说明MCPS算法 是一种更好的负载均衡算法,能够更快更好地趋于稳定。
综上,随着高速处理平台技术发展,如何提高CPU+GPU异构处理平台的运 算能力,已经成为研究的重点,本发明对此,提出了基于CPU+GPU异构处理平 台的多核并行调度方法。该方法依托负载部署决策方案,预先将不适合在GPU 上执行的任务划分给CPU,避免了让GPU执行计算量小的任务,也让CPU参 与到了并行计算中。并基于最长路径列表计算优先级,使得最耗时路径上的任务 被优先调度;同时将每个任务分配到使其最早完成时间与其后续任务到出口任务 的最长路径之和最小的处理器上。通过仿真实验可以看出,相比于HEFT算法, 本发明不仅有效的降低了处理器之间的通信开销,有效的保障硬件资源的负载均 衡,还能够真正发挥平台上CPU和GPU的计算效能,有效提高了平台上多处理 器的利用率,规范了任务的执行顺序,使得整体调度时间更短,负载更加均衡, 是解决CPU+GPU异构处理平台上任务调度问题的一种可行方法。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技 术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些 改进和润饰也应视为本发明的保护范围。

Claims (6)

1.一种基于CPU+GPU异构处理平台的多核并行调度方法,其特征在于,包括:
步骤1,构建应用的DAG图,所述DAG图包括多个任务节点;
步骤2,基于构建的DAG图进行负载部署决策,计算GPU与CPU在任务调度队列中的“交汇点”P点的位置,队首到P点之间的任务预分配给GPU类型处理器,P点到队尾之间的任务预分配给CPU类型处理器,得到GPU和CPU两组任务调度队列;
步骤3,按照最长路径列表中的排序依次调度任务,确定任务优先级;
步骤4,在处理器选择阶段,在GPU和CPU两组任务调度队列范围中,按照所选择的处理器可使任务的最早完成时间与其后续任务到出口任务的最长路径之和最小的原则分配GPU和CPU;
步骤5,通过分配的CPU或GPU对任务进行调度。
2.根据权利要求1所述的基于CPU+GPU异构处理平台的多核并行调度方法,其特征在于,所述DAG图表示为:DAG=[V,E,C,TC,P,PPC,PTS],其中V={vi}表示任务节点集合;E={eij}表示两节点的有向边集合,eij表示数据流向是从节点i流向节点j;C={Ci}表示节点的计算量集合;TC={TCi}是节点的数据传输量集合,其中的元素值为节点vi到后续节点的数据传输总量;P={pi}表示处理器集合;PPC={PPCi}表示处理器的属性集合,体现了其执行处理能力;PTS={PTSij}表示处理器间的传输速率集合。
3.根据权利要求1所述的基于CPU+GPU异构处理平台的多核并行调度方法,其特征在于,所述步骤2包括:
步骤2.1,负载判断决策:针对可预测的负载进行分析判断,计算出各个子任务的计算量,并保存相应结果到数组里;
步骤2.2,负载分支预测:对于有负载分支的任务,在步骤2.1进行的同时进行分支的预测,并保存结果;
步骤2.3,分配子任务调度队列:根据计算结果,将数组内元素按照从大到小的顺序进行排列,并将子任务分配到调度队列中;将分支预测的结果按照相同计算类型进行合并,整体划到队列中;
步骤2.4,处理器迭代任务预处理:将相同类型的处理器分别预部署到任务调度队列上,在该队列中队首的迭代任务计算量大,预分配给高速的GPU;队尾的迭代任务计算量小,预分配给低速的CPU;根据CPU、GPU的处理能力以及任务计算量数据,预先计算出GPU与CPU在调度队列中的“交汇点”P的位置,队首到P点之间的任务预分配给GPU类型处理器,P点到队尾之间的任务预分配给CPU类型处理器,得到GPU和CPU两组调度队列。
4.根据权利要求3所述的基于CPU+GPU异构处理平台的多核并行调度方法,其特征在于,按照如下方式计算出GPU与CPU在调度队列中的“交汇点”P的位置:
Figure FDA0003099959480000021
Figure FDA0003099959480000022
CAC(vp)≤CAC(vG)<CAC(vp+1) (3)
其中,CAC(vk)是在数组队列k个任务的累计计算量,CAC(vG)是GPU获得的累计计算量,Tnum是CPU线程总数,CAC(vn)是所有n个任务的计算量总和,CS是GPU相对一个CPU内核的计算加速比。
5.根据权利要求2所述的基于CPU+GPU异构处理平台的多核并行调度方法,其特征在于,所述步骤3包括:
按照如下公式确定任务优先级:
Figure FDA0003099959480000023
RT(vk,pl)=Ck/PPCl (5)
DTT(vik)=TCi/PTSik (6)
Figure FDA0003099959480000024
其中,LPL(vi,pj)表示任务节点vi选择处理器pj时,vi的直接后续节点到出口节点的最长路径的最大值;foll(vi)表示任务节点vi所有的直接后续节点的集合;RT(vk,pl)表示节点vk在处理器pl上的运行时间;DTT(vik)表示节点vi到vk的数据传输时间;Ck表示任务节点vk的计算量;PPCl表示处理器pl的属性;TCi表示节点vi到后续节点的数据传输总量;PTSik表示处理器pi至pk间的传输速率;Rank(vi)表示任务节点vi的优先级。
6.根据权利要求5所述的基于CPU+GPU异构处理平台的多核并行调度方法,其特征在于,所述步骤4包括:
按照式(9)计算当前任务在每个处理器上的最早完成时间:
ECT(vi,pj)=max{EAT(pj),DRT(vi)}+RT(vi,pj) (9)
按照式(10)计算当前任务和其直接后续任务到出口任务的完成时间:
ECTLPL(vi,pj)=ECT(vi,pj)+LPL(vi,pj) (10)
其中,ECT(vi,pj)表示当前任务在每个处理器上的最早完成时间;EAT(pj)表示处理器pj最早可用时间;DRT(vi)表示任务节点vi的数据就绪时间;RT(vi,pj)表示任务节点vi在处理器pj上的运行时间。
CN202110622040.XA 2021-06-03 2021-06-03 基于cpu+gpu异构处理平台的多核并行调度方法 Active CN113553103B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110622040.XA CN113553103B (zh) 2021-06-03 2021-06-03 基于cpu+gpu异构处理平台的多核并行调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110622040.XA CN113553103B (zh) 2021-06-03 2021-06-03 基于cpu+gpu异构处理平台的多核并行调度方法

Publications (2)

Publication Number Publication Date
CN113553103A true CN113553103A (zh) 2021-10-26
CN113553103B CN113553103B (zh) 2022-09-23

Family

ID=78130288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110622040.XA Active CN113553103B (zh) 2021-06-03 2021-06-03 基于cpu+gpu异构处理平台的多核并行调度方法

Country Status (1)

Country Link
CN (1) CN113553103B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114880111A (zh) * 2022-03-24 2022-08-09 哈尔滨工业大学(深圳) 基于dag任务拓扑结构的处理器资源分配方法、存储介质
CN115203019A (zh) * 2022-06-22 2022-10-18 中国电信股份有限公司 Gpu服务器的性能测试方法、装置、设备及存储介质
WO2023143238A1 (en) * 2022-01-27 2023-08-03 International Business Machines Corporation Controling job packing processing unit cores for gpu sharing
US20230291721A1 (en) * 2022-03-10 2023-09-14 Herbert Robinson Method for distributing secure datagrams

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040143710A1 (en) * 2002-12-02 2004-07-22 Walmsley Simon Robert Cache updating method and apparatus
EP2192781A2 (en) * 2008-11-28 2010-06-02 Thomson Licensing Method for video decoding supported by graphics processing unit
CN103942102A (zh) * 2014-04-14 2014-07-23 桂林电子科技大学 基于双优先级的实时任务调度方法
CN107301500A (zh) * 2017-06-02 2017-10-27 北京工业大学 一种基于关键路径任务前瞻的工作流调度方法
CN108647084A (zh) * 2018-05-08 2018-10-12 武汉轻工大学 能效云任务调度方法
US20180373540A1 (en) * 2017-06-21 2018-12-27 International Business Machines Corporation Cluster graphical processing unit (gpu) resource sharing efficiency by directed acyclic graph (dag) generation
CN109947565A (zh) * 2019-03-08 2019-06-28 北京百度网讯科技有限公司 用于分配计算任务的方法和装置
CN112783651A (zh) * 2021-01-22 2021-05-11 苏州浪潮智能科技有限公司 一种云平台vGPU负载均衡调度方法、介质及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040143710A1 (en) * 2002-12-02 2004-07-22 Walmsley Simon Robert Cache updating method and apparatus
EP2192781A2 (en) * 2008-11-28 2010-06-02 Thomson Licensing Method for video decoding supported by graphics processing unit
CN103942102A (zh) * 2014-04-14 2014-07-23 桂林电子科技大学 基于双优先级的实时任务调度方法
CN107301500A (zh) * 2017-06-02 2017-10-27 北京工业大学 一种基于关键路径任务前瞻的工作流调度方法
US20180373540A1 (en) * 2017-06-21 2018-12-27 International Business Machines Corporation Cluster graphical processing unit (gpu) resource sharing efficiency by directed acyclic graph (dag) generation
CN108647084A (zh) * 2018-05-08 2018-10-12 武汉轻工大学 能效云任务调度方法
CN109947565A (zh) * 2019-03-08 2019-06-28 北京百度网讯科技有限公司 用于分配计算任务的方法和装置
CN112783651A (zh) * 2021-01-22 2021-05-11 苏州浪潮智能科技有限公司 一种云平台vGPU负载均衡调度方法、介质及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KARAN R. SHETTI等: "Optimization of the HEFT Algorithm for a CPU-GPU Environment", 《2013 INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED COMPUTING, APPLICATIONS AND TECHNOLOGIES》 *
吴志伟: "基于深度强化学习的DAG任务智能调度算法研究", 《中国优秀硕士学位论文全文数据库》 *
裴颂文等: "CPU-GPU 异构多核系统的动态任务调度算法", 《计算机应用研究》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023143238A1 (en) * 2022-01-27 2023-08-03 International Business Machines Corporation Controling job packing processing unit cores for gpu sharing
US20230291721A1 (en) * 2022-03-10 2023-09-14 Herbert Robinson Method for distributing secure datagrams
CN114880111A (zh) * 2022-03-24 2022-08-09 哈尔滨工业大学(深圳) 基于dag任务拓扑结构的处理器资源分配方法、存储介质
CN115203019A (zh) * 2022-06-22 2022-10-18 中国电信股份有限公司 Gpu服务器的性能测试方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113553103B (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
CN113553103B (zh) 基于cpu+gpu异构处理平台的多核并行调度方法
Hu et al. Spear: Optimized dependency-aware task scheduling with deep reinforcement learning
CN110399222B (zh) Gpu集群深度学习任务并行化方法、装置及电子设备
CN110321222B (zh) 基于决策树预测的数据并行作业资源分配方法
Arabnejad et al. Fairness resource sharing for dynamic workflow scheduling on heterogeneous systems
CN109918182B (zh) 虚拟化技术下的多gpu任务调度方法
WO2021254135A1 (zh) 任务执行方法及存储设备
Wang et al. A new algorithm for grid independent task schedule: genetic simulated annealing
Zhang et al. The real-time scheduling strategy based on traffic and load balancing in storm
CN110187969A (zh) 一种基于gpu的分布式大数据并行计算方法
CN107329822B (zh) 面向多源多核系统的基于超任务网的多核调度方法
CN108170861B (zh) 一种基于动态规划的分布式数据库系统协同优化方法
CN107360031B (zh) 一种基于优化开销收益比的虚拟网络映射方法
Duan et al. Reducing makespans of DAG scheduling through interleaving overlapping resource utilization
Wang et al. On mapreduce scheduling in hadoop yarn on heterogeneous clusters
Zhang et al. To co-run, or not to co-run: A performance study on integrated architectures
Xu et al. Intelligent scheduling for parallel jobs in big data processing systems
WO2019000435A1 (zh) 任务处理方法、装置、介质及其设备
CN104731662B (zh) 一种可变并行作业的资源分配方法
Abba et al. Deadline based performance evaluation of job scheduling algorithms
CN114860417B (zh) 多核神经网络处理器及用于该处理器多任务分配调度方法
Arif A Hybrid MinMin & Round Robin Approach for task scheduling in cloud computing
CN109522106B (zh) 一种基于协同计算的风险价值模拟动态任务调度方法
CN115098240A (zh) 一种多处理器应用调度方法和系统及存储介质
CN109828837B (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