一种异构系统的任务调度方法及系统技术方案

技术编号:23932311 阅读:51 留言:0更新日期:2020-04-25 01:54
本发明专利技术提出一种异构系统的任务调度方法及系统,包括:获取包含中央处理器和多个加速器核心的异构系统,其中中央处理器通过高速互联接口与每个加速器相连,向加速器核心依次注入预设数据量的测试任务,得到每个加速器的计算执行能力,并将测试任务通过高速互联接口依次发送到加速器核心,得到数据量与带宽需求间的定量关系;获取多个待调度任务,根据每个待调度任务的复杂度和计算执行能力,为每一个待调度任务分配对应的加速器核心,并根据每个待调度任务的数据量和定量关系,对多个待调度任务的传输顺序进行排序,通过高速互联接口传输到对应的加速器核心。本发明专利技术通过优化已调度好一组计算任务通过PCIe进行顺序传输过程,从而达到提升系统吞吐率。

A task scheduling method and system for heterogeneous system

【技术实现步骤摘要】
一种异构系统的任务调度方法及系统
本专利技术涉及异构系统的任务调度领域,并特别涉及一种基于高速互联的异构系统的任务调度方法及系统。
技术介绍
随着领域专用加速器的广泛应用,例如:专用于处理图像和视频数据的GPU,加速数据库查询的FPGA,加速深度学习算法的专用芯片TPU等,基于CPU-加速器架构的异构系统提供了强大的计算能力,在越来越多的应用领域中发挥着重要作用。为提升加速器的可移植性,扩大应用范围,加速器与CPU之间的互联主要是依靠标准高速互联接口,如PCIe(PCI-Express,peripheralcomponentinterconnectexpress)。如何充分高效利用异构系统的计算资源,充分发挥异构系统的优势,使得任务的执行时间最短,或异构系统的吞吐量最大,是一个十分重要的研究内容。现有的异构系统任务调度方法多考虑计算任务特征和计算节点的性能,提出一种资源与任务适配的调度方法,即复杂计算交给高配置的计算单元,简单计算交给低配置的计算单元,调度的目的是满足负载均衡;或考虑任务间的计算冲突和数据依赖关系对一组计算任务进行合理的划分,从而提升任务间的并行性。这些方法能够有效的均衡异构系统的资源使用,提升计算资源的利用效率,从而提高计算任务的执行效率,缩小计算任务的总执行时间。计算单元是加速器内负责实际运算功能的结构单元,一个加速器中通常包括几个甚至十几个、几十个计算单元。且这些计算单元通常是异构的,也就是说不同的计算单元会负责不同的计算任务。异构系统指的是由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、在该待调度任务代码中进行插桩,获取数据传输和计算任务部署的语句中的传输数据量;模块2本文档来自技高网
...

【技术保护点】
1.一种异构系统的任务调度方法,其特征在于,包括:/n步骤1、获取包含中央处理器和多个加速器核心的异构系统,其中该中央处理器通过高速互联接口与每个加速器相连,向该加速器核心依次注入预设数据量的测试任务,得到每个加速器的计算执行能力,并将该测试任务通过该高速互联接口依次发送到该加速器核心,得到数据量与带宽需求间的定量关系;/n步骤2、获取多个待调度任务,根据每个待调度任务的复杂度和该计算执行能力,为每一个该待调度任务分配对应的加速器核心,并根据每个待调度任务的数据量和该定量关系,对该多个待调度任务的传输顺序进行排序,通过该高速互联接口传输到对应的加速器核心。/n

【技术特征摘要】
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中对该多个待调度任务的传输顺序进行排序的依据是带宽需求的升序,或总执行时间降序,或是带宽需求和执行时间之间的比例关系。

【专利技术属性】
技术研发人员:吴婧雅卢文岩鄢贵海李晓维
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1