[發(fā)明專利]面向軟件超結(jié)點(diǎn)的OpenCL編程框架構(gòu)建方法和裝置有效
| 申請?zhí)枺?/td> | 202011398621.1 | 申請日: | 2020-12-04 |
| 公開(公告)號: | CN112433869B | 公開(公告)日: | 2021-07-09 |
| 發(fā)明(設(shè)計(jì))人: | 唐滔;崔英博;黃春;彭林;楊燦群;方建濱;張鵬;左克;于恒彪;范小康;易昕 | 申請(專利權(quán))人: | 中國人民解放軍國防科技大學(xué) |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F9/50 |
| 代理公司: | 長沙國科天河知識產(chǎn)權(quán)代理有限公司 43225 | 代理人: | 邱軼 |
| 地址: | 410073 湖*** | 國省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 面向 軟件 結(jié)點(diǎn) opencl 編程 框架 構(gòu)建 方法 裝置 | ||
本申請涉及一種面向軟件超結(jié)點(diǎn)的OpenCL編程框架構(gòu)建方法、裝置、計(jì)算機(jī)設(shè)備和存儲介質(zhì)。所述方法包括:通過在軟件超結(jié)點(diǎn)的主結(jié)點(diǎn)上啟動OpenCL主進(jìn)程并初始化第一通信端口,通過主結(jié)點(diǎn)上的守護(hù)進(jìn)程將第一通信端口廣播給軟件超結(jié)點(diǎn)的從結(jié)點(diǎn),當(dāng)主結(jié)點(diǎn)和從結(jié)點(diǎn)都獲取到第一通信端口地址后,在所有物理結(jié)點(diǎn)上啟動OpenCL?handler進(jìn)程,并初始化第二通信端口,每個(gè)物理結(jié)點(diǎn)根據(jù)第一通信端口將本地的第二通信端口發(fā)送給OpenCL主進(jìn)程,OpenCL主進(jìn)程將接收到的所有第二通信端口地址和第一通信端口地址進(jìn)行打包,并將打包得到的全局地址信息發(fā)送給所有物理結(jié)點(diǎn),完成軟件超結(jié)點(diǎn)OpenCL編程環(huán)境的構(gòu)建。
技術(shù)領(lǐng)域
本申請涉及異構(gòu)型計(jì)算機(jī)系統(tǒng)技術(shù)領(lǐng)域,特別是涉及一種面向軟件超結(jié)點(diǎn)的OpenCL編程框架構(gòu)建方法、裝置、計(jì)算機(jī)設(shè)備和存儲介質(zhì)。
背景技術(shù)
異構(gòu)計(jì)算以其高性能、高能效的特點(diǎn)在高性能計(jì)算領(lǐng)域得到不斷發(fā)展,涌現(xiàn)出越來越多的專用加速器,如GPU、FPGA、DSP、AI加速器等等。通常,加速器是以PCIe(PeripheralComponent Interconnect Express,快速外圍組件互連)外設(shè)的形式連接到主機(jī)端CPU上,構(gòu)成緊耦合的異構(gòu)計(jì)算結(jié)點(diǎn),再由多個(gè)結(jié)點(diǎn)構(gòu)建并行系統(tǒng)。這種方式計(jì)算高效但不易擴(kuò)展,當(dāng)出現(xiàn)新型加速器時(shí),很難加入已經(jīng)構(gòu)建好的高性能計(jì)算系統(tǒng)。
針對以上問題,我們設(shè)計(jì)并構(gòu)建了一種陣列異構(gòu)型計(jì)算機(jī)系統(tǒng),在硬件層面,將加速器單獨(dú)構(gòu)成陣列,通過高速互聯(lián)網(wǎng)絡(luò)與已有系統(tǒng)互聯(lián),當(dāng)加速器需要替換或出現(xiàn)新型加速器時(shí),只需要在加速器陣列中增加或減少結(jié)點(diǎn)即可,易于擴(kuò)展。同時(shí),構(gòu)建了一種面向陣列異構(gòu)型計(jì)算機(jī)系統(tǒng)的軟件超結(jié)點(diǎn)環(huán)境。軟件超結(jié)點(diǎn)環(huán)境將多個(gè)物理上分離的結(jié)點(diǎn)組織為一個(gè)虛擬的異構(gòu)結(jié)點(diǎn),超結(jié)點(diǎn)內(nèi)包括一個(gè)主結(jié)點(diǎn)和若干個(gè)從結(jié)點(diǎn),每個(gè)物理結(jié)點(diǎn)上均運(yùn)行一個(gè)常駐后臺的守護(hù)程序,負(fù)責(zé)管理超結(jié)點(diǎn)內(nèi)部的信息,主要包括超結(jié)點(diǎn)中物理結(jié)點(diǎn)的數(shù)量、所在結(jié)點(diǎn)的身份(主結(jié)點(diǎn)或從結(jié)點(diǎn))、所在結(jié)點(diǎn)在超結(jié)點(diǎn)內(nèi)部的編號、超結(jié)點(diǎn)內(nèi)所有結(jié)點(diǎn)的通信端口號等信息。守護(hù)維護(hù)了一片共享內(nèi)存,可以與同一結(jié)點(diǎn)內(nèi)其他進(jìn)程進(jìn)行通信,此外,守護(hù)也支持超結(jié)點(diǎn)內(nèi)任意結(jié)點(diǎn)間的通信。
但現(xiàn)有技術(shù)中,還沒有對應(yīng)的編程框架,能夠?qū)崿F(xiàn)對超結(jié)點(diǎn)內(nèi)部和跨超結(jié)點(diǎn)的計(jì)算資源的訪問。
發(fā)明內(nèi)容
基于此,有必要針對上述技術(shù)問題,提供一種能夠?qū)崿F(xiàn)對超結(jié)點(diǎn)內(nèi)部和跨超結(jié)點(diǎn)的計(jì)算資源進(jìn)行訪問的面向軟件超結(jié)點(diǎn)的OpenCL編程框架構(gòu)建方法、裝置、計(jì)算機(jī)設(shè)備和存儲介質(zhì)。
一種面向軟件超結(jié)點(diǎn)的OpenCL編程框架構(gòu)建方法,所述方法包括:
獲取陣列異構(gòu)型計(jì)算機(jī)系統(tǒng)的物理結(jié)點(diǎn)列表,構(gòu)建所述陣列異構(gòu)型計(jì)算機(jī)系統(tǒng)的軟件超結(jié)點(diǎn);所述軟件超結(jié)點(diǎn)中包括一個(gè)主結(jié)點(diǎn)和多個(gè)從結(jié)點(diǎn);所述物理結(jié)點(diǎn)列表中的每個(gè)物理結(jié)點(diǎn)上均運(yùn)行一個(gè)守護(hù)程序;
在所述主結(jié)點(diǎn)上啟動OpenCL主進(jìn)程,并初始化所述OpenCL主進(jìn)程上的第一通信端口,通過所述主結(jié)點(diǎn)的守護(hù)進(jìn)程向所述從結(jié)點(diǎn)的守護(hù)進(jìn)程廣播所述第一通信端口的第一通信端口地址;
在每個(gè)接收到所述第一通信端口地址的所述從結(jié)點(diǎn)上以及所述主結(jié)點(diǎn)上啟動OpenCL-handler進(jìn)程,并初始化OpenCL-handler進(jìn)程的第二通信端口,以使所述物理結(jié)點(diǎn)根據(jù)所述第一通信端口地址,向所述OpenCL主進(jìn)程發(fā)送所述第二通信端口的第二通信端口地址;
通過所述OpenCL主進(jìn)程將接收到的所有所述第二通信端口地址和所述第一通信端口地址進(jìn)行打包,并將打包得到的全局地址信息發(fā)送給所有所述物理結(jié)點(diǎn),以使所述物理結(jié)點(diǎn)上的所述OpenCL-handler進(jìn)程接收所述全局地址信息,完成所述軟件超結(jié)點(diǎn)OpenCL編程環(huán)境的構(gòu)建。
在其中一個(gè)實(shí)施例中,所述主結(jié)點(diǎn)的守護(hù)進(jìn)程中包含主結(jié)點(diǎn)共享內(nèi)存空間;所述第一通信端口為天河高速通信端口;
在所述主結(jié)點(diǎn)上啟動OpenCL主進(jìn)程,并初始化所述OpenCL主進(jìn)程上的第一通信端口之后,還包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國人民解放軍國防科技大學(xué),未經(jīng)中國人民解放軍國防科技大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011398621.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動態(tài)惡意軟件分析來擴(kuò)展惡意軟件的動態(tài)檢測
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測驗(yàn)軟件的裝置與方法
- 一種自組織網(wǎng)絡(luò)安全可控域的建立和管理方法
- 一種數(shù)字高程模型洼地的填平處理方法
- 快速批量處理樹形結(jié)點(diǎn)的方法及系統(tǒng)
- 一種非結(jié)構(gòu)化大數(shù)據(jù)流的內(nèi)容語義挖掘方法
- 一種微網(wǎng)實(shí)驗(yàn)平臺及其控制系統(tǒng)
- 一種數(shù)據(jù)查詢的方法及裝置
- 一種基于守衛(wèi)計(jì)算的區(qū)間信息分析方法
- 一種快速遍歷樹形結(jié)構(gòu)的方法
- 一種任務(wù)調(diào)度方法和裝置
- 移動終端中界面結(jié)點(diǎn)的匹配文本生成、匹配方法及裝置
- 一種畫質(zhì)調(diào)節(jié)方法及系統(tǒng)
- 一種向量點(diǎn)積的OpenCL自動化實(shí)現(xiàn)方法
- 一種提高OpenCL硬件執(zhí)行效率的方法
- 基于OpenCL移動設(shè)備QC-LDPC的動態(tài)譯碼方法
- 基于Andorid平臺的OpenCL圖像處理方法
- 程序的加載方法、裝置、系統(tǒng)以及電子設(shè)備
- 基于FPGA的Tensorflow系統(tǒng)加速的設(shè)計(jì)方法
- 一種基于OpenCL的雙目立體匹配方法
- 一種OpenCL內(nèi)核提交的方法及裝置
- 面向軟件超結(jié)點(diǎn)的OpenCL編程框架構(gòu)建方法和裝置





