基于CPU+GPU异构平台的字符串匹配算法研究与实现

基于CPU+GPU异构平台的字符串匹配算法研究与实现

论文摘要

字符串匹配是计算机科学领域中最基础的技术之一,广泛应用于信息检索、网络安全等领域。然而,随着匹配内容(如网页、网络数据包等)的不断增加以及搜索形式日益复杂(从精确匹配到正则表达式匹配)。字符串匹配迫切需要采用新的高性能技术去设计更有效以及质量更高的算法来满足海量数据的应用需求。与此同时,由CPU+GPU(中央处理器+图像处理器)组成的异构处理平台已经成为主流的并行解决方案。CPU在执行指令和复杂逻辑方面发挥其高效性的优势,而GPU在浮点计算、并行计算以及内存带宽上大大超越了CPU。本论文旨在利用CPU+GPU异构多核的高并行能力,研究经典的字符串匹配算法,分析算法复杂度和适用性,设计和优化高性能并行匹配算法,提升字符串匹配的性能。本论文首先概述字符串匹配的广泛应用及面临的挑战,同时对GPU的架构特点及其特有的开发框架CUDA(the Compute Unified Device Architecture,计算统一设备框架)进行了论述,阐述了CUDA编程中如何调度线程、如何分配内存以达到充分利用GPU计算能力的技巧,并介绍了国内外基于GPU的字符串匹配研究。其次本文对经典的多模式字符串匹配算法——AC算法(Aho-Corasick算法)进行了移植优化,通过结合CPU+GPU异构平台的特点将AC算法向GPU移植并设计成并行匹配算法——GAC (GPU-based Aho-Corasick)。接着将GAC实现于网页匹配系统中,获得了比原系统28倍的速度提升。最后论文研究了高级字符串匹配——正则表达式的实现原理,通过设计表扩展、数据并行以及流水线等方案,完成了异构平台上的高性能正则表达式匹配系统——GFlex(GPU-based Flex),相比原串行系统甚至于多核并行系统在性能上有了显著地提高。

论文目录

  • 摘要
  • Abstract
  • 第一章 绪论
  • 1.1 研究背景
  • 1.1.1 字符串匹配的广泛应用
  • 1.1.2 GPU 简介
  • 1.2 国内外研究现状
  • 1.3 论文研究内容及意义
  • 1.4 论文的主要工作
  • 1.5 论文的组织结构
  • 第二章 GPU 体系结构及已有算法分析
  • 2.1 GPU 体系结构
  • 2.2 GPU 存储结构
  • 2.3 CUDA 编程
  • 2.4 基于GPU 的字符串匹配算法
  • 2.4.1 基于GPU 的KMP 算法
  • 2.4.2 基于GPU 的AC 算法
  • 2.4.3 基于GPU 的NFA 算法
  • 2.4.4 算法评述
  • 2.5 本章小结
  • 第三章 基于CPU+GPU 上的AC 算法优化
  • 3.1 AC 算法介绍
  • 3.2 数据结构设计
  • 3.2.1 AC 自动机数据结构
  • 3.2.2 文本数据结构
  • 3.2.3 匹配结果数据结构
  • 3.3 GAC 算法设计
  • 3.3.1 算法框架
  • 3.3.2 算法执行流程
  • 3.3.3 GPU 内存分配优化
  • 3.4 CPU 上的实现
  • 3.4.1 CPU 上的预处理过程
  • 3.4.2 CPU 上的后处理过程
  • 3.5 GPU 上算法优化方案
  • 3.5.1 Version1 版本设计
  • 3.5.2 Version2 版本设计
  • 3.5.3 Version3 版本设计
  • 3.6 本章小结
  • 第四章 GAC 实验测试及结果分析
  • 4.1 测试平台
  • 4.2 测试用例
  • 4.3 CPU 串行系统测试
  • 4.4 GAC 系统测试
  • 4.4.1 Version1 版本测试
  • 4.4.2 Version2 版本测试
  • 4.4.3 Version3 版本测试
  • 4.5 测试结果分析
  • 4.5.1 实验数据
  • 4.5.2 规律分析
  • 4.6 本章小结
  • 第五章 CPU+GPU 上的并行正则表达式匹配
  • 5.1 正则表达式匹配的问题描述
  • 5.2 正则表达式匹配的一般方法
  • 5.2.1 NFA 方法
  • 5.2.2 DFA 方法
  • 5.3 多核并行PCRE 匹配系统
  • 5.4 多核并行Flex 匹配系统
  • 5.4.1 Flex 和PCRE 的规则差异与解决方法
  • 5.4.2 预处理过程
  • 5.4.3 基于Flex 的并行匹配过程
  • 5.4.4 利用PCRE 进行后处理
  • 5.5 异构平台上的GFlex 匹配系统
  • 5.5.1 GFlex 的设计与实现
  • 5.6 本章小结
  • 第六章 并行正则表达式匹配系统测试与分析
  • 6.1 测试平台
  • 6.2 测试用例
  • 6.3 CPU 串行系统测试
  • 6.4 多核并行PCRE 系统测试
  • 6.5 多核并行Flex 匹配系统测试
  • 6.6 异构并行GFlex 匹配系统测试
  • 6.7 本章小结
  • 第七章总结与展望
  • 7.1 本文总结
  • 7.2 展望
  • 参考文献
  • 攻读硕士学位期间取得的研究成果
  • 致谢
  • 附件
  • 相关论文文献

    • [1].关于CPU+GPU异构计算模式程序开发中编程方法研究[J]. 科学大众(科学教育) 2014(10)
    • [2].CPU+GPU异构并行的矩阵转置算法研究[J]. 东北师大学报(自然科学版) 2019(04)
    • [3].基于CPU+GPU异构计算的编程方法研究[J]. 通信技术 2011(02)
    • [4].基于CPU+GPU联合计算真地表叠前时间偏移实用化研究[J]. 石油地球物理勘探 2014(03)
    • [5].CPU+GPU架构下节点阻抗矩阵生成及节点编号优化方法[J]. 电力系统自动化 2020(02)
    • [6].CPU+GPU异构系统在油田地震勘探领域的应用[J]. 青海石油 2014(02)
    • [7].面向CPU+GPU异构平台的模板匹配目标识别并行算法[J]. 天津科技大学学报 2014(04)
    • [8].基于HYB格式稀疏矩阵与向量乘在CPU+GPU异构系统中的实现与优化[J]. 计算机工程与科学 2016(02)
    • [9].基于CPU+GPU混合架构的改进型距离徙动算法设计与实现[J]. 电子测量技术 2020(03)
    • [10].CPU+GPU的异构计算系统在石油勘探中的应用研究[J]. 电脑知识与技术 2017(29)
    • [11].基于CPU+GPU异构计算的多聚焦图像融合[J]. 电子技术与软件工程 2017(06)
    • [12].面向CPU+GPU异构计算的多目标测试用例优先排序[J]. 软件学报 2016(04)
    • [13].基于CPU+GPU异构计算编程研究[J]. 科学技术创新 2020(01)
    • [14].面向CPU+GPU异构计算的SIFT特征匹配并行算法[J]. 同济大学学报(自然科学版) 2013(11)
    • [15].基于CPU+GPU的大视场物镜成像畸变实时校正[J]. 光子学报 2018(06)
    • [16].准对角矩阵与向量相乘在CPU+GPU异构集群上的实现与优化[J]. 小型微型计算机系统 2015(07)
    • [17].CPU+GPU并行计算技术在复杂结构非线性分析中的应用[J]. 建筑结构 2015(23)
    • [18].支持CPU+GPU协同计算的C源程序预处理划分策略[J]. 计算机应用 2013(S2)
    • [19].CPU+GPU异构模式下并行计算效率研究[J]. 计算机与现代化 2012(05)
    • [20].CPU+GPU:混合处理器提高内部连接效率[J]. 新电脑 2008(04)
    • [21].关于CPU+GPU异构计算的研究与分析[J]. 科技信息 2010(17)
    • [22].CPU+GPU异构平台的一致性图像配准算法并行实现[J]. 小型微型计算机系统 2014(01)
    • [23].适用于CPU+GPU协同架构的大规模病态潮流求解方法[J]. 电力系统自动化 2018(10)
    • [24].高频地波雷达实时信号并行处理方案及实现[J]. 中国海洋大学学报(自然科学版) 2017(02)
    • [25].基于CPU+GPU混合架构的实时成像系统设计与实现[J]. 太赫兹科学与电子信息学报 2019(01)
    • [26].CPU+GPU异构体系混合编程模式研究[J]. 信息记录材料 2016(04)
    • [27].CPU+GPU异构并行计算技术研究[J]. 信息系统工程 2018(05)
    • [28].基于CPU+GPU异构并行的QPSK开环解调方法研究[J]. 遥测遥控 2013(04)
    • [29].CPU+GPU海量信息集群高速显示技术[J]. 计算机系统应用 2015(04)
    • [30].OpenCL异构并行编程在遥感影像处理中的应用[J]. 电脑知识与技术 2018(23)

    标签:;  ;  ;  ;  

    基于CPU+GPU异构平台的字符串匹配算法研究与实现
    下载Doc文档

    猜你喜欢