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
主站蜘蛛池模板: 综合久久五月天| 国产精品毛片一区视频播| 国产黄网永久免费| 伊人福利视频| 亚洲无线国产观看| 欧美高清三区| 亚洲国产精品日韩av专区| 国产凹凸一区在线观看视频| 欧美亚洲另类在线观看| 久久国产免费观看| 狂欢视频在线观看不卡| 婷婷丁香在线观看| 狠狠综合久久| 97国产精品视频人人做人人爱| 欧美中文字幕在线二区| 欧美成人午夜在线全部免费| 国产精品无码AV片在线观看播放| 国产精品美女免费视频大全 | 亚洲αv毛片| 国产新AV天堂| 91视频首页| 热久久国产| 在线观看国产精美视频| 福利视频久久| 亚洲欧美人成电影在线观看| 欧美一区二区三区香蕉视| 最新亚洲人成无码网站欣赏网| 网友自拍视频精品区| 亚洲人成在线精品| 欧美一区二区福利视频| 四虎永久在线视频| 国产自产视频一区二区三区| 色噜噜中文网| a欧美在线| 亚洲天堂日韩av电影| 国产成熟女人性满足视频| 久久久亚洲国产美女国产盗摄| 久久亚洲欧美综合| 国产91九色在线播放| 国产一级在线观看www色| 国产不卡网| 亚洲不卡影院| 国产大全韩国亚洲一区二区三区| 男人天堂亚洲天堂| 看你懂的巨臀中文字幕一区二区| 久久中文字幕2021精品| 日韩精品毛片人妻AV不卡| 成人精品亚洲| 国产尤物在线播放| 日韩少妇激情一区二区| 亚洲一区色| 日本三级欧美三级| 亚洲精品色AV无码看| 911亚洲精品| 国产v欧美v日韩v综合精品| 日韩精品视频久久| 国产精品手机在线播放| 免费三A级毛片视频| 97狠狠操| 国产高清在线丝袜精品一区| 2020国产免费久久精品99| 四虎影视永久在线精品| 国产99欧美精品久久精品久久| 国产成人盗摄精品| 亚洲国产亚综合在线区| 国产亚洲男人的天堂在线观看| 欧美日韩福利| 青青青视频蜜桃一区二区| 亚洲欧洲综合| 青青草国产免费国产| 国产精品久久久精品三级| 91丨九色丨首页在线播放| 日本成人福利视频| 色哟哟国产精品一区二区| 在线精品视频成人网| 亚洲91精品视频| 国产免费自拍视频| 中文字幕欧美日韩| 三级毛片在线播放| 亚洲欧美成人在线视频| 六月婷婷激情综合| 在线观看欧美精品二区|