国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      利用XeonPhi協(xié)處理器提升布隆濾波器處理性能的系統(tǒng)及方法

      文檔序號(hào):8922376閱讀:601來源:國知局
      利用Xeon Phi協(xié)處理器提升布隆濾波器處理性能的系統(tǒng)及方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明屬于多核/眾核性能優(yōu)化技術(shù)領(lǐng)域,更具體地,涉及一種利用Xeon Phi協(xié)處理器提升布隆濾波器處理性能的系統(tǒng)及方法。
      【背景技術(shù)】
      [0002]布隆濾波器(Bloom Filter)是一種空間效率高的隨機(jī)數(shù)據(jù)結(jié)構(gòu),由Burton Bloom于1970年提出,其使用一個(gè)位向量表示一個(gè)集合,將單個(gè)元素使用k個(gè)相互獨(dú)立的Hash函數(shù)映射到該位向量中。插入一個(gè)元素時(shí),將這k個(gè)映射在該位向量上的位置都置為I ;查找一個(gè)元素時(shí),判斷這k個(gè)位置是否都為I即可。這種數(shù)據(jù)結(jié)構(gòu)能夠在很短的時(shí)間內(nèi)判斷需查詢的元素是否存在于集合內(nèi)。相較于其他數(shù)據(jù)結(jié)構(gòu)例如搜索樹、Hash表等查找效率和空間效率均隨元素增加而不斷降低的特性,布隆濾波器的查找效率與元素個(gè)數(shù)無關(guān),并且空間占用往往只有傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)的1/8?1/4。但高效的查找效率和空間效率帶來的問題是存在誤報(bào)率(False Positive rate),當(dāng)查詢結(jié)果為真時(shí),結(jié)果有一定幾率是錯(cuò)誤的;但當(dāng)查詢結(jié)果為否時(shí),結(jié)果一定是正確的。
      [0003]布隆濾波器廣泛應(yīng)用于海量數(shù)據(jù)處理、沖突檢測(cè)、網(wǎng)絡(luò)路由等領(lǐng)域,其任務(wù)處理的吞吐量對(duì)于這類高性能計(jì)算應(yīng)用尤為重要,對(duì)布隆濾波器性能的優(yōu)化能夠至少為相關(guān)應(yīng)用帶來10%的性能提升。目前使用多核、眾核、異構(gòu)體系結(jié)構(gòu)進(jìn)行高性能的計(jì)算是一種趨勢(shì),理解并使用這些新型體系結(jié)構(gòu)對(duì)傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)的優(yōu)化是一個(gè)巨大挑戰(zhàn)。
      [0004]Xeon Phi是Intel公司在2012年推出的基于x86架構(gòu)的高并發(fā)協(xié)處理器(ManyIntegrated Core, MIC),其第二代產(chǎn)品Knight Corner最多包括61個(gè)x86核心,每個(gè)核心都配備一個(gè)長度為512bit的單指令多數(shù)據(jù)流(Single Instruct1n Multiple Data, SIMD)向量處理器,支持32個(gè)單精度和16個(gè)雙精度的浮點(diǎn)數(shù)同時(shí)運(yùn)算,擁有較強(qiáng)的計(jì)算性能。由于核心數(shù)量的增多而采用了更為復(fù)雜的體系結(jié)構(gòu)和內(nèi)存系統(tǒng),一方面,使其在處理同步通信操作較多的應(yīng)用時(shí)效率不高。而目前常采用的并行處理布隆濾波器的方法大多使用了同步操作來保證結(jié)果的正確性,所以盡管眾核協(xié)處理器相對(duì)于多核處理器能夠支持更多線程的同時(shí)執(zhí)行,但一旦單個(gè)線程進(jìn)入了布隆濾波器的臨界區(qū)后,更多的線程會(huì)處于等待狀態(tài),而不能夠發(fā)揮全部的性能;另一方面,由于布隆濾波器中每個(gè)Hash函數(shù)的獨(dú)立性,對(duì)于每個(gè)物理線程而言,訪存的特點(diǎn)存在隨機(jī)性,不能夠有效利用到Cache的局部性,并且與其他物理線程的Cache存在著一致性問題,為了維護(hù)緩存的一致性帶來了更多的開銷,導(dǎo)致整體訪存效率偏低。

      【發(fā)明內(nèi)容】

      [0005]針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供一種利用Xeon Phi協(xié)處理器提升布隆濾波器處理性能的系統(tǒng)及方法,旨在提升系統(tǒng)整體處理布隆濾波器任務(wù)的吞吐量,并降低現(xiàn)有方法中占大部分處理時(shí)間的同步操作開銷和訪存時(shí)間。
      [0006]為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供一種利用Xeon Phi協(xié)處理器提升布隆濾波器處理性能的系統(tǒng),包括宿主端和協(xié)處理器端,其中:
      [0007]所述宿主端包括性能采樣模塊、任務(wù)調(diào)度模塊、第一通信模塊和第一任務(wù)處理模塊,其中:
      [0008]所述性能采樣模塊用于周期性地測(cè)試所述宿主端和所述協(xié)處理器端的性能,并按照其處理能力分別設(shè)定任務(wù)分配比例;
      [0009]所述任務(wù)調(diào)度模塊用于根據(jù)所述任務(wù)分配比例將任務(wù)交付到所述宿主端和所述協(xié)處理器端的各個(gè)物理線程進(jìn)行處理,并在運(yùn)行過程中動(dòng)態(tài)調(diào)整所述宿主端和所述協(xié)處理器端的負(fù)載;
      [0010]所述第一通信模塊用于管理所述宿主端與所述協(xié)處理器端之間的通信任務(wù),并為所述宿主端維護(hù)一個(gè)雙緩沖隊(duì)列;
      [0011]所述第一任務(wù)處理模塊用于從所述任務(wù)調(diào)度模塊獲取任務(wù),根據(jù)任務(wù)的類型進(jìn)行處理,并在所述任務(wù)處理結(jié)束后直接將結(jié)果寫入文件;
      [0012]所述協(xié)處理器端包括第二通信模塊和第二任務(wù)處理模塊,其中:
      [0013]所述第二通信模塊用于管理所述協(xié)處理器端與所述宿主端之間的通信任務(wù),并為所述協(xié)處理器端維護(hù)一個(gè)雙緩沖隊(duì)列;
      [0014]所述第二任務(wù)處理模塊用于從所述第二通信模塊獲取任務(wù),根據(jù)任務(wù)的類型進(jìn)行處理,并在所述任務(wù)處理結(jié)束后會(huì)將結(jié)果發(fā)送到所述第二通信模塊,以傳回所述宿主端寫入文件。
      [0015]根據(jù)本發(fā)明的另一方面,提供一種利用Xeon Phi協(xié)處理器提升布隆濾波器處理性能的方法,包括以下步驟:
      [0016]步驟I周期性地獲取宿主端和協(xié)處理器端的處理能力的比例;
      [0017]步驟2對(duì)所述宿主端和所述協(xié)處理器端的物理線程進(jìn)行負(fù)載均衡操作,包括以下子步驟:
      [0018](2-1)根據(jù)現(xiàn)有負(fù)載構(gòu)造任務(wù)-線程映射表,計(jì)算出目前所述宿主端和所述協(xié)處理器端的每個(gè)物理線程所計(jì)算的任務(wù)個(gè)數(shù)Ti,并計(jì)算所有線程的總和SumT和所述協(xié)處理器線程任務(wù)個(gè)數(shù)總和SumC ;
      [0019](2-2)找到所有運(yùn)行在所述協(xié)處理器端的線程編號(hào)滿足Tj/SumC>4XSumC/NumCT的線程j,并在所述宿主端找到一個(gè)滿足Ti/SumC〈 = 2XSumC/NumCT的線程i,其中NumCT表示所述協(xié)處理器端的線程個(gè)數(shù),若不存在則取最小值Ti/SumC的線程i,交換所述任務(wù)-線程映射表中線程i和線程j的子向量對(duì)應(yīng)的項(xiàng);
      [0020](2-3)將線程i對(duì)應(yīng)的子向量和線程i與線程j交換子向量的信息發(fā)送到所述協(xié)處理器端的輸入緩沖隊(duì)列,若所述輸入緩沖隊(duì)列為滿,則向所述協(xié)處理器端發(fā)送一個(gè)隊(duì)列滿的信號(hào)并進(jìn)入等待狀態(tài),直至所述協(xié)處理器端返回輸入緩沖隊(duì)列可寫的信息時(shí),再將線程i對(duì)應(yīng)的子向量和線程i與線程j交換子向量的信息發(fā)送到所述輸入緩沖隊(duì)列;
      [0021](2-4)等待所述協(xié)處理器端發(fā)送替換線程j對(duì)應(yīng)的子向量的內(nèi)容到達(dá)接收隊(duì)列,獲得后將所述協(xié)處理器端線程j對(duì)應(yīng)的子向量替換所述宿主端線程i對(duì)應(yīng)子向量的內(nèi)容;
      [0022]步驟3將待處理的任務(wù)交付至所述宿主端或所述協(xié)處理器端進(jìn)行處理,若所述待處理的任務(wù)交付至所述宿主端則執(zhí)行步驟4,否則執(zhí)行步驟5 ;
      [0023]步驟4所述宿主端的每個(gè)物理線程從所屬的任務(wù)隊(duì)列中獲取任務(wù),令取出任務(wù)的數(shù)量X等于宿主端所支持的向量計(jì)算長度/Hash函數(shù)運(yùn)算的字長,使用SMD指令同時(shí)計(jì)算X個(gè)任務(wù)的Hash函數(shù),并將操作在子向量上獲得的結(jié)果寫入到文件中;
      [0024]步驟5將交付至所述協(xié)處理器端的任務(wù)發(fā)送至所述協(xié)處理器端進(jìn)行處理;
      [0025]步驟6所述協(xié)處理器端從對(duì)應(yīng)的任務(wù)隊(duì)列中獲取任務(wù),令取出任務(wù)的數(shù)量X等于所述協(xié)處理器端所支持的向量計(jì)算長度/Hash函數(shù)運(yùn)算的字長,使用SMD指令同時(shí)計(jì)算X個(gè)任務(wù)的Hash函數(shù),并將操作在子向量上獲得的結(jié)果回傳到所述宿主端;
      [0026]步驟7所述宿主端接收所述協(xié)處理器端回傳的結(jié)果,并回寫到文件。
      [0027]總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下有益效果:
      [0028]1、獲取宿主端與協(xié)處理器端處理一定數(shù)量布隆濾波器任務(wù)的時(shí)間比例,獲取
      當(dāng)前第1頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1