CN109918182A - 虚拟化技术下的多gpu任务调度方法 - Google Patents
虚拟化技术下的多gpu任务调度方法 Download PDFInfo
- Publication number
- CN109918182A CN109918182A CN201910063111.XA CN201910063111A CN109918182A CN 109918182 A CN109918182 A CN 109918182A CN 201910063111 A CN201910063111 A CN 201910063111A CN 109918182 A CN109918182 A CN 109918182A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- gpu
- dag
- processor
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000005516 engineering process Methods 0.000 title claims abstract description 19
- 230000005540 biological transmission Effects 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000035945 sensitivity Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 description 88
- 238000012360 testing method Methods 0.000 description 14
- 239000011159 matrix material Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000004088 simulation Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 6
- 230000008030 elimination Effects 0.000 description 5
- 238000003379 elimination reaction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及任务调度技术领域,公开虚拟化技术下的多GPU任务调度方法,包括以下步骤:步骤1:构建应用的DAG图,所述DAG图包括多个任务节点;步骤2:利用拓扑排序的方式对DAG图进行分层;步骤3:通过任务节点的优先级对DAG图中每一层的任务节点进行排序;步骤4:计算目标任务节点在处理器上的预测最早完成时间,将任务节点映射到预测最早完成目标任务的GPU处理器上;步骤5:通过预测最早完成任务时间最短的GPU处理器对任务进行调度。本发明提高了任务调度效率。
Description
技术领域
本发明涉及任务调度技术领域,特别涉及虚拟化技术下的多GPU任务调度方法。
背景技术
随着计算机、通信和人工智能技术的发展,软件定义在各行各业发挥着越来越重要的左右作用,从软件定义无线电、软件定义雷达到软件定义网络、软件定义存储、软件定义数据中心,传统的以硬件为主,软件为辅的软硬件关系逐渐被扭转,硬件资源虚拟化,软硬件分离的新型软硬件关系开始在各个领域发挥重要的作用。随着GPGPU技术的快速发展,CPU+GPU异构平台由于其出色的计算能力,已经成为高性能异构平台中的重要发展助力。而软件定义背景下的新型软硬件关系对CPU+GPU异构平台的灵活性、扩展性以及平台的任务部署和调度等方面提出了更高的要求。
常用的任务调度算法根据在程序执行前能否精确获取应用的有向无环图(Direction Asyclic Graph,DAG)以及处理器上的相关信息,将任务调度算法分为静态调度和动态调度两大类。动态调度算法是一种实时的任务调度算法,在进行任务调度时需要消耗大量的处理器资源,算法复杂度较高,稳定性较差,相比于动态调度算法,静态调度算法具有较好的稳定性和较低的复杂度。
常用的静态调度算法主要有基于列表的调度算法、基于任务复制的调度算法、基于启发式的调度算法以及基于任务聚类的调度算法。基于列表的调度算法是利用一定的策略,为节点和处理器赋予一定的优先级,根据优先级的大小生成有序的任务列表,再根据处理器的特点为任务列表中的任务分配相应的处理器。基于列表的调度算法相比于其他三种算法由于具有较小的算法复杂度和较高的鲁棒性而被广泛的使用在大量的异构平台中。常用的列表算法主要有HPS (High-performance task scheduling)算法、PETS(Performanceeffective task scheduling)算法、HEFT(heterogeneous earliest finish time)算法以及CPOP(critical path on a processor)算法,其中HEFT算法根据DAG图中节点到出口节点的最长路径进行排序,而HPS算法根据节点的最大传输代价进行排序,这两个算法由于调度效率较高,成为重要的对比算法。
CPU+GPU异构平台是一种适合做密集型计算的一致性硬件平台,具有高吞吐量低传输速率的特点,其他常用的任务调度技术在CPU+GPU异构平台上出现了效率低,负载不均,通信开销大等问题。
发明内容
针对上述问题,本发明提供虚拟化技术下的多GPU任务调度方法,提高了任务调度效率。
为了实现上述目的,本发明采用以下技术方案:
虚拟化技术下的多GPU任务调度方法,包括以下步骤:
步骤1:构建应用的DAG图,所述DAG图包括多个任务节点;
步骤2:利用拓扑排序的方式对DAG图进行分层;
步骤3:通过任务节点的优先级对DAG图中每一层的任务节点进行排序;
步骤4:计算目标任务节点在处理器上的预测最早完成时间,将任务节点映射到预测最早完成目标任务的GPU处理器上;
步骤5:通过预测最早完成任务时间最短的GPU处理器对任务进行调度。
进一步地,所述任务的DAG图表示为DAG=[V,E,C,TC,TP],其中V表示任务节点,E表示连接两个任务节点的有向边,C表示任务节点的计算量,TC表示任务节点待处理的数据量,TP表示数据产生量。
进一步地,所述任务节点的优先级通过任务节点的优先级公式得出,所述任务节点的优先级公式为:
Priority=Density+AverDown (2)
其中Priority表示任务节点的优先级的权值,Density=EN/VN2,Density表示DAG图的稀疏度,AverDown表示任务父节点到任务子节点的平均传输量,EN表示边数,VN表示节点数。
进一步地,所述节点在处理器上的预测最早完成时间由下式得到:
其中,表示的是任务父节点vj的最早完成时间,表示的是任务父节点vj传递给任务子节点vi的数据量,TS表示的是GPU之间的传输速率,表示的是 vi的计算量,PCk表示的是第k个GPU处理器的计算能力。
进一步地,所述GPU处理器的计算能力为:
Computational=ln(SmNum*WarpNum) (1)
其中Computational表示GPU处理器的计算能力,SmNum表示的是GPU处理器上的SM的数量,WarpNum表示一个SM上可以同时执行的warp数量, SmNum*WarpNum表示的是一个GPU处理器上可以同时并行的线程数量。
与现有技术相比,本发明具有的有益效果:
本发明通过虚拟化GPU的计算能力,实现CPU+GPU异构平台中软硬件的分离,通过拓扑排序的方式,实现DAG图的分层,以各个节点子图的稀疏度以及节点到子节点的平均传输代价之和作为优先级准则,采用广度遍历的思想,根据每一层节点的优先级顺序,为其分配最早完成时间最小的处理器。通过仿真验证和测试,可以发现,本发明对GPU计算能力虚拟化模型,不仅行之有效,而且其调度效率在一定程度上要优于其他两种调度算法。在随机DAG图的测试过程中,本发明负载更加均衡,调度效率相比于HEFT算法有了8%的性能提升,相比于HPS算法有了12%的性能提升,在实际应用的调度测试中,调度效率相比于HEFT算法和HPS算法分别提升了10%和15%。
附图说明
图1为本发明实施例的虚拟化技术下的多GPU任务调度方法的基本流程图。
图2为本发明又一实施例的虚拟化技术下的多GPU任务调度方法的基本流程图。
图3为本发明实施例的硬件架构模型示意图。
图4为本发明实施例的典型DAG图。
图5为本发明实施例的典型DAG图时间流对比图。
图6为本发明实施例的随机DAG图仿真SLR结果对比图。
图7为本发明实施例的随机DAG图归一化负载方差对比图。
图8为本发明实施例的随机DAG图调度成功概率对比图。
图9为本发明实施例的5阶矩阵高斯消去法任务图。
图10为本发明实施例的硬件平台测试模型示意图。
图11为本发明实施例的高阶矩阵高斯消去法DAG图测试SLR对比图。
图12为本发明实施例的高阶矩阵高斯消去法DAG图测试归一化负载方差对比图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
实施例一:
如图1所示,一种虚拟化技术下的多GPU任务调度方法,包括以下步骤:
步骤S101:构建应用的DAG图,所述DAG图包括多个任务节点;
具体地,所述任务的DAG图表示为DAG=[V,E,C,TC,TP],其中V表示任务节点,E表示连接两个任务节点的有向边,C表示任务节点的计算量,TC表示任务节点待处理的数据量,TP表示数据产生量。
步骤S102:利用拓扑排序的方式对DAG图进行分层;
步骤S103:通过任务节点的优先级对DAG图中每一层的任务节点进行排序;
具体地,所述任务节点的优先级通过任务节点的优先级公式得出,所述任务节点的优先级公式为:
Priority=Density+AverDown (2)
其中Priority表示任务节点的优先级的权值,Density=EN/VN2,Density表示DAG图的稀疏度,AverDown表示任务父节点到任务子节点的平均传输量,EN表示边数,VN表示节点数。
步骤S104:计算目标任务节点在处理器上的预测最早完成时间,将任务节点映射到预测最早完成目标任务的GPU处理器上;
具体地,所述节点在处理器上的预测最早完成时间由下式得到:
其中,表示的是任务父节点vj的最早完成时间,表示的是任务父节点vj传递给任务子节点vi的数据量,TS表示的是GPU之间的传输速率,表示的是vi的计算量,PCk表示的是第k个GPU处理器的计算能力。
具体地,所述GPU处理器的计算能力为:
Computational=ln(SmNum*WarpNum) (1)
其中Computational表示GPU处理器的计算能力,SmNum表示的是GPU处理器上的SM的数量,WarpNum表示一个SM上可以同时执行的warp数量, SmNum*WarpNum表示的是一个GPU处理器上可以同时并行的线程数量。
步骤S105:通过预测最早完成任务时间最短的GPU处理器对任务进行调度。
实施例二:
如图2所示,另一种虚拟化技术下的多GPU任务调度方法,包括:
步骤S201:构建CPU+GPU硬件模型;
随着CPU制作工艺带来的性能提升速率渐入瓶颈,GPU的轻量级多线程计算的高吞吐量的优点逐渐凸显出来,厂商将CPU的逻辑控制能力与GPU的浮点计算能力相结合,形成CPU主控GPU主运算的异构协同处理平台,其平台模型如图3所示。
CPU与GPU通过PCIE总线进行连接,而多GPU之间有两种连接方式,一种是多GPU在同一个PCIE总线上,GPU之间可以通过PCIE总线直接进行数据的传输;另一种是GPU需要借助CPU中转的方式进行数据的传输。而PCIE总线资源有限,所能连接的外设资源有限,因此,对于大多数的CPU+GPU异构平台来说,多个GPU之间的数据通信需要借助CPU才能够完成。
步骤S202:构建应用的DAG图,所述DAG图包括多个任务节点;
任务的静态调度以应用生成的DAG图为基础,因此,在调度之前需要根据应用生成对应的任务DAG图,具体地,所述任务的DAG图表示为 DAG=[V,E,C,TC,TP],其中V表示任务节点,E表示连接两个任务节点的有向边, C表示任务节点的计算量,TC表示任务节点待处理的数据量,TP表示数据产生量。
为了更好的应对软件定义技术在CPU+GPU异构平台技术的变革,更好的适应应用的实时性、通用性提出的新要求,以及能够更好的对复杂多变的环境做出快速反映,将各算法(加、减、乘、除、平方等运算)的核心内容封装成相应组件,根据处理环境的变化以及应用的不同需求,组合各种组件,生成相应应用的执行流程,完成任务的需求。因此,相应组件中所需要执行的内容也随之确定,确定了输入的数据量后,就可以确定整个组件的计算量,就可以进一步确定各个任务节点的计算量。而组件化的调度方式,能够更好的实现软硬件分离,可以有效的提高平台的扩展能力,能够根据需求的变换进行快速的组件切换,大大提升了平台在复杂环境下的处理能力。
步骤S203:利用拓扑排序的方式对DAG图进行分层;
得到应用的DAG图后,根据DAG图的连接关系,进行任务的划分和调度。而基于DAG图的任务调度可以视为对图的遍历过程,遍历主要分为深度优先和广度优先两种,对于CPU+GPU异构平台来讲,由于节点之间的传输效率低,采用深度优先的方式,会造成大量的节点等待时间,因此,本实施例采用广度遍历的思想来进行任务的调度。在进行广度遍历之前,要为DAG图进行分层,本实施例利用拓扑排序的方式进行分层。拓扑排序的分层方式,可以有效的避免在进行广度遍历过程中出现重复遍历的现象,提升了分层的准确性,降低了遍历算法的复杂度,提高了广度遍历的效率。
步骤S204:通过任务节点的优先级对DAG图中每一层的任务节点进行排序;
具体地,所述任务节点的优先级通过任务节点的优先级公式得出,所述任务节点的优先级公式为:
Priority=Density+AverDown (2)
其中Priority表示任务节点的优先级的权值,Density=EN/VN2,Density表示DAG图的稀疏度,AverDown表示任务父节点到任务子节点的平均传输量,EN表示边数,VN表示节点数。
值得说明的是,任务节点具体包括任务父节点和任务子节点,DAG图中上一层的每个任务节点均为下一层的任务父节点,下一层的每个任务节点均为上一层的任务子节点。
图的稀疏度定义如下:
定义:VN表示节点数,EN表示边数,用Density=EN/VN2表示DAG图的稀疏度,将EN<<VN2的DAG图称为稀疏图,反之称为稠密图。
DAG图的Density可以用来衡量一个DAG图中节点的连接程度。本实施例将每一个任务节点作为图的入口节点(DAG图中初始端任务节点),根据应用的连接关系,将任务节点到出口节点的所有后继节点作为任务节点对应的DAG 子图,根据DAG图的Density的定义,计算任务节点对应的DAG子图的Density。
多GPU之间通信开销问题是限制CPU+GPU异构平台处理效率的一个重要因素。任务节点到出口节点(DAG图中最末端任务节点)的图的稀疏度,可以衡量该节点与后继节点的连接情况,稀疏度大的节点,说明节点间的连接关系更加复杂,后继节点的等待时间就会增加,而稀疏度小的节点,说明后继节点连接关系简单,后继节点的等待时间较小。将节点的Density与AverDown之和作为节点的排序准则,其目的在于优先处理每一层中后继节点连接复杂且后续通信量大的节点,并利用GPU的折叠传输的能力,实现传输延迟的隐藏。
步骤S205:计算目标任务节点在处理器上的预测最早完成时间,将任务节点映射到预测最早完成目标任务的GPU处理器上;
具体地,所述节点在处理器上的预测最早完成时间由下式得到:
其中,表示的是任务父节点vj的最早完成时间,表示的是任务父节点vj传递给任务子节点vi的数据量,TS表示的是GPU之间的传输速率,表示的是 vi的计算量,PCk表示的是第k个GPU处理器的计算能力。
由于NVIDIA公司推出的CUDA架构,大大降低了GPU编程的难道,因此,在进行GPU编程时,首选NVIDIA显卡,目前,NVIDIA已经相继推出了Femi、 Kelper、Maxwell、Pascal、Volta等多种GPU架构的显卡。而由于架构的不同也带来了GPU处理能力的不同。
GPU的计算能力由同时并行的线程数决定,而同时并行的线程数由GPU上的硬件资源SM(streaming multiprocessor)决定。GPU上的指令都是由基本处理单元SP(streamingprocessor)来执行的,一个SP对应于一个线程,GPU上的并行计算就是利用多个SP同时执行一个指令。多个SP以及一些其他的资源就组成了SM,SM相当于一个GPU核,它以32个线程为一个warp(warp是调度和运行的基本单元),进行任务的调度和执行。应用在GPU上执行之前要事先为应用配置thread和block资源,一个block中的thread是在同一个SM上执行的。当一个block中的线程过多时,在GPU上的执行就不在是逻辑上规划的同时执行,而是具有一定的先后顺序。因此,根据GPU的硬件结构可以计算出GPU的计算能力,计算公式如下所示:
Computational=ln(SmNum*WarpNum) (1)
其中Computational表示GPU的计算能力,SmNum表示的是GPU上的SM的数量,WarpNum表示一个SM上可以同时执行的warp数量,SmNum*WarpNum表示的是一个GPU上可以同时并行的线程数量。公式(1)是利用GPU架构下的硬件资源进行的性能抽象,可以更加准确的量化GPU的处理能力,可以适用于所有的GPU 架构。
步骤S206:通过预测最早完成任务时间最短的GPU处理器对任务进行调度。
为了更好的衡量本实施例方法(另一种虚拟化技术下的多GPU任务调度方法)的调度效率,对文献1(Topcuoglu H,Hariri S,Wu M Y.Performance-effective and low-complexity task scheduling for heterogeneous computing[J].IEEE Transactionson Parallel&Distributed Systems,2002,13(3):260-274)中的调度长度比率(Scheduling Length Ratio,SLR)进行优化,将应用DAG图的所有节点的平均计算时间与所有边的传输时间之和SumNodeEdg作为分母,代替关键路径任务的最小计算代价,SLR值越小,本实施例方法的结果越优越。调度长度比率SLR 公式如下:
其中Makespan(Solution)表示根据Solution算法得出的调度时间。
为了衡量本实施例方法的负载的分配情况,利用各个GPU处理器的负载方差LoadVar来评判实施例的负载分配的均衡情况。负载方差LoadVar公式如下:
其中ProNum表示GPU处理器的数量,ProLoadn表示n号GPU处理器上的负载数,表示GPU处理器上的平均负载量。
a.典型DAG图仿真对比
为了测试本实施例方法的调度的有效性,利用文献1中的典型DAG图进行实验仿真验证,典型的DAG图如图4所示。节点的计算量、传输量以及处理器的处理能力均取随机值,通过计算得到的节点在各个处理器上的执行时间记录在表1中,数据的传输时间记录到DataTran矩阵中,其中aij∈DataTran表示节点vi到节点vj的传输时间,将调度的结果以时间流图的形式与HEFT算法以及HPS算法进行比较,如图5所示。
表1任务节点在各个GPU处理器上的执行时间
通过图5的时间流图的对比可以看出HEFT算法的调度跨度为386.05,调度的顺序为:[V1,V2,V5,V3,V6,V4,V8,V9,V7,V10]。HPS算法的调度跨度为398.21,调度的顺序为[V1,V3,V2,V4,V5,V6,V8,V9,V7,V10]。本实施例方法的调度跨度为363.74,调度的顺序为[V1,V5,V3,V2,V4,V6,V8,V9,V7,V10]。在典型DAG图的情况下,对比HEFT算法、HPS算法和本实施例方法的调度跨度,可以看出:本实施例方法相比于HEFT算法节省了5%的调度时间,相比于HPS算法节省了约8%的调度时间。
根据表1和DataTran矩阵中的数据,可以计算出公式(3)中的 SumNodeEdg=1268.34,根据公式(3)可以计算出HEFT算法、HPS算法和本实施例方法的SLR值并记录到表2中。
表2.HEFT算法、HPS算法和本实施例方法的关于典型DAG图的SLR值
通过对比表2中HEFT算法、HPS算法和本实施例方法的SLR值,可以看出本实施例方法在典型DAG上的调度效率要优于HEFT算法以及HPS算法。
为了对比HEFT算法、HPS算法和本实施例方法的负载均衡情况,将HEFT 算法、HPS算法和本实施例方法在各个GPU处理器上的任务数记录到表3中,并计算HEFT算法、HPS算法和本实施例方法的LoadVar值。
表3.HEFT算法、HPS算法和本实施例方法关于典型DAG图各个处理器负载量
通过表2表3中的数据可以发现,HEFT算法和本实施例方法在典型DAG 图中的任务调度中,负载量相同的情况下,本实施例方法的调度效率要优于 HEFT算法,并将调度的时间减小了约5%。
b.随机DAG图仿真对比
为了测试本实施例方法的调度效率以及算法的鲁棒性,利用随机生成的DAG 图做调度仿真。通过观察HEFT算法、HPS算法以及本实施例方法的SLR值和归一化LoadVar值随着节点数增加的变化情况,并记录重复实验过程中各个算法优于其他两种算法的次数,求其概率。实验结果如图6、图7所示。
随机产生大量不同节点数的DAG图,并尽可能包含各种情况的DAG连接关系,对相同节点数的实验结果求平均,比较相同节点数下HEFT算法、HPS算法和本实施例方法的调度情况,对比SLR值,如图6所示,可以看出,在不同的节点数情况下,本实施例方法的SLR值相比于HEFT算法约有8%的性能提升,相比于HPS算法,约有12%的性能提升。由此可以看出本实施例方法的调度效率在三种算法中最高。
比较相同节点数下HEFT算法、HPS算法和本实施例方法的归一化LoadVar,如图7所示,归一化LoadVar越小,说明各个GPU处理器上的负载更加均衡,通过对比,可以看出,在不同节点数量的DAG图任务调度中,本实施例方法负载相比于其他两种算法更为均衡。
通过图8可以看出,在对大量的随机DAG图进行任务调度时,发现大约只有大约60%的情况是本实施例方法的调度优于其他两种算法的调度,另外,随机产生的DAG图中存在着大量的串行连接,而三种算法在面对串行连接的情况下,调度的效率基本一致。总体来说,本实施例方法在随机DAG图的任务调度过程中,相比于其他两种算法,效率更高,负载更加均衡,且适用范围更广。
c.实际应用仿真测试
以对不同阶数的矩阵运用高斯消去法求解上三角矩阵为例,通过对实际的应用图的测试,比较HEFT算法、HPS算法以及本实施例方法的性能差异。
以文献2(周娜琴.分布式环境下异构多处理机的相关任务的调度方法研究 [D].华南理工大学,2017)中的5阶矩阵为例,生成应用的DAG图如图9所示。
其中各个节点的计算量(计算次数)可以由2.3中的方法得到,并记录在表 4中。
表4五阶矩阵高斯消去法DAG图任务节点的计算量
实验测试的硬件平台模型如图10所示。
根据本实施例方法可以得出图9的执行顺序为 [V1,V3,V5,V2,V4,V6,V9,V8,V7,V10,V11,V12,V13,V14],HEFT算法的执行顺序为 [V1,V2,V3,V4,V5,V6,V7,V8,V9,V10,V11,V12,V13,V14],HPS算法的执行顺序为: [V1,V3,V5,V4,V2,V6,V9,V8,V7,V10,V11,V12,V13,V14]。由于CPU+GPU异构平台适合于进行密集型的数据计算,因此,对于五阶矩阵的求解传输代价较高,测试效果不佳。为了验证HEFT算法、HPS算法和本实施例方法的调度效率,通过分析五阶矩阵的执行过程,测试了更高阶矩阵的求解过程,并对比三种算法的SLR值和负载方差,其结果如图11、图12所示。
对比HEFT算法、HPS算法和本实施例方法在相同节点数下的SLR值,如图 11所示,可以看出,本实施例方法相比于HEFT算法调度效率大约有10%的性能提升,相比于HPS算法的调度效率大约有15%的性能提升。
通过以上的实验可以看出,针对CPU+GPU异构平台设计的一致性硬件模型和传输成本高所设计的本实施例方法在CPU+GPU异构平台上相比于HEFT算法以及HPS算法更能够发挥重要作用,可以有效的提升平台的执行效率,使处理器上的负载能够更加均衡。
软件定义技术的飞速发展推动着异构平台向着软硬件分离的新型软硬件关系转变。CPU+GPU异构平台作为重要的异构平台,由于其一致性硬件模型的特点,使其硬件资源虚拟化的实现变为可能。基于CPU+GPU硬件资源虚拟化的基础上,分析CPU+GPU异构平台的硬件特点和限制异构平台效率提升的瓶颈,设计了适合于CPU+GPU异构平台的本实施例方法。本实施例方法在实现DAG图分层的基础上,将广度遍历与优先级排序相结合的任务划分策略与节点最早完成时间最小的处理器分配策略相结合,实现了应用的高效调度。将算法与HEFT算法以及HPS算法进行比较,通过实验仿真和测试,证明了本实施例方法相比于其他两种算法具有更广泛的应用场景,更好的调度效率,负载更加均衡的优点。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (5)
1.虚拟化技术下的多GPU任务调度方法,其特征在于,包括以下步骤:
步骤1:构建应用的DAG图,所述DAG图包括多个任务节点;
步骤2:利用拓扑排序的方式对DAG图进行分层;
步骤3:通过任务节点的优先级对DAG图中每一层的任务节点进行排序;
步骤4:计算目标任务节点在处理器上的预测最早完成时间,将任务节点映射到预测最早完成目标任务的GPU处理器上;
步骤5:通过预测最早完成任务时间最短的GPU处理器对任务进行调度。
2.根据权利要求1所述的虚拟化技术下的多GPU任务调度方法,其特征在于,所述任务的DAG图表示为DAG=[V,E,C,TC,TP],其中V表示任务节点,E表示连接两个任务节点的有向边,C表示任务节点的计算量,TC表示任务节点待处理的数据量,TP表示数据产生量。
3.根据权利要求1所述的虚拟化技术下的多GPU任务调度方法,其特征在于,所述任务节点的优先级通过任务节点的优先级公式得出,所述任务节点的优先级公式为:
Priority=Density+AverDown (2)
其中Priority表示任务节点的优先级的权值,Density=EN/VN2,Density表示DAG图的稀疏度,AverDown表示任务父节点到任务子节点的平均传输量,EN表示边数,VN表示节点数。
4.根据权利要求1所述的虚拟化技术下的多GPU任务调度方法,其特征在于,所述节点在处理器上的预测最早完成时间由下式得到:
其中,表示的是任务父节点vj的最早完成时间,表示的是任务父节点vj传递给任务子节点vi的数据量,TS表示的是GPU之间的传输速率,表示的是vi的计算量,PCk表示的是第k个GPU处理器的计算能力。
5.根据权利要求4所述的虚拟化技术下的多GPU任务调度方法,其特征在于,所述GPU处理器的计算能力为:
Computational=ln(SmNum*WarpNum) (1)
其中Computational表示GPU处理器的计算能力,SmNum表示的是GPU处理器上的SM的数量,WarpNum表示一个SM上可以同时执行的warp数量,SmNum*WarpNum表示的是一个GPU处理器上可以同时并行的线程数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910063111.XA CN109918182B (zh) | 2019-01-23 | 2019-01-23 | 虚拟化技术下的多gpu任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910063111.XA CN109918182B (zh) | 2019-01-23 | 2019-01-23 | 虚拟化技术下的多gpu任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109918182A true CN109918182A (zh) | 2019-06-21 |
CN109918182B CN109918182B (zh) | 2020-12-15 |
Family
ID=66960511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910063111.XA Expired - Fee Related CN109918182B (zh) | 2019-01-23 | 2019-01-23 | 虚拟化技术下的多gpu任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918182B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN111061547A (zh) * | 2019-10-24 | 2020-04-24 | 中国科学院计算技术研究所 | 一种异构系统的任务调度方法及系统 |
CN111880911A (zh) * | 2020-06-19 | 2020-11-03 | 浪潮电子信息产业股份有限公司 | 一种任务负载调度方法、装置、设备及可读存储介质 |
WO2021008259A1 (zh) * | 2019-07-15 | 2021-01-21 | 北京一流科技有限公司 | 用于异构架构的数据处理系统及其方法 |
CN113176933A (zh) * | 2021-04-08 | 2021-07-27 | 中山大学 | 面向海量工作流任务动态云网络互连方法 |
CN117215802A (zh) * | 2023-11-07 | 2023-12-12 | 四川并济科技有限公司 | 一种针对虚拟化网络功能的gpu管理及调用方法 |
CN117290104A (zh) * | 2023-09-28 | 2023-12-26 | 苏州麦杰工业大数据产业研究院有限公司 | 一种边缘计算方法、装置及设备 |
WO2023224547A3 (zh) * | 2022-05-16 | 2024-02-01 | 脸萌有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201701A (zh) * | 2016-07-14 | 2016-12-07 | 扬州大学 | 一种带任务重复的工作流调度算法 |
CN106648846A (zh) * | 2016-09-23 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种改进的异构多核任务调度的方法 |
CN107015856A (zh) * | 2017-03-30 | 2017-08-04 | 青海大学 | 云环境下科学工作流中的任务调度方案生成方法及装置 |
-
2019
- 2019-01-23 CN CN201910063111.XA patent/CN109918182B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201701A (zh) * | 2016-07-14 | 2016-12-07 | 扬州大学 | 一种带任务重复的工作流调度算法 |
CN106648846A (zh) * | 2016-09-23 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种改进的异构多核任务调度的方法 |
CN107015856A (zh) * | 2017-03-30 | 2017-08-04 | 青海大学 | 云环境下科学工作流中的任务调度方案生成方法及装置 |
Non-Patent Citations (1)
Title |
---|
马金全: "分层排序的列表任务调度技术的研究", 《通信学报》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021008259A1 (zh) * | 2019-07-15 | 2021-01-21 | 北京一流科技有限公司 | 用于异构架构的数据处理系统及其方法 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN111061547A (zh) * | 2019-10-24 | 2020-04-24 | 中国科学院计算技术研究所 | 一种异构系统的任务调度方法及系统 |
CN111061547B (zh) * | 2019-10-24 | 2023-04-11 | 中国科学院计算技术研究所 | 一种异构系统的任务调度方法及系统 |
CN111880911A (zh) * | 2020-06-19 | 2020-11-03 | 浪潮电子信息产业股份有限公司 | 一种任务负载调度方法、装置、设备及可读存储介质 |
CN113176933A (zh) * | 2021-04-08 | 2021-07-27 | 中山大学 | 面向海量工作流任务动态云网络互连方法 |
WO2023224547A3 (zh) * | 2022-05-16 | 2024-02-01 | 脸萌有限公司 | 数据处理方法、装置、设备及存储介质 |
CN117290104A (zh) * | 2023-09-28 | 2023-12-26 | 苏州麦杰工业大数据产业研究院有限公司 | 一种边缘计算方法、装置及设备 |
CN117290104B (zh) * | 2023-09-28 | 2024-05-31 | 苏州麦杰工业大数据产业研究院有限公司 | 一种边缘计算方法、装置及设备 |
CN117215802A (zh) * | 2023-11-07 | 2023-12-12 | 四川并济科技有限公司 | 一种针对虚拟化网络功能的gpu管理及调用方法 |
CN117215802B (zh) * | 2023-11-07 | 2024-02-09 | 四川并济科技有限公司 | 一种针对虚拟化网络功能的gpu管理及调用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109918182B (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918182B (zh) | 虚拟化技术下的多gpu任务调度方法 | |
Kang et al. | Lalarand: Flexible layer-by-layer cpu/gpu scheduling for real-time dnn tasks | |
CN110515739A (zh) | 深度学习神经网络模型负载计算方法、装置、设备及介质 | |
CN109522108B (zh) | 一种基于Kernel合并的GPU任务调度系统及方法 | |
CN111858066B (zh) | 气体动理论统一算法中的cpu+gpu异构并行优化方法 | |
CN105022670A (zh) | 一种云计算平台中的异构分布式任务处理系统及其处理方法 | |
CN103401939A (zh) | 一种采用混合调度策略的负载均衡方法 | |
CN113553103B (zh) | 基于cpu+gpu异构处理平台的多核并行调度方法 | |
CN116263701A (zh) | 算力网络任务调度方法、装置、计算机设备及存储介质 | |
Huang et al. | Novel heuristic speculative execution strategies in heterogeneous distributed environments | |
CN105373432A (zh) | 一种基于虚拟资源状态预测的云计算资源调度方法 | |
CN114217966A (zh) | 基于资源调整的深度学习模型动态批处理调度方法和系统 | |
CN110503195A (zh) | 利用人工智能处理器执行任务的方法及其相关产品 | |
CN113886080A (zh) | 高性能集群任务调度方法、装置、电子设备及存储介质 | |
CN110503199A (zh) | 运算节点的拆分方法和装置、电子设备和存储介质 | |
Özden et al. | ElastiSim: a batch-system simulator for malleable workloads | |
CN110275765B (zh) | 基于分支dag依赖的数据并行作业调度方法 | |
Yao et al. | A communication-aware and predictive list scheduling algorithm for network-on-chip based heterogeneous muti-processor system-on-chip | |
CN112051981B (zh) | 一种数据流水线计算路径结构及单线程数据流水线系统 | |
CN107329826A (zh) | 一种基于Cloudsim平台上的启发式融合资源动态调度算法 | |
CN116680063B (zh) | 任务调度方法、装置、计算系统、电子设备和存储介质 | |
CN104346220A (zh) | 一种任务调度方法与系统 | |
Duan et al. | Reducing makespans of DAG scheduling through interleaving overlapping resource utilization | |
CN111090613B (zh) | 一种基于图分割的低复杂度软硬件划分与调度方法 | |
WO2023207630A1 (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201215 Termination date: 20220123 |