一種實現信息接收後分發的流水線並行計算的方法
2023-12-07 17:08:51
一種實現信息接收後分發的流水線並行計算的方法
【專利摘要】本發明公開了一種實現信息接收後分發的流水線並行計算的方法,該方法包括下列步驟:a)輸入的海量待處理信息經過無鎖緩存隊列處理;b)處理後的信息經本單元內的單元處理邏輯器讀取;c)讀取完畢後的信息分發至下一個同樣需要該信息的處理單元,類似的可根據信息處理需要,在此「接收後分發」鏈中安排若干個處理單元;d)最終處理完的信息被銷毀。本發明避免了對原始信息的拷貝與銷毀時的加鎖串行,很好的解決了信息需要被大量處理程序同時處理的要求,實現高效並行。
【專利說明】一種實現信息接收後分發的流水線並行計算的方法
【技術領域】
[0001]本發明涉及雲計算領域,尤其涉及一種實現信息接收後分發的流水線並行計算的方法。
【背景技術】
[0002]在現在這個信息爆炸的時代,大量的海量數據處理軟體與平臺湧現。傳統的集中式和客戶/伺服器資料庫系統的能力不足以支持海量資料庫的查詢和海量事務的處理,難以適應迅速增長的應用要求,同樣我們也在進行海量數據處理平臺的研發過程中,遇到了大量的挑戰。在為多家大型電信運營商提供信令分析的服務過程中,要求我們需要在極短的時間內,依據信令中蘊藏的信息,同時統計與分析客戶所關心的大量KPI (關鍵績效指標)。其中為了充分利用現有多核、多線程的主機並行性能。在同一份信息將要被多個處理程序處理的情況下,採用流水線思路,使得多個處理程序在不對原始信息進行拷貝與不進行加鎖的處理平臺上,實現高性能的並行處理。
[0003]當前並行信息分發技術,要麼採用複製後分別並行處理的思路,其將充分利用多核主機的處理能力,使多個處理程序能在物理CPU (中央處理器)上進行相互不幹擾的並行處理;要麼採用帶計數器的共享指針進行待處理海量信息共享,模擬獨立複製並行處理效果。在信息被最後一個處理程序處理完畢後,負責將其刪除。
[0004]以上現有技術存在以下缺點:
1、對於獨立複製後的並行處理技術的使用,經測試發現對大量信息的複製本身將會帶來極大的性能開銷。在具體的信令分析與統計項目中,一般複製數量超過5份之後其將成為處理平臺的瓶頸;
2、共享指針進行並行處理,由於信息在最後一個處理程序完成處理後對其進行刪除,若此時有兩個處理程序同時完成,則需要對共享指針的計數器進行加鎖狀態下的競竟,而加鎖競爭則是妨礙實現處理並行的重要原因。
【發明內容】
[0005]針對上述缺點,本發明提供一種實現信息接收後分發的流水線並行計算的方法。該技術實現方案可以避免對原始信息的拷貝與銷毀時的加鎖串行,很好的解決信息需要被大量處理程序同時處理的要求,實現高效並行。
[0006]為達到上述目的,本發明採用如下技術方案:
一種實現信息接收後分發的流水線並行計算的方法,包括下列步驟:a)輸入的海量待處理信息經過無鎖緩存隊列處理;b)處理後的信息經本單元內的單元處理邏輯器讀取;
c)讀取完畢後的信息分發至下一個同樣需要該信息的處理單元,類似的可根據信息處理需要,在此「接收後分發」鏈中安排若干個處理單元;d)最終處理完的信息被銷毀。
[0007]本發明的一種實現信息接收後分發的流水線並行計算的方法,其處理單元是具備獨立作業能力的線程或線程組。[0008]本發明的一種實現信息接收後分發的流水線並行計算的方法,其每個處理單元由一個無鎖的緩存隊列和單元處理邏輯構成。
[0009]本發明的一種實現信息接收後分發的流水線並行計算的方法,其處理單元間吞吐率存在固有差異的,使用拆分策略實現並行平衡。
[0010]本發明的一種實現信息接收後分發的流水線並行計算的方法,其拆分策略為若業務無合併要求的進行純隨機拆分;若業務有合併要求的,按業務關鍵字進行hash取模拆分。
[0011]與現有技術相比,本發明的有益效果是將在處理程序無加鎖情況下,在同一進程空間中、在物理線程數範圍內,增加處理單元程序時,系統總體處理能力具有良好的線性增長特性。對於存在吞吐率差異的處理單元,使用拆分機制可以很好的避免流水線中瓶頸出現。若使用不同進程空間或在不同主機上,本發明將非常容易實現大數據處理追求的MPP(海量並行處理)模式。
【專利附圖】
【附圖說明】
[0012]圖1是信息單元處理輸出流程圖。
[0013]圖2是本發明的處理流程邏輯結構圖。
【具體實施方式】
[0014]下面通過具體實施例對本發明作進一步說明。顯然,所描述的實施例僅僅是本發明的一部分實施例,而不是全部的實施例。基於本發明的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0015]數據業務分析通過基於本發明的平臺程序,可承載大量業務處理單元程序,進行海量實時處理。在大規模部署,進行信息固定時間窗口分組統計的情況下,經由以下步驟:
a)輸入的海量待處理信息經過無鎖緩存隊列處理;b)處理後的信息經本單元內的單元處理邏輯器讀取;c)讀取完畢後的信息分發至下一個同樣需要該信息的處理單元,類似的可根據信息處理需要,在此「接收後分發」鏈中安排若干個處理單元;d)最終處理完的信息被銷毀。
[0016]對於確實存在處理單元吞吐率差異較大的情況,採用處理單元拆分的方式避免在流水線中出現瓶頸。如:存在某一處理單元吞吐率為5k/s,其它處理單元為lOk/s。那麼由於瓶頸的原因,流水線總體吞吐率為5k/s。調優處理可以將該處理單元拆分為兩個處理單元,且每個只接收一半的流量,之後再將完整的流量分發給後續的處理單元。這樣兩個5k/s的處理單元,就可以取得lOk/s的總體吞吐率。
[0017]在普通的x64構架下,平均涉及5個維度、5個指標的計算處理吞吐量將不低於2萬筆/秒,極限處理速度不高於20萬筆/秒,且具有良好的性能線性增長率。
[0018]在16物理線程的雙核四U超線程CPU在Linux SUSE 11下,12個處理線程之內,對性能的平均增長率,每線程不低於80%。即I線程吞吐率為20k/s,則12線程吞吐率為12*20*80%=192k/s。
【權利要求】
1.一種實現信息接收後分發的流水線並行計算的方法,其特徵在於,包括下列步驟:a)輸入的海量待處理信息經過無鎖緩存隊列處理;b)處理後的信息經本單元內的單元處理邏輯器讀取;c)讀取完畢後的信息分發至下一個同樣需要該信息的處理單元,類似的可根據信息處理需要,在此「接收後分發」鏈中安排若干個處理單元;d)最終處理完的信息被銷毀。
2.根據權利要求1所述的一種實現信息接收後分發的流水線並行計算的方法,其特徵在於,所述處理單元是具備獨立作業能力的線程或線程組。
3.根據權利要求2所述的一種實現信息接收後分發的流水線並行計算的方法,其特徵在於,所述每個處理單元由一個無鎖的緩存隊列和單元處理邏輯構成。
4.根據權利要求1所述的一種實現信息接收後分發的流水線並行計算的方法,其特徵在於,所述處理單元間吞吐率存在固有差異的,使用拆分策略實現並行平衡。
5.根據權利要求4所述的一種實現信息接收後分發的流水線並行計算的方法,其特徵在於,所述拆分策略為若業務無合併要求的進行純隨機拆分;若業務有合併要求的,按業務關鍵字進行hash取模拆分。
【文檔編號】G06F9/38GK103995689SQ201310051251
【公開日】2014年8月20日 申請日期:2013年2月16日 優先權日:2013年2月16日
【發明者】王群, 吳剛 申請人:長沙中興軟創軟體有限公司