用.NET 4如何計算CPU的性能
2010/11/29 16:00:56

  
  隨著Visual Studio 2010正式版的發布,我們已經可以用上.NET 4的所有功能。那么對于并行計算的嘗試?

  我們都知道CPU的性能至關重要,但主頻已經越來越難以提升,縱向發展受限的情況下,橫向發展成為必然——核心數開始越來越多。然而多核心的利用、并行計算一直是編程中的難題,大的不說,就說代碼的編寫,程序員大多都有過痛苦的經歷:多線程的程序代碼量大,編寫復雜,容易出錯,并且實際運行效率是否理想也較難保證。

  為改善這種狀況,.NET 4.0中引入了TPL,關于TPL,MSDN的簡介是:

  任務并行庫(TPL)的設計是為了能更簡單地編寫可自動使用多處理器的托管代碼。使用該庫,您可以非常方便地用現有序列代碼表達潛在并行性,這樣序列代碼中公開的并行任務將會在所有可用的處理器上同時運行。通常這會大大提高速度。簡而言之,TPL提供了一系列的類庫,可以使編寫并行運算的代碼更簡單和方便。

  裝好正式版的VS2010以后,寫了段代碼來測試下,代碼很簡單,拿一條字符串和一堆字符串里的每一條分別用LevenshteinDistance算法做字符串相似程度比對。先用傳統的順序執行的代碼跑一遍,記錄下時間;再換用TPL的并行代碼跑一遍,記錄下時間。然后比對兩次運行的時間差異。

  可見,在多核心處理器上,并行計算的執行速度都得到了大幅提升,即便是在單核心超線程出2個邏輯核的Atom N270上亦縮短了32.55%的運行時間。在A240上并行計算的效率竟然是順序計算的204.87% ?!而同樣是4核心,i7 920在超線程的幫助下,并行執行效率提升明顯高過A630。最后VM里的測試,是否也可以在某種程度上佐證在多核心的調度上,Win7要強過XP呢(純猜測)?順帶可以看到,同樣是i7的硬件環境,單線程宿主OS(Win7)里執行花費55.133秒,VM(Win7)里56.965秒,速度上有約3%的差異。

  另外,針對性能較強的i7處理器,加大程序中的2個變量后再做測試,并行執行的效率比得到了進一步的提升。應該是因為創建/管理/銷毀多線程的開銷被進一步的攤平的緣故。例如在每字符串2000個字符,共2000條字符串的情況下,順序執行和并行執行的時間分別是07:20.9679066和01:47.7059225,消耗時間比達到了409.42%。

  測試程序在順序執行的部分,內存占用相對平穩,CPU則大部分核心處在比較空閑的狀態。到了并行執行部分,所有核心都如預期般被調動起來,同時內存占用開始出現明顯波動。

返回列表
返回首頁 主站蜘蛛池模板: 亚洲欧美中文日韩欧美| 国产主播在线播放| 99精品国产综合久久久久五月天| 精品无码综合一区二区三区| 国产麻豆精品精东影业av网站| 中出视频在线观看| 日本牲交大片无遮挡| 人人妻人人玩人人澡人人爽| 黑白高清在线观看| 少妇大胆瓣开下部自慰| 久久亚洲精品中文字幕| 末成年美女黄网站色大片连接| 亚洲欧美人成网站在线观看看| 男和女一起怼怼怼30分钟| 四虎国产精品免费久久| 91在线看片一区国产| 最近免费中文字幕大全| 亚洲福利秒拍一区二区| 被女同桌调教成鞋袜奴脚奴 | 精品国产福利片在线观看| 国产中文字幕乱人伦在线观看| 91chinese在线| 国产精品bbwbbwbbw| 88国产精品欧美一区二区三区| 外国毛片在线观看| sss视频在线精品| 强行扒开双腿猛烈进入免费视频| 亚洲中文字幕伊人久久无码| 欧美色视频在线观看| 亚洲视频在线看| 疯狂做受XXXX国产| 公车上的奶水嗯嗯乱hnp| 精品水蜜桃久久久久久久| 国产av人人夜夜澡人人爽麻豆| 豆奶视频官网下载观看| 国产综合成人久久大片91| AV无码免费看| 天天做天天爱天天干| 久久久久亚洲AV无码专区网站| 欧美日韩第一区| 亚洲第一区se|