字符串匹配多级并行算法研究

来源 :华南理工大学 | 被引量 : 0次 | 上传用户:yxzapricot
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
网络内容分析系统最核心问题之一是字符串模式匹配。串匹配是计算机领域最基本的问题,经过多年的研究,已经获得很多经典的算法。但是,传统的串匹配算法遇到了一个瓶颈,精确单模式和多模式字符串匹配算法复杂度下限是O(n/mlog|∑|m)和O(n/mlog|∑|rm),不少优秀经典算法,如BMH,Wu-Manber,都已经接近或达到这一最优时间复杂度。   本文从并行的角度出发,考虑突破这一瓶颈的办法。采用主流的双核处理器,研究多核指令、SSE指令和网格技术在传统的字符串匹配算法中的应用。本文主要进行了下面一些研究工作。   (1)在精确匹配算法中:   对基于滑动窗口的后缀算法进行了研究,提出并行后缀算法,主要思想是:每次正常比较(跳跃)后,利用SSE指令将下一个窗口跳跃可能到达的地方都预先取出来。这样每次比较能实现两个窗口的跳跃。   对基于子串的算法进行了研究,提出并行子串算法:在原算法中,采用Trie,FactorOracle和DAWG自动机对子串进行匹配,算法复杂度是0(m)。改成并行算法后,采用SSE匹配子串,算法复杂度是O(「m/16」)。   将两种算法结合,在普通的双核CPU(Intel E2200)上进行了实验。结果显示,对于目前公认最快的Boyer-Moore-Horspool和Wu-Manber算法,提出的并行算法达到了较高的并行加速比。   (2)在近似匹配算法的研究中:   在NFA自动机和BPM算法的研究中,发现这两种数据模型都可以转化成编辑距离矩阵,利用矩阵反对角线方向的数据独立性,提出了相应的并行算法。   在基于Hash的字符串匹配算法中,提出了一种并行算法,将原算法一次计算一个字符串的Hash值,改为一次并行计算多个字符串的Hash值,并在随后的Hash值粗略比较和逐字精确比较中也用并行算法实现。   (3)应用可分负载理论,在FuseGrid网格上对字符串匹配算法进行了研究和实验。通过拟合通讯和处理参数,得出了适合网格的字符串算法的范围。对多轮分配任务策略,提出一种快速启发式算法,能提高各个节点CPU的使用效率,缩短并行近似串匹配的时间。   计算和分析了基于网格的字符串匹配算法加速性能和扩展性,并和基于多核SSE的字符串匹配算法进行了比较,证明基于网格的字符串匹配算法具有良好的并行扩展性,参加的节点越多,获得的加速比就越高。   将基于网格的和基于多核的字符串匹配算法结合,证明可以互相结合,取长补短,实现了网格、多核、SSE三级并行加速。
其他文献
随着互连网络的迅速发展,人们获得越来越多的网络信息,但同时也带来了很多的负面影响,其中垃圾信息已成为人们日益关注的焦点问题。网络垃圾信息的日益泛滥不仅为人们的工作和生
智能交通系统(ITS)是一个融合了多种先进技术的信息化综合系统。利用ITS共用信息平台连接ITS子系统实现信息资源的共享、交换和综合利用是目前国内外各城市ITS的发展方向。  
石油行业一直是我国国家能源的支柱型行业,其中石油勘探、开发是主体。近年来,很多软件开发人员致力于开发出能够加快石油勘探开发速度、提高生产科研效率的软件。这些软件多