论文部分内容阅读
面对日益增长的海量网页数据和更大规模的用户查询请求,如何保证较高的处理效率是当代搜索引擎面临的严峻挑战,同时也是信息检索系统始终需要解决的核心问题。另一方面,现代处理器中的多核架构日趋成熟,这为搜索引擎这种计算密集型应用提供了更强的硬件支持。目前主流处理器中的单指令流多数据流(Single Instruction Multiple Data,SIMD)指令,能够在较短的时间内完成更多的数据运算,从而实现加速效果。 针对上述问题和背景,论文结合现代处理器中的并行架构,在总结前人工作的基础上,提出了适用于SIMD结构的倒排列表求交及倒排索引解压的并行算法。具体来说,论文探讨了相关算法原理,结合Intel处理器平台的SIMD流技术扩展(Streaming SIMD Extensions,SSE)指令集及高级矢量扩展(AdvancedVector Extensions,AVX)指令集进行优化,提升了查询处理效率,并在压缩处理上取得明显效果。论文研究工作主要包括以下两个方面: 第一,倒排列表求交过程中,搜索算法往往会成为性能瓶颈。SSE指令集中的字符串搜索指令,可以充分利用并行优势加速搜索计算。本文选择了适合SIMD结构的两种求交算法进行改进,即哈希分段和线性回归。从实验结果上看,上述两种改进算法都取得了明显效果。 第二,对于搜索引擎来说,如何将倒排索引更多地存入内存同样是影响性能的关键。为了解决这个问题,通常需要对倒排索引进行压缩。由于索引压缩一般在预处理阶段完成,相比于压缩速度,压缩算法的压缩比和解压速度对搜索引擎而言更加重要。论文在分析现有压缩算法的基础上,结合SSE和AVX指令集,提出了适用于SIMD并行结构的解压算法。实验结果表明,改进算法在保持较高压缩比的同时,解压速度得到了明显提升。