專利名稱:一種眾核結(jié)構(gòu)的大規(guī)模數(shù)據(jù)并行計算方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高性能計算方面大規(guī)模數(shù)據(jù)在眾核處理器架構(gòu)上的并行計算方 法,更具體的說,涉及利用擁有眾核處理器架構(gòu)的設(shè)備進行大規(guī)模的無邏輯關(guān)系 數(shù)據(jù)的并行計算處理方法。
背景技術(shù):
隨著半導(dǎo)體工藝技術(shù)的飛速進步和體系結(jié)構(gòu)的不斷發(fā)展,加之對更高的計算 性能的商業(yè)需求以及科研需求,使得處理器功能、微處理器架構(gòu)以及多核、眾核 設(shè)計技術(shù)不斷創(chuàng)新。眾核微處理器內(nèi)部包含若干個處理器,提供了比單核更強大 的處理能力和更高的并行性。
在眾核微處理器中,處理器核常用共享存儲的的方法,來實現(xiàn)共享數(shù)據(jù)的交 換。目前,眾核微處理器的共享存儲方法根據(jù)共享的存儲層次不同可以分為共 享一級Cache、共享二級Cache和共享主存儲器等三種。這些共享存儲方法的特點 是整個存儲空間統(tǒng)一編址,眾核微處理器內(nèi)含的各個處理器核對共享存儲空間 的訪問具有同樣的優(yōu)先級。
因為以上特點,眾核處理器在進行大規(guī)模數(shù)據(jù)處理時,由于其內(nèi)含的各個處 理器核對共享存儲空間的訪問具有同樣的優(yōu)先級,發(fā)生訪存的沖突可能性大,會 導(dǎo)致訪存的延遲增加;并因為存儲空間的統(tǒng)一編址,在沒有使用根據(jù)共享存儲法 設(shè)計的并行編譯器時,編譯出來的程序有可能會發(fā)生地址沖突。
在密集型科學(xué)計算領(lǐng)域,最突出的特點是數(shù)據(jù)量大、計算操作的重復(fù)性強, 在一般架構(gòu)的眾核處理器上實現(xiàn)的并行計算方法,并行度不高,數(shù)據(jù)的讀寫往往 會滯延整個計算速度,因此亟需在眾核處理器上尋找一種能減小數(shù)據(jù)傳輸延遲, 進一步增加數(shù)據(jù)處理的并行度的并行計算方法。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是設(shè)計一種共享數(shù)據(jù)的傳輸延遲小,增大數(shù)據(jù)處理的 并行度的并行計算方法,通過本發(fā)明的方法以減少眾核微處理器中各個處理器對 共享存儲的訪問沖突,充分發(fā)揮微處理器中各個處理器核的處理能力。 計算步驟是 ' ^ '
1)應(yīng)用程序中各模塊按順序在同構(gòu)眾核微處理器上運行,其中每個被重復(fù)多 次執(zhí)行、每次處理不同數(shù)據(jù)的子模塊被分離成"眾多線程",由"眾多線程"構(gòu) 成執(zhí)行在眾核上的函數(shù)進行計算;也就是說, 一些子模塊被分離成很多線程構(gòu)成的函數(shù)。但應(yīng)用程序中各模塊順序運行時,不是所有的模塊都被分解成"眾多線 程",只有其中被重復(fù)多次執(zhí)行、每次處理不同數(shù)據(jù)的子模塊才會被分離。
2) 每個函數(shù)對應(yīng)的"眾多線程"通過規(guī)則組織為線程組,每個線程.組都是由 函數(shù)派生出"眾多線程"的批處理;
3) 由函數(shù)派生出的"眾多線程"在執(zhí)行過程中,訪問眾核微處理器上的由線 程私有存儲空間、線程組共享存儲空間和眾核微處理器全局共享存儲空間組成的 三級存儲空間中的數(shù)據(jù);
4) 各"眾多線程"對眾核微處理器上三級存儲空間的訪問,包含對數(shù)據(jù)的讀 取及運算結(jié)果的寫入,每個函數(shù)對應(yīng)的"眾多線程"在眾核微處理器上同時執(zhí)行 相同的指令和處理不同的數(shù)據(jù),以此實現(xiàn)大規(guī)模數(shù)據(jù)的并行計算。
在眾核微處理器上的每個"眾多線程"對應(yīng)的函數(shù)作為一個由線程組組成的批 處理線程來執(zhí)行。
由函數(shù)派生出的眾多線程在執(zhí)行過程中訪問三級存儲器空間的數(shù)據(jù),線程私有 存儲空間是分配給每個線程的存儲空間,此存儲空間只有該線程能夠進行訪問, 并與該線程具有相同的生命周期;每個線程組都允許被分配;r塊線程組共享存儲 空間,線程組共享存儲空間供組內(nèi)的線程進行訪問,不允許其他線程組的線程訪 問,并且此組內(nèi)共享存儲空間與該線程組具有相同的生命周期;而同一函數(shù)派生 的所有線程都能訪問眾核微處理器上的全局共享存儲空間。
本發(fā)明的有益效果是此方法應(yīng)用在大規(guī)磁無邏輯關(guān)系數(shù)據(jù)的并行處理上, 由于數(shù)據(jù)規(guī)模巨大,串行執(zhí)行同類運算需要重復(fù)很長時間,利用眾核微處理器龐 大的處理器數(shù)量,可以很大程度上同時進行大規(guī)模數(shù)據(jù)的并行計算。大量數(shù)據(jù)彼 此間是互相獨立的,計算出來的結(jié)果也互相獨立,因此在計算時眾核間不需要互 相通信或互相等待彼此的計算結(jié)果,具有很高的計算效率,達到加速完成該類應(yīng) 用的目的。
附圖l為眾核微處理器架構(gòu)圖;-
附圖2為并行計算方法的^構(gòu)流程圖。
具體實施例方式
參照附圖對本發(fā)明的眾核結(jié)構(gòu)的大規(guī)模數(shù)據(jù)并行計算方法作以下詳細的說明。
本發(fā)明的同構(gòu)眾核結(jié)構(gòu)的大規(guī)模數(shù)據(jù)并行計算方法,是應(yīng)用程序中各捧塊按 順序運行在同構(gòu)眾核微處理器上,其中每個被重復(fù)多次執(zhí)行、每次處理不同數(shù)據(jù) 的子模塊,被分離威為具有很多不同線程執(zhí)行在眾核上的函數(shù)。每個函數(shù)對應(yīng)的 眾多線程通過一定的規(guī)則組織為線程組,這些線程組是對此函數(shù)派生出的眾多線
4程的批處理。在眾核微處理器上,每個多線程函數(shù)作為一個由線程組組成的批處 理線程來執(zhí)行,每個此類函數(shù)對應(yīng)的眾多線程上同時處理不同的數(shù)據(jù),以此實現(xiàn) 大規(guī)模數(shù)據(jù)的并行處理。
由函數(shù)派生出的眾多線程在執(zhí)行過程中可以訪問多個存儲空間的數(shù)據(jù),具體劃 分為三級存儲空間線程私有存儲空間,線程組共享存儲空間和眾核微處理器全 局共享存儲空間。其中,每個線程都被分配一塊只有自己能夠訪問的存儲空間, 并且該存儲空間與其所屬線程具有相同的生命周期;每個線程組都被分配一塊組 內(nèi)共享存儲空間,組內(nèi)共享存儲空間可供組內(nèi)的線程進行訪問,不允許其他線程 組的線程訪問,并且組內(nèi)共享存儲空間與線程組具有相同的生命周期;同一函數(shù) 派生的所有線程都可以訪問眾核微處理器上的全局共享存儲空間。各線程對.線程 組共享存儲空間及全局共享存儲空間的訪問,包含對其上數(shù)據(jù)的讀取及線程運算 結(jié)果的寫入。
附圖1為本發(fā)明采用的眾核微處理器架構(gòu)。眾核中有所有線程共享的動態(tài)隨機 存儲器(DRAM),及由應(yīng)用程序為各線程組和各線程臨時分配的Cache空間。
附圖2為采用本發(fā)明并行計算方法的結(jié)構(gòu)流程圖。應(yīng)用程序中各寧塊順序運行 在同構(gòu)眾核微處理器上,將其中每個被重復(fù)多次執(zhí)行、每次處理不同數(shù)據(jù)的子模 塊,分離成為具有很多不同線程執(zhí)行在眾核上的函數(shù)。每個函數(shù)對應(yīng)的眾多線程 通過一定的規(guī)則組織為線程組,這些線程組是對此函數(shù)派生出的眾多線程的批處 理。由應(yīng)用程序?qū)⒈姸嗑€程分發(fā)到各個多核上,每個核心上將順序執(zhí)行其上的線 程,由于任務(wù)分解,每個線程上的計算會很快完成,以此通過龐大的眾核數(shù)量及 快速的多線程運算來達到高度并行化的效果。
并行眾核處理器通過動態(tài)隨機存儲器交換計算數(shù)據(jù),眾核處理器上的多級 Cache存儲空間通過應(yīng)用程序動態(tài)的分配給每個函數(shù)派生出的各線程組及組內(nèi)線 程,用作線程組共享存儲空間和線程私有存儲空間,在計算完畢后,將存儲空間 收回,等待為下個函數(shù)派生出的線程重新分配。每個函數(shù)派生出的眾多線程'上同
時執(zhí)行相同的指令,并運行不同的數(shù)據(jù),各線程之間在計算時并不互相通信,只 完成自身的計算任務(wù),是典型的單指令流多數(shù)據(jù)流并行計算結(jié)構(gòu)。
本發(fā)明所使用處理數(shù)據(jù)的眾核并行處理芯片可以是中央處理器(CPU)或是圖 形處理器(GPU)。
"眾多線程"是兩個以上線程的簡稱,
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
權(quán)利要求
1.一種眾核結(jié)構(gòu)的大規(guī)模數(shù)據(jù)并行計算方法,其特征在于,計算步驟是1)應(yīng)用程序中各模塊按順序在同構(gòu)眾核微處理器上運行,其中每個被重復(fù)多次執(zhí)行、每次處理不同數(shù)據(jù)的子模塊被分離成“眾多線程”,由“眾多線程”構(gòu)成執(zhí)行在眾核上的函數(shù),并進行計算;2)每個函數(shù)對應(yīng)的“眾多線程”通過規(guī)則組織為線程組,每個線程組都是由函數(shù)派生出“眾多線程”的批處理;3)由函數(shù)派生出的“眾多線程”在執(zhí)行過程中,訪問眾核微處理器上的由線程私有存儲空間、線程組共享存儲空間和眾核微處理器全局共享存儲空間組成的三級存儲空間中的數(shù)據(jù);4)各“眾多線程”對眾核微處理器上三級存儲空間的訪問,包含對數(shù)據(jù)的讀取及運算結(jié)果的寫入,每個函數(shù)對應(yīng)的“眾多線程”在眾核微處理器上同時執(zhí)行相同的指令和處理不同的數(shù)據(jù),以此實現(xiàn)大規(guī)模數(shù)據(jù)的并行計算。
2. 如權(quán)利要求1所述的眾核結(jié)構(gòu)的大規(guī)模數(shù)據(jù)并行計算方法,其特征在于, 在眾核微處理器上的每個"眾多線程"對應(yīng)的函數(shù)作為一個由線程組組成的批處 理線程來執(zhí)行。
3. 如權(quán)利要求1所述的眾核結(jié)構(gòu)的大規(guī)模數(shù)據(jù)并行計算方法,其特征在于, 由函數(shù)派生出的眾多線程在執(zhí)行過程中訪問三級存儲器空間的數(shù)據(jù),線程私有存 儲空間是分配給每個線程的存儲空間,此存儲空間只有該線程能夠進行訪問,并 與該線程具有相同的生命周期;每個線程組都允許被分配一塊線程組共享存儲空 間,線程組共享存儲空間供組內(nèi)的線程進行訪問,不允許其他線程組的線程訪問, 并且此組內(nèi)共享存儲空間與該線程組具有相同的生命周期;而同一函數(shù)派生的所 有線程都能訪問眾核微處理器上的全局共享存儲空間。
全文摘要
本發(fā)明提供一種利用同構(gòu)眾核的并行處理芯片進行大規(guī)模數(shù)據(jù)并行處理的計算方法,該方法是利用同構(gòu)眾核架構(gòu)的并行處理器進行大規(guī)模無邏輯關(guān)系數(shù)據(jù)的并行計算處理。應(yīng)用程序中各模塊順序運行在同構(gòu)眾核微處理器上,其中每個被重復(fù)多次執(zhí)行、每次處理不同數(shù)據(jù)的子模塊,被分離成為具有很多不同線程執(zhí)行在眾核上的函數(shù)。每個函數(shù)對應(yīng)的眾多線程通過一定的規(guī)則組織為線程組,這些線程組是對此函數(shù)派生出的眾多線程的批處理,同一函數(shù)派生的所有線程都可以訪問眾核微處理器上的全局共享存儲空間,各線程對線程組共享存儲空間及全局共享存儲空間的訪問,包含對其上數(shù)據(jù)的讀取及運算結(jié)果的寫入,每個函數(shù)對應(yīng)的眾多線程同時處理不同的數(shù)據(jù),以此達到高度的并行化。
文檔編號G06F9/38GK101556534SQ20091002072
公開日2009年10月14日 申請日期2009年4月21日 優(yōu)先權(quán)日2009年4月21日
發(fā)明者呂文靜, 王守昊, 王恩東, 王渭巍, 胡雷鈞 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司