3)在每處理一批請求之前先截取部分任務(wù),例如前10%的任務(wù),同時發(fā)送給宿主端和協(xié)處理器端,例如系統(tǒng)中配置一塊協(xié)處理器,記錄宿主端返回結(jié)果所需的時間Δ tl和協(xié)處理器端返回結(jié)果所需的時間Λ t2,判定兩者的性能比例為Λ t2: Δ tl,則分配到兩者的任務(wù)數(shù)量比例為Λ tl: Λ t2 ;
[0048](1-4)將本批次任務(wù)發(fā)送給宿主端的任務(wù)調(diào)度模塊,然后執(zhí)行步驟2。
[0049]步驟2任務(wù)調(diào)度模塊對宿主端和協(xié)處理器端的物理線程進(jìn)行負(fù)載均衡操作,具體包括以下子步驟:
[0050](2-1)根據(jù)現(xiàn)有負(fù)載構(gòu)造任務(wù)-線程映射表,首先計(jì)算出目前宿主端和協(xié)處理器端的每個物理線程所計(jì)算的任務(wù)個數(shù)Ti,并計(jì)算所有線程的總和SumT和協(xié)處理器線程任務(wù)個數(shù)總和SumC ;
[0051](2-2)找到所有運(yùn)行在協(xié)處理器端的部分線程,這類線程的特征是其線程編號j滿足Tj/SumC>4XSumC/NumCT,并在宿主端找到一個線程i,其特征是滿足Ti/SumC〈=2XSumC/NumCT,若不存在則取最小值Ti/SumC的線程i,并交換任務(wù)-線程映射表中線程i和線程j的子向量對應(yīng)的項(xiàng);
[0052](2-3)將線程i對應(yīng)的子向量和線程i與線程j交換子向量的信息發(fā)送到協(xié)處理器端的通信模塊的輸入緩沖隊(duì)列,若出現(xiàn)輸入緩沖隊(duì)列滿,則向協(xié)處理器端的通信模塊發(fā)送一個隊(duì)列滿的信號并進(jìn)入等待狀態(tài),直至協(xié)處理器端的通信模塊返回輸入緩沖隊(duì)列可寫的信息時重復(fù)本步驟,傳輸完成后執(zhí)行步驟(2-4);
[0053](2-4)等待協(xié)處理器發(fā)送替換線程j對應(yīng)的子向量的內(nèi)容到達(dá)通信模塊的接收隊(duì)列,獲得后將協(xié)處理器端線程j對應(yīng)的子向量替換宿主端線程i對應(yīng)子向量的內(nèi)容。
[0054]步驟3任務(wù)調(diào)度模塊將待處理的任務(wù)交付至相應(yīng)端的任務(wù)處理模塊,具體包括以下子步驟:
[0055](3-1)從宿主端的性能采樣模塊獲取下一批次任務(wù),對已劃分的元素使用映射函數(shù)按任務(wù)-線程映射表進(jìn)行映射,若任務(wù)屬于宿主端,將相應(yīng)任務(wù)發(fā)送到宿主端被映射的物理線程的任務(wù)隊(duì)列作處理,然后執(zhí)行步驟4,若任務(wù)不屬于宿主端,則執(zhí)行步驟(3-2);
[0056](3-2)被任務(wù)-線程映射表映射到協(xié)處理器端的任務(wù)經(jīng)宿主端的通信模塊發(fā)送到協(xié)處理器端進(jìn)行處理;
[0057](3-3)任務(wù)調(diào)度模塊嘗試批量發(fā)送任務(wù)給宿主端的通信模塊的輸入緩沖隊(duì)列,若出現(xiàn)輸入緩沖隊(duì)列滿,則向宿主端的通信模塊發(fā)送一個隊(duì)列滿的信號并進(jìn)入等待狀態(tài),直至宿主端的通信模塊返回輸入緩沖隊(duì)列可寫的信息時重復(fù)本步驟,傳輸完成后執(zhí)行步驟5。
[0058]步驟4宿主端的多個物理線程從對應(yīng)的任務(wù)隊(duì)列中獲取任務(wù),任務(wù)處理模塊令取出任務(wù)的數(shù)量X等于宿主端所支持的向量計(jì)算長度/Hash函數(shù)運(yùn)算的字長,使用SMD指令同時計(jì)算X個任務(wù)的Hash函數(shù),并依據(jù)操作在子向量上獲得查找/插入/刪除的結(jié)果,然后將結(jié)果寫入到文件中。任務(wù)隊(duì)列為空時,任務(wù)處理模塊以一定時間間隔循環(huán)等待。
[0059]步驟5宿主端將分配到協(xié)處理器端的任務(wù)發(fā)送至協(xié)處理器端進(jìn)行處理,具體包括以下子步驟:
[0060](5-1)宿主端的通信模塊等待其輸入緩沖隊(duì)列寫滿的信息;
[0061](5-2)獲得輸入緩沖隊(duì)列滿的信息后,查看傳輸緩沖隊(duì)列的發(fā)送任務(wù)是否完成,若未完成則在此處按照一定的時間間隔循環(huán)等待,若完成則執(zhí)行步驟(5-3);
[0062](5-3)將輸入緩沖隊(duì)列與傳輸緩沖隊(duì)列互換,并發(fā)送傳輸緩沖隊(duì)列的數(shù)據(jù)到協(xié)處理器端,向任務(wù)調(diào)度模塊發(fā)送輸入緩沖隊(duì)列可寫的信息。
[0063]步驟6協(xié)處理器端從對應(yīng)的任務(wù)隊(duì)列中獲取任務(wù),協(xié)處理器端的任務(wù)處理模塊令取出任務(wù)的數(shù)量X等于協(xié)處理器端所支持的向量計(jì)算長度/Hash函數(shù)運(yùn)算的字長,使用SIMD指令同時計(jì)算X個任務(wù)的Hash函數(shù),并依據(jù)操作在子向量上獲得查找/插入/刪除的結(jié)果,最后將操作結(jié)果通過協(xié)處理器端的通信模塊回傳到宿主端。
[0064]步驟7協(xié)處理器將處理結(jié)果發(fā)送到宿主端,并回寫到文件,具體包括以下子步驟:
[0065](7-1)協(xié)處理器端的通信模塊等待其輸入緩沖隊(duì)列滿的信息;
[0066](7-2)獲得輸入緩沖隊(duì)列滿的信息后,查看傳輸緩沖隊(duì)列的發(fā)送任務(wù)是否完成,若未完成則在此處按照一定的時間間隔循環(huán)等待,若完成則執(zhí)行步驟(7-3);
[0067](7-3)將輸入緩沖隊(duì)列與傳輸緩沖隊(duì)列互換,并發(fā)送傳輸緩沖隊(duì)列中的數(shù)據(jù)到宿主端;
[0068](7-4)宿主端的接收隊(duì)列檢測到隊(duì)列中有回傳結(jié)果,將回傳結(jié)果寫入到文件。
[0069]以上的流程可以視作單個任務(wù)的處理流程,在實(shí)際的實(shí)施過程中,為了減少處理器處于等待狀態(tài)的時間,系統(tǒng)整體流程是按多線程流水線方式并行執(zhí)行的。
[0070]圖3所示為經(jīng)過本發(fā)明任務(wù)調(diào)度模塊中任務(wù)-線程映射表劃分后的布隆濾波器向量的示意圖,圖中以60核的Xeon Phi協(xié)處理器為環(huán)境,宿主端和協(xié)處理器的每個物理線程管理4bit的子向量(實(shí)際情況子向量長度與每個物理線程的緩存大小相關(guān))。每個物理線程所訪問的內(nèi)存區(qū)域均是獨(dú)立的局域,不存在重疊部分,避免緩存一致性帶來的開銷;另夕卜,每個物理線程管理的子向量與其擁有的緩存大小相同,每個物理線程所訪問的內(nèi)存空間將不大于緩存的大小,使除了第一次訪問訪存的強(qiáng)制缺失外,不存在其他的緩存缺失,均為緩存命中,提升訪存速度。
[0071]本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種利用Xeon Phi協(xié)處理器提升布隆濾波器處理性能的系統(tǒng),其特征在于,包括宿主端和協(xié)處理器端,其中: 所述宿主端包括性能采樣模塊、任務(wù)調(diào)度模塊、第一通信模塊和第一任務(wù)處理模塊,其中: 所述性能采樣模塊用于周期性地測試所述宿主端和所述協(xié)處理器端的性能,并按照其處理能力分別設(shè)定任務(wù)分配比例; 所述任務(wù)調(diào)度模塊用于根據(jù)所述任務(wù)分配比例將任務(wù)交付到所述宿主端和所述協(xié)處理器端的各個物理線程進(jìn)行處理,并在運(yùn)行過程中動態(tài)調(diào)整所述宿主端和所述協(xié)處理器端的負(fù)載; 所述第一通信模塊用于管理所述宿主端與所述協(xié)處理器端之間的通信任務(wù),并為所述宿主端維護(hù)一個雙緩沖隊(duì)列; 所述第一任務(wù)處理模塊用于從所述任務(wù)調(diào)度模塊獲取任務(wù),根據(jù)任務(wù)的類型進(jìn)行處理,并在所述任務(wù)處理結(jié)束后直接將結(jié)果寫入文件; 所述協(xié)處理器端包括第二通信模塊和第二任務(wù)處理模塊,其中: 所述第二通信模塊用于管理所述協(xié)處理器端與所述宿主端之間的通信任務(wù),并為所述協(xié)處理器端維護(hù)一個雙緩沖隊(duì)列; 所述第二任務(wù)處理模塊用于從所述第二通信模塊獲取任務(wù),根據(jù)任務(wù)的類型進(jìn)行處理,并在所述任務(wù)處理結(jié)束后會將結(jié)果發(fā)送到所述第二通信模塊,以傳回所述宿主端寫入文件。2.如權(quán)利要求1所述的利用XeonPhi協(xié)處理器提升布隆濾波器處理性能的系統(tǒng),其特征在于,所述任務(wù)調(diào)度模塊維護(hù)一個任務(wù)-線程映射表,每個表項(xiàng)包括待處理的元素和經(jīng)所述任務(wù)調(diào)度模塊分配的線程號,對于每個待處理的元素,其所有相關(guān)的任務(wù)均被劃分到同一個物理線程,且均在這個物理線程所分配到的子向量上進(jìn)行處理。3.如權(quán)利要求2所述