之前一直想读这篇,今天读了一下,颇有收获:
1.对文档按相似term聚类之后,delta较小,可以提高压缩率(similarity graph)
1.GPU一般可以有几百个核,有shared memory和global memory,shared memory相当于寄存器的速度,global memory速度较慢
2.有序数组上的搜索算法除了binary search还有interplation search(插值搜索),平均复杂度是O(loglogn),但memory access是binary search的三倍,一般不使用
3.一般到排链基本都符合线性增长趋势,可以对应直线的点,取范围查找可以减少binary search的范围,提升效率(LR Algorithm)
4.或使用hash表,将一定范围内的docId放在一个bucket中,哈希函数简单、哈希表在shared memory中,虽然有些内存的overhead,但效率非常高,快于LR(HS Algorithm)
5.因为一般倒排表是线性增长的,使用Linear Regression Compression,可以很好压缩(但压缩比只有二点几,不知道和group variant比怎么样),但是具有不保存delta的优势,在GPU上可以直接应用binary search,只是每次需要浮点数计算.
Efficent Parallel Lists Intersection and Index Compression Algorithms using Graphics Processing Units:
http://www.vldb.org/pvldb/vol4/p470-ao.pdfGPU方法做倒排压缩和交集计算
原文:http://blog.csdn.net/jollyjumper/article/details/39352339