书签 分享 收藏 举报 版权申诉 / 10

基于CPU和MIC协同计算的最短路径规划并行化方法.pdf

  • 上传人:a****
  • 文档编号:4684826
  • 上传时间:2018-10-27
  • 格式:PDF
  • 页数:10
  • 大小:1.14MB
  • 摘要
    申请专利号:

    CN201410466606.4

    申请日:

    2014.09.12

    公开号:

    CN104266657A

    公开日:

    2015.01.07

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G01C 21/34申请日:20140912|||公开

    IPC分类号:

    G01C21/34

    主分类号:

    G01C21/34

    申请人:

    海华电子企业(中国)有限公司; 西安邮电大学

    发明人:

    宋海娜; 华诚; 周晓辉; 刘逍; 江蓉; 周津羽; 范昭伦

    地址:

    510663 广东省广州市萝岗开发区科学城南翔二路23号

    优先权:

    专利代理机构:

    广州市华学知识产权代理有限公司 44245

    代理人:

    黄磊;李斌

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开了一种基于CPU和MIC协同计算的最短路径规划并行化方法,包括下述步骤:S1、全网节点最短路径规划并行化设计;S2、CPU与MIC控制线程,针对每一个计算设备创建一个pthread线程;S3、CPU与MIC之间任务包调度,采用动态的任务分发模式来分发CPU与MIC之间的任务包;S4、完成所有节点计算,控制线程退出。本发明充分利用了CPU与MIC协作的优势,同时利用CPU与MIC的多线程并行计算来加速大型路网的全网节点路径规划过程。同时本发明提出了CPU与MIC之间计算任务的动态分配方式,通过动态任务分配的方式,使相应的程序能最佳适应不同计算能力配比的CPU/MIC设备,使之能以最佳的比例分配计算任务,达到最佳协作的效率。

    权利要求书

    权利要求书
    1.  基于CPU和MIC协同计算的最短路径规划并行化方法,其特征在于,包括下述步骤:
    S1、全网节点最短路径规划并行化设计,在N个节点构成的路网图中,将每个节点相对全网其他节点基于Dijkstra算法的最短路径规划定义为一个不可再分的单元,每个单元任务的执行都通过一个线程去完成,N个节点构成的路网图就有N个单元任务需要完成;
    S2、CPU与MIC控制线程,针对每一个计算设备创建一个pthread线程,其中一个计算设备定义为节点内所有CPU硬件线程或是一块MIC卡;
    S3、CPU与MIC之间任务包调度,采用动态的任务分发模式来分发CPU与MIC之间的任务包;
    S4、完成所有节点计算,控制线程退出。

    2.  根据权利要求1所述的基于CPU和MIC协同计算的最短路径规划并行化方法,其特征在于,步骤S1中,不论是CPU线程还是MIC线程,都将K个单元任务合成一个任务包交给CPU或MIC执行,CPU每次捕获的任务大小定义为:P*K,其中P为CPU的硬件线程数目;MIC每次捕获的任务大小为:Q*K,其中Q为MIC的硬件线程数目。

    3.  根据权利要求1或2所述的基于CPU和MIC协同计算的最短路径规划并行化方法,其特征在于,步骤S1中,还包括读入路网的数据,将硬盘上的路网数据读入程序空间,同时将网络数据转成邻接表形式存储。

    4.  根据权利要求1所述的基于CPU和MIC协同计算的最短路径规划并行化方法,其特征在于,步骤S2中,若有N块MIC卡则创建N+1个pthread线程,0到N-1线程一一对应控制N块MIC设备的计算任务分发与回收,第N线程控制CPU计算任务分发与回收;在每个pthread线程内部使用OpenMP来多线程化,根据程序执行所在设备的不同分别调用CPU版或是MIC版的OpenMP动态链接库。

    5.  根据权利要求1所述的基于CPU和MIC协同计算的最短路径规划并行化方法,其特征在于,步骤S3中,利用全局变量g_num来表征所有单元任务的数目,设N个节点构成的路网,g_num初始化值就为N,每个计算设备的控制线程负责为其计算设备捕获计算任务,控制线程分为两类:MIC控制线程和CPU控制线程。

    6.  根据权利要求5所述的基于CPU和MIC协同计算的最短路径规划并行 化方法,其特征在于,控制线程对于计算任务的捕获通过加锁的方式实现:MIC线程每次加锁成功则截取Q*K大小的计算任务,全局变量g_num的相应自减Q*K的大小,CPU线程每次枷锁成功则截取P*K大小的任务,相应的g_num减去P*K;当g_num小于等于零时,两类控制线程退出,对于最后一次剩余任务书小于Q*K或是P*K时,相应线程没有计算任务的就空着运行,不执行实际有效的任务。

    7.  根据权利要求6所述的基于CPU和MIC协同计算的最短路径规划并行化方法,其特征在于,步骤S3中,动态的任务分发模式来分发CPU与MIC之间的任务包的具体方法为:任务调度是基于创建的控制线程来实现,并通过全局变量g_num来表征所要处理的资源数目,对于计算资源的动态分配通过互斥锁来完成,当某个MIC控制线程对于全局变量g_num加锁成功时,则会首先将g_num的值存到其局部资源变量中去,让后将g_num的值减去Q*K,最后解锁;当CPU控制线程加锁成功时,则会首先将g_num的值存到其局部资源变量中去,让后将g_num的值减去P*K,最后解锁。

    8.  根据权利要求1所述的基于CPU和MIC协同计算的最短路径规划并行化方法,其特征在于,还包括步骤S5:MIC数据输出的IO隐藏,设计输出数据的IO隐藏,通过设计了两个缓冲区:Buff1/Buff2来隐藏IO通信与计算,每台MIC计算设备都有自己对应的两个缓冲区。

    9.  根据权利要求8所述的基于CPU和MIC协同计算的最短路径规划并行化方法,其特征在于,在步骤S5中,对于MIC0设备而言,当其将计算结果向Buff1填充时,MIC0的控制线程则会将Buff2的数据从MIC1设备的自由内存中拷贝到CPU的内存中,同理当MIC0在写Buff2时,其控制线程就将Buff1中的数据拷贝到CPU的内存中。

    10.  根据权利要求9所述的基于CPU和MIC协同计算的最短路径规划并行化方法,其特征在于,设计了输出缓冲区数据向CPU端结果存储内存区域下传完成信号,MIC在准备向某个缓冲区写入数据时会检查其是否可写,若是没有下传完成事件信号,则MIC等待该缓冲区下传完成。

    说明书

    说明书基于CPU和MIC协同计算的最短路径规划并行化方法
    技术领域
    本发明涉及路径规划研究领域,特别涉及一种基于CPU和MIC协同计算的最短路径规划并行化方法。
    背景技术
    随着国内城市化的发展,城市道路纵横交错,路网也变得非常的复杂,对于在城市出行的人们来说,如何能快速获取路程起点和终点的最短路径成为其迫切的需求。同时由于通信技术、全球定位技术以及路网数据信息化的不断发展,为人们的出行电子化导航提供了基本的必要条件。目前地图导航行业使用的最短路径规划算法多是基于Dijkstra或是其改进版,相应的时间复杂度为O(N2)或者O(NlogN)。当规划的节点数N增长到成千上万时,同时还要相应有大量的路径规划请求,实时的线上规划变得不可实施了。所以一般最短路径规划多采用线下的规划预处理出所有节点之间的最短路径,当有用户请求时直接查询相应的最短路径。
    在线下最短路径预处理过程中,当路网数据之中新增或者删减一个节点或者一条线路时,都要重新计算全网的最短路径列表。以四维地图出品2013年的广州市地图为例,其路口数目达到了90000,道路数目达到了120000。根据我们实际测试每次更新全网节点的最小路径数据单线程计算大约需要5天的时间,同时对于该数量规模的全网节点之间的最短路径结果大小约为72GB。针对路径规划的时间效率的问题,王亚文等[一种动态搜索区域的最短路径规划算法,计算机应用研究,2007]从限制每次动态规划的区域入手,通过缩小路径规划的范围来实现。不过该种方法只能针对线上实时的路径规划实施。对于线下的全网路径规划,不能通过限制区域实现。同样刘晓军等(海量道路数据下的最短路径规划效率,计算机系统应用,2010)也是通过估价函数快速过滤无效点和路段,折线简化等方法来实现线上实时路径规划。根据专利文献检索,公开号为CN102175252 A的中国专利提出了基于分级道路网数据的分布式多级道路的动态联合路径规划方法。公开号为CN 103278168 A的中国专利提出了通过数据挖掘技术,利用新闻、微博、实时上报交通信息以及历史规律信息挖掘出交通热点, 进而执行交通热点规避的路径规划。公开号为CN 101944095 A的中国专利提出了一种优化的Dijkstra方法来实现简化相应的计算。综合上述资料,可以看出针对线下全网节点的路径规划并行计算方法尚未有相关资料公开,尤其是针对大型路网尚未有利用CPU和MIC协同计算的相关资料公开。
    MIC是由Intel公司于2012年12月发布的基于x86架构的协处理器,其由57~61颗物理处理核心构成,每个物理核心虚拟出4个硬件线程,卡载内存大小为6GB~8GB,双精度计算峰值计算能力达到1TFlops。其在并行计算方面相比CPU更有优势,根据公开号为CN 103018776 A的中国专利将MIC应用于地震成像领域,其在PSTM算法表现达到了相比单线程约76倍的加速比。公开号为CN 102930473 A的中国专利将MIC应用于期权的定价,针对倒向随机微分方程的求解,获得了19倍的加速比。综上成果,说明MIC在针对并行计算相比CPU而言拥有非常大的优势。同时其采用了与CPU相同的x86架构,相比GPU大大提升了编程的效率。同时MIC所支持的offload、native等工作模式也为高性能计算应用提供了一条更加方便的协处理器利用方式。
    发明内容
    本发明鉴于现有的最短路径规划线下预处理时间效率低,不能及时响应城市快速扩张以及城市交通意外等带来的路网链接规律的变化,同时对于大型路网来说全网节点之间的最短路径计算结果非常大,提出一种适用于大型路网的基于CPU和MIC协同计算的最短路径规划并行化方法。
    本发明的目的通过以下的技术方案实现:
    基于CPU和MIC协同计算的最短路径规划并行化方法,包括下述步骤:
    S1、全网节点最短路径规划并行化设计,在N个节点构成的路网图中,将每个节点相对全网其他节点基于Dijkstra算法的最短路径规划定义为一个不可再分的单元,每个单元任务的执行都通过一个线程去完成,N个节点构成的路网图就有N个单元任务需要完成;
    S2、CPU与MIC控制线程,针对每一个计算设备创建一个pthread线程,其中一个计算设备定义为节点内所有CPU硬件线程或是一块MIC卡;
    S3、CPU与MIC之间任务包调度,采用动态的任务分发模式来分发CPU与MIC之间的任务包;
    S4、完成所有节点计算,控制线程退出。
    优选的,步骤S1中,不论是CPU线程还是MIC线程,都将K个单元任务合成一个任务包交给CPU或MIC执行,CPU每次捕获的任务大小定义为:P*K,其中P为CPU的硬件线程数目;MIC每次捕获的任务大小为:Q*K,其中Q为MIC的硬件线程数目。
    优选的,步骤S1中,还包括读入路网的数据,将硬盘上的路网数据读入程序空间,同时将网络数据转成邻接表形式存储。
    优选的,步骤S2中,若有N块MIC卡则创建N+1个pthread线程,0到N-1线程一一对应控制N块MIC设备的计算任务分发与回收,第N线程控制CPU计算任务分发与回收;在每个pthread线程内部使用OpenMP来多线程化,根据程序执行所在设备的不同分别调用CPU版或是MIC版的OpenMP动态链接库。
    优选的,步骤S3中,利用全局变量g_num来表征所有单元任务的数目,设N个节点构成的路网,g_num初始化值就为N,每个计算设备的控制线程负责为其计算设备捕获计算任务,控制线程分为两类:MIC控制线程和CPU控制线程。
    优选的,控制线程对于计算任务的捕获通过加锁的方式实现:MIC线程每次加锁成功则截取Q*K大小的计算任务,全局变量g_num的相应自减Q*K的大小,CPU线程每次枷锁成功则截取P*K大小的任务,相应的g_num减去P*K;当g_num小于等于零时,两类控制线程退出,对于最后一次剩余任务书小于Q*K或是P*K时,相应线程没有计算任务的就空着运行,不执行实际有效的任务。
    优选的,步骤S3中,动态的任务分发模式来分发CPU与MIC之间的任务包的具体方法为:任务调度是基于创建的控制线程来实现,并通过全局变量g_num来表征所要处理的资源数目,对于计算资源的动态分配通过互斥锁来完成,当某个MIC控制线程对于全局变量g_num加锁成功时,则会首先将g_num的值存到其局部资源变量中去,让后将g_num的值减去Q*K,最后解锁;当CPU控制线程加锁成功时,则会首先将g_num的值存到其局部资源变量中去,让后将g_num的值减去P*K,最后解锁。
    优选的,还包括步骤S5:MIC数据输出的IO隐藏,设计输出数据的IO隐藏,通过设计了两个缓冲区:Buff1/Buff2来隐藏IO通信与计算,每台MIC计算设备都有自己对应的两个缓冲区。
    优选的,在步骤S5中,对于MIC0设备而言,当其将计算结果向Buff1填 充时,MIC0的控制线程则会将Buff2的数据从MIC1设备的自由内存中拷贝到CPU的内存中,同理当MIC0在写Buff2时,其控制线程就将Buff1中的数据拷贝到CPU的内存中。
    优选的,设计了输出缓冲区数据向CPU端结果存储内存区域下传完成信号,MIC在准备向某个缓冲区写入数据时会检查其是否可写,若是没有下传完成事件信号,则MIC等待该缓冲区下传完成。
    本发明与现有技术相比,具有如下优点和有益效果:
    1、本发明充分利用了CPU与MIC协作的优势,同时利用CPU与MIC的多线程并行计算来加速大型路网的全网节点路径规划过程。
    2、本发明提出了CPU与MIC之间计算任务的动态分配方式,通过动态任务分配的方式,使相应的程序能最佳适应不同计算能力配比的CPU/MIC设备,使之能以最佳的比例分配计算任务,达到最佳协作的效率。
    3、本发明考虑到输出数据量相比输入数据量要大1000倍,提出了输出结果异步计算的方案,使得MIC上输入数据的计算与其计算结果的输出之间形成异步,进一步的优化CPU与MIC之间的协同工作效率。
    附图说明
    图1是本发明CPU与MIC协同计算整体流程图;
    图2是本发明CPU与MIC之间动态最短路径计算任务划分示意图;
    图3是本发明MIC的IO隐藏示意图。
    具体实施方式
    下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
    实施例
    本发明是以Dijkstra最短路径规划算法为基础进行提出的,下面就Dijkstra的全网节点的路径规划加以说明:
    1)Dijkstra每次计算解决的路网中某个节点A到其他节点的最短路径。
    2)对于全网N个节点之间的最短路径规划需要调用N次的Dijkstra计算。
    3)由于现实路网中有道路单行限制,使得每个节点到其他节点的最短路径 需要重新计算,而不能直接利用之前的已经优化过的结果来降低相应的计算量。
    本发明主要包含如下三个方面:1、同时利用CPU与MIC的多线程并行计算来加速大型路网的全网节点最短路径规划过程。2、CPU与MIC之间计算任务动态分配,CPU与MIC之间根据其硬件线程数来定制化的分配特定量的计算任务,同时该动态分配框架还能自适应的不同MIC卡数目的节点配置环境。3、MIC数据输出IO隐藏。通过创建双缓冲区Buff1/Buff2来实现异步计算。该设计为每个MIC卡都创建了双缓冲区,从而可以自适应的实现每个MIC数据输出的IO隐藏。
    通过利用offload工作模式将MIC与CPU协同起来工作,同时借助pthread与OpenMP实现计算设备的调度与设备内的并行化计算。程序执行流程如图1所示,具体流程执行解释如下:
    1、读入路网数据,该模块将硬盘上的路网数据读入程序空间,同时将路网数据转成邻接表形式存储。
    2、创建CPU/MIC控制线程,此处利用pthread多线程库创建相应的控制线程,以单节点上的有两块MIC卡为例,此时要创建的控制线程数为3,其中0号与1号线程分别对应于MIC0与MIC1计算设备,2号线程则对应于节点内所有CPU构成的计算设备。
    3、调度任务,调度模块主要是基于上面创建的控制线程来实现,此处会通过全局变量g_num来表征所要处理的资源数目,对于计算资源的动态分配通过互斥锁来实现。当某个MIC控制线程对于全局变量g_num加锁成功时,则会首先将g_num的值存到其局部资源变量中去,让后将g_num的值减去Q*K,最后解锁;当CPU控制线程加锁成功时,则会首先将g_num的值存到其局部资源变量中去,让后将g_num的值减去P*K,最后解锁,如图2所示。其中P/Q的值,以所选取的测试节点为例,P取30,Q取224,当MIC控制线程捕获到相应量的计算资源时,会通过同步的offload上传数据到对应的MIC设备上,而对于计算结果的下传则是通过异步的offload实现IO与计算的异步。通过控制线程之间的互斥锁,实现最短路径规划计算任务的动态自适应分配。
    4、完成所有节点计算,控制线程退出,当g_num的值小于等于零时,则表示所有节点之间的最短路径规划计算完成。
    本实施例中,在实现MIC的IO隐藏时,主要利用双缓冲区的思路来实现最短路径规划的MICIO隐藏。由于最短路径规划的特点是输入数据比较小,输 出数据比较大,所以主要在输出数据过程中使用IO隐藏的设计,如图3所示。在图3中,当MIC0设备正在向Buff1中写入数据时,此时MIC0的控制线程则同时将之前已经计算完成的Buff2中的数据向最终结果的内存区域拷贝。等到下一个周期,则是MIC0向Buff2中写入数据,同时MIC0的控制线程则将上周期写入的Buff1中的数据向最终结果的内存区域拷贝。为了确保每次MIC写入某个缓冲区时,不会出现该缓冲区同时还在下传数据的情况。本实施例中设计了输出缓冲区数据向CPU端结果存储内存区域下传完成信号,MIC在准备向某个缓冲区写入数据时会检查其是否可写,若是没有下传完成事件信号,则MIC等待该缓冲区下传完成。
    性能测试:
    测试数据:90452节点、126757条边广州市的路网数据。在CPU上利用单线程计算需要350973.42s,在一个有CPU+3MIC节点利用CPU+MIC多线程运行时间为987.11s,加速比355.55倍。
    测试软硬件环境:


    上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

    关 键  词:
    基于 CPU MIC 协同 计算 路径 规划 并行 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于CPU和MIC协同计算的最短路径规划并行化方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4684826.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1