新聞中心
本文將為大家總結(jié)從.NET 3.5到.NET 4.0并行計算支持歷史。并行計算大家應(yīng)該比較熟悉,.NET 4.0并行計算的使用能提升硬件利用效率。

成都創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)石龍,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
#T#
在以往的計算機(jī)發(fā)展歷史中,硬件技術(shù)的發(fā)展,特別是CPU頻率的不斷提高,總是給軟件帶來更強(qiáng)的性能提升。從386到586,從賽揚(yáng)到奔騰,每次CPU頻率的提升,都帶來軟件性能的大幅提升,而軟件無需做任何變動。如果有客戶抱怨你的軟件性能不佳,我們無需著急,只需要升級到更高頻率的CPU就可以了。當(dāng)單核CPU的頻率發(fā)展到3G之后,再往上發(fā)展就遇到了技術(shù)瓶頸,單核心CPU的發(fā)展已經(jīng)到達(dá)一個極限,硬件廠商不得不轉(zhuǎn)而向多核芯CPU發(fā)展,在一顆芯片中加入兩個甚至多個運(yùn)算核心,通過核心的增加,來提高芯片總的頻率。當(dāng)硬件通過增加運(yùn)算核心來提高性能時,由于受到其架構(gòu)的影響,軟件并不能充分地利于多個運(yùn)算核心所帶來的性能提升,甚至有的時候性能還有所下降。在這種情況下,開發(fā)者不得不改變應(yīng)用程序的架構(gòu)和開發(fā)方法,以應(yīng)對這種多核的趨勢,使得自己的軟件可以充分利于硬件升級所帶來的性能提升。
作為下一代開發(fā)平臺,Visual Studio 2010加大了對并行運(yùn)算的支持。微軟正在使得盡量大的范圍內(nèi)的開發(fā)者都能高效而簡便地進(jìn)行并行計算的開發(fā),不管他使用的是非托管代碼還是.NET Framework。從而將開發(fā)者從繁瑣而復(fù)雜的多線程開發(fā)中解放出來,將更多的精力放到業(yè)務(wù)邏輯上。
Visual Studio IDE對并行計算開發(fā)的大量支持。Visual Studio 2010提供了一個“并行性能分析器”,它可以幫助我們分析應(yīng)用程序的性能瓶頸,找到需要并行處理和可以進(jìn)行并行處理的地方,并以圖形化的形式表現(xiàn)出來。
非托管的C++庫和編譯器對并行計算的支持
.NET Framework 3.5/4.0 對并行計算的大量支持,包括PLINQ、并行語言語句等等
本文討論的是.NET 3.5/4.0對并行計算的性能差別,采用的例子是Visual Studio 2010 Beta2 Training Kit 的Demo代碼. 在討論之前先回顧一下.NET 的并行組件:
由于并行計算是將一個工作任務(wù)進(jìn)行分解以并發(fā)執(zhí)行,因此,任何一個支持并行計算的軟件開發(fā)與運(yùn)行平臺都必須解決這些并發(fā)執(zhí)行的子任務(wù)之間的相互協(xié)作問題,比如:
一個子任務(wù)需要等待其它子任務(wù)的完成,多個子任務(wù)完成之后才允許執(zhí)行下一個子任務(wù)(即所謂fork-join),
一個子任務(wù)結(jié)束后自動啟動多個下級子任務(wù)的執(zhí)行
允許一個任務(wù)中途取消……
.NET 3.5/4.0通過對已有的基類庫進(jìn)行擴(kuò)充和增強(qiáng),滿足了上述需求。.NET 給 “System.Threading” 命名空間增加了一些新的類,同時對部分已有類也進(jìn)行了調(diào)整和優(yōu)化。另外,針對中途取消線程或作務(wù)執(zhí)行這一實(shí)際開發(fā)中非常普遍的需求,提供了一個統(tǒng)一取消模型。最大的變化是.NET為基類庫提供了多個與并行計算密切相關(guān)的類,并將它們統(tǒng)一稱之為“并行擴(kuò)展(Parallel Extensions)”。
.NET 3.5通過DevLabs發(fā)布了Reactive擴(kuò)展中包含的類庫為并行處理提供支持。Reactive擴(kuò)展目標(biāo)是簡化異步及事件驅(qū)動程序的構(gòu)建,可參看InfoQ的文章微軟發(fā)布Reactive框架,簡化異步及事件驅(qū)動編程。下述.NET 3.5的例子代碼的運(yùn)行要求下載Reactive擴(kuò)展。
先介紹一下我的機(jī)器配置,單CPU雙核:
下面的例子來自Visual Studio 2010 Beta2 Training Kit 的ParallelBabyNames:
.NET 3.5下的運(yùn)行結(jié)果:
.NET 4的運(yùn)行結(jié)果:
從上述例子的運(yùn)行結(jié)果來看,.NET 4的性能要比.NET 3.5要強(qiáng),.NET 3.5和.NET 4.0的并行處理能力支持上基本持平。
鏈接:http://www.cnblogs.com/shanyou/archive/2009/12/16/1625938.html
網(wǎng)站欄目:詳解.NET4.0并行計算支持歷史
鏈接URL:http://www.5511xx.com/article/dhdcdhs.html


咨詢
建站咨詢
