異構(gòu)集群系統(tǒng)的負(fù)載均衡方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種異構(gòu)集群系統(tǒng)的負(fù)載均衡方法和裝置,其中方法包括將應(yīng)用程序的所有計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊,判斷在計(jì)算過(guò)程中計(jì)算任務(wù)塊之間是否有依賴,如果沒(méi)有,采用動(dòng)態(tài)負(fù)載均衡方法,CPU計(jì)算單元和MIC計(jì)算單元?jiǎng)討B(tài)獲取計(jì)算任務(wù)塊,否則,采用預(yù)算靜態(tài)負(fù)載均衡方法,向CPU計(jì)算單元和MIC計(jì)算單元分配計(jì)算任務(wù)塊。本發(fā)明通過(guò)將計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊,動(dòng)態(tài)或預(yù)算靜態(tài)地將計(jì)算任務(wù)塊分配給CPU計(jì)算單元和MIC計(jì)算單元,實(shí)現(xiàn)CPU+MIC異構(gòu)集群系統(tǒng)中計(jì)算負(fù)載均衡。
【專利說(shuō)明】異構(gòu)集群系統(tǒng)的負(fù)載均衡方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及異構(gòu)計(jì)算【技術(shù)領(lǐng)域】,尤其涉及一種異構(gòu)集群系統(tǒng)的負(fù)載均衡方法和裝 置。
【背景技術(shù)】
[0002] 隨著信息化社會(huì)的飛速發(fā)展,人類對(duì)信息處理能力的要求越來(lái)越高,不僅石油勘 探、氣象預(yù)報(bào)、航天國(guó)防、科學(xué)研究等需求高性能計(jì)算,金融、政府信息化、教育、企業(yè)、網(wǎng)絡(luò) 游戲等更廣泛的領(lǐng)域?qū)Ω咝阅苡?jì)算的需求迅猛增長(zhǎng)。
[0003] 應(yīng)用計(jì)算速度是高性能計(jì)算的關(guān)鍵。目前高性能計(jì)算朝多核和眾核方向發(fā)展,采 用異構(gòu)并行提升應(yīng)用計(jì)算速度,例如中央處理器(CPU,Central Processing Unit) +圖形處 理器(GPU, Graphic Processing Unit)異構(gòu)協(xié)同計(jì)算模式,但由于GPU主要用于圖形處理, 應(yīng)用面窄。
[0004] 集成眾核(MIC, Intel Many Integrated Core)是Intel公司開(kāi)發(fā)的,用于高性 能并行計(jì)算的眾核芯片。MIC通常有50個(gè)以上精簡(jiǎn)的x86核心,每個(gè)core支持4個(gè)硬件 線程,可并行執(zhí)行的任務(wù)數(shù)達(dá)到200以上,提供高度并行的計(jì)算能力,其雙精峰值性能達(dá)到 lTFlops,因此MIC具有高性能計(jì)算能力。
[0005] MIC并非欲取代CPU,而是作為CPU的協(xié)處理器存在。但是,在CPU+MIC異構(gòu)集群 系統(tǒng)中,CPU與MIC的計(jì)算能力不同,這將導(dǎo)致的CPU與MIC計(jì)算負(fù)載不均衡問(wèn)題,因此對(duì) 應(yīng)用計(jì)算速度提高有限。
【發(fā)明內(nèi)容】
[0006] 為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種異構(gòu)集群系統(tǒng)的負(fù)載均衡方法和裝 置,能夠?qū)崿F(xiàn)異構(gòu)集群系統(tǒng)中計(jì)算負(fù)載均衡,從而進(jìn)一步提高異構(gòu)集群系統(tǒng)的計(jì)算速度。
[0007] 為了達(dá)到本發(fā)明目的,本發(fā)明提供了一種異構(gòu)集群系統(tǒng)的負(fù)載均衡方法,包括將 應(yīng)用程序的所有計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊;判斷在計(jì)算過(guò)程中計(jì)算任務(wù)塊之間是否有依 賴;如果判斷出計(jì)算任務(wù)塊之間沒(méi)有依賴,采用動(dòng)態(tài)負(fù)載均衡方法,中央處理器CPU計(jì)算單 元和集成眾核MIC計(jì)算單元?jiǎng)討B(tài)獲取計(jì)算任務(wù)塊;如果判斷出計(jì)算任務(wù)塊之間有依賴,根 據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力,采用預(yù)算靜態(tài)負(fù)載均衡方法,向CPU計(jì)算單元 和MIC計(jì)算單元分配計(jì)算任務(wù)塊。
[0008] 進(jìn)一步地,將應(yīng)用程序的所有計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊,包括,將應(yīng)用程序的所 有計(jì)算任務(wù)均勻劃分為計(jì)算任務(wù)塊,其中每個(gè)計(jì)算任務(wù)塊的計(jì)算量相同或者每個(gè)計(jì)算任務(wù) 塊的計(jì)算量不同。
[0009] 進(jìn)一步地,判斷出計(jì)算任務(wù)塊之間有依賴,包括,如果各個(gè)計(jì)算任務(wù)塊計(jì)算完后需 要數(shù)據(jù)通信或同步,則判斷出計(jì)算任務(wù)塊之間有依賴;所述判斷出計(jì)算任務(wù)塊之間沒(méi)有依 賴,包括,如果各個(gè)計(jì)算任務(wù)塊計(jì)算完后不需要數(shù)據(jù)通信或同步,則判斷出計(jì)算任務(wù)塊之間 沒(méi)有依賴。
[0010] 進(jìn)一步地,采用動(dòng)態(tài)負(fù)載均衡方法,CPU計(jì)算單元和MIC計(jì)算單元?jiǎng)討B(tài)獲取計(jì)算任 務(wù)塊,包括,設(shè)置CPU計(jì)算單元每次動(dòng)態(tài)獲取N1個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元每次動(dòng)態(tài)獲取 N2個(gè)計(jì)算任務(wù)塊,Nl < N2,每個(gè)CPU計(jì)算單元?jiǎng)討B(tài)獲取N1個(gè)計(jì)算任務(wù)塊,CPU計(jì)算單元計(jì) 算完后,CPU計(jì)算單元再動(dòng)態(tài)獲取N1個(gè)計(jì)算任務(wù)塊;每個(gè)MIC計(jì)算單元?jiǎng)討B(tài)獲取N2個(gè)計(jì)算 任務(wù)塊,MIC計(jì)算單元計(jì)算完后,MIC計(jì)算單元再動(dòng)態(tài)獲取N2個(gè)計(jì)算任務(wù)塊;若計(jì)算任務(wù)塊 的數(shù)量小于(MXN1+2MXN2)個(gè),每個(gè)CPU計(jì)算單元?jiǎng)討B(tài)獲取ΝΓ個(gè)計(jì)算任務(wù)塊,每個(gè)MIC 計(jì)算單元?jiǎng)討B(tài)獲取N2'個(gè)計(jì)算任務(wù)塊,其中,Μ為計(jì)算節(jié)點(diǎn)的數(shù)量,ΝΓ <N1,N2' <N2。
[0011] 進(jìn)一步地,根據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力,采用預(yù)算靜態(tài)負(fù)載均衡 方法向CPU計(jì)算單元和MIC計(jì)算單元分配計(jì)算任務(wù)塊,包括,根據(jù)CPU計(jì)算單元和MIC計(jì)算 單元對(duì)同一個(gè)計(jì)算任務(wù)塊進(jìn)行計(jì)算的計(jì)算時(shí)間S1和S2,得出CPU計(jì)算單元和MIC計(jì)算單元 的計(jì)算能力比s = S1/S2 ;根據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力比S,向每個(gè)CPU 計(jì)算單元分配ΝΛΜ+SX 2M)個(gè)計(jì)算任務(wù)塊,向每個(gè)MIC計(jì)算單元分配(ΝΛΜ+SX 2M)) X S個(gè) 計(jì)算任務(wù)塊,其中N是所有計(jì)算任務(wù)塊的數(shù)量,Μ是計(jì)算節(jié)點(diǎn)的數(shù)量。
[0012] 本發(fā)明提供了一種異構(gòu)集群系統(tǒng)的負(fù)載均衡裝置,包括:劃分模塊,用于將應(yīng)用程 序的所有計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊;判斷模塊,用于判斷在計(jì)算過(guò)程中計(jì)算任務(wù)塊之間 是否有依賴;動(dòng)態(tài)負(fù)載均衡模塊,用于若判斷模塊判斷出計(jì)算任務(wù)塊之間沒(méi)有依賴,采用動(dòng) 態(tài)負(fù)載均衡方法,(PU計(jì)算單元和MIC計(jì)算單元?jiǎng)討B(tài)獲取計(jì)算任務(wù)塊;預(yù)算靜態(tài)負(fù)載均衡模 塊,用于若判斷模塊判斷出計(jì)算任務(wù)塊之間有依賴,根據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì) 算能力,采用預(yù)算靜態(tài)負(fù)載均衡方法,向CPU計(jì)算單元和MIC計(jì)算單元分配計(jì)算任務(wù)塊。
[0013] 進(jìn)一步地,劃分模塊,具體用于將應(yīng)用程序的所有計(jì)算任務(wù)均勻劃分為計(jì)算任務(wù) 塊,其中每個(gè)計(jì)算任務(wù)塊的計(jì)算量相同或者每個(gè)計(jì)算任務(wù)塊的計(jì)算量不同。
[0014] 進(jìn)一步地,判斷模塊判斷出計(jì)算任務(wù)塊之間有依賴,具體包括如果各個(gè)計(jì)算任務(wù) 塊計(jì)算完后需要數(shù)據(jù)通信或同步,則判斷出計(jì)算任務(wù)塊之間有依賴;判斷模塊判斷出計(jì)算 任務(wù)塊之間沒(méi)有依賴,具體包括如果各個(gè)計(jì)算任務(wù)塊計(jì)算完后不需要數(shù)據(jù)通信或同步,則 判斷出計(jì)算任務(wù)塊之間沒(méi)有依賴。
[0015] 進(jìn)一步地,動(dòng)態(tài)負(fù)載均衡模塊包括設(shè)置子模塊和動(dòng)態(tài)獲取子模塊,其中,設(shè)置子模 塊,用于設(shè)置CPU計(jì)算單元每次動(dòng)態(tài)獲取N1個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元每次動(dòng)態(tài)獲取N2 個(gè)計(jì)算任務(wù)塊,Nl < N2 ;若計(jì)算任務(wù)塊的數(shù)量小于(MXN1+2MXN2),設(shè)置CPU計(jì)算單元?jiǎng)?態(tài)獲取ΝΓ個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元?jiǎng)討B(tài)獲取N2'個(gè)計(jì)算任務(wù)塊,其中Μ為計(jì)算節(jié)點(diǎn)的 數(shù)量,ΝΓ <Ν1,Ν2' <Ν2;動(dòng)態(tài)獲取子模塊,用于根據(jù)設(shè)置子模塊的設(shè)置數(shù)量,每個(gè)CPU計(jì) 算單元?jiǎng)討B(tài)獲取N1個(gè)計(jì)算任務(wù)塊,CPU計(jì)算單元計(jì)算完后,CPU計(jì)算單元再動(dòng)態(tài)獲取N1個(gè) 計(jì)算任務(wù)塊;每個(gè)MIC計(jì)算單元?jiǎng)討B(tài)獲取N2個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元計(jì)算完后,再動(dòng)態(tài) 獲取N2個(gè)計(jì)算任務(wù)塊;若計(jì)算任務(wù)塊的數(shù)量小于(MXN1+2MXN2),CPU計(jì)算單元?jiǎng)討B(tài)獲取 ΝΓ個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元?jiǎng)討B(tài)獲取N2'個(gè)計(jì)算任務(wù)塊。
[0016] 進(jìn)一步地,預(yù)算靜態(tài)負(fù)載均衡模塊包括計(jì)算子模塊和靜態(tài)分配子模塊,其中,計(jì)算 子模塊,用于根據(jù)CPU計(jì)算單元和MIC計(jì)算單元對(duì)同一個(gè)計(jì)算任務(wù)塊進(jìn)行計(jì)算的計(jì)算時(shí)間 S1和S2,計(jì)算得出CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力比S = S1/S2 ;靜態(tài)分配子模 塊,用于根據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力比S,向每個(gè)CPU計(jì)算單元分配N/ (M+SX2M)個(gè)計(jì)算任務(wù)塊,向每個(gè)MIC計(jì)算單元分配(NAM+SX2M)) XS個(gè)計(jì)算任務(wù)塊,其中 N是所有計(jì)算任務(wù)塊的數(shù)量,Μ是計(jì)算節(jié)點(diǎn)的數(shù)量。
[0017] 與現(xiàn)有技術(shù)相比,本發(fā)明包括:將應(yīng)用程序的所有計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊; 判斷在計(jì)算過(guò)程中計(jì)算任務(wù)塊之間是否有依賴;如果判斷出計(jì)算任務(wù)塊之間沒(méi)有依賴,采 用動(dòng)態(tài)負(fù)載均衡方法,中央處理器CPU計(jì)算單元和集成眾核MIC計(jì)算單元?jiǎng)討B(tài)獲取計(jì)算任 務(wù)塊;如果判斷出計(jì)算任務(wù)塊之間有依賴,根據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力, 采用預(yù)算靜態(tài)負(fù)載均衡方法向CPU計(jì)算單元和MIC計(jì)算單元分配計(jì)算任務(wù)塊。本發(fā)明通過(guò) 將計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊,采用動(dòng)態(tài)負(fù)載均衡方法或者預(yù)算靜態(tài)負(fù)載均衡方法,將計(jì) 算任務(wù)塊分配給CPU計(jì)算單元和MIC計(jì)算單元,CPU計(jì)算單元和MIC計(jì)算單元可以同步計(jì) 算完成,實(shí)現(xiàn)CPU+MIC異構(gòu)集群系統(tǒng)中計(jì)算負(fù)載均衡。
【專利附圖】
【附圖說(shuō)明】
[0018] 圖1是本發(fā)明異構(gòu)集群系統(tǒng)的負(fù)載均衡系統(tǒng)的架構(gòu)示意圖。
[0019] 圖2是本發(fā)明異構(gòu)集群系統(tǒng)的負(fù)載均衡方法的流程示意圖。
[0020] 圖3是本發(fā)明異構(gòu)集群系統(tǒng)的負(fù)載均衡裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0021] 以下將結(jié)合附圖所示的【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
[0022] 圖1是本發(fā)明異構(gòu)集群系統(tǒng)的負(fù)載均衡系統(tǒng)的架構(gòu)示意圖,如圖1所示,在本發(fā)明 實(shí)施例中,該異構(gòu)集群系統(tǒng)是CPU+MIC異構(gòu)集群系統(tǒng),該CPU+MIC異構(gòu)集群系統(tǒng)包括至少兩 個(gè)計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)之間由高速網(wǎng)絡(luò)互連。每個(gè)計(jì)算節(jié)點(diǎn)包括至少3個(gè)計(jì)算單元,該至少 3個(gè)計(jì)算單元為一個(gè)CPU計(jì)算單元和至少兩個(gè)MIC計(jì)算單元,其中至少2塊CPU組成一個(gè) CPU計(jì)算單元,每個(gè)MIC分別為一個(gè)MIC計(jì)算單元,CPU計(jì)算單元與MIC計(jì)算單元通過(guò)連接 器連接通信,該連接器可以為PCIE插槽。
[0023] 圖2是本發(fā)明異構(gòu)集群系統(tǒng)的負(fù)載均衡方法的流程示意圖,如圖2所示,包括:
[0024] 步驟21,將應(yīng)用程序的所有計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊。
[0025] 在本步驟中,計(jì)算節(jié)點(diǎn)的物理單元存儲(chǔ)需要進(jìn)行計(jì)算的數(shù)據(jù),根據(jù)待處理的物理 單元,將應(yīng)用程序的所有計(jì)算任務(wù)均勻劃分為N個(gè)計(jì)算任務(wù)塊。
[0026] 在實(shí)際處理中,一方面,每個(gè)物理單元并不一定都會(huì)進(jìn)行計(jì)算,另一方面,物理單 元中存儲(chǔ)的數(shù)據(jù)不同,計(jì)算量也會(huì)不同,例如某個(gè)物理單元存儲(chǔ)的數(shù)據(jù)是〇值,那么它比非 〇值的計(jì)算量要小,所以,每個(gè)計(jì)算任務(wù)塊的計(jì)算量有可能相同,也有可能不同。
[0027] 步驟22,判斷在計(jì)算過(guò)程中計(jì)算任務(wù)塊之間是否有依賴,如果沒(méi)有依賴,進(jìn)入步驟 23 ;如果有依賴,進(jìn)入步驟24 ;
[0028] 在本步驟中,根據(jù)應(yīng)用程序的算法,如果各個(gè)計(jì)算任務(wù)塊計(jì)算完后需要數(shù)據(jù)通信 或同步,則判斷出計(jì)算任務(wù)塊之間有依賴。如果各個(gè)計(jì)算任務(wù)塊計(jì)算完后不需要數(shù)據(jù)通信 或同步,則判斷出計(jì)算任務(wù)塊之間沒(méi)有依賴。
[0029] 步驟23,采用動(dòng)態(tài)負(fù)載均衡方法,CPU計(jì)算單元和MIC計(jì)算單元?jiǎng)討B(tài)獲取計(jì)算任務(wù) 塊。
[0030] 在本步驟中,設(shè)置CPU計(jì)算單元每次動(dòng)態(tài)獲取N1個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元每次 動(dòng)態(tài)獲取N2個(gè)計(jì)算任務(wù)塊,因?yàn)镸IC計(jì)算單元的計(jì)算能力大于CPU計(jì)算單元,所以Nl < N2。
[0031] 每個(gè)CPU計(jì)算單元?jiǎng)討B(tài)獲取N1個(gè)計(jì)算任務(wù)塊,CPU計(jì)算單元計(jì)算完后,CPU計(jì)算單 元在動(dòng)態(tài)獲取N1個(gè)計(jì)算任務(wù)塊;每個(gè)MIC計(jì)算單元?jiǎng)討B(tài)獲取N2個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單 元計(jì)算完后,MIC計(jì)算單元再動(dòng)態(tài)獲取N2個(gè)計(jì)算任務(wù)塊。直到剩余的計(jì)算任務(wù)塊的數(shù)量小 于(MXN1+2MXN2)個(gè),其中Μ為計(jì)算節(jié)點(diǎn)的數(shù)量。
[0032] 計(jì)算任務(wù)塊將不夠CPU計(jì)算單元和MIC計(jì)算單元分配,設(shè)置CPU計(jì)算單元?jiǎng)討B(tài)獲 取ΝΓ個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元?jiǎng)討B(tài)獲取N2'個(gè)計(jì)算任務(wù)塊,其中ΝΓ < N1,N2' < N2。 CPU計(jì)算單元?jiǎng)討B(tài)獲取ΝΓ個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元?jiǎng)討B(tài)獲取N2'個(gè)計(jì)算任務(wù)塊。
[0033] 步驟24,根據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力,采用預(yù)算靜態(tài)負(fù)載均衡方 法向CPU計(jì)算單元和MIC計(jì)算單元分配計(jì)算任務(wù)塊。
[0034] 在本步驟中,選擇一個(gè)計(jì)算任務(wù)塊,CPU計(jì)算單元和MIC計(jì)算單元對(duì)該計(jì)算任務(wù)塊 進(jìn)行計(jì)算,可以得出CPU計(jì)算單元計(jì)算該計(jì)算任務(wù)塊的計(jì)算時(shí)間Sl,MIC計(jì)算單元計(jì)算該計(jì) 算任務(wù)塊的計(jì)算時(shí)間S2,由此,可得出CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力比S = S1/ S2〇
[0035] 根據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力比S,把所有計(jì)算任務(wù)塊一次性的分 配給CPU計(jì)算單元和MIC計(jì)算單元,即向每個(gè)CPU計(jì)算單元分配ΝΛΜ+SX 2M)個(gè)計(jì)算任務(wù) 塊;向每個(gè)MIC計(jì)算單元分配(ΝΛΜ+SX 2M)) X S個(gè)計(jì)算任務(wù)塊,其中N是所有計(jì)算任務(wù)塊 的數(shù)量,Μ是計(jì)算節(jié)點(diǎn)的數(shù)量。
[0036] 本發(fā)明通過(guò)將計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊,采用動(dòng)態(tài)負(fù)載均衡方法或者預(yù)算靜態(tài) 負(fù)載均衡方法,將計(jì)算任務(wù)塊分配給CPU計(jì)算單元和MIC計(jì)算單元,CPU計(jì)算單元和MIC計(jì) 算單元可以同步計(jì)算完成,實(shí)現(xiàn)CPU+MIC異構(gòu)集群系統(tǒng)中計(jì)算負(fù)載均衡。
[0037] 圖3是本發(fā)明異構(gòu)集群系統(tǒng)的負(fù)載均衡裝置的結(jié)構(gòu)示意圖,如圖3所示,包括: [0038]劃分模塊,用于將應(yīng)用程序的所有計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊。
[0039] 判斷模塊,用于判斷在計(jì)算過(guò)程中計(jì)算任務(wù)塊之間是否有依賴。
[0040] 具體地,根據(jù)應(yīng)用程序的算法,如果各個(gè)計(jì)算任務(wù)塊計(jì)算完后需要數(shù)據(jù)通信或同 步,則判斷模塊可以判斷出計(jì)算任務(wù)塊之間有依賴。如果各個(gè)計(jì)算任務(wù)塊計(jì)算完后不需要 數(shù)據(jù)通信或同步,則判斷模塊可以判斷出計(jì)算任務(wù)塊之間沒(méi)有依賴。
[0041] 動(dòng)態(tài)負(fù)載均衡模塊,用于若計(jì)算任務(wù)塊之間沒(méi)有依賴,采用動(dòng)態(tài)負(fù)載均衡方法, CPU計(jì)算單元和MIC計(jì)算單元?jiǎng)討B(tài)獲取計(jì)算任務(wù)塊。
[0042] 具體地,該動(dòng)態(tài)負(fù)載均衡模塊還包括設(shè)置子模塊和動(dòng)態(tài)獲取子模塊,其中,
[0043] 設(shè)置子模塊,用于設(shè)置CPU計(jì)算單元每次動(dòng)態(tài)獲取N1個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元 每次動(dòng)態(tài)獲取N2個(gè)計(jì)算任務(wù)塊,其中N1 <N2 ;若計(jì)算任務(wù)塊的數(shù)量小于(MXN1+2MXN2), 設(shè)置CPU計(jì)算單元?jiǎng)討B(tài)獲取ΝΓ個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元?jiǎng)討B(tài)獲取N2'個(gè)計(jì)算任務(wù)塊, 其中Μ為計(jì)算節(jié)點(diǎn)的數(shù)量,ΝΓ < Nl,N2' < N2。
[0044] 動(dòng)態(tài)獲取子模塊,用于根據(jù)設(shè)置子模塊的設(shè)置數(shù)量,每個(gè)CPU計(jì)算單元?jiǎng)討B(tài)獲取 N1個(gè)計(jì)算任務(wù)塊,CPU計(jì)算單元計(jì)算完后,CPU計(jì)算單元在動(dòng)態(tài)獲取N1個(gè)計(jì)算任務(wù)塊;每個(gè) MIC計(jì)算單元?jiǎng)討B(tài)獲取N2個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元計(jì)算完后,再動(dòng)態(tài)獲取N2個(gè)計(jì)算任 務(wù)塊;若計(jì)算任務(wù)塊的數(shù)量小于(MXN1+2MXN2),CPU計(jì)算單元?jiǎng)討B(tài)獲取ΝΓ個(gè)計(jì)算任務(wù) 塊,MIC計(jì)算單元?jiǎng)討B(tài)獲取N2'個(gè)計(jì)算任務(wù)塊。
[0045] 預(yù)算靜態(tài)負(fù)載均衡模塊,用于若計(jì)算任務(wù)塊之間有依賴,根據(jù)CPU計(jì)算單元和MIC 計(jì)算單元的計(jì)算能力,采用預(yù)算靜態(tài)負(fù)載均衡方法向CPU計(jì)算單元和MIC計(jì)算單元分配計(jì) 算任務(wù)塊。
[0046] 具體地,該預(yù)算靜態(tài)負(fù)載均衡模塊還包括計(jì)算子模塊和靜態(tài)分配子模塊,其中,
[0047] 計(jì)算子模塊,用于根據(jù)CPU計(jì)算單元和MIC計(jì)算單元對(duì)同一個(gè)計(jì)算任務(wù)塊進(jìn)行計(jì) 算的計(jì)算時(shí)間S1和S2,計(jì)算得出CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力比S = S1/S2 ;
[0048] 靜態(tài)分配子模塊,用于根據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力比S, 向每個(gè)CPU計(jì)算單元分配NAM+SX2M)個(gè)計(jì)算任務(wù)塊,向每個(gè)MIC計(jì)算單元分配(N/ (M+SX 2M)) X S個(gè)計(jì)算任務(wù)塊,其中N是所有計(jì)算任務(wù)塊的數(shù)量,Μ是計(jì)算節(jié)點(diǎn)的數(shù)量。 [0049] 本發(fā)明通過(guò)將計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊,采用動(dòng)態(tài)負(fù)載均衡方法或者預(yù)算靜態(tài) 負(fù)載均衡方法,將計(jì)算任務(wù)塊分配給CPU計(jì)算單元和MIC計(jì)算單元,CPU計(jì)算單元和MIC計(jì) 算單元可以同步計(jì)算完成,實(shí)現(xiàn)CPU+MIC異構(gòu)集群系統(tǒng)中計(jì)算負(fù)載均衡。
[0050] 為了更清楚地介紹本發(fā)明,下面將以描述一個(gè)具體實(shí)例。該具體實(shí)例的應(yīng)用程序 為地震疊前時(shí)間偏移(PSTM,PreStack Time Migration),其算法有高并行任務(wù),適合采用 CPU+MIC異構(gòu)集群系統(tǒng)進(jìn)行計(jì)算。在該具體實(shí)例中,8個(gè)計(jì)算節(jié)點(diǎn)由高速網(wǎng)絡(luò)互連,構(gòu)建為 CPU+MIC異構(gòu)集群系統(tǒng),因此整個(gè)系統(tǒng)的CPU計(jì)算單元為8個(gè),MIC計(jì)算單元為16個(gè)。
[0051] 對(duì)計(jì)算任務(wù)進(jìn)行均勻劃分,例如PSTM成像空間上的測(cè)線為90條,每條測(cè)線上 960個(gè)共中心點(diǎn)點(diǎn),PSTM任務(wù)按照共中心點(diǎn)進(jìn)行均勻劃分,那么所需要的計(jì)算任務(wù)數(shù)為 90X960。
[0052] 依賴判斷,由于PSTM算法需要把所有共中心點(diǎn)一次性分配到各個(gè)計(jì)算單元,采用 成像空間不動(dòng),地震道并行處理機(jī)制,所以需要采用預(yù)算靜態(tài)負(fù)載均衡方法,一次性把所有 點(diǎn)劃分到各個(gè)計(jì)算單元。
[0053] 采用預(yù)算靜態(tài)負(fù)載均衡方法,首先選擇一個(gè)共中心點(diǎn),處理100道地震道數(shù)據(jù), CPU計(jì)算單元的處理時(shí)間S1為4s,MIC計(jì)算單元的時(shí)間S2為2s,MIC與CPU的計(jì)算能力比 S為2:1 ;根據(jù)MIC與CPU的計(jì)算能力比把所有計(jì)算任務(wù)是一次性分配給系統(tǒng)中所有的CPU 計(jì)算單元和MIC計(jì)算單元,每個(gè)CPU計(jì)算單元分配的計(jì)算任務(wù)為90X96(V(8+2X2X8)= 2160 ;每個(gè)MIC計(jì)算單元分配的計(jì)算任務(wù)為(90X96(V(8+2X2X8))*2 = 4320,使整個(gè)系 統(tǒng)達(dá)到高效負(fù)載均衡。在CPU同構(gòu)系統(tǒng)下,PSTM以單線程串行方式花費(fèi)的時(shí)間為76053s, 而在CPU+MIC異構(gòu)集群系統(tǒng)下采用此高效均衡設(shè)計(jì)方法運(yùn)行時(shí)間為537s,性能得到較大的 提升。
[0054] 應(yīng)當(dāng)理解,雖然本說(shuō)明書根據(jù)實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一 個(gè)獨(dú)立的技術(shù)方案,說(shuō)明書的這種敘述方式僅僅是為清楚起見(jiàn),本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說(shuō) 明書作為一個(gè)整體,各實(shí)施方式中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可 以理解的其他實(shí)施方式。
[0055] 上文所列出的一系列的詳細(xì)說(shuō)明僅僅是針對(duì)本發(fā)明的可行性實(shí)施方式的具體說(shuō) 明,它們并非用于限制本發(fā)明的保護(hù)范圍,凡未脫離本發(fā)明技藝精神所作的等效實(shí)施方式 或變更均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 一種異構(gòu)集群系統(tǒng)的負(fù)載均衡方法,其特征在于,包括: 將應(yīng)用程序的所有計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊; 判斷在計(jì)算過(guò)程中計(jì)算任務(wù)塊之間是否有依賴; 如果判斷出計(jì)算任務(wù)塊之間沒(méi)有依賴,采用動(dòng)態(tài)負(fù)載均衡方法,中央處理器CPU計(jì)算 單元和集成眾核MIC計(jì)算單元?jiǎng)討B(tài)獲取計(jì)算任務(wù)塊; 如果判斷出計(jì)算任務(wù)塊之間有依賴,根據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力,采 用預(yù)算靜態(tài)負(fù)載均衡方法,向CPU計(jì)算單元和MIC計(jì)算單元分配計(jì)算任務(wù)塊。
2. 根據(jù)權(quán)利要求1所述的異構(gòu)集群系統(tǒng)的負(fù)載均衡方法,其特征在于,所述將應(yīng)用程 序的所有計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊,包括, 將應(yīng)用程序的所有計(jì)算任務(wù)均勻劃分為計(jì)算任務(wù)塊,其中每個(gè)計(jì)算任務(wù)塊的計(jì)算量相 同或者每個(gè)計(jì)算任務(wù)塊的計(jì)算量不同。
3. 根據(jù)權(quán)利要求1所述的異構(gòu)集群系統(tǒng)的負(fù)載均衡方法,其特征在于,所述判斷出計(jì) 算任務(wù)塊之間有依賴,包括, 如果各個(gè)計(jì)算任務(wù)塊計(jì)算完后需要數(shù)據(jù)通信或同步,則判斷出計(jì)算任務(wù)塊之間有依 賴; 所述判斷出計(jì)算任務(wù)塊之間沒(méi)有依賴,包括, 如果各個(gè)計(jì)算任務(wù)塊計(jì)算完后不需要數(shù)據(jù)通信或同步,則判斷出計(jì)算任務(wù)塊之間沒(méi)有 依賴。
4. 根據(jù)權(quán)利要求1所述的異構(gòu)集群系統(tǒng)的負(fù)載均衡方法,其特征在于,所述采用動(dòng)態(tài) 負(fù)載均衡方法,CPU計(jì)算單元和MIC計(jì)算單元?jiǎng)討B(tài)獲取計(jì)算任務(wù)塊,包括, 設(shè)置每個(gè)CPU計(jì)算單元每次動(dòng)態(tài)獲取N1個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元每次動(dòng)態(tài)獲取N2 個(gè)計(jì)算任務(wù)塊,其中Nl < N2 ; 每個(gè)CPU計(jì)算單元?jiǎng)討B(tài)獲取N1個(gè)計(jì)算任務(wù)塊,CPU計(jì)算單元計(jì)算完后,CPU計(jì)算單元再 動(dòng)態(tài)獲取N1個(gè)計(jì)算任務(wù)塊;每個(gè)MIC計(jì)算單元?jiǎng)討B(tài)獲取N2個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元計(jì) 算完后,MIC計(jì)算單元再動(dòng)態(tài)獲取N2個(gè)計(jì)算任務(wù)塊; 若計(jì)算任務(wù)塊的數(shù)量小于(MXN1+2MXN2)個(gè),每個(gè)CPU計(jì)算單元?jiǎng)討B(tài)獲取ΝΓ個(gè)計(jì) 算任務(wù)塊,每個(gè)MIC計(jì)算單元?jiǎng)討B(tài)獲取N2'個(gè)計(jì)算任務(wù)塊,其中,Μ為計(jì)算節(jié)點(diǎn)的數(shù)量,ΝΓ < Nl,Ν2, < Ν2。
5. 根據(jù)權(quán)利要求1所述的異構(gòu)集群系統(tǒng)的負(fù)載均衡方法,其特征在于,所述根據(jù)CPU計(jì) 算單元和MIC計(jì)算單元的計(jì)算能力,采用預(yù)算靜態(tài)負(fù)載均衡方法,向CPU計(jì)算單元和MIC計(jì) 算單元分配計(jì)算任務(wù)塊,包括, 根據(jù)CPU計(jì)算單元和MIC計(jì)算單元對(duì)同一個(gè)計(jì)算任務(wù)塊進(jìn)行計(jì)算的計(jì)算時(shí)間S1和S2, 得出CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力比S = S1/S2 ; 根據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力比S,向每個(gè)CPU計(jì)算單元分配N/ (M+SX2M)個(gè)計(jì)算任務(wù)塊,向每個(gè)MIC計(jì)算單元分配(NAM+SX2M)) XS個(gè)計(jì)算任務(wù)塊,其中 N是所有計(jì)算任務(wù)塊的數(shù)量,Μ是計(jì)算節(jié)點(diǎn)的數(shù)量。
6. -種異構(gòu)集群系統(tǒng)的負(fù)載均衡裝置,其特征在于,包括: 劃分模塊,用于將應(yīng)用程序的所有計(jì)算任務(wù)劃分為計(jì)算任務(wù)塊; 判斷模塊,用于判斷在計(jì)算過(guò)程中計(jì)算任務(wù)塊之間是否有依賴; 動(dòng)態(tài)負(fù)載均衡模塊,用于若判斷模塊判斷出計(jì)算任務(wù)塊之間沒(méi)有依賴,采用動(dòng)態(tài)負(fù)載 均衡方法,CPU計(jì)算單元和MIC計(jì)算單元?jiǎng)討B(tài)獲取計(jì)算任務(wù)塊; 預(yù)算靜態(tài)負(fù)載均衡模塊,用于若判斷模塊判斷出計(jì)算任務(wù)塊之間有依賴,根據(jù)(PU計(jì) 算單元和MIC計(jì)算單元的計(jì)算能力,采用靜態(tài)負(fù)載均衡方法,向CPU計(jì)算單元和MIC計(jì)算單 元分配計(jì)算任務(wù)塊。
7. 根據(jù)權(quán)利要求6所述的異構(gòu)集群系統(tǒng)的負(fù)載均衡裝置,其特征在于,所述劃分模塊, 具體用于將應(yīng)用程序的所有計(jì)算任務(wù)均勻劃分為計(jì)算任務(wù)塊,其中每個(gè)計(jì)算任務(wù)塊的計(jì)算 量相同或者每個(gè)計(jì)算任務(wù)塊的計(jì)算量不同。
8. 根據(jù)權(quán)利要求6所述的異構(gòu)集群系統(tǒng)的負(fù)載均衡裝置,其特征在于,所述判斷模塊 判斷出計(jì)算任務(wù)塊之間有依賴,具體包括如果各個(gè)計(jì)算任務(wù)塊計(jì)算完后需要數(shù)據(jù)通信或同 步,則判斷出計(jì)算任務(wù)塊之間有依賴; 所述判斷模塊判斷出計(jì)算任務(wù)塊之間沒(méi)有依賴,具體包括如果各個(gè)計(jì)算任務(wù)塊計(jì)算完 后不需要數(shù)據(jù)通信或同步,則判斷出計(jì)算任務(wù)塊之間沒(méi)有依賴。
9. 根據(jù)權(quán)利要求6所述的異構(gòu)集群系統(tǒng)的負(fù)載均衡裝置,其特征在于,所述動(dòng)態(tài)負(fù)載 均衡模塊包括設(shè)置子模塊和動(dòng)態(tài)獲取子模塊,其中, 設(shè)置子模塊,用于設(shè)置CPU計(jì)算單元每次動(dòng)態(tài)獲取N1個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元每 次動(dòng)態(tài)獲取N2個(gè)計(jì)算任務(wù)塊,其中N1 <N2 ;若計(jì)算任務(wù)塊的數(shù)量小于(MXN1+2MXN2),設(shè) 置CPU計(jì)算單元?jiǎng)討B(tài)獲取ΝΓ個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元?jiǎng)討B(tài)獲取N2'個(gè)計(jì)算任務(wù)塊,其 中Μ為計(jì)算節(jié)點(diǎn)的數(shù)量,ΝΓ < Nl,N2' < N2 ; 動(dòng)態(tài)獲取子模塊,用于根據(jù)設(shè)置子模塊的設(shè)置數(shù)量,每個(gè)CPU計(jì)算單元?jiǎng)討B(tài)獲取Ν1個(gè) 計(jì)算任務(wù)塊,CPU計(jì)算單元計(jì)算完后,CPU計(jì)算單元再動(dòng)態(tài)獲取N1個(gè)計(jì)算任務(wù)塊;每個(gè)MIC 計(jì)算單元?jiǎng)討B(tài)獲取N2個(gè)計(jì)算任務(wù)塊,MIC計(jì)算單元計(jì)算完后,再動(dòng)態(tài)獲取N2個(gè)計(jì)算任務(wù)塊; 若計(jì)算任務(wù)塊的數(shù)量小于(MXN1+2MXN2),CPU計(jì)算單元?jiǎng)討B(tài)獲取ΝΓ個(gè)計(jì)算任務(wù)塊,MIC 計(jì)算單元?jiǎng)討B(tài)獲取N2'個(gè)計(jì)算任務(wù)塊。
10. 根據(jù)權(quán)利要求6所述的異構(gòu)集群系統(tǒng)的負(fù)載均衡裝置,其特征在于,所述預(yù)算靜態(tài) 負(fù)載均衡模塊包括計(jì)算子模塊和靜態(tài)分配子模塊,其中, 計(jì)算子模塊,用于根據(jù)CPU計(jì)算單元和MIC計(jì)算單元對(duì)同一個(gè)計(jì)算任務(wù)塊進(jìn)行計(jì)算的 計(jì)算時(shí)間S1和S2,計(jì)算得出CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力比S = S1/S2 ; 靜態(tài)分配子模塊,用于根據(jù)CPU計(jì)算單元和MIC計(jì)算單元的計(jì)算能力比S,向每個(gè)CPU 計(jì)算單元分配NAM+SX2M)個(gè)計(jì)算任務(wù)塊,向每個(gè)MIC計(jì)算單元分配(NAM+SX2M)) XS個(gè) 計(jì)算任務(wù)塊,其中N是所有計(jì)算任務(wù)塊的數(shù)量,Μ是計(jì)算節(jié)點(diǎn)的數(shù)量。
【文檔編號(hào)】G06F9/50GK104123190SQ201410352752
【公開(kāi)日】2014年10月29日 申請(qǐng)日期:2014年7月23日 優(yōu)先權(quán)日:2014年7月23日
【發(fā)明者】張清 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司