999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

3D_EW在MIC并行編程中的移植與實現研究

2017-06-10 08:38:55李薛劍許興中
實驗室研究與探索 2017年4期
關鍵詞:程序效率優化

李薛劍, 羅 京, 魯 昶, 許興中

(安徽大學 計算機科學與技術學院, 合肥 230601)

3D_EW在MIC并行編程中的移植與實現研究

李薛劍, 羅 京, 魯 昶, 許興中

(安徽大學 計算機科學與技術學院, 合肥 230601)

3D_EW是一款用于石油勘探領域的應用程序,其運行需要極高的計算能力支持,在CPU上進行大規模計算時效率極低,而MIC卡為英特爾公司推出的基于集成中和架構的至強融核產品,可以提供數百個同時運行的硬件線程,帶來極高的并行性。將3D_EW程序并行化并移植于MIC卡,實驗表明:3D_EW進行大規模運算時在MIC并行運行速度遠大于僅利用CPU時的串行運行速度。

三維彈性波建模(3D_EW); MIC; 移植; 并行; 優化策略

0 引 言

隨著現代技術的高速發展,串行程序往往不能滿足人們的對各方面的要求,如運行時間、運行空間,人們急需一種可以提高程序效率的方法,并行程序應運而生。而且隨著大數據的高速發展,現在在社會的各個方面,人們對計算的要求也越來越高,要求程序計算能提高效率或精度,MIC卡則應運而生,MIC卡可以很好地運行并行[1]的大規模計算,其還可以與CPU合作,CPU運行簡單的串行部分和不能并行的程序部分,而MIC則運行復雜的并行計算[2],目前針對MIC平臺的研究已經取得了一定的進展[3-6]。

本文中的3D_EW程序就是用以CPU為主MIC為協處理器的offload模式[7]。實驗表明,3D_EW在此方式下處理大規模運算數據時效率遠高于CPU。

1 三維縱橫波分離的彈性波方程模擬算法

1.1 介紹

3D_EW(3D Elastic Wave Modeling)[8]是用于石油勘探領域的應用程序。它是一種用波場延拓的方法來模擬彈性波在各向同性的彈性介質中傳播的方法。在該程序中,縱波(P波)和橫波(S波)被分別模擬,這樣可以更好地得知縱波和橫波在彈性介質中的傳遞。該方法可以通過高階有限差分方法來模擬彈性波的傳遞。其求解的方程為彈性波波動方程:

(1)

1.2 原程序結構

原程序結構如圖1所示。

2 MIC移植的優化設計

2.1 MIC介紹

至強融核TM(Xeon Phi)協處理器,是首款英特爾集成眾核(Many Integrated Core,MIC)[9]架構產品。用作高性能計算(HPC)[10]的超級計算機或服務器的加速卡。最多61個處理器核心,每個核心擁有4個超線程,最多244個線程,超線程無法關閉。與之競爭的是GPGPU(通用圖形處理器)在HPC領域應用的普及。英特爾至強融核協處理器提供了類似于英特爾至強處理器編程環境的通用編程環境。多個英特爾至強融核協處理器可安裝在單個主機系統中,這些協處理器可通過 PCIe 對等互連相互通信,不受主機的任何干擾。

2.2 MIC程序移植流程

具體改寫與移植流程[11]:

(1) 將串行程序改為OpenMP程序[12];

(2) 將OpenMP版本程序做一定優化;

(3) 將OpenMP版本程序移植到單MIC卡上;

(4) 根據MIC版程序運行情況,做針對性優化;

(5) 單節點內CPU+MIC協同計算。

2.3 MIC移植優化策略

2.3.1 移植前OpenMP并行優化

程序進行移植前,需要使用OpenMP對原串行程序進行改寫。OpenMP是一種API,用于編寫可移植的多線程應用程序,能夠為編寫多線程應用程序提供一種簡單的方法,而無需程序員進行復雜的線程創建、同步、負載均衡和銷毀工作。OpenMP是基于共享內存和線程的支持單指令流多數據流的并行編程模型。OpenMP基于fork/join模型,即在并行任務開始時穿件并發線程,執行并行任務,并在任務結束時收束線程,等待線程全部結束才認為任務結束。OpenMP是顯式并行的,需要程序員顯示控制需要并行的代碼。本次移植優化使用了內部各線程負載均衡優化、向量化優化、并行力度優化的策略。

3D_EW程序根據不同的輸入數據量,計算規模也不同,在小規模時各線程間存在任務分配不均而導致的性能使用效率低下,使用各線程負載均衡優化可以解決此問題。

Intel編譯器支持向量化,即使用批處理單元進行批量計算的方法,可以把循環計算部分用MMX、SSE等擴展指令進行向量化,從而提高計算速度。MIC向量化優化方式主要有兩種,自動向量化和SIMD指令優化,由于SIMD同時支持CPU與MIC,故十分適合用于本程序優化。

3D_EW程序根據不同的輸入數據量,計算規模也不同,在小規模時單個線程所分配到的任務量可能會很小,一層循環可能無法達到MIC的并行度要求,而經過并行力度優化后可以滿足。

2.3.2 移植后深度優化

程序移植于MIC后,由于種種原因,運行效率可能并不盡如人意,此時仍需要對MIC版本程序進行針對性優化,使用的優化策略為C Intrinsic優化、數據對齊優化與數據傳輸優化。

C Intrinsic、數據對齊操作可為3D_EW的數據進行優化處理,提高程序在MIC上的運行效率,而數據傳輸優化則提高了CPU與MIC之間的數據交換,從而提高了總體效率。

3 實驗與結果分析

3.1 硬件環境

硬件主要有:① 服務器,型號為Inspur NF5280M4, CPU:Intel XeonE5-2680v3 × 2,2.5 GB,12核心;內存:16 GB × 8,DDR4,2 133 MB; 硬盤: 1T SATA × 1。 ② 加速卡(MIC),型號為XEON PHI-31S1P, Intel XEON PHI-31S1P (57核心,1.1 GB,1003GFlops,8GB GDDR5)。

3.2 熱點分析與判斷

3D_EW程序結構相對簡單,并沒有復雜的函數調用,主要的計算都是在循環內,而l之間數據依賴,l循環內部則是如下所示的kji3層循環,在最內層的i循環中,僅有簡單的加法和乘法運算,使用Intel分析工具VTune[9]可以很簡單的分析出程序內花費較多的部分,看出整個程序花費時間最多的為350行左右,查看原代碼后可以發現正好屬于kji循環,所以程序的熱點就是kji循環內的計算。

3.3 移植可行性分析

Ishot循環為計算不同震源的數據,在Ishot循環內,對于不同的Ishot,計算任務完全獨立。Ishot循環之后進入l循環,這里是時間推進方法,不同的l表示不同的時步,前一次迭代的結果將會用于后一步的計算,因而不同l之間存在極強的數據依賴。在l以內,則是不同格的計算,對于顯示格式的有限差分來說,不同網格的計算是完全獨立的,因而這里也具備很強的并行性。l循環部分十分適合利用MIC進行加速。

3.4 MIC平臺判斷(程序移植模式分析)

在MIC應用程序模式[11,13]中,存在以CPU為主、以MIC為主和CPU與MIC對等模式3種可能性,而前兩種模式也會有僅用CPU(CPU原生模式)或MIC(MIC原生模式)的分支。

在3D_EW程序中,大部分代碼為串行執行,串行執行部分在CPU與MIC上執行效率相差無幾,而小部分的可并行代碼部分計算量又十分巨大,此時在CPU與MIC計算效率則會有顯著不同,因此3D_EW程序適合于以CPU為主MIC為協處理器的offload模式。

3.5 使用OpenMP對串行程序進行改寫[14-15]

如圖2所示,使用制導語句#pragma omp parallel指出并行區域即kji循環,由于kji循環中存在一些變量px、sx、vvp2、vvs2、drd1、drd2等與并行區域外并沒有存儲關聯,所以可以用private進行標識,若如此做則每個線程都會有自己的一份拷貝。

原程序目的是為了在超級計算機上實現,故輸入數據量較大,在測試環境中(普通計算機未安裝MIC卡,雙核四線程,2.6 GHz)實現是相當不現實的,為了檢驗修改后程序運行效率是否提高,對輸入量(即循環次數)進行了一定比例的縮小。

在此數據下,未修改串行程序運行完畢需要188 s,使用OpenMP修改后運行完畢需190 s。從結果可以得出,經OpenMP改寫后,程序的運行效率不僅沒有提高,反而還降低了(此現象是正常的)。在使用修改后的輸入數據后,循環規模相比于原規模已大大減小,使用并行化帶來的效果無法抵消并行化的額外負擔,而當數據量較大時(使用原輸入),每個線程負擔的工作將會足夠多,并行化的效率便會提高。

3.6 優化OpenmMP版本程序

3.6.1 內部各線程負載均衡優化

并行區域內線程[16]分配方式可選有dynamic、static、guided和runtime,經過對每一種方式測試,最終得到較好方案為dynamic,如圖3所示,將循環任務進行動態分配,采取先到先得方式,為每個線程分配任務。

3.6.2 向量化優化

在3D_EW程序中,處理的大部分數據是3維數組,而C程序是基于存儲的,源程序kji循環內數組的索引也是基于最內層i循環,因而對i循環進行了向量化處理,如圖4所示。這樣可以使得同一條SIMD指令處理的數據跨度更小,增加數據讀寫的空間局部性,更加高效的利用讀寫帶寬。

3.6.3 并行力度優化

在當前程序中,當程序規模較小時(輸入的循環變量較小)一層循環可能無法達到MIC的并行度要求,針對這種情況,可以采取多層循環合并或者嵌套并行的方法。當前程序由于循環內變量初值不為0,合并循環進行的計算可能較為繁瑣,因此,使用的方法為嵌套并行。

3.7 將程序移植于MIC卡[11]

當前使用的應用模式以CPU為主,MIC為輔的offload模式,offload模式以CPU端為控制端完成控制任務和數據傳輸任務(可能會有小部分計算任務),MIC端作為計算端,完成CPU交于的并行計算任務?;玖鞒淌窃诋斍暗拇谐绦蛑?,每當執行到需要并行的部分(OpenMP語句已標出),則將這段代碼與相關的數據發送到設備端并行執行,待其返回后,主線程再繼續執行。

在修改后的代碼基礎上,使用offload關鍵字將需要在MIC卡上運行的程序部分進行標出。在kji循環開始之前,添加offload引語。使用編譯指令icpc生成MIC程序。

3.8 MIC程序進一步優化

3.8.1 C Intrinsic優化

使用底層編程指令集C Intrinsic來控制向量化的數據讀取操作,從而有效減少聚合/分散操作,使得MIC平臺上程序性能提升。

3.8.2 數據對齊優化

如圖5所示,在MIC上開辟內存時使用_mm_malloc語句可以保證數據對齊,將一個高速緩存行的數據一次性讀入向量寄存器。

3.8.3 數據傳輸優化

當程序運行至MIC程序塊部分/MIC程序部分運行完畢時,CPU與MIC卡之間需要進行數據傳輸,例如開始時CPU需要向MIC傳送MIC代碼段需要的變量值,而在MIC部分程序計算完成后向CPU返回計算結果,如圖6所示。

采用以上方法后,使得CPU與MIC卡之間高效傳輸,并減少不必要的數據交換,提高了程序運行效率。

3.9 運算性能結果與分析

在高性能計算領域中常使用加速比[1,10]來衡量并行系統或程序并行化的性能和效果,加速比定義為:

(2)

從圖7中的運算結果可以看出,程序運算量較小時,使用CPU與MIC協同計算的效果并不是很好,較僅使用CPU甚至更差,主要是因為MIC與CPU之間數據傳輸所花費的時間比例較大,而主要的計算部分花費的時間卻并不多。當程序運算量達到中等時,MIC的計算優勢開始漸漸顯現,與在MIC上計算所需的時間相比,數據傳輸的時間占比已漸漸減小,當達到大規模數據計算時,數據傳輸在整個時間花費上已可以忽略不計。

圖7 不同規模下的加速比

4 結 語

程序的并行化和大規模計算都是近幾年發展的熱點。本文將兩者利用MIC卡結合起來,在大規模計算的前提下,很好地提高了程序的效率,而通過實驗也證明了MIC卡并行計算的優越性。

[1] 陳國良編著.并行算法的設計與分析[M].2版.北京:高等教育出版社,2002.

[2] (美)格蘭馬,等.并行計算導論[M].2版.張武等譯.北京:機械工業出版社,2005.

[3] 易 娟.基于MIC的主從式并行遺傳算法的研究和實現[D].濟南:山東大學.2015.

[4] 陳 呈.面向MIC平臺的OpenACC實現與優化關鍵技術研究[D].長沙:國防科學技術大學.2013.

[5] 周長飛.基于MIC的圖像顯著性檢測技術研究[D].長沙:國防科學技術大學.2013.

[6] 劉國波.MIC平臺上的并行散列函數庫的研究與應用[D].廣州:華南理工大學.2015.

[7] 沈 鉑,張廣勇,吳韶華,等.基于MIC平臺的offload并行方法研究[J].計算機科學.2014,41(6):477-480.

[8] 亞洲超算競賽協會.超算競賽導論.

[9] 英特爾Xeon Phi協處理器的軟件開發指南ver.1.04.

[10] 張軍華,臧勝濤,單聯瑜,等.高性能計算的發展現狀及趨勢[J].石油地球物理勘探.2010,45(6):918-925.

[11] 王恩東,張 清,沈 鉑,等.MIC高性能計算編程指南[M].北京:中國水利水電出版社.2012.

[12] 殷順昌.OpenMP并行程序性能分析[D].長沙:國防科學技術大學.2006.

[13] (美)馬特森,等.并行編程模式[M].張云良等譯.北京:機械工業出版社, 2015.

[14] 羅秋明.OpenMP編譯原理及實現技術[M].北京:清華大學出版社,2012.

[15] 查普曼.使用OpenMP:便攜式共享存儲并行編程(科學與工程計算).

[16] (孟加拉)阿克特,(美)羅伯茨.多核程序設計技術:通過軟件多線程提升性能[M].李寶峰,富弘毅,李稻譯.北京:電子工業出版社,2007.

Research on the Porting and Implementation of 3D_EW in MIC Parallel Programming

LIXuejian,LUOJing,LUChang,XUXingzhong

(School of Computer Science and Technology, Anhui University, Hefei 230601, China)

3D_EW is a real application in the field of petroleum exploration which requires high computing power support when it operates. The efficiency is very low when the calculation runs on one CPU. MIC card is a Xeon core melt product launched by Intel Corporation. It provides hundreds of hardware threads running simultaneously, bringing a high parallelism. In this paper, a method is proposed to parallel 3D_EW program and transplant it to the MIC card. The experiments show that the parallel running speed of MIC is much larger than that of serial operation speed when 3D_EW is used in large scale operation.

3D elastic wave modeling; MIC; transplant; parallel; optimization policy

2016-08-15

國家自然科學基金項目(61300169)

李薛劍(1981-),男,安徽合肥人,碩士,講師,研究方向為程序分析與驗證、高性能計算。

Tel.:13856005370; E-mail:wind1999@mail.ustc.edu.cn

TP 391

A

1006-7167(2017)04-0123-04

猜你喜歡
程序效率優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
提升朗讀教學效率的幾點思考
甘肅教育(2020年14期)2020-09-11 07:57:42
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
跟蹤導練(一)2
主站蜘蛛池模板: 五月激情婷婷综合| 精品自拍视频在线观看| 久久91精品牛牛| 91蜜芽尤物福利在线观看| 国产精品微拍| 在线视频一区二区三区不卡| 国产第三区| 欧美一级大片在线观看| 亚洲欧洲自拍拍偷午夜色| 91精品国产综合久久不国产大片| 看你懂的巨臀中文字幕一区二区| 91精品国产一区自在线拍| 亚洲精品综合一二三区在线| 91精品福利自产拍在线观看| 青青草原偷拍视频| 五月婷婷丁香综合| 在线观看免费黄色网址| 亚洲首页在线观看| 伊人久综合| 欧美日韩va| 久久99国产视频| 久久久久国色AV免费观看性色| 亚洲欧洲国产成人综合不卡| 在线免费观看AV| 日韩在线1| 91国内外精品自在线播放| 中文字幕2区| 一本一道波多野结衣一区二区| 欧美区一区| 国产亚洲精品97在线观看| 亚洲欧美日韩精品专区| 亚洲国产成人久久精品软件| 精品無碼一區在線觀看 | 人妻少妇久久久久久97人妻| 亚洲欧美在线看片AI| 无遮挡国产高潮视频免费观看| 亚洲第一中文字幕| 国产精品主播| 综合亚洲色图| 久久这里只有精品国产99| 麻豆AV网站免费进入| 高清色本在线www| 狠狠色丁香婷婷综合| 丁香五月婷婷激情基地| 波多野结衣无码视频在线观看| 午夜国产精品视频黄| 五月丁香伊人啪啪手机免费观看| 狠狠色婷婷丁香综合久久韩国| 国产亚洲现在一区二区中文| 国产成人麻豆精品| 国产精品男人的天堂| 国产在线观看91精品亚瑟| 欧美中文一区| 人妻无码AⅤ中文字| 老司机aⅴ在线精品导航| 中文字幕一区二区视频| 亚洲人妖在线| 免费无码一区二区| 日韩精品欧美国产在线| 国产成人综合网在线观看| 亚洲精品少妇熟女| 激情乱人伦| 1024国产在线| 亚洲激情区| 日韩a级片视频| 亚洲美女一级毛片| 亚洲欧美激情另类| 亚洲国产高清精品线久久| 怡红院美国分院一区二区| 国国产a国产片免费麻豆| 丰满人妻被猛烈进入无码| 91口爆吞精国产对白第三集| 国产免费一级精品视频| 广东一级毛片| 亚洲人成在线免费观看| 国产精欧美一区二区三区| 国产理论一区| 国产激爽大片高清在线观看| 播五月综合| 亚洲精品波多野结衣| 国产性生交xxxxx免费| 欧美在线综合视频|