快速最小生成树Sollin求解算法

被引:1
作者
张毅 [1 ,2 ,3 ]
顾逸圣 [1 ,2 ,3 ]
王伟 [1 ,2 ,3 ]
机构
[1] 同济大学计算机科学与技术系
[2] 国家高性能计算机工程技术中心同济分中心
[3] 同济大学嵌入式系统与服务计算教育部重点实验室
关键词
GPGPU; 最小生成树; Sollin算法; CUDA;
D O I
暂无
中图分类号
TP301.6 [算法理论];
学科分类号
摘要
最小生成树算法在计算机网络、信息安全等领域中有着广泛的应用,目前比较普遍的求解算法有Prim算法和Kruskal算法,但这两种算法由于本身的数据结构特性和迭代过程的相关性限制而难以并行化,因而无法有效地利用通用GPU并行架构进行并行化加速。Sollin算法虽然是最古老的最小生成树算法之一,但是在算法中经过初始化的森林迭代过程,每次迭代可以同时扩展合并多棵最小生成树,经过数次扩展和合并,最终由初始森林合并为一棵树,一旦成功扩展,这棵树一定是最小生成树。在扩展合并的过程中,每次迭代中每棵树的扩展和合并过程相互独立,这一特征使Sollin算法具有较好的并行性,可以利用目前流行的GPU并行架构进行快速求解优化。正因如此,文章针对传统CPU执行的串行Sollin算法,结合适用于通用GPU并行运算的数据结构特性,在提出可扩展树这一并行适用的数据存储结构的基础上,提出了一种基于可扩展树的快速扩展、合并最小生成树的方法,并针对通用GPU平台进行了实现。我们采用多组不同规模的测试数据进行实验。结果表明,相对传统串行Sollin最小生成树求解算法,该算法在用于较大数据规模的情况中具有明显的性能提升,同由CPU执行的传统串行方案相比,文章提出的方案获得了10至18倍的加速度。
引用
收藏
页码:87 / 91
页数:5
相关论文
共 7 条