專利名稱:一種同構(gòu)平臺應(yīng)用面向cbea移植的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機領(lǐng)域,涉及高性能計算及異構(gòu)多核架構(gòu),特別涉及一種同構(gòu)平
CBEA(Cell Broadband Engineering Architecture) 白勺力夕去。
背景技術(shù):
高性能計算發(fā)展水平是衡量一個國家綜合國力與國際競爭力的重要指標,是一個國家科技實力的綜合體現(xiàn)。在航空航天、核武研制、石油勘探、氣象預(yù)報、生命科學、海嘯與地震自然災(zāi)害預(yù)測等關(guān)鍵領(lǐng)域具有巨大應(yīng)用需求。因此,世界各國都競相將高性能計算作為技術(shù)與經(jīng)濟爭奪的戰(zhàn)略制高點。目前,多核(Multi-Core)和擁有大量核心的以異構(gòu)為特征的眾核(Many-Core)已成為處理器技術(shù)主流發(fā)展方向。在從高端科學計算到消費娛樂的一系列諸多領(lǐng)域中,眾核技術(shù)得到了快速普及,并成為解決經(jīng)濟建設(shè)、社會發(fā)展、科學進步等一系列重大挑戰(zhàn)性問題的重要基礎(chǔ)技術(shù)。但是眾核技術(shù)的快速發(fā)展與當前呈現(xiàn)出的架構(gòu)多樣性在推動計算機系統(tǒng)結(jié)構(gòu)變革的同時,也給應(yīng)用開發(fā)帶來新的挑戰(zhàn)。同構(gòu)架構(gòu)中,核與核之間是對等的,可以使用傳統(tǒng)的編程模式。而在異構(gòu)多核架構(gòu)中,根據(jù)核作用的不同,可以分成兩種通用處理單元和加速處理單元,通用處理單元負責運行操作系統(tǒng)及控制邏輯,加速處理單元專注于計算。這些要求應(yīng)用開發(fā)過程中,針對不同的核,分開編寫。主要計算部分放到加速核中運行,控制邏輯等由通用核來負責,這對編程者就提出了更高的要求。當前的異構(gòu)多核架構(gòu),雖然具有很高的理論峰值,確實存在一些成功的應(yīng)用表現(xiàn)出了架構(gòu)強大的性能,但是基于異構(gòu)多核架構(gòu)的編程模式較之傳統(tǒng)的編程模式有著很大的不同,因此之前在同構(gòu)平臺上積累的大量成熟應(yīng)用需要針對異構(gòu)架構(gòu)進行改寫才能完成移植,移植效率低、開銷巨大。目前存在同構(gòu)平臺到異構(gòu)平臺的自動映射機制,以及一些剖分手段和工具。但那些自動映射機制或方法,均只能保證最終轉(zhuǎn)換的可用性,并沒有提供相應(yīng)的性能優(yōu)化手段和方法,難以充分發(fā)揮出異構(gòu)多核平臺較高的性能,應(yīng)用向異構(gòu)平臺映射后運行效率較低; 而其他的剖分手段并沒有和自動映射機制相結(jié)合,并且沒有提供針對獲得的剖分信息如何對應(yīng)用進行優(yōu)化的策略性指導(dǎo)。
發(fā)明內(nèi)容
針對上述現(xiàn)有技術(shù)存在的缺陷,本發(fā)明的目的在于,提供一種同構(gòu)平臺應(yīng)用面向 CBEA架構(gòu)移植的三級循環(huán)漸進方法,提供明確指導(dǎo)信息,指導(dǎo)用戶如何通過獲取的剖分信息進行應(yīng)用優(yōu)化,最終實現(xiàn)一種移植開銷低,移植后應(yīng)用效率高的漸進方法。本發(fā)明的目的是通過以下技術(shù)方案予以實現(xiàn)的一種同構(gòu)平臺應(yīng)用面向CBEA架構(gòu)的移植方法,所述的同構(gòu)平臺應(yīng)用主要劃分為管理部分、通信部分和計算部分,其特征是將同構(gòu)平臺應(yīng)用經(jīng)過函數(shù)級剖分獲取計算部分,在計算部分兩端插入規(guī)范的制導(dǎo)語句,該計算部分經(jīng)過源到源編譯后,按照CBEA架構(gòu)的要求,移植到CBEA架構(gòu)的加速處理單元中運行,實現(xiàn)應(yīng)用的移植,獲取的訪存信息,指導(dǎo)用戶選取相應(yīng)的訪存庫。所述獲取的訪存信息包括訪存范圍、訪存步長、訪存次數(shù)及順序信息,從而指導(dǎo)用戶選擇相應(yīng)的訪存庫。用戶可以選擇的訪存庫包括IBM訪存庫、批量訪存庫、單緩沖區(qū)訪存庫、組相聯(lián) cache訪存庫、四緩沖區(qū)訪存庫。本發(fā)明提供的一種同構(gòu)平臺應(yīng)用面向CBEA架構(gòu)移植的三級循環(huán)漸進方法,包括剖分,編譯,運行三級技術(shù),剖分層包括了函數(shù)級和訪存特性剖分兩種方法,函數(shù)級剖分需要用戶顯式的利用動態(tài)插樁剖分方法,針對待移植應(yīng)用,進行插樁操作,從而獲取應(yīng)用的計算部分,指導(dǎo)制導(dǎo)語句的插入,指導(dǎo)后續(xù)的應(yīng)用向異構(gòu)多核平臺的映射。其中動態(tài)插樁剖分方法,是通過在應(yīng)用中插入相關(guān)代碼和函數(shù),然后在運行中執(zhí)行代碼來收集需要的剖分信息。而訪存特性剖分方法,為隱式方法,用戶并不可見,但是可以通過修改配置文件的方式, 來選擇使用或者不使用該策略。訪存特性剖分方法,主要是通過在應(yīng)用的訪存過程中,插入相應(yīng)的統(tǒng)計信息,從而在運行過程中獲取訪存變量相應(yīng)的訪存信息,諸如訪存步長,訪存范圍,訪存次數(shù),cache命中率等。之后通過分析這些訪存信息,指導(dǎo)用戶選擇相應(yīng)的訪存方式,從而發(fā)揮出應(yīng)用較高的性能。本發(fā)明提供的訪存庫有5種訪存方式,分別描述如下1. IBM訪存方式,由IBM提供,性能比較穩(wěn)定,適用范圍廣,針對某些情況,性能較低。2.批量訪存方式,如前面所述,如果訪存變量的數(shù)據(jù)可以容乃在CBEA架構(gòu)的加速處理單元SPE的局部存儲LS,即可選用批量訪存方式,即一次性將數(shù)據(jù)放入LS中。3.單緩沖區(qū)訪存方式,在SPE的LS中設(shè)定一個緩沖區(qū),增加訪存命中率。4.四緩沖區(qū)訪存方式,在SPE的LS中設(shè)定四個緩沖區(qū),從而可以使用數(shù)據(jù)預(yù)取策略,提高訪存效率。5.組相聯(lián)cache訪存方式,針對訪存特性不規(guī)則的情況,可以達到更高的cache命中率和更好的性能。以上5種訪存方式,可以供用戶根據(jù)剖分層的訪存特性剖分信息來選擇相應(yīng)的訪存方式,從而使應(yīng)用發(fā)揮出較高的性能。編譯級主要為基于指導(dǎo)語句的針對CBEA架構(gòu)的軟件向硬件的自動映射機制。如前所述,CBEA架構(gòu)包括PPE和SPE兩部分,同樣面向該架構(gòu)的應(yīng)用也包括分別針對PPE和 SPE的兩個部分。本方法中的移植機制,基于規(guī)范的制導(dǎo)語句,可以規(guī)范計算部分的響應(yīng)變量的輸入輸出類型,input部分需描述出該計算函數(shù)所需的輸入數(shù)據(jù)及大小,inout部分需描述出該計算函數(shù)所需的輸入輸出數(shù)據(jù)及大小,output部分需描述出該計算函數(shù)所需的輸出數(shù)據(jù)及大小,三個選項均可為空。如前所述,通過剖分層的函數(shù)剖分,可以獲取應(yīng)用的計算部分信息,從而在計算部分前加入相應(yīng)制導(dǎo)語句,移植工具將會該部分自動移植到CBEA架構(gòu)的SPE中運行,從而實現(xiàn)應(yīng)用的移植,移植開銷低。本發(fā)明針對CBEA架構(gòu)應(yīng)用移植的三級循環(huán)漸進優(yōu)化方法,特別是剖分級和編譯級的訪存特性剖分方法和一致機制,形成了一個應(yīng)用移植的完整體系,不僅僅是針對應(yīng)用的源到源編譯,還采用剖分方法獲取應(yīng)用的訪存特性及其它特性,對應(yīng)用進行優(yōu)化,并通過運行時技術(shù)支持,對應(yīng)用進行漸進優(yōu)化。整個體系,可以以較低的移植開銷,使移植后的應(yīng)用達到較高的效率,發(fā)揮出異構(gòu)多核架構(gòu)較高的性能。
圖1為CBEA處理器架構(gòu)示意圖;圖2為優(yōu)化前后時間對比示意圖。
具體實施例方式本發(fā)明選取了《TheArt of Molecular Dynamics Simulation》一書中給出的 MD(分子動力學)應(yīng)用為例,給出發(fā)明的一個具體實施過程如圖1所示,標準的Cell處理器內(nèi)置一個通用PPE (PowerPC ProcessingElement) 和8個SPE (Synergistic Processing Element)作為加速處理單元,它們通過高速互連總線EIB(Element Interconnect Bus)與系統(tǒng)主存及10相連。PPE內(nèi)置32KB—級指令緩存和數(shù)據(jù)緩存及512KB 二級緩存。Cell處理器的計算能力主要來自SPE,SPE由協(xié)處理單元 SPU和256KB本地存儲LS (LocalStorage)構(gòu)成,協(xié)處理單元SPU只能直接訪問LS中的數(shù)據(jù)和代碼,如果應(yīng)用的數(shù)據(jù)和代碼超過了這個限制,就必須顯式地通過效率遠低于訪存指令的DMA操作從片外系統(tǒng)主存中獲取。在3. 2GHz主頻下,SPU提供對LS高達51. 2GB/s的高帶寬訪問,而通過DMA由高速片上互連總線從系統(tǒng)主存獲取數(shù)據(jù)的帶寬為25. 6GB/s。異步DMA操作可與SPU計算重疊, 以利于通過數(shù)據(jù)預(yù)取來隱藏訪存延遲。分子動力學模擬是目前在原子級對物體進行研究的主要方法之一。它將原子視為經(jīng)典粒子,通過求解各粒子的運動方程得到不同時刻粒子的空間位置、運動狀態(tài),從而統(tǒng)計出材料的宏觀行為特性。主要的數(shù)據(jù)結(jié)構(gòu)原子位置(atoms)、每個原子的速度 (velocity)、作用在每個原子上的力(forces)、以及每個原子截止距離范圍內(nèi)的原子列表 (neighbors)。程序是一個時間步循環(huán),循環(huán)的每次迭代計算短距離力、更新鄰居列表,然后尋找非化學鍵作用力。每一個原子上的計算完成后,利用一個普通的簡單微分公式來計算原子的位置和速度。然后跟新基于原子運動的物理屬性。這些都完成之后,進入下一個時間步。應(yīng)用總體的運行時間和運行步長以及粒子數(shù)有關(guān),移植優(yōu)化過程中可以選取粒子數(shù)為30*30*30 = 27000個,時間步為30,每步計算100次,這樣既可以反映出應(yīng)用的一般特性,又可以降低應(yīng)用移植的時間開銷。以下為發(fā)明人給出的一種具體實施例該應(yīng)用包括多個計算部分,所占的時間比重不同,分別如下InitSlavesO ;//進程初始化NebrParlProcs () ;//鄰居列表初始化^tParamsO ;//設(shè)置參數(shù)^tupJobO ;//設(shè)置時間步Leapfrogstep () ;//雙步蛙跳積分DoParlMove () ;//粒子移動
DoParlCopy () ;//粒子復(fù)制BuildNebrListO ;//更新鄰居列表Computerforces () ;//計算作用力EvaPropsO ;//計算位置、速度首先采用剖分層的函數(shù)級剖分策略,實現(xiàn)為MPIJimeJtate (),目前用戶需要將該統(tǒng)計函數(shù)顯式的插入以上主要部分的首尾,后面的研究中,會將其調(diào)整為自動識別函數(shù)加入,進一步降低移植所需開銷。該函數(shù)統(tǒng)計所要剖分的函數(shù)的調(diào)用次數(shù)以及運行的總時間。針對本實例,在同構(gòu)平臺Linux操作系統(tǒng)環(huán)境下,主要配置為雙htel Xeon E5410CPU, 每CPU四核,8G內(nèi)存。執(zhí)行進程數(shù)為1時,運行結(jié)果如表1所示 表1進程數(shù)為1時獲得信息
權(quán)利要求
1.一種同構(gòu)平臺應(yīng)用面向CBEA架構(gòu)移植的方法,所述的同構(gòu)平臺應(yīng)用主要劃分為管理部分、通信部分和計算部分,其特征在于將同構(gòu)平臺應(yīng)用經(jīng)過函數(shù)級剖分獲取計算部分,在計算部分兩端插入規(guī)范的制導(dǎo)語句,該計算部分經(jīng)過源到源編譯后,按照CBEA架構(gòu)的要求,移植到CBEA架構(gòu)的加速處理單元中運行,實現(xiàn)應(yīng)用的移植,并可獲取訪存信息,指導(dǎo)用戶選取相應(yīng)的訪存庫。
2.根據(jù)權(quán)利要求1所述的一種同構(gòu)平臺應(yīng)用面向CBEA架構(gòu)移植的方法,其特征在于 所述獲取的訪存信息包括訪存范圍、訪存步長、訪存次數(shù)及順序信息,從而指導(dǎo)用戶選擇相應(yīng)的訪存庫。
3.根據(jù)權(quán)利要求1或2所述的一種同構(gòu)平臺應(yīng)用面向CBEA架構(gòu)移植的方法,其特征在于所述用戶可以選擇的訪存庫包括IBM訪存庫、批量訪存庫、單緩沖區(qū)訪存庫、組相聯(lián) cache訪存庫、四緩沖區(qū)訪存庫。
全文摘要
本發(fā)明公開了一種同構(gòu)平臺應(yīng)用面向CBEA架構(gòu)移植的方法,在制定了制導(dǎo)語句規(guī)范的基礎(chǔ)上,利用剖分級的動態(tài)插樁剖分技術(shù),找到整個應(yīng)用的計算部分,針對該計算核心顯式的插入制導(dǎo)語句,通過編譯層的源到源編譯器,采用“Function Offload”策略,對應(yīng)用的計算核心部分進行優(yōu)化,尋求以較小的移植開銷充分發(fā)揮出異構(gòu)多核架構(gòu)的性能,最終的運行時機制,可以獲取應(yīng)用針對異構(gòu)多核架構(gòu)重新編譯后的運行時的性能以及應(yīng)用中各計算部分的訪存特性,用戶可以根據(jù)獲得的信息,進一步優(yōu)化應(yīng)用,從而形成了剖分、編譯、運行時的三級循環(huán)漸進優(yōu)化方法。
文檔編號G06F9/48GK102193827SQ20101012264
公開日2011年9月21日 申請日期2010年3月12日 優(yōu)先權(quán)日2010年3月12日
發(fā)明者馮國富, 馮景華, 劉超, 張興軍, 朱正東, 李亮, 白秀秀, 董小社 申請人:西安交通大學