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

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

【技术实现步骤摘要】
基于CPU和MIC协同计算的最短路径规划并行化方法
本专利技术涉及路径规划研究领域,特别涉及一种基于CPU和MIC协同计算的最短路径规划并行化方法。
技术介绍
随着国内城市化的发展,城市道路纵横交错,路网也变得非常的复杂,对于在城市出行的人们来说,如何能快速获取路程起点和终点的最短路径成为其迫切的需求。同时由于通信技术、全球定位技术以及路网数据信息化的不断发展,为人们的出行电子化导航提供了基本的必要条件。目前地图导航行业使用的最短路径规划算法多是基于Dijkstra或是其改进版,相应的时间复杂度为O(N2)或者O(NlogN)。当规划的节点数N增长到成千上万时,同时还要相应有大量的路径规划请求,实时的线上规划变得不可实施了。所以一般最短路径规划多采用线下的规划预处理出所有节点之间的最短路径,当有用户请求时直接查询相应的最短路径。在线下最短路径预处理过程中,当路网数据之中新增或者删减一个节点或者一条线路时,都要重新计算全网的最短路径列表。以四维地图出品2013年的广州市地图为例,其路口数目达到了90000,道路数目达到了120000。根据我们实际测试每次更新全网节点的最小路径数据单线程计算大约需要5天的时间,同时对于该数量规模的全网节点之间的最短路径结果大小约为72GB。针对路径规划的时间效率的问题,王亚文等[一种动态搜索区域的最短路径规划算法,计算机应用研究,2007]从限制每次动态规划的区域入手,通过缩小路径规划的范围来实现。不过该种方法只能针对线上实时的路径规划实施。对于线下的全网路径规划,不能通过限制区域实现。同样刘晓军等(海量道路数据下的最短路径规划效率,计算机系统应用,2010)也是通过估价函数快速过滤无效点和路段,折线简化等方法来实现线上实时路径规划。根据专利文献检索,公开号为CN102175252A的中国专利提出了基于分级道路网数据的分布式多级道路的动态联合路径规划方法。公开号为CN103278168A的中国专利提出了通过数据挖掘技术,利用新闻、微博、实时上报交通信息以及历史规律信息挖掘出交通热点,进而执行交通热点规避的路径规划。公开号为CN101944095A的中国专利提出了一种优化的Dijkstra方法来实现简化相应的计算。综合上述资料,可以看出针对线下全网节点的路径规划并行计算方法尚未有相关资料公开,尤其是针对大型路网尚未有利用CPU和MIC协同计算的相关资料公开。MIC是由Intel公司于2012年12月发布的基于x86架构的协处理器,其由57~61颗物理处理核心构成,每个物理核心虚拟出4个硬件线程,卡载内存大小为6GB~8GB,双精度计算峰值计算能力达到1TFlops。其在并行计算方面相比CPU更有优势,根据公开号为CN103018776A的中国专利将MIC应用于地震成像领域,其在PSTM算法表现达到了相比单线程约76倍的加速比。公开号为CN102930473A的中国专利将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等待该缓冲区下传完成。本专利技术与现有技术相比,具有如下优点和有益效本文档来自技高网
...
基于CPU和MIC协同计算的最短路径规划并行化方法

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

【技术特征摘要】
1.基于CPU和MIC协同计算的最短路径规划并行化方法,其特征在于,包括下述步骤:S1、全网节点最短路径规划并行化设计,在N个节点构成的路网图中,将每个节点相对全网其他节点基于Dijkstra算法的最短路径规划定义为一个不可再分的单元,每个单元任务的执行都通过一个线程去完成,N个节点构成的路网图就有N个单元任务需要完成;S2、CPU与MIC控制线程,针对每一个计算设备创建一个pthread线程,其中一个计算设备定义为节点内所有CPU硬件线程或是一块MIC卡;S3、CPU与MIC之间任务包调度,采用动态的任务分发模式来分发CPU与MIC之间的任务包;S4、完成所有节点计算,控制线程退出;S5、MIC数据输出的IO隐藏,设计输出数据的IO隐藏,通过设计了两个缓冲区:Buff1/Buff2来隐藏IO通信与计算,每台MIC计算设备都有自己对应的两个缓冲区;对于MIC0设备而言,当其将计算结果向Buff1填充时,MIC0的控制线程则会将Buff2的数据从MIC1设备的自由内存中拷贝到CPU的内存中,同理当MIC0在写Buff2时,其控制线程就将Buff1中的数据拷贝到CPU的内存中;同时设计了输出缓冲区数据向CPU端结果存储内存区域下传完成信号,MIC在准备向某个缓冲区写入数据时会检查其是否可写,若是没有下传完成事件信号,则MIC等待该缓冲区下传完成。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....

【专利技术属性】
技术研发人员:宋海娜华诚周晓辉刘逍江蓉周津羽范昭伦
申请(专利权)人:海华电子企业中国有限公司西安邮电大学
类型:发明
国别省市:广东;44

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

1