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

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


咨詢(xún)
建站咨詢(xún)
