两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種眾核環(huán)境下的字符串匹配方法

文檔序號:10512278閱讀:242來源:國知局
一種眾核環(huán)境下的字符串匹配方法
【專利摘要】本發(fā)明提供一種眾核環(huán)境下的字符串匹配方法,將待匹配的文本串進(jìn)行切割為若干文本塊后,根據(jù)模式集中的模式串長度通過處理器不同的核進(jìn)行匹配。利用不同的處理器核心處理不同的文本串,再將處理的結(jié)果進(jìn)行統(tǒng)計整合。能夠適應(yīng)處理文本是離散不連續(xù)的情況,避免由于有模式串出現(xiàn)了劃分而導(dǎo)致的漏匹配。并且能夠降低字符串匹配的時間開銷。
【專利說明】
一種眾核環(huán)境下的字符串匹配方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及計算機(jī)及通信技術(shù)領(lǐng)域,具體涉及一種眾核環(huán)境下的字符串匹配方 法。
【背景技術(shù)】
[0002] 目前,8核以上的多核處理器已經(jīng)占據(jù)處理器市場的重要部分。而以Tilera為代表 的眾核處理器(ManyCore)也發(fā)展迅速,出現(xiàn)了36核、72核乃至128核的處理器產(chǎn)品。這些處 理器產(chǎn)品一方面可應(yīng)用于通用服務(wù)器市場,另一方面則應(yīng)用于某些專用服務(wù)器市場,比如 網(wǎng)絡(luò)處理服務(wù)器,進(jìn)行網(wǎng)絡(luò)流量的處理。同時,眾核處理器的出現(xiàn),為計算機(jī)的設(shè)計提出了 新的挑戰(zhàn)。
[0003] 在網(wǎng)絡(luò)處理中,字符串匹配應(yīng)用十分普遍,廣泛應(yīng)用于代碼檢測,漏洞挖掘等工作 中。但是一般的模式匹配方法均是基于單核處理器進(jìn)行設(shè)計,而同時設(shè)計比較復(fù)雜,面向多 核,尤其是面向眾核環(huán)境的模式匹配方法,仍然缺乏有效手段。
[0004] 串匹配方法的串匹配,即字符串匹配,又稱模式匹配,是計算機(jī)中處理數(shù)據(jù)的基本 功能,數(shù)據(jù)庫檢索、網(wǎng)絡(luò)入侵檢測等工作的基礎(chǔ)。待匹配文本、數(shù)據(jù),網(wǎng)絡(luò)流量包都需要采用 一定的匹配算法進(jìn)行串匹配,模式匹配的速度和容量很大程度上決定著程序的運行效率。 目前的串匹配方法很多,但大多是針對單顆處理器進(jìn)行設(shè)計,針對眾核環(huán)境,面臨著需要進(jìn) 行核間交互,增大計算復(fù)雜性等問題。
[0005] 將模式匹配算法移植到眾核平臺有幾種可能的方式。參考傳統(tǒng)多核處理器上模式 匹配的優(yōu)化,眾核處理器上的模式匹配算法可能有以下幾種可能的方法:
[0006] 1,多個核協(xié)同完成同一個算法流程。這種方式實際上是將多個核整合成一個核, 最大化芯片的處理能力。不過這種方式由于自動機(jī)存在狀態(tài)跳轉(zhuǎn)等問題,對核間通信要求 較高,實現(xiàn)難度較大。
[0007] 2,不同的核處理不同的規(guī)則的方法。這里面又可能包含兩種方式,一種是串行的 方法,按照順序處理不同的規(guī)則。一種是并行的方法,將不同核處理的結(jié)果反饋整合。這種 處理方法需要根據(jù)規(guī)則集的大小進(jìn)行切割。這種方式導(dǎo)致同一個匹配文本需要根據(jù)切割后 規(guī)則集的數(shù)量進(jìn)行多次匹配,增加了匹配的次數(shù),導(dǎo)致因這種切割而降低的時間開銷并不 會隨著切割數(shù)量的增加而線性降低。
[0008] 3,不同的核并行的運行模式匹配線程,各個核之間運行各自的模式匹配算法模 塊,只是共享自動機(jī)內(nèi)存。這種方法的優(yōu)勢是各個模塊之間互無關(guān)系,互不影響。這種方式 僅對處理網(wǎng)絡(luò)流具有較好的適應(yīng)性。
[0009] 4,拿出專門的核作模式匹配。這種處理方式是將所有的模式匹配模塊限定在一個 內(nèi)核上,由于眾核的優(yōu)勢在于核數(shù)眾多,而單個核的處理能力較低,這種方式?jīng)]有充分發(fā)揮 眾核芯片的處理能力。實驗表明,這種方式下模式匹配算法的處理能力囿于單個核的處理 能力而性能較低。因此,這種方式較適用于對模式匹配算法需求不大的軟件程序設(shè)計中,另 外,這種方式對系統(tǒng)總體性能影響不大。
[0010] 5,拿出專門的核處理其他工作,用大部分核處理匹配,并根據(jù)方案3進(jìn)行調(diào)整,實 現(xiàn)對處理器使用核數(shù)的調(diào)整。在節(jié)約資源的同時,提高系統(tǒng)的工作效率。但是也帶來了設(shè)計 復(fù)雜度提高的問題。

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

[0011] 針對上述現(xiàn)有技術(shù)存在的問題,本發(fā)明的目的在于提供一種眾核環(huán)境下的字符串 匹配方法,利用不同的處理器核心處理不同的文本串,再將處理的結(jié)果進(jìn)行統(tǒng)計整合。能夠 適應(yīng)處理文本是離散不連續(xù)的情況,避免由于有模式串出現(xiàn)了劃分而導(dǎo)致的漏匹配。并且 能夠降低字符串匹配的時間開銷。
[0012] 為達(dá)上述目的,本發(fā)明采用的具體技術(shù)方案是:
[0013] 一種眾核環(huán)境下的字符串匹配方法,包括以下步驟:
[0014] 將待匹配的文本串切割為若干文本塊后,根據(jù)模式集中的模式串長度通過處理器 不同的核進(jìn)行匹配;
[0015] 如文本串為離散存儲的,則每個由一個處理器的核進(jìn)行匹配的文本塊的長度ni 為:
[0017]其中,q為模式集中最長的模式串長度,η為文本串長度;t為文本塊的數(shù)量;
[0018]如文本串為連續(xù)存儲的,則每個由一個處理器的核進(jìn)行匹配的文本塊的長度ni 為:
[0020]其中,m為模式集中最短的模式串長度。
[0021]進(jìn)一步地,所述文本塊的數(shù)量t與處理器中作為模式匹配工具的核的數(shù)量相同 [0022]進(jìn)一步地,所述文本塊的數(shù)量t與處理器的核數(shù)相同。
[0023]進(jìn)一步地,還包括:將t個處理器的核上的匹配的結(jié)果反饋并進(jìn)行統(tǒng)計。
[0024] 進(jìn)一步地,所述處理器的核對文本塊依據(jù)Wu-Manber算法進(jìn)行串匹配。
[0025]進(jìn)一步地,所述文本塊的數(shù)量t大于處理器的核數(shù),進(jìn)行匹配時,首先逐個將與處 理器的核數(shù)對應(yīng)數(shù)量的文本塊分到處理器的核上進(jìn)行匹配;當(dāng)有一處理器的核完成匹配 時,則將其余文本塊中的一個的分到前述完成匹配的處理器的核上進(jìn)行匹配。
[0026] 進(jìn)一步地,處理器的一管理核心根據(jù)用于匹配的處理器的核的情況,將文本塊分 配到不同的處理器的核。
[0027] 進(jìn)一步地,處理器的核對一文本塊進(jìn)行匹配后,將匹配結(jié)果返回給管理核心。
[0028]進(jìn)一步地,管理核心根據(jù)已經(jīng)完成的匹配結(jié)果,將其余文本塊中的一個的分到前 述完成匹配的處理器的核上進(jìn)行匹配。
[0029]通過采取上述技術(shù)方案,由于文本串的隨機(jī)性較好,分配的不均勻性會比較低,能 夠獲得接近處理器的可用核數(shù)線程數(shù)的加速比。從而字符串匹配的時間開銷。適應(yīng)眾核環(huán) 境,提升眾核處理器性能。
【附圖說明】
[0030] 圖1為本發(fā)明一實施例中眾核環(huán)境下的字符串匹配方法的流程示意圖。
[0031] 圖2為本發(fā)明另一實施例中眾核環(huán)境下的字符串匹配方法的流程示意圖。
【具體實施方式】 [0032] 工作原理簡述:
[0033] 在并行模式匹配方法開發(fā)中,需要考慮的最主要問題是如何將工作量均勻地分配 到各個處理線程,以充分利用多核多線程技術(shù)提升加速比。
[0034] 對于并行的模式匹配問題,有兩種工作量分配的方式可以考慮。一種是劃分模式 集,將模式集按照一定的策略均勻地分到不同的處理線程中。另一種是劃分文本,將待匹配 的文本串劃分成幾個小的文本塊,送到不同的線程也即處理器的可用核來處理。
[0035] 如果對模式集進(jìn)行劃分,同一個文本串在不同的處理線程中進(jìn)行多次匹配,每個 線程由于模式集的減小帶來的性能提升是有限的,最終的加速比仍然會受限于匹配速度最 慢的線程。很難找到一張那個合適的方案可以講模式集均衡地分配到各個線程,分配的不 均衡最終會影響并行化模式匹配方法的綜合性能。
[0036] 而劃分文本串的并行化方案要優(yōu)于模式集切分方案,因為真實應(yīng)用場景下,文本 串的隨機(jī)性要好于模式集,分配的不均勻性會比較低,可獲得接近線程數(shù)及處理器核數(shù)的 加速比。
[0037]利用不同的處理器核心處理不同的文本串,再將處理的結(jié)果進(jìn)行統(tǒng)計整合。這種 方法可能需要將將待匹配的長文本串進(jìn)行切割。如果處理文本是離散不連續(xù)的,比如網(wǎng)絡(luò) 入侵檢測的數(shù)據(jù)包,則需要將內(nèi)容動態(tài)地分配到不同的處理核心上,本申請主要針對這種 算法進(jìn)行了改進(jìn)。
[0038]本申請對帶匹配的文本串的切割的一個具體方案如下:假設(shè)處理器的核數(shù)即多線 程數(shù)為t,模式集中最短模式串長度為m,最長模式串長度為q,文本串長度為η。將整個文本 串劃分為t份,每一份由一個處理器的核即一個線程進(jìn)行處理。每一份文本塊的長度為:
[0040] 前t-ι個文本塊后又加入了 q-l個字符,可以保證每一個可能匹配的模式串總是可 以完整地出現(xiàn)在某一個文本塊中,防止出現(xiàn)由于有模式串出現(xiàn)了劃分而導(dǎo)致的漏匹配。文 本串切分后,實際匹配字節(jié)數(shù)為11' = (11八+(1-1)\(〖-1)+11八=11+((1-1)\(〖-1),則多匹配 的字節(jié)數(shù)為A n= (q-l) X(t-l)遠(yuǎn)小于η。所以由于劃分而多出來的匹配時間消耗是可以忽 略不計的。
[0041] 如果文本串是連續(xù)存儲在內(nèi)存當(dāng)中的,上面的文本串劃分策略還可以進(jìn)一步優(yōu) 化,仍然將整個文本串劃分為t份,每一份由一個線程進(jìn)行處理,每一份文本塊的長度變?yōu)椋?br>[0043]這里前t-Ι個文本塊后只需要加入m-1個字符,是因為文本串連續(xù)存儲,劃分時只 需要保證所有模式串的最優(yōu)m窗口中的m個字節(jié)總是可以完整地出現(xiàn)某一個文本塊里,匹配 驗證時,算法會跨過文本塊進(jìn)行字符比較,最終確認(rèn)匹配。這種方案下,由于文本串劃分而 多匹配的字節(jié)數(shù)變成An=(m-l)(t-l)〈(q-l)(t-l),消耗進(jìn)一步下降。
[0044]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完 整的描述。
[0045] 實施例1:
[0046]本實施例以Wu-Manber經(jīng)典算法為例,結(jié)合圖1,描述眾核環(huán)境下基于文本串切分 的并行模式匹配方法流程如下:
[0047] 1,根據(jù)處理器芯片的分配情況,統(tǒng)計處理器可使用的核數(shù)T。
[0048] 2,確定一定數(shù)量的眾核處理器的處理核作為模式匹配工具,即確定文本串需要切 分的數(shù)量T。
[0049] 3,利用文本串切分模型對文本串進(jìn)行切分,切分為T個子串,切分過程參考上文, 在此不再贅述。
[0050] 4,將T個子串劃分到處理器的T個核上。
[0051] 5,在處理器的T個核上依據(jù)Wu-Manber算法進(jìn)行串匹配,存儲匹配結(jié)果。
[0052] 6,將T個核上匹配的結(jié)果反饋并進(jìn)行統(tǒng)計。
[0053] 流程結(jié)束。
[0054] 實施例2:針對超長文本條件下動態(tài)調(diào)整的文本串切分并行模式匹配方法。
[0055] 上文提出的基于文本串切分的并行模式匹配算法,可以有效地提高處理器的利用 效率。不過,文本串匹配的時間決定于處理最慢的處理核心,主要原因是文本串中詞頻的分 布不均。隨著文本串長度的增長,這種處理上的時差將會放大。
[0056] 這時候,就需要對文本串的切分方法作進(jìn)一步的優(yōu)化。在超長文本的情況下,本申 請?zhí)岢龌诹魉€模式的文本串切分處理方法。將超長文本切分為一個個小的任務(wù)包,將 逐個任務(wù)包分到處理核上。當(dāng)有處理核心完成匹配時,再將新的任務(wù)包分配到核心上,實現(xiàn) 各個核心任務(wù)上的負(fù)載均衡。圖2為處理過程示意圖。
[0057] 處理流程如下:
[0058] 1,將待匹配的超長文本按照文本串切分模型劃分為N個子任務(wù)(Taskl,Task2, Task3,......);
[0059] 2.管理核心(圖中MangeCore)根據(jù)用于匹配的核的情況,將子任務(wù)分配到不同的 匹配核上;(圖中虛線)
[0060] 3.匹配核對子任務(wù)進(jìn)行匹配,匹配完畢后,將結(jié)果返回給管理核心;(圖中右側(cè)線)
[0061] 4.管理核心根據(jù)已經(jīng)完成的匹配結(jié)果,將新的子任務(wù)分配到已完成匹配的核上 (圖中Task5,Task6);
[0062] 5.新的任務(wù)到已完成匹配的核進(jìn)行匹配;(圖中黑色箭頭)
[0063] ……
[0064] 6.匹配完畢,對匹配結(jié)果進(jìn)行整合。
[0065] 流程結(jié)束。
[0066] 實際運行結(jié)果:
[0067]為了比較以上眾核環(huán)境下算法在眾核處理器平臺的運算速度,本申請選用了 1U 72核的Tilera GX72服務(wù)器與雙路6核Intel的服務(wù)器進(jìn)行了對比。測試環(huán)境如下:特征串長 度范圍:4-100字節(jié);特征串長度分布8-16字節(jié)的占80% ;特征串?dāng)?shù)量5萬。測試文本采用字 符集大小為256,隨機(jī)產(chǎn)生的32MB文本,然后按照命中率的不同隨機(jī)插入字符串。首先,測試 了不同平臺單個核的處理能力:
[0069]從上表可以看出,Tilera單核處理能力與x86服務(wù)器相比具有較大差距。接下來, 我們利用上述模型進(jìn)行了 Tilera眾核服務(wù)器和x86服務(wù)器的性能比較,結(jié)果如下:
[0071]
[0072] 從上表中可以看出,使用以上方法的眾核平臺執(zhí)行速度大約是x86平臺下執(zhí)行速 度的3-6倍。而且測試數(shù)據(jù)越大,眾核性能的優(yōu)勢更大。以上方法對于提高眾核平臺處理能 力具有十分重要作用。同時也可以看出,該方法下處理器性能是比較穩(wěn)定的,覆蓋了特征串 分布的不同情況。
[0073] 顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā) 明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施 例,都屬于本發(fā)明保護(hù)的范圍。
【主權(quán)項】
1. 一種眾核環(huán)境下的字符串匹配方法,包括以下步驟: 將待匹配的文本串切割為若干文本塊后,根據(jù)模式集中的模式串長度通過處理器不同 的核進(jìn)行匹配; 如文本串為離散存儲的,則每個由一個處理器的核進(jìn)行匹配的文本塊的長度ni為:其中,q為模式集中最長的模式串長度,η為文本串長度;t為文本塊的數(shù)量; 如文本串為連續(xù)存儲的,則每個由一個處理器的核進(jìn)行匹配的文本塊的長度ni為:其中,m為模式集中最短的模式串長度。2. 如權(quán)利要求1所述的眾核環(huán)境下的字符串匹配方法,其特征在于,所述文本塊的數(shù)量 t與處理器中作為模式匹配工具的核的數(shù)量相同。3. 如權(quán)利要求1所述的眾核環(huán)境下的字符串匹配方法,其特征在于,所述文本塊的數(shù)量 t與處理器的核數(shù)相同。4. 如權(quán)利要求1至3任一項所述的眾核環(huán)境下的字符串匹配方法,其特征在于,還包括: 將t個處理器的核上的匹配的結(jié)果反饋并進(jìn)行統(tǒng)計。5. 如權(quán)利要求1至3任一項所述的眾核環(huán)境下的字符串匹配方法,其特征在于,所述處 理器的核對文本塊依據(jù)Wu-Manber算法進(jìn)行串匹配。6. 如權(quán)利要求1所述的眾核環(huán)境下的字符串匹配方法,其特征在于,所述文本塊的數(shù)量 t大于處理器的核數(shù),進(jìn)行匹配時,首先逐個將與處理器的核數(shù)對應(yīng)數(shù)量的文本塊分到處理 器的核上進(jìn)行匹配;當(dāng)有一處理器的核完成匹配時,則將其余文本塊中的一個的分到前述 完成匹配的處理器的核上進(jìn)行匹配。7. 如權(quán)利要求6所述的眾核環(huán)境下的字符串匹配方法,其特征在于,處理器的一管理核 心根據(jù)用于匹配的處理器的核的情況,將文本塊分配到不同的處理器的核。8. 如權(quán)利要求7所述的眾核環(huán)境下的字符串匹配方法,其特征在于,處理器的核對一文 本塊進(jìn)行匹配后,將匹配結(jié)果返回給管理核心。9. 如權(quán)利要求8所述的眾核環(huán)境下的字符串匹配方法,其特征在于,管理核心根據(jù)已經(jīng) 完成的匹配結(jié)果,將其余文本塊中的一個的分到前述完成匹配的處理器的核上進(jìn)行匹配。
【文檔編號】G06F9/50GK105868300SQ201610173374
【公開日】2016年8月17日
【申請日】2016年3月24日
【發(fā)明人】王子厚, 汪立東, 賀龍濤, 鄒昕, 張良, 孫昊良, 李曉倩, 彭義剛
【申請人】國家計算機(jī)網(wǎng)絡(luò)與信息安全管理中心
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
贵定县| 延长县| 康乐县| 河北区| 宝坻区| 北海市| 定西市| 阳高县| 通州市| 彩票| 泰州市| 龙口市| 双鸭山市| 祁东县| 庆城县| 榕江县| 宣汉县| 察雅县| 东乌| 文昌市| 潜江市| 即墨市| 绥滨县| 罗城| 平阳县| 科技| 观塘区| 阿城市| 吉木萨尔县| 神木县| 仪征市| 保定市| 罗江县| 沙洋县| 大田县| 灌云县| 陆丰市| 弋阳县| 黄石市| 永安市| 林西县|