[發(fā)明專利]一種CPU串行程序移植到MIC平臺(tái)的方法在審
| 申請(qǐng)?zhí)枺?/td> | 201310517767.7 | 申請(qǐng)日: | 2013-10-29 |
| 公開(公告)號(hào): | CN103530132A | 公開(公告)日: | 2014-01-22 |
| 發(fā)明(設(shè)計(jì))人: | 張廣勇;沈鉑;盧曉偉;吳紹華;張清 | 申請(qǐng)(專利權(quán))人: | 浪潮電子信息產(chǎn)業(yè)股份有限公司 |
| 主分類號(hào): | G06F9/44 | 分類號(hào): | G06F9/44 |
| 代理公司: | 暫無(wú)信息 | 代理人: | 暫無(wú)信息 |
| 地址: | 250014 山東*** | 國(guó)省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 cpu 串行 程序 移植 mic 平臺(tái) 方法 | ||
?
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)高性能計(jì)算領(lǐng)域、并行計(jì)算領(lǐng)域,具體涉及一種實(shí)現(xiàn)CPU串行程序移植到MIC平臺(tái)的方法。
背景技術(shù)
MIC(Many?Integrated?Core)是Intel公司推出的眾核處理器,跟通用的多核至強(qiáng)處理器相比,MIC眾核架構(gòu)具有更小的內(nèi)核和硬件線程,眾核處理器計(jì)算資源密度更高,片上通信開銷顯著降低,更多的晶體管和能量,能夠勝任更為復(fù)雜的并行應(yīng)用。
Intel?MIC產(chǎn)品基于X86架構(gòu),基于重核的眾核處理器,包含50個(gè)以上的核心,以及512bit的向量位寬,雙精性能超過(guò)1TFlops。
Intel?MIC產(chǎn)品采用PCI-E的方式與主板連接,如圖1所示,因此MIC做計(jì)算時(shí)需要先把數(shù)據(jù)由CPU內(nèi)存?zhèn)鬟f到MIC內(nèi)存中。另外,MIC作為眾核處理器,并行線程數(shù)較多,與CPU平臺(tái)上的并行方式有很大的不同,正確的MIC并行程序開發(fā)過(guò)程將獲得快速、高效的結(jié)果,否則將不能有效地、合理地利用MIC加速。
可見,為實(shí)現(xiàn)MIC并行程序開發(fā)的需求,需要一種快速、有效地實(shí)現(xiàn)CPU串行程序移植到MIC平臺(tái)的方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于實(shí)現(xiàn)一種快速、有效地CPU串行程序移植到MIC平臺(tái)的方法,提高M(jìn)IC并行程序開發(fā)效率,降低MIC并行程序開發(fā)周期,該方法按照先修改CPU串行程序后移植到MIC平臺(tái)的原理,把需要在MIC上做的工作盡量先在CPU平臺(tái)上修改,降低了程序的開發(fā)難度,同時(shí)有利用bug的調(diào)試。可以分為以下步驟:
(1)??CPU串行程序分析
對(duì)于CPU串行程序,首先需要測(cè)試串行程序中的熱點(diǎn)函數(shù),以及分析熱點(diǎn)函數(shù)的并行性:
a)??熱點(diǎn)測(cè)試
根據(jù)時(shí)間的測(cè)試結(jié)果確定熱點(diǎn)函數(shù),作為后面移植的重點(diǎn)代碼模塊。
b)??并行性分析
找出熱點(diǎn)代碼后,需要分析熱點(diǎn)部分的算法、數(shù)據(jù)特點(diǎn),根據(jù)算法和數(shù)據(jù)的特點(diǎn)分析其是否可以并行,確定其并行性。
c)??確定MIC內(nèi)核使用的數(shù)組
根據(jù)對(duì)串行程序的分析,確定哪些模塊需要移植到MIC平臺(tái)上運(yùn)行,對(duì)于需要運(yùn)行上MIC平臺(tái)上的代碼內(nèi)的數(shù)據(jù)進(jìn)行分析,確定數(shù)組在代碼中的什么位置傳遞到MIC上,傳遞的方向是in、out、還是inout,以及每次傳遞時(shí)的大小等信息。
(2)??仿MIC格式的CPU串行程序
MIC程序相對(duì)CPU程序比較復(fù)雜,當(dāng)出現(xiàn)bug時(shí),調(diào)試的難度也要比CPU程序大很多,為了降低MIC程序開發(fā)難度和周期,可以把一些MIC上的移植工作提前在CPU平臺(tái)上實(shí)現(xiàn),具體涉及下面幾個(gè)方面:
a)??修改成可并行算法
對(duì)于CPU串行程序,有些代碼理論上可以并行,但經(jīng)過(guò)CPU版本的優(yōu)化之后導(dǎo)致代碼不能直接并行化,這時(shí)需要根據(jù)并行算法的要求修改原程序,改成可并行的模式;有些模塊理論上是可以并行的,但串行算法無(wú)法直接并行化,需要重新設(shè)計(jì)并行算法。
b)??數(shù)組修改
根據(jù)MIC并行程序?qū)?shù)組格式的要求對(duì)串行程序中的數(shù)組進(jìn)行修改。
根據(jù)前面幾條的修改方式,對(duì)原CPU程序修改成一個(gè)仿MIC格式的CPU串行程序,為后面的移植工作做大量的準(zhǔn)備,這樣有利于后面MIC程序的開發(fā)和調(diào)試。
(3)??CPU平臺(tái)OpenMP版本程序
基于CPU多核平臺(tái)和步驟2得到的串行程序利用OpenMP并行編程模型實(shí)現(xiàn)其OpenMP并行程序,并保證其結(jié)果的正確性。
為了滿足程序往MIC平臺(tái)的移植,設(shè)計(jì)CPU版本的OpenMP程序需要充分考慮擴(kuò)展性,因?yàn)椋琈CI平臺(tái)需要設(shè)置數(shù)百個(gè)線程,而CPU平臺(tái)僅幾十個(gè)線程。
(4)??MIC并行程序基本版本
根據(jù)對(duì)原程序數(shù)組的分析,把CPU平臺(tái)上的OpenMP版本程序移植到MIC平臺(tái),主要包括:
a)??實(shí)現(xiàn)Offload語(yǔ)句
根據(jù)對(duì)數(shù)組的分析,完成offload語(yǔ)句,實(shí)現(xiàn)數(shù)據(jù)的傳遞和MIC內(nèi)核的調(diào)用。
b)??修改OpenMP線程數(shù)
根據(jù)MIC核的數(shù)目設(shè)計(jì)OpenMP的線程數(shù),充分利用MIC的計(jì)算資源。
(5)??MIC并行程序優(yōu)化版本
根據(jù)步驟4實(shí)現(xiàn)的基本版本的MIC并行程序,利用MIC的優(yōu)化技術(shù)進(jìn)一步提高并行程序的性能,主要優(yōu)化包括兩個(gè)方面:通信優(yōu)化和內(nèi)核優(yōu)化。
a)??MIC通信優(yōu)化
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浪潮電子信息產(chǎn)業(yè)股份有限公司,未經(jīng)浪潮電子信息產(chǎn)業(yè)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310517767.7/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:一種小型斷路器
- 下一篇:電容及具有該電容的多層電路板
- 串行式內(nèi)存的直接執(zhí)行系統(tǒng)及方法
- 模塊化對(duì)象串行化體系結(jié)構(gòu)
- 用于高速數(shù)據(jù)輸入/輸出的半導(dǎo)體存儲(chǔ)器件
- 對(duì)串行信號(hào)進(jìn)行測(cè)試的數(shù)據(jù)處理設(shè)備及方法
- 一種串行總線式條碼解碼芯片以及條碼解碼裝置
- 一種串行總線式條碼解碼芯片以及條碼解碼裝置
- 通用串行總線主機(jī)、設(shè)備及信息傳輸方法
- 串行閃存控制器、串行閃存及其執(zhí)行的方法
- 一種微控制器的串行接口與仿真調(diào)試接口復(fù)用方法及裝置
- 信號(hào)傳輸系統(tǒng)
- 功能限制程序、安裝程序生成程序和程序存儲(chǔ)介質(zhì)
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序創(chuàng)建裝置,程序創(chuàng)建方法和程序
- 程序生成裝置、程序生產(chǎn)方法及程序
- 程序生成裝置、程序生成程序以及程序生成方法
- 程序生成裝置、程序生成方法及程序生成程序
- 程序開發(fā)支持裝置、程序開發(fā)支持方法以及存儲(chǔ)介質(zhì)
- 程序執(zhí)行輔助裝置、程序執(zhí)行輔助方法及程序執(zhí)行輔助程序
- 程序?qū)φ昭b置、程序?qū)φ辗椒俺绦驅(qū)φ粘绦?/a>





