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