[发明专利]利用XeonPhi协处理器提升布隆滤波器处理性能的系统及方法有效
申请号: | 201510331094.5 | 申请日: | 2015-06-15 |
公开(公告)号: | CN104899007B | 公开(公告)日: | 2017-08-01 |
发明(设计)人: | 廖小飞;倪晟;金海;郭人通 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/48 |
代理公司: | 华中科技大学专利中心42201 | 代理人: | 廖盈春 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 xeon phi 处理器 提升 滤波器 处理 性能 系统 方法 | ||
技术领域
本发明属于多核/众核性能优化技术领域,更具体地,涉及一种利用Xeon Phi协处理器提升布隆滤波器处理性能的系统及方法。
背景技术
布隆滤波器(Bloom Filter)是一种空间效率高的随机数据结构,由Burton Bloom于1970年提出,其使用一个位向量表示一个集合,将单个元素使用k个相互独立的Hash函数映射到该位向量中。插入一个元素时,将这k个映射在该位向量上的位置都置为1;查找一个元素时,判断这k个位置是否都为1即可。这种数据结构能够在很短的时间内判断需查询的元素是否存在于集合内。相较于其他数据结构例如搜索树、Hash表等查找效率和空间效率均随元素增加而不断降低的特性,布隆滤波器的查找效率与元素个数无关,并且空间占用往往只有传统数据结构的1/8~1/4。但高效的查找效率和空间效率带来的问题是存在误报率(False Positive rate),当查询结果为真时,结果有一定几率是错误的;但当查询结果为否时,结果一定是正确的。
布隆滤波器广泛应用于海量数据处理、冲突检测、网络路由等领域,其任务处理的吞吐量对于这类高性能计算应用尤为重要,对布隆滤波器性能的优化能够至少为相关应用带来10%的性能提升。目前使用多核、众核、异构体系结构进行高性能的计算是一种趋势,理解并使用这些新型体系结构对传统数据结构的优化是一个巨大挑战。
Xeon Phi是Intel公司在2012年推出的基于x86架构的高并发协处理器(Many Integrated Core,MIC),其第二代产品Knight Corner最多包括61个x86核心,每个核心都配备一个长度为512bit的单指令多数据流(Single Instruction Multiple Data,SIMD)向量处理器,支持32个单精度和16个双精度的浮点数同时运算,拥有较强的计算性能。由于核心数量的增多而采用了更为复杂的体系结构和内存系统,一方面,使其在处理同步通信操作较多的应用时效率不高。而目前常采用的并行处理布隆滤波器的方法大多使用了同步操作来保证结果的正确性,所以尽管众核协处理器相对于多核处理器能够支持更多线程的同时执行,但一旦单个线程进入了布隆滤波器的临界区后,更多的线程会处于等待状态,而不能够发挥全部的性能;另一方面,由于布隆滤波器中每个Hash函数的独立性,对于每个物理线程而言,访存的特点存在随机性,不能够有效利用到Cache的局部性,并且与其他物理线程的Cache存在着一致性问题,为了维护缓存的一致性带来了更多的开销,导致整体访存效率偏低。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种利用Xeon Phi协处理器提升布隆滤波器处理性能的系统及方法,旨在提升系统整体处理布隆滤波器任务的吞吐量,并降低现有方法中占大部分处理时间的同步操作开销和访存时间。
为实现上述目的,根据本发明的一个方面,提供一种利用Xeon Phi协处理器提升布隆滤波器处理性能的系统,包括宿主端和协处理器端,其中:
所述宿主端包括性能采样模块、任务调度模块、第一通信模块和第一任务处理模块,其中:
所述性能采样模块用于周期性地测试所述宿主端和所述协处理器端的性能,并按照其处理能力分别设定任务分配比例;
所述任务调度模块用于根据所述任务分配比例将任务交付到所述宿主端和所述协处理器端的各个物理线程进行处理,并在运行过程中动态调整所述宿主端和所述协处理器端的负载;
所述第一通信模块用于管理所述宿主端与所述协处理器端之间的通信任务,并为所述宿主端维护一个双缓冲队列;
所述第一任务处理模块用于从所述任务调度模块获取任务,根据任务的类型进行处理,并在所述任务处理结束后直接将结果写入文件;
所述协处理器端包括第二通信模块和第二任务处理模块,其中:
所述第二通信模块用于管理所述协处理器端与所述宿主端之间的通信任务,并为所述协处理器端维护一个双缓冲队列;
所述第二任务处理模块用于从所述第二通信模块获取任务,根据任务的类型进行处理,并在所述任务处理结束后会将结果发送到所述第二通信模块,以传回所述宿主端写入文件。
根据本发明的另一方面,提供一种利用Xeon Phi协处理器提升布隆滤波器处理性能的方法,包括以下步骤:
步骤1周期性地获取宿主端和协处理器端的处理能力的比例;
步骤2对所述宿主端和所述协处理器端的物理线程进行负载均衡操作,包括以下子步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510331094.5/2.html,转载请声明来源钻瓜专利网。