论文部分内容阅读
随着互联网行业的蓬勃发展,搜索引擎面对的数据规模和用户查询量都有了极大的增长,这对搜索引擎的性能构成了巨大的挑战。目前,商业引擎普遍采用分布式的架构,由索引服务器集群负责处理用户的查询请求。索引服务器召回文档的速度对于系统整体性能至关重要。图形处理单元(GPU)凭借其出色的并行计算能力,可被用来对索引服务器中的倒排链表求交算法进行并行加速。然而,在大规模索引数据的环境下,GPU有限的显存空间成为了并行加速的主要障碍,这正是本文想要解决的主要问题。 首先,本文在基于GPU的并行求交算法的基础上,设计了由GS Method改进的并行化版本的提前停止算法。然后,一方面根据查询数据集对于索引信息的访问频次,设计了基于词项的索引划分方式;另一方面根据提前停止算法对于倒排链表中文档的访问分布,设计了基于文档的索引划分方式。与此同时,基于这两种索引划分方式,本文为在无GPU缓冲区和有GPU缓冲区的情况下,分别设计了查询的分配策略和执行流程,并实现了相应的CPU-GPU协同处理框架来处理查询。最后,本文综合了这两种划分方式的特点与优势,以查询集对于倒排记录块的访问频次为根据,提出了混合式的索引划分方式。在此基础上,设计了相应的查询分配策略和执行流程,完善了CPU-GPU协同查询处理架构的优化工作。 通过在GOV2索引集和Terabyte2006实验验证,本文所提出的三种索引划分方式,在不同的策略和架构下与基准相比均有一定的性能提升。而基于混合式索引划分的CPU-GPU协同处理架构表现更优,在GPU显存不足的情况下,能够保证查询处理系统有较好的性能。