CN103884343B - 一种基于mic协处理器的全网最短路径规划并行化方法 - Google Patents
一种基于mic协处理器的全网最短路径规划并行化方法 Download PDFInfo
- Publication number
- CN103884343B CN103884343B CN201410067006.0A CN201410067006A CN103884343B CN 103884343 B CN103884343 B CN 103884343B CN 201410067006 A CN201410067006 A CN 201410067006A CN 103884343 B CN103884343 B CN 103884343B
- Authority
- CN
- China
- Prior art keywords
- task
- thread
- path planning
- whole network
- task bag
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3446—Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Navigation (AREA)
Abstract
本发明公开了一种基于MIC协处理器的全网最短路径规划并行化方法,所述全网包括N个节点,该方法包括如下步骤:(1)将每个节点相对全网其他节点定义为一个不可再分的单元,N个节点构成的全网有N个单元任务;(2)以K个单元任务为一个任务包,可以创建P=N/K个任务包,对于N不能被K整除的情况,创建P=[N/K]+1个任务包,[N/K]表示取整数部分,每个线程在拿到某一任务包后,将分成K次循环依次执行其中的K个单元任务;(3)所创建的P个任务包在L个线程之间进行任务调度(4)当全网节点都处理完毕时,输出路径规划的结果并下传全网路径规划数据到主机系统,以供路径规划在线服务程序查询。
Description
技术领域
本发明涉及电子地图导航的路径规划方法,尤其涉及一种基于MIC协处理器的全网最短路径规划并行化方法。
背景技术
随着国内城市化的发展,城市道路纵横交错,路网也变得非常的复杂。对于在城市出行的人们来说,如何能快速获取路程起点和终点的最短路径成为其迫切的需求。同时,由于通信技术、全球定位技术以及路网数据信息化的不断发展,为人们的出行电子化导航提供了基本的必要条件。目前地图导航行业使用的最短路径规划算法多是基于Dijkstra或是其改进版,相应的时间复杂度为O(N2)或者O(NlogN)。当规划的节点数N增长到成千上万时,同时还要相应有大量的路径规划请求,实时的线上规划几乎变得不可实施。所以一般最短路径规划多采用线下的规划预处理出所有节点之间的最短路径,当有用户请求时直接查询相应的最短路径。
在线下最短路径预处理过程中,当路网数据之中新增或者删减一个节点或者一条线路时,都要重新计算全网的最短路径列表。以四维地图出品2013年的广州市地图为例,其路口数目达到了90000,道路数目达到了120000。根据实际测试每次更新全网节点的最小路径数据单线程计算大约需要5天的时间。针对路径规划的时间效率的问题,王亚文等[一种动态搜索区域的最短路径规划算法,计算机应用研究,2007]从限制每次动态规划的区域入手,通过缩小路径规划的范围来实现,不过该种方法只能针对线上实时的路径规划实施。对于线下的全网路径规划,不能通过限制区域实现。同样,刘晓军等[海量道路数据下的最短路径规划效率,计算机系统应用,2010]也是通过估价函数快速过滤无效点和路段,折线简化等方法来实现线上实时路径规划。根据专利文献检索,公开号为CN102175252A的专利文献提出了基于分级道路网数据的分布式多级道路的动态联合路径规划方法;公布号为CN103278168A的专利文献提出了通过数据挖掘技术,利用新闻、微博、实时上报交通信息以及历史规律信息挖掘出交通热点,进而执行交通热点规避的路径规划;公开号为CN101944095A的专利文献提出了一种优化的Dijkstra方法来实现简化相应的计算。综合上述资料,可以看出针对线下全网节点的路径规划并行计算方法尚未有被现有技术公开。
发明内容
针对现有技术的缺点,本发明的目的是提供一种基于MIC协处理器的全网最短路径规划并行化方法,解决了现有的最短路径规划线下预处时间效率低,不能及时响应城市快速扩张以及城市交通意外等带来的路网链接规律的变化的问题。
为了实现上述目的,本发明的技术方案为:一种基于MIC协处理器的全网最短路径规划并行化方法,所述全网包括N个节点,该方法包括如下步骤:(1)将每个节点相对全网其他节点定义为一个不可再分的单元,N个节点构成的全网有N个单元任务;(2)以K个单元任务为一个任务包,可以创建P=N/K个任务包,对于N不能被K整除的情况,创建P=[N/K]+1个任务包,[N/K]表示取整数部分,每个线程在拿到某一任务包后,将分成K次循环依次执行其中的K个单元任务;(3)对于所创建的P个任务包在L个线程之间进行任务调度时,L个线程初始会依次各拿到一个任务包,此时未处理的任务包为P-L个,当其中的某个线程处理完自己的任务包时,则会请求新的任务包;调度时利用全局变量g_num来表征目前未处理任务包数目,每个线程通过互斥锁的方式来争抢任务包资源,当某个线程互斥锁加锁成功则表示其抢到了相应序号的任务包,同时将任务包数目g_num减一,再解除互斥锁,完成一次加解锁过程的线程根据自己所抢到的序号,在相应内存地址上读取数据,依次执行完该任务包中的K个单元任务,当线程检查到任务包数目g_num变成0时,则表示所有任务包都已经处理完毕,相应线程执行退出操作;(4)当全网节点都处理完毕时,输出路径规划的结果并下传全网路径规划数据到主机系统,以供路径规划在线服务程序查询。
与现有技术相比,本发明利用大量的线程加速全网路径规划算法的执行,同时本发明提出了全网路径规划并行化实现动态任务调度的方式,进一步的优化了程序的执行过程,提升了并行化执行的效率,最后本发明又利用MIC的native执行模式,在路网数据以及路径规划结果不超过MIC的内存时,可以比较方便的应用MIC协处理器实施相应的加速,很好的满足了中小城市城域内智能交通的路径规划需求。
附图说明
下面结合附图对本发明作进一步的详细说明。
图1为本发明在在MIC上执行的程序流程图;
图2为本发明的动态任务调度示意图;
图3为MIC线程内动态任务调度流程。
具体实施方式
MIC是由Intel公司于2012年12月发布的基于x86架构的协处理器,其由60颗处理核心构成,双精度计算峰值计算能力达到1TFlops,其采用了与CPU相同的x86架构,支持的offload、native等执行模式。
本发明以Dijkstra最短路径规划算法为基础,下面是Dijkstra的全网节点的路径规划说明:Dijkstra每次计算解决的路网中某个节点A到其他节点的最短路径;对于全网N个节点之间的最短路径规划需要调用N次的Dijkstra计算;由于现实路网中有道路单行限制,使得每个节点到其他节点的最短路径需要重新计算,而不能直接利用之前的已经优化过的结果来降低相应的计算量。
本发明的全网最短路径规划的并行化方法包括如下步骤:(1)全网节点最短路径规划并行化设计。以N个节点构成的路网为例,将每个节点相对全网其他节点基于Dijkstra算法的最短路径规划定义为一个不可再分的单元,每个单元任务的执行都需要一个MIC的线程去完成;N个节点构成的路网图就有N个单元任务需要完成,将K个单元任务合成一个任务包交给MIC的一个线程去执行。(2)任务包的创建。对于N个节点的路网,当以K个执行单元为一个任务包,共计可以创建P=N/K个任务包,对于N不能被K整除的情况,创建P=[N/K]+1个任务包,[N/K]表示取整数部分,每个MIC的线程在拿到某个任务包后,将会分成K次循环依次执行其中的K个单元任务。(3)任务包的调度。对于所创建的P个任务包在L个MIC线程之间进行任务调度时,将按照动态任务调度的原则执行调度,L个MIC线程初始会依次各拿到一个任务包,共计L个任务包,此时未处理的任务包为P-L,当其中的某个MIC线程处理完自己的任务包时,则会请求新的任务包。调度的具体实现是利用全局变量g_num来表征目前未处理任务包数目,每个线程通过互斥锁的方式来争抢任务包资源。当某个线程互斥锁加锁成功则表示其抢到了相应序号的任务包,同时将任务包数目g_num减一,再解除互斥锁。完成一次加解锁过程的MIC线程就会根据自己所抢到的序号,在相应内存地址上读取数据,依次执行完该任务包中的K个单元任务。当MIC线程检查到任务包数目g_num变成0时,则表示所有任务包都已经处理完毕了,相应MIC线程就会执行退出操作。(4)MIC的native模式执行。由于MIC是带有自己操作系统的协处理器,其可以作为一个节点来执行并行计算。在MIC的native执行模式中,将编译完成的全网路径规划程序以及路网数据上传到MIC的tmp目录,然后启动相应程序,等全网路径规划程序计算完成后,下传全网路径规划数据到主机系统,以供路径规划在线服务程序查询。
请参阅图1,当将源程序利用intel编译器的-mmic选项编译后,上传可执行程序以及相应数据到MIC上,执行流程解释如下:(1)读入路网数据。该模块将贮存在MIC设备内存中的数据读到程序可见的内存空间中,同时将路网原始数据转换成邻接表存储。(2)创建线程。利用pthread库创建线程,此处根据MIC卡的具体型号不同,可以创建不同量的线程数。以Xeon Phi3110为例,最多可以创建224个线程。线程创建的pthread库必须是也经过了-mmic重新编译的针对MIC架构的库,否则程序运行将会失败。(3)调度任务。主要是实现线程之间动态任务调度过程,在任务调度过程中会创建全局变量来表征未处理的任务包数目,动态任务调度过程代码则是根据该全局变量实现对未完成任务数的监测,任务调度室利用互斥锁来实现线程之间计算任务的动态分配。(4)完成所有节点的计算。针对全网的每个节点都计算其到其他节点的最短路径,当全网节点都计算完毕时,则可以退出任务调度循环,执行线程退出模块,最后输出路径规划的结果。(5)当程序执行完毕时则下传全网路径规划结果,以供线上查询使用。
请参阅图2,此处以3个线程9个任务的调度为例详细说明该动态的调度过程,图中箭头表示时间轴,初始时刻线程T0/T1/T2分别争抢到了任务包1/2/3。在执行过程中由于每个线程的执行任务时间并不是精确相等,故而完成任务的时间有先后。T2线程优先完成任务,其就抢到了任务包4,T0/T2的情况同理。相比静态的任务划分而言,当调度任务成本小于线程等待成本时,动态划分的方式能相对提升并行化的效率。同时动态的任务划分方式对于程序的扩展性也非常有利,它能根据实际运行情况自动调整。
请参阅图3,在,每个线程的内部,首先通过互斥锁来锁定全局变量,待到计算出其所争抢到的任务再将互斥锁解锁。当捕获计算任务后,调用Dijkstra循环处理。最后再次检查是否还有未处理完的计算任务:如果还有未处理完成的任务,则跳转到争抢任务的部分,继续加锁捕获计算任务;如果没有剩余任务了,则执行线程退出。
虽然本发明以较佳实施例揭露如上,但并非用以限定本发明实施的范围。任何本领域的普通人员,在不脱离本发明的范围内,作些改进,即凡是依照本发明所做的同等改进,应为本发明的范围所涵盖。
Claims (1)
1.一种基于MIC协处理器的全网最短路径规划并行化方法,所述全网包括N个节点,其特征在于,该方法包括如下步骤:
(1)将每个节点相对全网其他节点定义为一个不可再分的单元,N个节点构成的全网有N个单元任务;
(2)以K个单元任务为一个任务包,可以创建P=N/K个任务包,对于N不能被K整除的情况,创建P=[N/K]+1个任务包,[N/K]表示取整数部分,每个线程在拿到某一任务包后,将分成K次循环依次执行其中的K个单元任务;
(3)对于所创建的P个任务包在L个线程之间进行任务调度时,L个线程初始会依次各拿到一个任务包,此时未处理的任务包为P-L个,当其中的某个线程处理完自己的任务包时,则会请求新的任务包;调度时利用全局变量g_num来表征目前未处理任务包数目,每个线程通过互斥锁的方式来争抢任务包资源,当某个线程互斥锁加锁成功则表示其抢到了相应序号的任务包,同时将全局变量g_num减一,再解除互斥锁,完成一次加解锁过程的线程根据自己所抢到的序号,在相应内存地址上读取数据,依次执行完该任务包中的K个单元任务,当线程检查到全局变量g_num变成0时,则表示所有任务包都已经处理完毕,相应线程执行退出操作;
(4)当全网节点都处理完毕时,输出路径规划的结果并下传全网路径规划数据到主机系统,以供路径规划在线服务程序查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410067006.0A CN103884343B (zh) | 2014-02-26 | 2014-02-26 | 一种基于mic协处理器的全网最短路径规划并行化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410067006.0A CN103884343B (zh) | 2014-02-26 | 2014-02-26 | 一种基于mic协处理器的全网最短路径规划并行化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103884343A CN103884343A (zh) | 2014-06-25 |
CN103884343B true CN103884343B (zh) | 2017-01-11 |
Family
ID=50953365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410067006.0A Active CN103884343B (zh) | 2014-02-26 | 2014-02-26 | 一种基于mic协处理器的全网最短路径规划并行化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103884343B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104266657B (zh) * | 2014-09-12 | 2017-08-04 | 海华电子企业(中国)有限公司 | 基于cpu和mic协同计算的最短路径规划并行化方法 |
CN109522106B (zh) * | 2018-10-22 | 2023-01-17 | 广东工业大学 | 一种基于协同计算的风险价值模拟动态任务调度方法 |
CN111832894A (zh) * | 2020-06-08 | 2020-10-27 | 上海汽车集团股份有限公司 | 车辆调度方式生成方法、装置及计算机存储介质 |
CN113506591B (zh) * | 2021-08-09 | 2024-03-08 | 上海思朗科技有限公司 | 共价键势的分配方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944095A (zh) * | 2009-07-08 | 2011-01-12 | 广东融讯信息科技有限公司 | 路径规划方法和系统 |
CN103049245A (zh) * | 2012-10-25 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于cpu多核平台的软件性能优化方法 |
CN103064819A (zh) * | 2012-10-25 | 2013-04-24 | 浪潮电子信息产业股份有限公司 | 一种利用MIC快速实现格子Boltzmann并行加速的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8893103B2 (en) * | 2012-08-16 | 2014-11-18 | Nec Laboratories America, Inc. | Automatic asynchronous offload to many-core coprocessors |
-
2014
- 2014-02-26 CN CN201410067006.0A patent/CN103884343B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944095A (zh) * | 2009-07-08 | 2011-01-12 | 广东融讯信息科技有限公司 | 路径规划方法和系统 |
CN103049245A (zh) * | 2012-10-25 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于cpu多核平台的软件性能优化方法 |
CN103064819A (zh) * | 2012-10-25 | 2013-04-24 | 浪潮电子信息产业股份有限公司 | 一种利用MIC快速实现格子Boltzmann并行加速的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103884343A (zh) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103884343B (zh) | 一种基于mic协处理器的全网最短路径规划并行化方法 | |
Barr et al. | Enhancements of spanning tree labelling procedures for network optimization | |
Glover et al. | The augmented predecessor index method for locating stepping-stone paths and assigning dual prices in distribution problems | |
Delling et al. | Pareto paths with SHARC | |
Gouveia et al. | Load-dependent and precedence-based models for pickup and delivery problems | |
CN104266657B (zh) | 基于cpu和mic协同计算的最短路径规划并行化方法 | |
CN109271562B (zh) | 通行费用确定方法、路网节点关系模型构建方法及装置 | |
Li et al. | A hybrid link‐node approach for finding shortest paths in road networks with turn restrictions | |
Jariyasunant et al. | Algorithm for finding optimal paths in a public transit network with real-time data | |
Böhmová et al. | Computing and listing st-paths in public transportation networks | |
CN112902970A (zh) | 一种巡检路径规划方法和巡检机器人 | |
JP2016081494A (ja) | 分散コンピューティング環境におけるグラフデータの振り分け方法及び装置 | |
CN109615323A (zh) | 一种Activiti流程与业务的分离方法以及系统 | |
Idoudi et al. | An agent-based dynamic framework for population evacuation management | |
Tuaycharoen et al. | Bangkok Bus Route Planning API | |
Verbas et al. | Finding least cost hyperpaths in multimodal transit networks: Methodology, algorithm, and large-scale application | |
Chen et al. | A fast algorithm for finding K shortest paths using generalized spur path reuse technique | |
Xie et al. | An improved Dijkstra algorithm in GIS application | |
CN106330559B (zh) | 基于MapReduce的复杂网络拓扑特征参数计算方法和系统 | |
Leng et al. | An improved shortest path algorithm for computing one-to-one shortest paths on road networks | |
Stern et al. | Daily aircraft maintenance routing using a deficit function hollow graph | |
Pereira et al. | Reformulations and branch-and-price algorithm for the minimum cost hop-and-root constrained forest problem | |
Alam et al. | AN intelligent road traffic management system using NVIDIA GPU | |
Trần | Proposing to improve the Heuristic Algorithms to Solve a Steiner-minimal-tree Problem in Large Size Sparse Graphs | |
Guluru et al. | New approaches for service composition based on graph models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |