当前位置: 首页 > 专利查询>复旦大学专利>正文

一种关于类PLL最短路距离查询算法的并行化加速方法技术

技术编号:18591971 阅读:18 留言:0更新日期:2018-08-04 20:01
本发明专利技术属于计算机网络通信技术领域,具体为关于类PLL最短路距离查询算法的并行化加速方法。本发明专利技术的类PLL算法是一种基于搜索剪枝的“构建索引—询问查询”的两阶段算法,在构建索引的过程中,充分利用CPU多核的特性,合理地分配计算量和计算方式,对构建索引的过程实现并行化计算,提高时间效率;在询问的阶段中,对批量询问进行处理与分析,合并具有相同端点的询问,对不同的另一端进行并行化查询,以提高CPU多核的利用率以加快计算速度。本发明专利技术通过并行化的方式提高串行特征强烈的类PLL算法构建索引以及在批量询问处理中的计算效率,并使得这种并行化加速方法能够在充分利用多核计算单元的特性下高效完成算法功能。

A parallel acceleration method for PLL shortest path distance query algorithm

The invention belongs to the field of computer network communication technology, in particular to a parallel acceleration method for a PLL-like shortest distance query algorithm. The PLL class algorithm of this invention is a two stage algorithm based on the search pruning of \constructing index inquiry query\. In the process of constructing index, we make full use of the characteristics of CPU multicore, allocate the amount of calculation and calculation method reasonably, realize the parallel calculation for the process of constructing index, improve the time efficiency, and the order of inquiry. In the segment, batch inquiries are processed and analyzed, interrogation with the same endpoint is merged, and parallel query is carried out on the other end to improve the utilization of CPU multicore to speed up the calculation. This invention improves the index of the PLL algorithm with strong serial features and the computing efficiency in batch processing, and makes the parallel acceleration method efficiently perform the algorithm function under the characteristics of the multi core computing unit.

【技术实现步骤摘要】
一种关于类PLL最短路距离查询算法的并行化加速方法
本专利技术属于计算机网络通信
,具体涉及关于类PLL最短路距离查询算法的并行化加速方法。
技术介绍
图是一种用于抽象描述现实世界中实体间关系的数据结构,在自然科学、工程技术、经济管理以及各种社会问题中都有着广泛的应用。图论,则是以图为研究对象的一个数学分支。最短路查询问题是图论中的一个经典问题,通过查找图内两个顶点的最短路径,以达到最短时间、最少开销、最高效率的目的,在网络通信、路径导航、物流规划、生物医学等许多方面都有着重要应用。因此,设计出更加高效的最短路查询算法一直是图论中一个重要的研究领域。最短路查询的基本经典算法有Dijkstra算法,Ford算法,Floyd算法等。PLL算法是近年来十分流行的最短路查询算法,在最短路距离查询和路经计算等方面有许多应用,并且该算法通过进一步的变化也可以用于解决带限制最短路查询、K短路等问题,甚至可以应用于动态图的计算。该算法主要过程包含索引构建和询问查询两个阶段,第一阶段的主要过程是以某种次序逐步从每一个结点出发进行搜索剪枝得到该结点到某些结点的最短距离,并将其加入索引;第二阶段是利用最短路的最优子结构的性质,将一段最短路分为两段最短路的形式,通过在索引中进行查询并求和,然后在所有和中取最小值,该最小值即是最终结果。随着时代的发展,数据规模飞速增长且类型渐趋复杂,传统的最短路查询算法的效率已经难以满足要求,而充分利用CPU的多核特性,研究并行算法是解决该问题的途径之一。并行计算是将需要计算的问题分解为若干个独立的、可同时进行的子问题,再用多台计算设备同时并行计算这些子问题,能够提高计算的速度与精度,以达到高效地完成计算任务的目的。
技术实现思路
本专利技术的目的在于提出一种针对类PLL最短路距离查询算法的并行化加速方法,以使串行特征强烈的类PLL算法高效的并行化实现,提高对计算单元的利用率,并且以此来加速算法的计算过程。本专利技术中,类PLL(PrunedLandmarkLabeling)算法指的是一种基于搜索剪枝的“构建索引—询问查询”的两阶段算法。本专利技术提供的关于类PLL最短路距离查询算法的并行化加速方法,根据硬件特性,结合合理的内存共享、加锁、线程通信等手段,使得原本串行特征强烈的算法也能高效的并行化实现。具体分为如下三个阶段:(一)预处理阶段,根据硬件确定对应线程数目,以充分发挥硬件特性;(二)索引构建阶段,通过共享内存来实现并行化的搜索剪枝;(三)询问查询阶段,合并具有相同端点的询问以减少冗余计算,再并行化处理不同端点的查询。见图1所示。具体步骤如下:(一)预处理阶段,根据硬件确定对应线程数目,以充分发挥硬件特性;获取当前处理器的核心数K,读取图的结构并保存在graph中,将结点按照度数由小到大的顺序存放于V中;显然,所得到的处理器核心数与后续处理过程中的线程数具有直接联系,因此可在充分利用硬件特性的基础上高效的完成并行化操作。(二)索引构建阶段,通过共享内存来实现并行化的搜索剪枝;索引LABEL是一个集合{LABEL[v],v∈V},其中LABEL[v]是一个集合{LABEL[v][t]=pair<t,dis(v,t)>,t∈V},其中,V={v1,v2,…,vn}是图graph的所有点的集合,dis(v,t)是v点到t的最短距离,pair<t,dis(v,t)>是t与v到t点的距离构成的二元组;索引LABEL的构建过程,开始,根据预处理阶段所获得到的核心数K开启对应数目的线程,从所有未处理结点中挑出优先级最高的对应数目的结点v1,v2,…,vk,并将每个结点作为搜索起点,每个线程处理一个起点,进行搜索操作逐步完成索引的构建,这是一个并行化的过程;在搜索过程中,线程间共享当前计算好了的索引LABEL,用于搜索过程的剪枝依据;在各个线程结束后,合并新增加的索引到总的索引列表LABEL中,重复执行上述搜索过程,直到所有的结点都被处理完;显然,所述的并行化搜索过程里的剪枝过程,关于索引LABEL的读取是所有线程共享的,整个过程以核心数为一组,一次并行后更新总索引,再进入下一轮直到所有结点被处理完。(三)询问查询阶段,合并具有相同端点的询问以减少冗余计算,再并行化处理不同端点的查询;询问查询阶段开始,先对批量询问进行分析和处理,排序,再通过类似归并的手段将所有询问列表处理成两种类型:具有共同端点的询问组与不具备共同端点的询问组。例如,将具有共同端点的询问组记为:{(A,B1),(A,B2),(A,B3),…},其具有共同端点A,不具备共同端点的询问组记为:{(A1,B1),(A2,B2),(A3,B3)…};对于具有共同端点的询问组,先查询共同端点A的索引,即LABEL[A],并保存,再开启对应核心数总数的线程并行化查询所有另一端B1,B2,B3,…的索引,得出最短路的距离;对于不具有共同端点的询问组,直接开启对应数目的线程进行索引查询,即并行化查询A1与B1,A2与B2,A3与B3,…的索引,此时LABEL被所有线程共享,只进行读操作无需加锁。显然,所述先查询共同端点A点的索引,再通过并行化查询B1,B2,B3,…的索引,这个过程中,索引LABEL是被所有线程共享的,线程数目等于核心数;这样网络中间节点缓存得到优化;显然,对于不具备共同端点的询问组:{(A1,B1),(A2,B2),(A3,B3)…};并行化查询A1与B1,A2与B2,A3与B3,…的索引,这个过程中,索引LABEL是被所有线程共享的,线程数目等于核心数。本专利技术中,无论是对于索引构建阶段还是询问查询阶段等,其主要的目的都是充分发挥硬件的上的优势,以提高计算速度,因此分配的线程数要与硬件计算单元核心数相匹配。预处理阶段,其主要利用读取图的结点与边的数据并保存在合适的数据结构中,收集处理器核心数等静态数据为之后的处理做准备。索引构建阶段,用于构建询问阶段所需要的索引,索引其实质是保存了必要点对以及点对之间的距离,使得在询问阶段,任意两点之间的距离都可以表示为两段(端点-中间结点,中间结点-端点)索引之和。在这一阶段,根据预处理阶段收集到的信息,使用多线程处理,为每个线程分配适当的任务量,并发处理。询问处理阶段,用于最短距离查询的过程,其过程是根据索引构建阶段的结果,遍历两个端点的索引,找到它们所有的共同索引信息作为中间结点,每找到一个中间结点时,计算两段(起点-中间结点,中间结点-终点)距离之和,最后在所有结果中取出最小值,就是最终答案。在这一阶段,先对批量询问进行处理,划分为不同类型的询问组,再使用多线程过程高效的并发执行查询过程,从而达到提高计算效率的目的。本专利技术中,所述中间结点为路由器或者网关代理。本专利技术中,索引构造并行示意图如图2所示。本专利技术中索引构造阶段,其循环步骤是利用单源点最短路算法获得相应的点对与点对之间的距离,进而总合而成索引。单源点最短路算法主要用于快速计算某点到其他结点的距离,在计算过程中通过合理并且有效的剪枝手段,减少了不必要的计算量。其中,非常重要的对于不同类型的图选取合适的最短路算法,对于无权图,使用较为朴素的广度优先搜索算法加上剪枝就能达到很好的效果本文档来自技高网
...

【技术保护点】
1.一种关于类PLL最短路距离查询算法的并行化加速方法,其特征在于,根据硬件特性,结合合理的内存共享、加锁、线程通信手段,使得原本串行特征强烈的算法实现高效的并行化,具体步骤如下:(一)预处理阶段,根据硬件确定对应线程数目,以充分发挥硬件特性;获取当前处理器的核心数K,读取图的结构并保存在graph中,将结点按照度数由小到大的顺序存放于集合V中;(二)索引构建阶段,通过共享内存来实现并行化的搜索剪枝;设索引LABEL是一个集合{LABEL[v], v∈V},其中LABEL[v] 是一个集合{ LABEL[v][t] =pair

【技术特征摘要】
1.一种关于类PLL最短路距离查询算法的并行化加速方法,其特征在于,根据硬件特性,结合合理的内存共享、加锁、线程通信手段,使得原本串行特征强烈的算法实现高效的并行化,具体步骤如下:(一)预处理阶段,根据硬件确定对应线程数目,以充分发挥硬件特性;获取当前处理器的核心数K,读取图的结构并保存在graph中,将结点按照度数由小到大的顺序存放于集合V中;(二)索引构建阶段,通过共享内存来实现并行化的搜索剪枝;设索引LABEL是一个集合{LABEL[v],v∈V},其中LABEL[v]是一个集合{LABEL[v][t]=pair<t,dis(v,t)>,t∈V};索引LABEL的构建过程,开始,根据预处理阶段所获得到的核心数K开启对应数目的线程,从所有未处理结点中挑出优先级最高的对应数目的结点v1,v2,…,vk,并将每个结点作为搜索起点,每个线程处理一个起点,进行搜索操作逐步完成索引的构建,这是一个并行化的过程;在搜索过程中,线程间共享当前计算好了的索引LABEL,用于搜索过程的剪枝依据;在各个线程结束后,合并新增加的索引到总的索引列表LABEL中,重复执行上述搜索过程,直到所有的结点都被处理完;(三)询问查询阶段,合并具有相同端点的询问以减少冗余计算,再并行化处理不同端点的查询;询问查询阶段开始,先对批量询问进行分析和处理,排序,再通过类似归并的手段将所有询问列表处理成两种类型:具有共同端点的询问组与不具备共同端点的询问组;将具有共同端点的询问组记为:{(A,B1),(A,B2),(A,B3),…},其具有共同端点A...

【专利技术属性】
技术研发人员:祝远扬李锐邱堃赵进王新
申请(专利权)人:复旦大学
类型:发明
国别省市:上海,31

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

1