论文摘要
宽度优先搜索(Breadth-first Search,简称BFS)是一种基础的图形算法,是众多算法的核心组件,在大量领域中得到广泛应用,如网络安全、医学信息、数据挖掘、社交网络、语义网等等。宽度优先搜索算法还是一种典型的数据密集型应用,Graph 500即使用其对超级计算机处理数据密集型应用的能力进行排名。近年来,得益于较低的功耗和较高的性价比,众核体系结构的加速器在高性能计算领域得到广泛应用。MIC(Many Integreated Core)作为最新的众核体系结构协处理器,相对于其它加速器来说,具有和传统并行编程模型兼容的优势。随着采用CPU+MIC的“天河二号”登上Top 500榜首,MIC在高性能计算领域得到广泛重视。宽度优先搜索算法的并行实现具有数据竞争较严重、问题不规则和访存局部性差等特点,而MIC具有大量线程和宽向量处理能力且每线程的平均缓存较小,因而要充分发挥MIC硬件的优势高效实现宽度优先搜索,将面临线程间竞争开销较大,向量部件利用率不高,缓存利用率差等问题。本文即面向这些问题,研究利用MIC高效实现宽度优先搜索算法,主要取得了如下成果:1)设计并实现了自上向下和自下向上相结合的混合BFS算法。该算法根据图形的特点,在不同的搜索层使用不同的搜索策略,能够结合两种搜索策略的优势,性能分别为自上向下和自下向上策略的3.21和2.15倍。2)提出了一种面向MIC优化的多线程BFS算法。该算法以混合BFS算法为基础,通过减少数据竞争,消除原子操作,并采用动静相结合的线程调度方式,能够很好地利用MIC提供的大量线程处理能力。3)提出了一种使用宽向量部件进一步加速BFS的方法。该方法在自上向下搜索部分采用SIMD指令同时扫描顶点的邻居,在自下向上搜索部分采用SIMD指令并行查找未访问的顶点,能够进一步加速BFS算法,最高加速比达到1.85。4)设计并实现了CPU和MIC协同计算的异构混合BFS算法。该算法以混合BFS算法为基础,在搜索层中任务较多时采用CPU和MIC协同计算,通过比例可调的任务划分方法以及重叠计算的通信设计,解决了协同计算中任务不均衡和通信开销较大的问题,相对于CPU的加速比达到1.4倍左右。实验结果表明,本文在MIC中实现的BFS算法性能约为GPU的5.31倍;CPU+MIC异构混合算法的最高加速比达到1.46倍。
论文目录
摘要ABSTRACT第一章 绪论1.1 研究背景1.2 研究现状1.2.1 面向共享内存体系结构的研究1.2.2 面向分布内存体系结构的研究1.2.3 面向GPU的研究1.2.4 面向其它平台的研究1.3 研究内容和主要贡献1.4 本文组织结构第二章 BFS算法与众核体系结构2.1 宽度优先搜索算法分析2.1.1 图形结构的特点2.1.2 图形的生成与算法评估2.1.3 图形的存储与表示2.1.4 层间同步BFS算法2.1.5 并行BFS算法的主要特点2.2 MIC体系结构特点分析2.2.1 MIC体系结构介绍2.2.2 MIC编程模型介绍2.2.3 MIC中的SIMD指令2.2.4 MIC体系结构的主要特点2.3 面临的挑战2.4 总结第三章 BFS算法的多核实现技术3.1 自上向下搜索算法3.1.1 并行策略3.1.2 数据结构3.1.3 冲突处理3.1.4 实现技术3.1.5 适用情况3.2 自下向上搜索算法3.2.1 并行策略3.2.2 数据结构3.2.3 实现技术3.2.4 适用情况3.3 混合搜索算法3.3.1 算法框架3.3.2 图的存储3.3.3 数据结构3.3.4 切换时机3.4 实验与性能分析3.4.1 实验环境3.4.2 自上向下搜索实验3.4.3 自下向上搜索实验3.4.4 混合搜索实验3.5 总结第四章 BFS算法的众核优化实现技术4.1 多线程优化实现4.1.1 多线程实现方法4.1.2 减少数据竞争的优化4.1.3 无原子操作方法4.1.4 线程调度与绑定4.2 SIMD优化4.2.1 自上向下搜索SIMD的使用4.2.2 自下向上搜索SIMD的使用4.2.3 混合搜索中SIMD的使用4.3 实验与性能分析4.3.1 实验环境4.3.2 实验结果4.3.3 性能比较4.4 总结第五章 BFS算法的异构混合实现技术5.1 算法思想5.2 算法设计5.2.1 算法框架5.2.2 任务划分5.2.3 通信设计5.3 实现技术5.3.1 基于编译指导命令的实现技术5.3.2 基于底层通信接口的实现技术5.3.3 算法实现5.4 算法分析5.4.1 存储量分析5.4.2 通信量分析5.5 实验与性能分析5.5.1 实验环境5.5.2 任务划分实验5.5.3 综合实验5.6 总结第六章 总结与展望6.1 总结6.2 展望致谢参考文献作者在学期间取得的学术成果
相关论文文献
标签:宽度优先搜索论文; 众核体系结构论文; 异构计算论文;