CN111061547A - 一种异构系统的任务调度方法及系统 - Google Patents
一种异构系统的任务调度方法及系统 Download PDFInfo
- Publication number
- CN111061547A CN111061547A CN201911018917.3A CN201911018917A CN111061547A CN 111061547 A CN111061547 A CN 111061547A CN 201911018917 A CN201911018917 A CN 201911018917A CN 111061547 A CN111061547 A CN 111061547A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- accelerator
- scheduled
- calculation
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种异构系统的任务调度方法及系统,包括:获取包含中央处理器和多个加速器核心的异构系统,其中中央处理器通过高速互联接口与每个加速器相连,向加速器核心依次注入预设数据量的测试任务,得到每个加速器的计算执行能力,并将测试任务通过高速互联接口依次发送到加速器核心,得到数据量与带宽需求间的定量关系;获取多个待调度任务,根据每个待调度任务的复杂度和计算执行能力,为每一个待调度任务分配对应的加速器核心,并根据每个待调度任务的数据量和定量关系,对多个待调度任务的传输顺序进行排序,通过高速互联接口传输到对应的加速器核心。本发明通过优化已调度好一组计算任务通过PCIe进行顺序传输过程,从而达到提升系统吞吐率。
Description
技术领域
本发明涉及异构系统的任务调度领域,并特别涉及一种基于高速互联的异构系统的任务调度方法及系统。
背景技术
随着领域专用加速器的广泛应用,例如:专用于处理图像和视频数据的GPU,加速数据库查询的FPGA,加速深度学习算法的专用芯片TPU等,基于CPU-加速器架构的异构系统提供了强大的计算能力,在越来越多的应用领域中发挥着重要作用。为提升加速器的可移植性,扩大应用范围,加速器与CPU之间的互联主要是依靠标准高速互联接口,如PCIe(PCI-Express,peripheral component interconnect express)。如何充分高效利用异构系统的计算资源,充分发挥异构系统的优势,使得任务的执行时间最短,或异构系统的吞吐量最大,是一个十分重要的研究内容。
现有的异构系统任务调度方法多考虑计算任务特征和计算节点的性能,提出一种资源与任务适配的调度方法,即复杂计算交给高配置的计算单元,简单计算交给低配置的计算单元,调度的目的是满足负载均衡;或考虑任务间的计算冲突和数据依赖关系对一组计算任务进行合理的划分,从而提升任务间的并行性。这些方法能够有效的均衡异构系统的资源使用,提升计算资源的利用效率,从而提高计算任务的执行效率,缩小计算任务的总执行时间。
计算单元是加速器内负责实际运算功能的结构单元,一个加速器中通常包括几个甚至十几个、几十个计算单元。且这些计算单元通常是异构的,也就是说不同的计算单元会负责不同的计算任务。异构系统指的是由CPU和加速器组成的计算系统,可能由一个CPU连接一个或几个加速器构成。异构系统中的CPU也会处理一些计算,但是只会进行加速器不支持的计算。此外,CPU会进行对计算任务的调度,即包括将任务分配到加速器前的调度过程,以及最终计算结果的综合。
上述调度方法的问题是,仅考虑了计算资源和设备的能力,而忽略了在实际异构系统中其他物理因素的限制。其中一种物理限制是连接异构系统的设备间的高速互联接口的有限的带宽资源。当任务在异构系统中通过这一类高速互联接口进行传输时,由于有限的带宽资源会导致带宽冲突。即,当任务调度决策执行结束得到一个最优的调度执行方案时,数据和计算任务需要通过高速互联接口从CPU传输到加速器执行。然而,由于实际带宽的限制,数据的传输往往是很耗时的。子任务的传递次序的不同,会显著的影响加速器的启动时间和利用效率。假设一个大数据量的计算任务首先被传递,那么它将会在较长一段时间内占用带宽资源,从而阻塞后续任务的传递,使得加速器设备需要在该任务的数据全部传输完成后,才能开始执行计算,造成了一定的资源浪费。
发明内容
本发明的目的是解决上述现有技术的对带宽资源利用不合理的问题,提出了一种基于高速互联的异构系统的任务调度方法。本发明与其他调度方法是正交的,即在其他调度方法保证任务的最优分配策略的情况下,可以应用本发明优化任务和数据在异构系统的高速互联中的传输,从而缓解带宽冲突。
具体来说,本发明提出一种异构系统的任务调度方法,其中包括:
步骤1、获取包含中央处理器和多个加速器核心的异构系统,其中该中央处理器通过高速互联接口与每个加速器相连,向该加速器核心依次注入预设数据量的测试任务,得到每个加速器的计算执行能力,并将该测试任务通过该高速互联接口依次发送到该加速器核心,得到数据量与带宽需求间的定量关系;
步骤2、获取多个待调度任务,根据每个待调度任务的复杂度和该计算执行能力,为每一个该待调度任务分配对应的加速器核心,并根据每个待调度任务的数据量和该定量关系,对该多个待调度任务的传输顺序进行排序,通过该高速互联接口传输到对应的加速器核心。
所述的异构系统的任务调度方法,其中该异构系统是基于高速互联接口的CPU-加速器架构的异构系统,该高速互联接口是PCIe接口,该加速器核心是GPU、FPGA或专用加速芯片。
所述的异构系统的任务调度方法,其中该步骤1包括:
步骤11、设置不同数据量的不同操作任务,作为离线测试的测试任务;
步骤12、按照加速器核心的实际功能结构,通过C语言或其他高层编程语言实现加速器的模拟器;
步骤13、将离线的测试任务依次加载到该模拟器,记录各计算任务的执行时间;
步骤14、将离线的测试任务通过该高速互联接口按照直接存储器存取的方式依次发送到加速器端,实测在实际异构系统的传输过程,记录不同数据量的带宽需求;
步骤15、根据该带宽需求,拟合得到数据量与计算任务之间的计算执行能力,以及数据量与带宽需求之间的定量关系。
所述的异构系统的任务调度方法,其中该步骤2包括:
步骤21、在该待调度任务代码中进行插桩,获取数据传输和计算任务部署的语句中的传输数据量;
步骤22、根据离线系统分析所得的该定量关系和该计算执行能力,得到该待调度任务的执行时间和带宽需求;
步骤23、判断该多个待调度任务中是否存在实时性要求严格的计算任务,若是,则对于这部分任务赋予其高的执行和传输的优先级,否则对于剩下的一部分计算任务,按照计算任务执行时间与带宽需求之间的关系进行排序。
所述的异构系统的任务调度方法,其中该步骤2中对该多个待调度任务的传输顺序进行排序的依据是带宽需求的升序,或总执行时间降序,或是带宽需求和执行时间之间的比例关系。
本发明还提出了一种异构系统的任务调度系统,其中包括:
模块1、获取包含中央处理器和多个加速器核心的异构系统,其中该中央处理器通过高速互联接口与每个加速器相连,向该加速器核心依次注入预设数据量的测试任务,得到每个加速器的计算执行能力,并将该测试任务通过该高速互联接口依次发送到该加速器核心,得到数据量与带宽需求间的定量关系;
模块2、获取多个待调度任务,根据每个待调度任务的复杂度和该计算执行能力,为每一个该待调度任务分配对应的加速器核心,并根据每个待调度任务的数据量和该定量关系,对该多个待调度任务的传输顺序进行排序,通过该高速互联接口传输到对应的加速器核心。
所述的异构系统的任务调度系统,其中该异构系统是基于高速互联接口的CPU-加速器架构的异构系统,该高速互联接口是PCIe接口,该加速器核心是GPU、FPGA或专用加速芯片。
所述的异构系统的任务调度系统,其中该模块1包括:
模块11、设置不同数据量的不同操作任务,作为离线测试的测试任务;
模块12、按照加速器核心的实际功能结构,通过C语言或其他高层编程语言实现加速器的模拟器;
模块13、将离线的测试任务依次加载到该模拟器,记录各计算任务的执行时间;
模块14、将离线的测试任务通过该高速互联接口按照直接存储器存取的方式依次发送到加速器端,实测在实际异构系统的传输过程,记录不同数据量的带宽需求;
模块15、根据该带宽需求,拟合得到数据量与计算任务之间的计算执行能力,以及数据量与带宽需求之间的定量关系。
所述的异构系统的任务调度系统,其中该模块2包括:
模块21、在该待调度任务代码中进行插桩,获取数据传输和计算任务部署的语句中的传输数据量;
模块22、根据离线系统分析所得的该定量关系和该计算执行能力,得到该待调度任务的执行时间和带宽需求;
模块23、判断该多个待调度任务中是否存在实时性要求严格的计算任务,若是,则对于这部分任务赋予其高的执行和传输的优先级,否则对于剩下的一部分计算任务,按照计算任务执行时间与带宽需求之间的关系进行排序。
所述的异构系统的任务调度系统,其中该模块2中对该多个待调度任务的传输顺序进行排序的依据是带宽需求的升序,或总执行时间降序,或是带宽需求和执行时间之间的比例关系。
由以上方案可知,本发明的优点在于:
本发明是一种与其他任务调度方法没有冲突的互补的方法,与其他任务调度方法是正交的。与现有技术相比,本发明的在保证任务执行时的负载均衡或并行性等优化效果,并且能够通过进一步的调度,使得计算任务在异构系统间传输时消除带宽冲突带来的性能损失。通过合理的调度,使得计算任务能够尽早且高效的传输到加速器,并启动执行,提高异构系统吞吐量。
附图说明
图1为本发明的结构示意图;
图2为本发明实施例提供的离线系统分析的方法流程图;
图3为本发明实施例提供的几种可能的量化关系拟合示意图;
图4为本发明实施例提供的在线任务调度的方法流程图;
图5为本发明实施例提供的一种调度策略流程图;
图6为本发明实施例提供的另一种调度策略流程图;
图7为本发明实施例提供的另一种调度策略流程图;
图8为本发明调度装置的框图;
图9为本发明实施例对小数据包任务分组打包的方法流程图;
图10为本发明实施例对大数据包任务拆分的一种方法流程图;
图11为本发明实施例对大数据包任务拆分的另一种方法流程图;
图12为本发明实施例提供的一种调度策略流程图。
具体实施方式
现有技术中的缺陷是由于对异构系统中高速互联带宽资源的不合理利用导致的。异构系统的任务调度往往仅考虑加速器从设备的计算能力,而忽略了带宽资源的限制。通常是由于,大多数调度方法都假设带宽资源足以支持加速器从设备的计算数据需求。解决该项缺陷可以通过一种与现有的任务调度正交的优化调度方法来实现,即在现有的调度方法基础上,可以进一步优化已调度好一组计算任务通过PCIe进行顺序传输过程,从而达到提升系统吞吐率,提高系统利用效率的的技术效果。
本发明提供了一种任务调度方法,包括:
步骤1,异构系统的离线建模分析。测量数据通过PCIe接口传输的时间和数据量大小,计算得到异构系统的带宽特征。通过编写软件实现的加速器模拟器,手动注入不同规模的计算任务,利用模拟器的模拟实验得到加速器的计算执行能力。此步骤1的离线建模分析,是将一些不同规模的计算任务作为分析的原始输入。这些计算任务是注入到CPU端,并通过现有的调度策略,通过CPU进行调度。
其中,所述的异构系统是基于高速互联接口的CPU-加速器架构的异构系统。所述的高速互联接口是异构系统中通用的PCIe接口。所述的加速器可以是GPU、FPGA,也可以是其他专用的加速芯片。所述的加速器模拟器是通过C语言或其他高层语言编程实现的,具体的模拟器参数配置根据加速器的实际结构决定。
进一步的,所述步骤1包含的子操作如下:
步骤11,设置不同数据量的不同操作任务,作为离线测试的任务样本。
步骤12,按照加速器的实际功能结构,通过C语言或其他高层编程语言实现加速器的模拟器。
步骤13,将离线的测试样本依次加载到加速器模拟器,记录不同数据量下不同计算任务的执行时间。执行时间通常以时钟周期数统计。
步骤14,将离线的测试样本通过高速互联接口按照直接存储器存取(directmemory access,DMA)的方式依次发送到加速器端,实测在实际异构系统的传输过程,记录不同数据量的带宽需求。记录任务的带宽需求的过程:统计注入的计算任务的实际传输数据量的大小,在这里可以认为数据量的大小反应计算任务的带宽需求。数据:
传输时间=(传输的数据量+数据包报头)/实际带宽。
步骤15,分别拟合得到的数据量与计算任务之间的定量关系,以及数据量与带宽需求之间的定量关系。该定量关系可能是线性关系、二次曲线、阶梯函数或者常熟关系等。
步骤2,在线任务调度决策。根据获取的计算任务的特征,按照高带宽需求优先或长的总执行时间优先的原则,对任务传输进行重排序,通过高速互联接口传输到加速器。具体的,按照计算任务执行时间与带宽需求之间的关系,对这一批计算任务进行重排序。排序的依据可以是,带宽需求的升序,也可以是总执行时间降序,或者可以是带宽需求和执行时间之间的比例关系,即平均单位执行时间内的带宽需求,或其他与带宽需求相关的排序标准。
其中,所述的任务特征是指通过异构系统编程语言的数据传输指令获取计算任务的数据量大小特征,以及根据步骤1中模拟器得到的计算执行时间和数据量之间的关系,得到相应的执行时间特征。所述的异构系统编程语言可以是异构系统通用的OpenCL,或者面向GPU的CUDA等异构编程语言。
进一步的,所述步骤2具体操作如下:
步骤21,获取一批待调度的任务,在代码中进行插桩,获取数据传输和计算任务部署的语句中的传输数据量大小。
步骤22,根据离线系统分析所得的量化关系,得到某数据量下特定计算任务的执行时间和带宽需求。
步骤23,对给定的一组任务,判定其中是否有实时性要求严格的计算任务,对于这部分任务赋予其高的执行和传输的优先级。
步骤24,剩下的一部分计算任务,即没有实时性要求的计算任务,按照计算任务执行时间与带宽需求之间的关系,对这一批计算任务进行重排序。排序的依据可以是,带宽需求的升序,也可以是总执行时间降序,或者可以是带宽需求和执行时间之间的比例关系,即平均单位执行时间内的带宽需求,或其他与带宽需求相关的排序标准。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
本发明所要解决的技术问题是根据实际测量数据传输的带宽利用率的变化,提出一种优化调度策略以充分利用有限的互联带宽资源。面向的平台是基于PCIe高速互联接口的异构计算系统,如图1所示。异构系统是基于高速互联接口的CPU-加速器架构的异构系统。所述的高速互联接口是异构系统中通用的PCIe接口。所述的加速器可以是GPU、FPGA,也可以是其他专用的加速芯片。
本发明提供了一种离线的任务分析方法,如图2所示,包括以下步骤:
步骤11,设置不同数据量的不同操作任务,作为离线测试的任务样本。
步骤12,按照加速器的实际功能结构,通过C语言或其他高层编程语言实现加速器的模拟器。
步骤13,将离线的测试样本依次加载到加速器模拟器,记录不同数据量下不同计算任务的执行时间。执行时间通常以时钟周期数统计。
步骤14,将离线的测试样本通过高速互联接口按照成组数据传送方式(directmemory access,DMA)依次发送到加速器端,实测在实际异构系统的传输过程,记录不同数据量的带宽需求。
步骤15,分别拟合得到的数据量与计算任务之间的定量关系,以及数据量与带宽需求之间的定量关系。该定量关系可能是线性关系、二次曲线、阶梯函数或者常熟关系,如图3所示。
本发明在一个实施例中,提供了一种在线的任务调度方法,如图4所示,包括以下步骤:
步骤21,获取一批待调度的任务,这一批任务时通过异构系统编程语言编写的,可以是异构系统通用的OpenCL,或者面向GPU的CUDA等异构编程语言。在该代码中进行插桩,获取数据传输和计算任务部署的语句中的传输数据量大小。
步骤22,按照离线系统分析所得的量化关系,用获取数据传输和计算任务部署的语句中的传输数据量大小,计算得到某数据量下特定计算任务的执行时间和带宽需求。
步骤23,对给定的一组任务,判定其中是否有实时性要求严格的计算任务,对于这部分任务赋予其高的执行和传输的优先级。
步骤24,对于剩下的一部分计算任务,即没有实时性要求的计算任务,按照计算任务执行时间与带宽需求之间的关系,对这一批计算任务进行重排序。
本发明的一种实施例的计算任务调度方法的排序的依据是按照计算任务的带宽需求升序排列,如图5所示。计算任务的带宽需求是通过步骤23中获取的计算任务的数据量大小计算所得。
本发明的一种实施例的计算任务调度方法的排序的依据是按照计算任务的执行时间降序排列,如图6所示。计算任务的执行时间是通过步骤23中获取的计算任务的执行时间与数据传输时间的求和。其中,数据的传输时间可以通过数据传输的带宽需求与实际带宽之间的比值计算所得。
本发明的一种实施例的计算任务调度方法的排序的依据是按照计算任务的带宽需求与执行时间之间的比值升序排列,如图7所示。计算任务的执行时间是通过步骤23中获取的计算任务的执行时间与数据传输时间的求和。其中,数据的传输时间可以通过数据传输的带宽需求与实际带宽之间的比值计算所得。
本发明还通过对PCIe的实际测试,得到带宽资源利用率的实际性能,再根据该性能评估确定带宽充分利用时的数据包大小的阈值。依照该系统实测阈值进行任务的合离调度和划分,从而提升异构系统带宽利用率。
为实现上述目的,本发明基于一种任务调度装置,包括:
任务缓存池,用于缓存一组计算任务的信息,包括计算任务的优先级、传输数据量、计算时间等信息。任务属性的数据结构是一组结构体。任务缓存池的组织形式可能是一个链表,或一个查找表,或一个队列,或其他数据结构。
带宽累加器,用于统计计算任务的带宽累加情况。带宽累加器的组织形式是一个两输入的加法器。
阈值比较器,与带宽累加器共同作用,用于比较小数据包带宽累加值与阈值的大小关系。一个单独的阈值比较器,用于比较大数据包拆分后的最后一个残差数据包的带宽与严格阈值的大小关系。阈值比较器的组织形式是一个比较器。
其中任务缓存池1是包含一组由CPU主机产生的计算任务集合。任务缓存池1直接与一个带宽累加器2和一个阈值比较器4相连。其中带宽累加器2主要是用于对小数据包的累加;其中阈值比较器4主要处理对大数据包划分时的阈值比较。此外,阈值比较器4由于可能会在划分时拆分得到一个残差数据包,因此该比较器的输出还需要与带宽累加器2相连。带宽累加器2后序链接一个阈值比较器3,其中阈值比较器3是用于对累加的数据包大小与数据包阈值进行判断比较。阈值比较器3和阈值比较器4后序直接输出任务调度和划分结果。
本发明提出一种可以提升异构系统带宽利用率的方法,在流程上衔接上述步骤2,通过以下步骤将排好序的任务通过高速互联接口传输到加速器:
步骤S1,对于到来的一批计算任务进行排序,排序的依据是任务的执行优先级,其中,优先级的定义方式是计算任务自身属性。若无优先级需求,则不进行此步骤。计算任务的优先级可以认为是计算任务按照请求到来的先后次序排序,依次顺序执行。优先级还可以通过计算任务的响应需求时间排序,或其他优先级的定义方式。计算任务的属性信息包括计算任务的优先级、传输数据量、计算时间等,在任务缓存池中暂存。
其中,对计算任务的排序方法,依照任务缓存池的数据结构而定,例如对链表的插入和删除,查找表的插入和删除,或队列的操作。
步骤S2,对于小数据包的数据,按照排好序的任务顺序依次在带宽累加器2中累加,直到阈值比较器3判断累加的数据包大小恰好达到或者超过严格阈值,得到调度结果,将这一批数据打包发送到加速器从设备。
步骤S3,对于大数据包的数据拆分和调度。按照排好序的任务顺序依次在阈值比较器4中通过与阈值的比较进行任务的拆分。得到调度结果,将这一批数据依次拆分打包,发送到加速器从设备。
拆分和调度可以按照步骤3a严格阈值拆分,子数据包=大数据包/严格阈值。还可以按照步骤3b放松阈值对大数据包拆分拆分,子数据包=大数据包/放松阈值。
步骤3a严格阈值拆分过程包括如下子步骤:
按照“子数据包=大数据包/严格阈值”拆分数据包。拆分后,可以得到一组子任务集合{n个大小相同的子数据包,第n+1个残差数据包}。大小相同的n个数据包直接发送到加速器从设备;第n+1个残差数据包按照小数据包的方式进行处理。
步骤3b放松阈值的拆分过程包括如下子步骤:
步骤3b1,依次增加放松阈值64MB。
步骤3b2,判断增加的放松阈值是否小于512MB。若小于,则执行计算拆分数据包大小“子数据包=大数据包/放松阈值”。若增加的放松阈值大于512MB,则执行步骤3b5。
步骤3b3,判定拆分后的子数据包大小是否满足判定准则:对于第n+1个残差数据包有如下要求,使得拆分后的残差数据包,即mod(大数据包/放松阈值)的大小低于阈值的一半。
步骤3b4,满足判定准则,则拆分后,将大小相同的数据包直接发送到加速器从设备;最后的残差数据包直接与第n个数据包合并发送到加速器从设备。不满足判定准则,则返回执行步骤3b1。
步骤3b5,始终不满足判定准则,则按照严格阈值拆分方法,此时的严格阈值设定为当前最大放松阈值。
上述步骤可以按照实际应用场景的不同需求进行组合。在一个实施例中,即实际应用中存在计算优先级的需求时,则执行步骤1,步骤2和步骤3。在另一个实施例中,即无计算优先级的需求,可以仅执行步骤2和步骤3。在另一个实施例中,即无计算优先级的需求,且计算任务的组合中含有小数据包,可以仅执行步骤2。在另一个实施例中,即无计算优先级的需求,且计算任务的组合中含有大数据包,可以仅执行步骤3,是否执行步骤2需要根据拆分后残差数据包的大小结果判定。
其中,所述的小数据量指大小低于带宽满负载的数据包大小阈值的数据包,所述的大数据量指大小高于带宽满负载的数据包大小阈值的数据包。所述的阈值,即通过实际系统实测所得的带宽资源被充分利用的数据包大小的最小值,根据其中一个具体的实施例,PCIe带宽充分利用的数据包大小阈值实测为1024MB。在其他实施例中,PCIe带宽充分利用的数据包大小阈值与实际系统中的实验测试所得结果一致。所述的阈值拆分标准,是指按照严格阈值,或者可以按照稍大于阈值的某一个值的拆分标准对数据包进行拆分,例如根据其中一个具体的实施例,放松阈值标准可以设定为1024MB+64MB。根据其它的具体实施例,放松阈值标准还可以设定为1024MB+128MB或累加直至1024MB+512MB。以上实例解决方法取决于应用场景的实际需求。
本发明还根据实际测量数据传输的带宽利用率的变化,提出一种优化调度策略以充分利用有限的互联带宽资源。面向的平台是基于PCIe高速互联接口的异构计算系统,如图8所示。
本发明还包括一种充分利用有限的互联带宽资源的优化调度策略的装置,如图8所示。包括1计算任务资源池,用于缓存一组计算任务的信息,包括计算任务的优先级、传输数据量、计算时间等;带宽累加器2,用于小数据包的带宽需求的累加,统计带宽累加情况。阈值比较器3,与带宽累加器2共同作用,用于比较小数据包带宽累加值与阈值的大小关系,当累加带宽超过阈值,则将这一组小数据包打包发送到加速器从设备。一个单独的阈值比较器4,用于比较大数据包放松阈值拆分后的最后一个残差数据包的带宽与严格阈值的大小关系。输出的结果可直接按照拆分规则获得数据包拆分和发送的调度结果,也可以按照拆分规则将残差数据包发送到小数据包的带宽累加器中进行累加。
其中,任务的数据结构是一个结构体。缓存池的组织形式可能是一个链表,或一个查找表,或一个队列,或其他数据结构。带宽累加器的组织形式是一个两输入的加法器。阈值比较器的组织形式是一个比较器。
其中,任务缓存池1是包含一组由CPU主机产生的计算任务集合。任务缓存池1直接与一个带宽累加器2和一个阈值比较器4相连。其中带宽累加器2主要是用于对小数据包的累加;其中阈值比较器4主要处理对大数据包划分时的阈值比较。此外,阈值比较器4由于可能会在划分时拆分得到一个残差数据包,因此该比较器的输出还需要与带宽累加器2相连。带宽累加器2后序链接一个阈值比较器3,其中阈值比较器3是用于对累加的数据包大小与数据包阈值进行判断比较。阈值比较器3和阈值比较器4后序直接输出任务调度和划分结果。
本发明的一种实施例是针对仅包含小数据包的计算任务的调度方法,如图9所示。步骤2,对于小数据包的数据,按照排好序的任务顺序依次在带宽累加器2中累加,直到阈值比较器3判断累加的数据包大小恰好达到或者超过严格阈值,得到调度结果,将这一批数据打包发送到加速器从设备。
本发明的另一种实施例是针对仅包含大数据包的计算任务的调度方法,一种方法是对于大数据包的数据可以按照步骤3a严格阈值拆分,如图10所示。得到的子数据包大小为:子数据包=大数据包/严格阈值,拆分后得到一组子任务集合{n个大小相同的子数据包,第n+1个残差数据包}。其中,大小相同的n个数据包直接发送到加速器从设备;第n+1个残差数据包重新统计信息,放入任务缓存池中按照小数据包的方式进行处理。
本发明的另一种实施例是针对仅包含大数据包的计算任务的调度方法,另一种方法是对于大数据包的数据可以按照步骤3b放松阈值拆分,如图11所示。得到的子数据包大小为:子数据包=大数据包/放松阈值,放松阈值的拆分过程包括如下子步骤:
步骤3b1,依次增加放松阈值64MB。
步骤3b2,判断增加的放松阈值是否小于512MB。若小于,则执行步骤3b3。若增加的放松阈值大于512MB,则执行步骤3b5。
步骤3b3,判定拆分后的子数据包大小是否满足判定准则:对于第n+1个残差数据包有如下要求,使得拆分后的残差数据包,即mod(大数据包/放松阈值)的大小低于阈值的一半。
步骤3b4,满足判定准则,则拆分后,将大小相同的数据包直接发送到加速器从设备;最后的残差数据包直接与第n个数据包合并发送到加速器从设备。不满足判定准则,则返回执行步骤3b1。
步骤3b5,始终不满足判定准则,则按照严格阈值拆分方法,此时的严格阈值设定为当前最大放松阈值。
本发明的一种实施例可参照图12。对所有计算缓存池中的计算任务进行排序,排序的原则按照计算任务的优先级特征为依据。计算任务的优先级可以认为是计算任务按照请求到来的先后次序排序,依次顺序执行。优先级还可以通过计算任务的响应需求时间排序,或其他依据任务属性计算组合而得到的用户自定义的计算任务的优先级。其中,对计算任务的排序方法,依照任务缓存池的数据结构而定,例如对链表的插入和删除,查找表的插入和删除,或队列的操作。若计算任务本身没有优先级的属性需求,则按照任务请求时的先后顺序,依次调度。
在一个实施例中,即实际应用中存在计算优先级的需求时,则执行步骤1,步骤2和步骤3。在另一个实施例中,即无计算优先级的需求,可以仅执行步骤2和步骤3。在另一个实施例中,即无计算优先级的需求,且计算任务的组合中含有小数据包,可以仅执行步骤2。在另一个实施例中,即无计算优先级的需求,且计算任务的组合中含有大数据包,可以仅执行步骤3,是否执行步骤2需要根据拆分后残差数据包的大小结果判定。
其中,所述的小数据量指大小低于带宽满负载的数据包大小阈值的数据包,所述的大数据量指大小高于带宽满负载的数据包大小阈值的数据包。所述的阈值,即通过实际系统实测所得的带宽资源被充分利用的数据包大小的最小值,根据其中一个具体的实施例,PCIe带宽充分利用的数据包大小阈值实测为1024MB。在其他实施例中,PCIe带宽充分利用的数据包大小阈值与实际系统中的实验测试所得结果一致。所述的阈值拆分标准,是指按照严格阈值,或者可以按照稍大于阈值的某一个值的拆分标准对数据包进行拆分,例如根据其中一个具体的实施例,放松阈值标准可以设定为1024MB+64MB。根据其它的具体实施例,放松阈值标准还可以设定为1024MB+128MB或累加直至1024MB+512MB。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提出了一种异构系统的任务调度系统,其中包括:
模块1、获取包含中央处理器和多个加速器核心的异构系统,其中该中央处理器通过高速互联接口与每个加速器相连,向该加速器核心依次注入预设数据量的测试任务,得到每个加速器的计算执行能力,并将该测试任务通过该高速互联接口依次发送到该加速器核心,得到数据量与带宽需求间的定量关系;
模块2、获取多个待调度任务,根据每个待调度任务的复杂度和该计算执行能力,为每一个该待调度任务分配对应的加速器核心,并根据每个待调度任务的数据量和该定量关系,对该多个待调度任务的传输顺序进行排序,通过该高速互联接口传输到对应的加速器核心。
所述的异构系统的任务调度系统,其中该异构系统是基于高速互联接口的CPU-加速器架构的异构系统,该高速互联接口是PCIe接口,该加速器核心是GPU、FPGA或专用加速芯片。
所述的异构系统的任务调度系统,其中该模块1包括:
模块11、设置不同数据量的不同操作任务,作为离线测试的测试任务;
模块12、按照加速器核心的实际功能结构,通过C语言或其他高层编程语言实现加速器的模拟器;
模块13、将离线的测试任务依次加载到该模拟器,记录各计算任务的执行时间;
模块14、将离线的测试任务通过该高速互联接口按照直接存储器存取的方式依次发送到加速器端,实测在实际异构系统的传输过程,记录不同数据量的带宽需求;
模块15、根据该带宽需求,拟合得到数据量与计算任务之间的计算执行能力,以及数据量与带宽需求之间的定量关系。
所述的异构系统的任务调度系统,其中该模块2包括:
模块21、在该待调度任务代码中进行插桩,获取数据传输和计算任务部署的语句中的传输数据量;
模块22、根据离线系统分析所得的该定量关系和该计算执行能力,得到该待调度任务的执行时间和带宽需求;
模块23、判断该多个待调度任务中是否存在实时性要求严格的计算任务,若是,则对于这部分任务赋予其高的执行和传输的优先级,否则对于剩下的一部分计算任务,按照计算任务执行时间与带宽需求之间的关系进行排序。
所述的异构系统的任务调度系统,其中该模块2中对该多个待调度任务的传输顺序进行排序的依据是带宽需求的升序,或总执行时间降序,或是带宽需求和执行时间之间的比例关系。
Claims (10)
1.一种异构系统的任务调度方法,其特征在于,包括:
步骤1、获取包含中央处理器和多个加速器核心的异构系统,其中该中央处理器通过高速互联接口与每个加速器相连,向该加速器核心依次注入预设数据量的测试任务,得到每个加速器的计算执行能力,并将该测试任务通过该高速互联接口依次发送到该加速器核心,得到数据量与带宽需求间的定量关系;
步骤2、获取多个待调度任务,根据每个待调度任务的复杂度和该计算执行能力,为每一个该待调度任务分配对应的加速器核心,并根据每个待调度任务的数据量和该定量关系,对该多个待调度任务的传输顺序进行排序,通过该高速互联接口传输到对应的加速器核心。
2.如权利要求1所述的异构系统的任务调度方法,其特征在于,该异构系统是基于高速互联接口的CPU-加速器架构的异构系统,该高速互联接口是PCIe接口,该加速器核心是GPU、FPGA或专用加速芯片。
3.如权利要求1所述的异构系统的任务调度方法,其特征在于,该步骤1包括:
步骤11、设置不同数据量的不同操作任务,作为离线测试的测试任务;
步骤12、按照加速器核心的实际功能结构,通过C语言或其他高层编程语言实现加速器的模拟器;
步骤13、将离线的测试任务依次加载到该模拟器,记录各计算任务的执行时间;
步骤14、将离线的测试任务通过该高速互联接口按照直接存储器存取的方式依次发送到加速器端,实测在实际异构系统的传输过程,记录不同数据量的带宽需求;
步骤15、根据该带宽需求,拟合得到数据量与计算任务之间的计算执行能力,以及数据量与带宽需求之间的定量关系。
4.如权利要求1所述的异构系统的任务调度方法,其特征在于,该步骤2包括:
步骤21、在该待调度任务代码中进行插桩,获取数据传输和计算任务部署的语句中的传输数据量;
步骤22、根据离线系统分析所得的该定量关系和该计算执行能力,得到该待调度任务的执行时间和带宽需求;
步骤23、判断该多个待调度任务中是否存在实时性要求严格的计算任务,若是,则对于这部分任务赋予其高的执行和传输的优先级,否则对于剩下的一部分计算任务,按照计算任务执行时间与带宽需求之间的关系进行排序。
5.如权利要求1所述的异构系统的任务调度方法,其特征在于,该步骤2中对该多个待调度任务的传输顺序进行排序的依据是带宽需求的升序,或总执行时间降序,或是带宽需求和执行时间之间的比例关系。
6.一种异构系统的任务调度系统,其特征在于,包括:
模块1、获取包含中央处理器和多个加速器核心的异构系统,其中该中央处理器通过高速互联接口与每个加速器相连,向该加速器核心依次注入预设数据量的测试任务,得到每个加速器的计算执行能力,并将该测试任务通过该高速互联接口依次发送到该加速器核心,得到数据量与带宽需求间的定量关系;
模块2、获取多个待调度任务,根据每个待调度任务的复杂度和该计算执行能力,为每一个该待调度任务分配对应的加速器核心,并根据每个待调度任务的数据量和该定量关系,对该多个待调度任务的传输顺序进行排序,通过该高速互联接口传输到对应的加速器核心。
7.如权利要求6所述的异构系统的任务调度系统,其特征在于,该异构系统是基于高速互联接口的CPU-加速器架构的异构系统,该高速互联接口是PCIe接口,该加速器核心是GPU、FPGA或专用加速芯片。
8.如权利要求6所述的异构系统的任务调度系统,其特征在于,该模块1包括:
模块11、设置不同数据量的不同操作任务,作为离线测试的测试任务;
模块12、按照加速器核心的实际功能结构,通过C语言或其他高层编程语言实现加速器的模拟器;
模块13、将离线的测试任务依次加载到该模拟器,记录各计算任务的执行时间;
模块14、将离线的测试任务通过该高速互联接口按照直接存储器存取的方式依次发送到加速器端,实测在实际异构系统的传输过程,记录不同数据量的带宽需求;
模块15、根据该带宽需求,拟合得到数据量与计算任务之间的计算执行能力,以及数据量与带宽需求之间的定量关系。
9.如权利要求6所述的异构系统的任务调度系统,其特征在于,该模块2包括:
模块21、在该待调度任务代码中进行插桩,获取数据传输和计算任务部署的语句中的传输数据量;
模块22、根据离线系统分析所得的该定量关系和该计算执行能力,得到该待调度任务的执行时间和带宽需求;
模块23、判断该多个待调度任务中是否存在实时性要求严格的计算任务,若是,则对于这部分任务赋予其高的执行和传输的优先级,否则对于剩下的一部分计算任务,按照计算任务执行时间与带宽需求之间的关系进行排序。
10.如权利要求6所述的异构系统的任务调度系统,其特征在于,该模块2中对该多个待调度任务的传输顺序进行排序的依据是带宽需求的升序,或总执行时间降序,或是带宽需求和执行时间之间的比例关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911018917.3A CN111061547B (zh) | 2019-10-24 | 2019-10-24 | 一种异构系统的任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911018917.3A CN111061547B (zh) | 2019-10-24 | 2019-10-24 | 一种异构系统的任务调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111061547A true CN111061547A (zh) | 2020-04-24 |
CN111061547B CN111061547B (zh) | 2023-04-11 |
Family
ID=70297678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911018917.3A Active CN111061547B (zh) | 2019-10-24 | 2019-10-24 | 一种异构系统的任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111061547B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948124A (zh) * | 2021-03-26 | 2021-06-11 | 浪潮电子信息产业股份有限公司 | 一种加速任务处理方法、装置、设备及可读存储介质 |
WO2024028990A1 (ja) * | 2022-08-02 | 2024-02-08 | 日本電信電話株式会社 | アクセラレータ状態制御装置、アクセラレータ状態制御システム、アクセラレータ状態制御方法およびプログラム |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912390A (zh) * | 2016-04-07 | 2016-08-31 | 四川大学 | 云计算环境下基于模板的任务调度策略 |
CN105975434A (zh) * | 2016-04-29 | 2016-09-28 | 中国人民解放军国防科学技术大学 | 面向异构系统的数据传输优化方法 |
CN106227591A (zh) * | 2016-08-05 | 2016-12-14 | 中国科学院计算技术研究所 | 在异构多核片上系统上进行无线通信调度的方法和装置 |
CN107657599A (zh) * | 2017-08-07 | 2018-02-02 | 北京航空航天大学 | 基于混合粒度划分和动态负载分配的遥感图像融合系统并行实现方法 |
US20180191884A1 (en) * | 2016-12-30 | 2018-07-05 | Accenture Global Solutions Limited | Automated data collection and analytics |
CN109101339A (zh) * | 2018-08-15 | 2018-12-28 | 北京邮电大学 | 异构集群中视频任务并行化方法、装置及异构集群系统 |
US20190114202A1 (en) * | 2017-10-13 | 2019-04-18 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Task scheduling method and apparatus of artificial intelligence heterogeneous hardware, device and readable medium |
CN109684083A (zh) * | 2018-12-11 | 2019-04-26 | 北京工业大学 | 一种面向边缘-云异构下的多级事务调度分配策略 |
CN109918182A (zh) * | 2019-01-23 | 2019-06-21 | 中国人民解放军战略支援部队信息工程大学 | 虚拟化技术下的多gpu任务调度方法 |
CN110134636A (zh) * | 2018-02-09 | 2019-08-16 | 中兴通讯股份有限公司 | 模型训练方法、服务器和计算机可读存储介质 |
CN110262887A (zh) * | 2019-06-26 | 2019-09-20 | 北京邮电大学 | 基于特征识别的cpu-fpga任务调度方法及装置 |
-
2019
- 2019-10-24 CN CN201911018917.3A patent/CN111061547B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912390A (zh) * | 2016-04-07 | 2016-08-31 | 四川大学 | 云计算环境下基于模板的任务调度策略 |
CN105975434A (zh) * | 2016-04-29 | 2016-09-28 | 中国人民解放军国防科学技术大学 | 面向异构系统的数据传输优化方法 |
CN106227591A (zh) * | 2016-08-05 | 2016-12-14 | 中国科学院计算技术研究所 | 在异构多核片上系统上进行无线通信调度的方法和装置 |
US20180191884A1 (en) * | 2016-12-30 | 2018-07-05 | Accenture Global Solutions Limited | Automated data collection and analytics |
CN107657599A (zh) * | 2017-08-07 | 2018-02-02 | 北京航空航天大学 | 基于混合粒度划分和动态负载分配的遥感图像融合系统并行实现方法 |
US20190114202A1 (en) * | 2017-10-13 | 2019-04-18 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Task scheduling method and apparatus of artificial intelligence heterogeneous hardware, device and readable medium |
CN110134636A (zh) * | 2018-02-09 | 2019-08-16 | 中兴通讯股份有限公司 | 模型训练方法、服务器和计算机可读存储介质 |
CN109101339A (zh) * | 2018-08-15 | 2018-12-28 | 北京邮电大学 | 异构集群中视频任务并行化方法、装置及异构集群系统 |
CN109684083A (zh) * | 2018-12-11 | 2019-04-26 | 北京工业大学 | 一种面向边缘-云异构下的多级事务调度分配策略 |
CN109918182A (zh) * | 2019-01-23 | 2019-06-21 | 中国人民解放军战略支援部队信息工程大学 | 虚拟化技术下的多gpu任务调度方法 |
CN110262887A (zh) * | 2019-06-26 | 2019-09-20 | 北京邮电大学 | 基于特征识别的cpu-fpga任务调度方法及装置 |
Non-Patent Citations (3)
Title |
---|
JUN MA ET AL: ""An Analytical Framework for Estimating Scale-Out and Scale-Up Power Efficiency of Heterogeneous Manycores"", 《IEEE TRANSACTIONS ON COMPUTERS》 * |
李佳佳等: ""基于异构G PU集群的并行分布式编程解决方案"", 《计算机应用与软件》 * |
赵瑞姣等: ""基于异构多核系统的混合关键任务调度算法"", 《计算机工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948124A (zh) * | 2021-03-26 | 2021-06-11 | 浪潮电子信息产业股份有限公司 | 一种加速任务处理方法、装置、设备及可读存储介质 |
CN112948124B (zh) * | 2021-03-26 | 2023-09-22 | 浪潮电子信息产业股份有限公司 | 一种加速任务处理方法、装置、设备及可读存储介质 |
WO2024028990A1 (ja) * | 2022-08-02 | 2024-02-08 | 日本電信電話株式会社 | アクセラレータ状態制御装置、アクセラレータ状態制御システム、アクセラレータ状態制御方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN111061547B (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020206705A1 (zh) | 一种基于集群节点负载状态预测的作业调度方法 | |
CN105718479B (zh) | 跨idc大数据处理架构下执行策略生成方法、装置 | |
US8694644B2 (en) | Network-aware coordination of virtual machine migrations in enterprise data centers and clouds | |
US9378032B2 (en) | Information processing method, information processing apparatus, recording medium, and system | |
US8812639B2 (en) | Job managing device, job managing method and job managing program | |
CN111061547B (zh) | 一种异构系统的任务调度方法及系统 | |
CN109656723A (zh) | 容器资源调度方法及装置 | |
CN111752708A (zh) | 一种基于深度学习的存储系统自适应参数调优方法 | |
CN115269108A (zh) | 一种数据处理方法、装置及设备 | |
CN115237568A (zh) | 一种面向边缘异构设备的混合权重任务调度方法及系统 | |
CN115827250A (zh) | 一种数据存储方法、装置及设备 | |
US20230176905A1 (en) | Automatic driving simulation task scheduling method and apparatus, device, and readable medium | |
Syed | HAMM: A hybrid algorithm of Min-Min and Max-Min task scheduling algorithms in cloud computing | |
CN109857633B (zh) | 一种任务算力估计方法、装置和存储介质 | |
CN110958183B (zh) | 一种异构系统的带宽利用率提升方法及系统 | |
Shu-Jun et al. | Optimization and research of hadoop platform based on fifo scheduler | |
US8423975B1 (en) | System performance simulator | |
CN112214299A (zh) | 多核处理器及其任务调度方法和装置 | |
CN112148475B (zh) | 综合负载与功耗的龙芯大数据一体机任务调度方法及系统 | |
Dai et al. | Stabilizing queueing networks with setups | |
CN112256436B (zh) | 资源分配方法、装置、设备及计算机存储介质 | |
JP2023544911A (ja) | 並列量子コンピューティングのための方法及び装置 | |
US20220407821A1 (en) | Computer-readable recording medium storing data processing program, data processing method, and data processing system | |
CN113806044B (zh) | 一种用于计算机视觉应用的异构平台任务瓶颈消除方法 | |
CN109992383A (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 |