自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解.NET 4.0并行計算支持歷史

開發(fā) 后端
在這里我們將介紹的是.NET 4.0并行計算支持歷史,其中還包括.NET 3.5版本。希望對大家有所幫助。

本文將為大家總結從.NET 3.5到.NET 4.0并行計算支持歷史。并行計算大家應該比較熟悉,.NET 4.0并行計算的使用能提升硬件利用效率。

#T#

在以往的計算機發(fā)展歷史中,硬件技術的發(fā)展,特別是CPU頻率的不斷提高,總是給軟件帶來更強的性能提升。從386到586,從賽揚到奔騰,每次CPU頻率的提升,都帶來軟件性能的大幅提升,而軟件無需做任何變動。如果有客戶抱怨你的軟件性能不佳,我們無需著急,只需要升級到更高頻率的CPU就可以了。當單核CPU的頻率發(fā)展到3G之后,再往上發(fā)展就遇到了技術瓶頸,單核心CPU的發(fā)展已經(jīng)到達一個極限,硬件廠商不得不轉而向多核芯CPU發(fā)展,在一顆芯片中加入兩個甚至多個運算核心,通過核心的增加,來提高芯片總的頻率。當硬件通過增加運算核心來提高性能時,由于受到其架構的影響,軟件并不能充分地利于多個運算核心所帶來的性能提升,甚至有的時候性能還有所下降。在這種情況下,開發(fā)者不得不改變應用程序的架構和開發(fā)方法,以應對這種多核的趨勢,使得自己的軟件可以充分利于硬件升級所帶來的性能提升。

作為下一代開發(fā)平臺,Visual Studio 2010加大了對并行運算的支持。微軟正在使得盡量大的范圍內(nèi)的開發(fā)者都能高效而簡便地進行并行計算的開發(fā),不管他使用的是非托管代碼還是.NET Framework。從而將開發(fā)者從繁瑣而復雜的多線程開發(fā)中解放出來,將更多的精力放到業(yè)務邏輯上。

Visual Studio IDE對并行計算開發(fā)的大量支持。Visual Studio 2010提供了一個“并行性能分析器”,它可以幫助我們分析應用程序的性能瓶頸,找到需要并行處理和可以進行并行處理的地方,并以圖形化的形式表現(xiàn)出來。

非托管的C++庫和編譯器對并行計算的支持

.NET Framework 3.5/4.0 對并行計算的大量支持,包括PLINQ、并行語言語句等等

本文討論的是.NET 3.5/4.0對并行計算的性能差別,采用的例子是Visual Studio 2010  Beta2 Training Kit 的Demo代碼. 在討論之前先回顧一下.NET 的并行組件:

由于并行計算是將一個工作任務進行分解以并發(fā)執(zhí)行,因此,任何一個支持并行計算的軟件開發(fā)與運行平臺都必須解決這些并發(fā)執(zhí)行的子任務之間的相互協(xié)作問題,比如:

一個子任務需要等待其它子任務的完成,多個子任務完成之后才允許執(zhí)行下一個子任務(即所謂fork-join),

一個子任務結束后自動啟動多個下級子任務的執(zhí)行

允許一個任務中途取消……

.NET 3.5/4.0通過對已有的基類庫進行擴充和增強,滿足了上述需求。.NET 給 “System.Threading” 命名空間增加了一些新的類,同時對部分已有類也進行了調(diào)整和優(yōu)化。另外,針對中途取消線程或作務執(zhí)行這一實際開發(fā)中非常普遍的需求,提供了一個統(tǒng)一取消模型。最大的變化是.NET為基類庫提供了多個與并行計算密切相關的類,并將它們統(tǒng)一稱之為“并行擴展(Parallel Extensions)”。

.NET 3.5通過DevLabs發(fā)布了Reactive擴展中包含的類庫為并行處理提供支持。Reactive擴展目標是簡化異步及事件驅(qū)動程序的構建,可參看InfoQ的文章微軟發(fā)布Reactive框架,簡化異步及事件驅(qū)動編程。下述.NET 3.5的例子代碼的運行要求下載Reactive擴展。

先介紹一下我的機器配置,單CPU雙核:

機器配置

下面的例子來自Visual Studio 2010  Beta2 Training Kit 的ParallelBabyNames:

.NET 3.5下的運行結果:

.NET3.5運行結果

.NET 4的運行結果:

.NET4.0運行結果

從上述例子的運行結果來看,.NET 4的性能要比.NET 3.5要強,.NET 3.5和.NET 4.0的并行處理能力支持上基本持平。

原文標題:.NET 3.5-4.0 并行計算的支持

鏈接:http://www.cnblogs.com/shanyou/archive/2009/12/16/1625938.html

責任編輯:彭凡 來源: 博客園
相關推薦

2010-04-21 09:23:09

.NET 4

2023-10-30 08:57:19

.Net開發(fā)并行計算

2010-03-22 14:45:40

云計算

2021-06-01 05:51:37

云計算并行計算分布式計算

2011-04-21 09:13:14

并行計算

2012-08-17 09:32:52

Python

2011-04-20 17:15:21

并行計算

2014-04-24 10:25:15

2010-03-19 17:23:45

云計算

2019-04-18 09:15:05

DaskPython計算

2014-01-21 11:16:59

MPI并行計算

2011-08-29 10:40:02

浪潮英特爾并行計算

2010-03-11 15:23:44

Visual Stud

2010-06-10 08:37:04

并行計算

2017-04-24 12:07:44

Spark大數(shù)據(jù)并行計算

2009-07-24 10:00:38

.NET 4.0內(nèi)存映

2010-06-11 08:52:17

并行計算

2012-12-18 15:33:44

遞歸數(shù)據(jù)并行計算

2009-05-08 10:09:30

.NET4.0PLINQ

2009-10-14 20:22:25

點贊
收藏

51CTO技術棧公眾號