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

基于VS2012的并行計算實驗平臺搭建與實現(xiàn)

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

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

?

基于VS2012的并行計算實驗平臺搭建與實現(xiàn)

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

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

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

0 引 言

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

1 四種技術(shù)概況

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

圖1 OpenMP的Fork-Join并行模型

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

圖2 MPI并行執(zhí)行模型

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

圖3 C++ AMP的并行執(zhí)行模型

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

圖4 CUDA執(zhí)行模型

2 實驗平臺的搭建與實現(xiàn)

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

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

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

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

3 結(jié) 語

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

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

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

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

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

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

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

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

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

[9] 盧云娥,黃宗宇,李超陽,等. 基于微機集群系統(tǒng)的MPI并行計算[J]. 電子設(shè)計工程,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]. 微型電腦應(yīng)用,2009(9):55-57,64,69.

[13] 董 犖,葛萬成,陳康力. CUDA并行計算的應(yīng)用研究[J]. 信息技術(shù),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

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

——摘自《國家中長期教育改革和發(fā)展規(guī)劃綱要》

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-),男,山東冠縣人,博士,副教授,主要從事地球物理測井方法和其他工業(yè)應(yīng)用數(shù)學問題研究。

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相互轉(zhuǎn)化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
主站蜘蛛池模板: 久草热视频在线| 日本久久久久久免费网络| 强奷白丝美女在线观看| 国产成人精品亚洲77美色| 亚洲成网777777国产精品| 91国内外精品自在线播放| 日韩第一页在线| 午夜综合网| 亚洲欧美日韩动漫| 全免费a级毛片免费看不卡| 韩国v欧美v亚洲v日本v| 欧美不卡视频一区发布| 一级毛片不卡片免费观看| 最新国产网站| 国产欧美精品午夜在线播放| 男人天堂伊人网| 人人爽人人爽人人片| 夜夜操天天摸| 久久99精品久久久久久不卡| 99精品热视频这里只有精品7| 亚洲高清日韩heyzo| 伊人久久综在合线亚洲2019| 玩两个丰满老熟女久久网| 国产自在线拍| 尤物在线观看乱码| 2018日日摸夜夜添狠狠躁| 亚洲Aⅴ无码专区在线观看q| 亚洲日韩在线满18点击进入| 国产新AV天堂| 大香伊人久久| 午夜毛片福利| 亚洲精品第五页| 亚洲精品麻豆| 欧美国产日韩在线| 人妻精品久久无码区| 精品精品国产高清A毛片| 人妻丰满熟妇av五码区| 欧美国产成人在线| 亚洲精品无码AⅤ片青青在线观看| 日韩二区三区| 久久香蕉国产线看观看亚洲片| 伊人色婷婷| 国产成本人片免费a∨短片| 性视频久久| 日韩国产精品无码一区二区三区| 农村乱人伦一区二区| 最新国语自产精品视频在| 日韩第一页在线| 国产精品漂亮美女在线观看| 久久情精品国产品免费| 久久久久亚洲av成人网人人软件| 精品综合久久久久久97超人| 国产激情第一页| 国产一级在线观看www色| 福利视频99| 午夜视频免费一区二区在线看| 中文字幕人妻av一区二区| 欧美中文字幕一区二区三区| 国产无码性爱一区二区三区| 国产精品青青| …亚洲 欧洲 另类 春色| 国产精品专区第1页| 久久激情影院| 欧美成人午夜视频免看| 亚洲va欧美ⅴa国产va影院| 日韩高清成人| 国产美女丝袜高潮| 亚洲成人高清在线观看| 777国产精品永久免费观看| 亚洲一级毛片在线播放| 日韩精品一区二区深田咏美| 中文字幕日韩久久综合影院| 久久久久国产精品熟女影院| 99久久精品免费看国产电影| 91精品综合| 国产精品免费电影| 日韩精品亚洲人旧成在线| 1级黄色毛片| 国语少妇高潮| 国产精品美女在线| 欧美午夜在线播放| 国产成人高清在线精品|