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

基于VS2012的并行計算實驗平臺搭建與實現

2015-02-27 08:21:34王明君中國石油大學華東理學院山東青島266580
實驗室研究與探索 2015年2期
關鍵詞:實驗

陳 華, 王明君(中國石油大學(華東) 理學院, 山東 青島 266580)

?

基于VS2012的并行計算實驗平臺搭建與實現

陳 華, 王明君
(中國石油大學(華東) 理學院, 山東 青島 266580)

結合最新的并行計算技術,基于VS2012搭建了OpenMP、MPI、C++ AMP、CUDA 6.0等四個并行實驗平臺,并對不同實驗平臺實現PI值計算。實驗結果說明這種并行計算環境具有良好的性能與可擴展性;OpenMP與MPI等CPU計算加速效果與CPU內核數目成比例,C++ AMP與CUDA 6.0等GPU計算加速效果與GPU物理計算核心數目成正比;同等條件下GPU物理計算核心數目遠多于CPU核心數目,用GPU進行計算往往可獲得更高的性價比。

并行實驗平臺; VS2012; 多核計算; GPU并行計算; MPI并行計算

0 引 言

并行計算由來已久,利用并行計算可以獲得更好的性價比[1],硬件上面可以分為單機[2]、集群[3],異構[4],多核[5]等。并行計算可以更好地利用電腦的硬件設備,例如CPU的多核架構、GPU的通用計算單元,它們平常都不會滿負載工作,這在一定程度上存在資源浪費。為使得硬件工作得更快、更好,并行計算是一個不錯的選擇,其通過軟件的形式,改變串行程序的計算模式,在正確運行的前提下,同樣的硬件設備上提高了計算速率[6]。隨著VS2012的發布,一種新的GPU并行計算模式應運而生,本文結合VS2012實現了四種并行實驗平臺的搭建。

1 四種技術概況

(1) OpenMP。是一種能夠用于顯示指導多線程、共享內存并行處理的應用程序編程接口。OpenMP同時支持C/C++語言和Fortran語言。OpenMP提供了對并行算法的高層抽象描述,程序員通過在源代碼中加入專用的pragma指導語句來指明自己的意圖,由此編譯器可以自動將程序進行并行化,并在必要之處加入同步互斥以及通信。通過編譯指導語句輕松的獲得多線程并行代碼,大大簡化了程序員的工作量[7]。OpenMP的執行模型采用Fork-Join形式,Fork即創建新線程或者喚醒已有線程;Join即多線程的匯合。Fork-Join模型開始執行時,只有一個“主線程”的運行線程存在,“主線程”在運行過程中,當遇到需要進行并行計算時,派生出新線程來執行并行任務。并行執行過程中,主線程和派生線程共同工作,并行代碼運行結束后,派生線程退出或者掛起,不再工作,控制流程回到單獨的主線程中[8]。其執行流程如圖1所示。

圖1 OpenMP的Fork-Join并行模型

(2) MPI。與OpenMP相似,MPI是一種編程接口標準,而不是一種具體的編程語言。MPI標準定義了一組具有可移植性的編程接口,各個廠商或組織遵循這些標準接口實現自己的MPI軟件包,典型的實現包括開放源碼的MPICH、LAM MPI、MSMPI、Intel MPI等。對于程序員來說,設計好應用程序并行算法,調用這些接口,鏈接相應平臺上的MPI庫,就可以實現基于消息傳遞的并行計算,也正是由于MPI提供了統一的接口,該標準受到各種并行平臺的廣泛支持,這也使得MPI程序具有良好的可移植性[9]。目前,MPI有著廣泛的應用,并且支持多種編程語言(Fortran、C/C++、Python、Java、Matlab等)、操作系統(包括普遍的UNIX系統、Windows系統)以及硬件平臺(多核、對稱多處理機、集群等)[10]。其執行流程如圖2所示。

圖2 MPI并行執行模型

(3) C++ AMP。是微軟公司基于DirectX 11技術實現的一個并行計算庫。它建立在C++的語言規范上,使得程序員可以相對容易地在數據并行硬件(如顯卡)上編寫并執行并行計算程序。最低支持AMP的編程環境是Visual Studio 2012,最低顯卡支持技術是Direct11,要想全面使用Visual Studio 2012編程環境中新加入的功能以及更好的進行GPU編程,推薦系統用Win8。C++ AMP的初始版本于2012年發布。2013年,微軟在添加了一些特性后發布了C++ AMP的Microsoft Visual Studio 2013版本。系統要求,操作系統:Windows 7, Windows 8, Windows Server 2008 R2, 或者Windows Server 2012。支持DirectX 11或更新的硬件。其有著優良的特性:支持CPU/GPU共享內存,并且代碼可在GPU上調試,亦可在CPU上模擬及調試GPU代碼。在并行計算領域,C++ AMP的競爭對手有NVIDIA公司的CUDA技術和開放標準的OpenCL技術。當程序運行時,只有CPU端一個主線程在運行,當主線程運行到需要執行C++ AMP并行區域時,其會通過核函數的方式來啟動GPU并行計算,其中涉及到數據傳輸、GPU線程的創建與銷毀、并行計算工作,GPU的通用計算能力非常強,適合執行SIMD模式的工作[11]。其執行流程如圖3所示。

圖3 C++ AMP的并行執行模型

(4) CUDA。是NVIDIA開發的一組基于NVIDIA顯卡驅動的GPU并行編程接口,涉及基本數學庫、信號處理、圖像處理等很多領域[12]。自2006年CUDA 編程架構推出之后,越來越多的研究人員又開始研究基于圖形處理器(GPU)的通用計算相比CPU計算,GPU 耗費更小的成本就能達到相同的計算能力。符合SIMD指令模式的程序都可以方便的移植到CUDA平臺上[13]。NVIDIA顯卡的物理計算核心是流處理器(SP),SP的數目與顯卡核心頻率、顯存頻率等是影響GPU計算速率的主要參數[14]。其執行流程見圖4。

圖4 CUDA執行模型

2 實驗平臺的搭建與實現

VS2012內置OpenMP的支持,只要添加頭文件即可獲得OpenMP的所有功能。MPI是一種標準,企業會根據這個標準設計實現自己的MPI,本文以MSMPI為例介紹。VS2012內置C++ AMP的支持,其主要頭文件〈amp.h〉; 〈amp_math.h〉; 〈amprt.h〉; 〈amp_grphics.h〉; 〈amp_short_vectors.h〉。主要數據類型為array〈T,N〉; array_view〈T,N〉; index〈N〉; extent〈N〉。函數以及類的限定符restrict(cpu,amp)。核函數parallel_for_each()。GPU線程執行計算函數-Lambda函數[15]。推薦裝機時先裝VS2012再裝CUDA6.0,這樣CUDA6會自動把VS2012中涉及到的方面都配置好,這樣節省了編程人員的配置時間。

以計算PI的數值計算為例,分別介紹四種技術在Windows7 64-bits系統上的安裝與配置。迭代次數為2147483136次,串行程序執行時間是:110.394s,PI值是3.1415926531226095。

表1 各并行平臺計算PI值精度以及加速效果

由OpenMP數值例子可知,運行核數是4核時,運行時間為29.009 s;加速3.81倍,符合理論推導。由MPI數值例子可知,運行核數是4核時,運行時間為10.776 s,加速10.24倍。由C++ AMP數值例子可知,開辟512個GPU線程時,運行時間是0.933 s,AMP計算用時大幅度降低,因在Win7操作系統上AMP不支持double類型,pi值計算過程采用float類型,計算結果精度較低,速度較快。由CUDA 6.0數值例子可知,開辟512個GPU線程時,運行時間是1.233 s,計算用時大幅度降低,突出了GPU計算的優點。

3 結 語

在VS2012環境下,搭建與實現了并行實驗平臺,采用計算PI值的實例進行實驗分析,CPU多核編程可以近似加速自身核數的執行效率,GPU并行計算有著更高的性價比,可以大幅度的提高算法執行效率。

[1] 楊學軍. 并行計算六十年[J]. 計算機工程與科學,2012(8):1-10.

[2] 柴亞輝,沈文楓,張 倬,等. Cell BE高性能計算實驗平臺設計與實現[J]. 實驗室研究與探索,2011(5):68-71.

[3] 尹輝俊,梁雙翼,邵桂平. 基于PC機群的有限元并行計算平臺的搭建[J]. 中國科技信息,2006(20):113-115+120.

[4] 盧風順,宋君強,銀福康,等. CPU/GPU協同并行計算研究綜述[J]. 計算機科學,2011(3):5-9,46.

[5] 高 瑛,嚴正國. OpenMP多核并行程序的設計與實現[J]. 電子測試,2014(5):25-26,35.

[6] 于永斌,徐 潔,王 華,等. 計算機系統結構課程中多核實驗的設計[J]. 計算機教育,2011(19):40-42,50.

[7] 周洪斌,溫一軍. 基于OpenMP的多核程序設計技術[J]. 沙洲職業工學院學報,2010(2):1-4.

[8] 多核系列教材編寫組.多核程序設計[M].北京:清華大學出版社, 2007.

[9] 盧云娥,黃宗宇,李超陽,等. 基于微機集群系統的MPI并行計算[J]. 電子設計工程,2011(5):78-81.

[10] 王海濤,劉淑芬. 基于Linux集群的并行計算[J]. 計算機工程,2010(1):64-66.

[11] http://msdn.microsoft.com/en-us/library/bb524831(v=VS.85).aspx.

[12] 李 波,趙華成,張敏芳. CUDA高性能計算并行編程[J]. 微型電腦應用,2009(9):55-57,64,69.

[13] 董 犖,葛萬成,陳康力. CUDA并行計算的應用研究[J]. 信息技術,2010(4):11-15.

[14] http://en.wikipedia.org/wiki/CUDA.

[15] C++ AMP: Language and Programming Model Version 1.0. Microsoft Corporation. Augast?2012 Microsoft Corporation

把提高質量作為教育改革發展的核心任務。樹立科學的質量觀,把促進人的全面發展、適應社會需要作為衡量教育質量的根本標準。樹立以提高質量為核心的教育發展觀,注重教育內涵發展,鼓勵學校辦出特色、辦出水平,出名師,育英才。

——摘自《國家中長期教育改革和發展規劃綱要》

Construction and Implementation of Experimental Platforms for Parallel Computing Based on VS2012

CHENHua,WANGMing-jun
(College of Science, China University of Petroleum, Qingdao 266580, China)

This article calculates the PI value based on OpenMP、MPI、C++ AMP、CUDA6.0 in VS2012 environment using the least parallel computing technology. The results verify that this parallel platform is effective and scalable. The acceleration efficiency of OpenMP and MPI of CPU’s computing relies on the numbers of CPU’s cores. At the same time, the acceleration efficiency of C++ AMP and CUDA 6.0 of the GPU computing relies on the numbers of physical computing cores. At the same condition, the number of GPU’s cores is much larger than that of CPU. So it can get a higher acceleration by using GPU computing instead of CPU computing.

parallel experimental platform; VS2012; multi-core computing; GPU computing; MPI computing

2014-06-30

山東省自然科學基金(ZR2013DM015);中國石油大學(華東)教改項目(JY-B201455)

陳 華(1972-),男,山東冠縣人,博士,副教授,主要從事地球物理測井方法和其他工業應用數學問題研究。

Tel.:18678460705;E-mail:delaunay@163.com

TP 391

A

1006-7167(2015)02-0125-03

猜你喜歡
實驗
我做了一項小實驗
記住“三個字”,寫好小實驗
我做了一項小實驗
我做了一項小實驗
記一次有趣的實驗
有趣的實驗
小主人報(2022年4期)2022-08-09 08:52:06
微型實驗里看“燃燒”
做個怪怪長實驗
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
主站蜘蛛池模板: 91网红精品在线观看| 一级不卡毛片| 亚洲国产天堂在线观看| 亚洲欧美成人在线视频| 免费一极毛片| 亚洲性色永久网址| 成年女人18毛片毛片免费| 就去吻亚洲精品国产欧美| 久久五月天综合| 国产精品第5页| 男女男精品视频| 国产女人喷水视频| 91精品最新国内在线播放| 亚洲a免费| 色综合久久88色综合天天提莫| 手机在线看片不卡中文字幕| 青草国产在线视频| 国产在线高清一级毛片| 玖玖免费视频在线观看 | 欧美中文字幕第一页线路一| 国产凹凸视频在线观看| 亚洲第一中文字幕| 免费无遮挡AV| 日韩第八页| 激情视频综合网| 欧美一级高清免费a| 国产色偷丝袜婷婷无码麻豆制服| 婷婷色狠狠干| 91精品国产自产91精品资源| 亚洲中文无码av永久伊人| 久久伊人操| 露脸国产精品自产在线播| 四虎影视无码永久免费观看| 亚洲AV无码久久精品色欲| 播五月综合| 精品一区二区无码av| 亚洲精品无码在线播放网站| 性网站在线观看| 自拍偷拍一区| 免费又黄又爽又猛大片午夜| 9丨情侣偷在线精品国产| 亚洲无码高清一区| 人妻中文久热无码丝袜| 亚洲中文在线看视频一区| 国产一区二区三区免费观看 | 亚洲人人视频| 色婷婷丁香| 亚洲男人在线| 亚洲一区二区黄色| 91精品专区| 日本五区在线不卡精品| 亚洲看片网| 五月天综合婷婷| 国产成熟女人性满足视频| 久久美女精品国产精品亚洲| 亚洲三级a| 在线亚洲精品自拍| 青青国产在线| 色香蕉网站| 色综合久久久久8天国| 夜精品a一区二区三区| 97国内精品久久久久不卡| 色偷偷一区二区三区| 国产亚洲欧美在线专区| 激情亚洲天堂| 在线观看91香蕉国产免费| 亚洲人成亚洲精品| 欧美一级黄片一区2区| 手机在线免费不卡一区二| 国产精品视频第一专区| 国产香蕉97碰碰视频VA碰碰看| 精品欧美日韩国产日漫一区不卡| 91精品综合| 亚洲精品无码高潮喷水A| 亚洲人成高清| 国产美女自慰在线观看| 激情无码字幕综合| 免费又爽又刺激高潮网址| 婷婷午夜天| 亚洲美女操| 国产欧美日韩专区发布| 中文字幕在线一区二区在线|