C#并行編程高級(jí)教程

出版時(shí)間:2012-1  出版社:清華大學(xué)  作者:(美)希拉里|譯者:鄭思遙//房佩慈  頁數(shù):487  
Tag標(biāo)簽:無  

內(nèi)容概要

  您想淋漓盡致地發(fā)揮多核計(jì)算機(jī)系統(tǒng)的處理能力嗎?《c#并行編程高級(jí)教程:精通.net 4
parallel extensions》將幫助您實(shí)現(xiàn)這一夙愿。這本精品書籍濃墨重彩地描述如何使用c# 4、visual studio
2010和.net framework
4高效地創(chuàng)建基于任務(wù)的并行應(yīng)用程序,詳細(xì)講述最新的單指令、多數(shù)據(jù)流指令和向量化等并行編程技術(shù),介紹現(xiàn)代并行庫,討論如何珠聯(lián)璧合地使用高級(jí)intel工具與c#,并指導(dǎo)您巧妙使用新引入的輕型協(xié)調(diào)結(jié)構(gòu)來開發(fā)自己的解決方案并解決最棘手的并發(fā)編程問題。
  主要內(nèi)容
  介紹如何基于新task parallel library和.net 4設(shè)計(jì)穩(wěn)定的可擴(kuò)展并行應(yīng)用程序。
  講解命令式數(shù)據(jù)并行、命令式任務(wù)并行、并發(fā)集合以及協(xié)調(diào)數(shù)據(jù)結(jié)構(gòu)。
  描述plinq高級(jí)聲明式數(shù)據(jù)并行。
  討論如何使用新的visual studio 2010并行調(diào)試功能來調(diào)試匿名方法、任務(wù)和線程。
  演示如何對數(shù)據(jù)源進(jìn)行分區(qū),以便在不同任務(wù)和線程之間合理分配工作負(fù)荷。

作者簡介

作者:(美國)希拉里(Gastón C.Hillar) 譯者:鄭思遙 房佩慈 合著者:金旭亮Gastón C.Hillar,從8歲起就開始使用計(jì)算機(jī)了。在20世紀(jì)80年代初,他開始在傳奇的TexasTI-99/4A和Commodore64家用計(jì)算機(jī)上編寫程序。他作為一名優(yōu)秀畢業(yè)生在UADE大學(xué)獲得了學(xué)士學(xué)位,然后又在UCEMA大學(xué)憑借出色的畢業(yè)論文獲得了工商管理碩士學(xué)位。自1997年以來,Gaston在并行編程、多處理器和多核處理器領(lǐng)域進(jìn)行了深入研究。在設(shè)計(jì)和開發(fā)各種類型復(fù)雜的利用多核處理能力的并行解決方案方面,他有著14年的豐富經(jīng)驗(yàn),后來,他開始通過C#和.NETFramework編寫并行解決方案。

書籍目錄

第1章 基于任務(wù)的程序設(shè)計(jì)
 1.1 使用共享內(nèi)存的多核系統(tǒng)
 1.1.1 共享內(nèi)存多核系統(tǒng)與分布式內(nèi)存系統(tǒng)之間的區(qū)別
 1.1.2 并行程序設(shè)計(jì)和多核程序設(shè)計(jì)
 1.2 理解硬件線程和軟件線程
 1.3 理解amdahl法則
 1.4 考慮gustafson法則
 1.5 使用輕量級(jí)并發(fā)模型
 1.6 創(chuàng)建成功的基于任務(wù)的設(shè)計(jì)
 1.6.1 以并發(fā)的思想指導(dǎo)設(shè)計(jì)
 1.6.2 理解交錯(cuò)并發(fā)、并發(fā)和并行之間的區(qū)別
 1.6.3 并行化任務(wù)
 1.6.4 盡量減少臨界區(qū)
 1.6.5 理解多核并行程序的設(shè)計(jì)原則
 1.7 為numa架構(gòu)和更高的可擴(kuò)展性做好準(zhǔn)備
 1.8 判斷是否適合并行化
 1.9 小結(jié)
第2章 命令式數(shù)據(jù)并行
 2.1 加載并行任務(wù)  
 2.1.1 system.threading.tasks.parallel類
 2.1.2 parallel.invoke
 2.2 將串行代碼轉(zhuǎn)換為并行代碼
 2.2.1 檢測可并行化的熱點(diǎn)
 2.2.2 測量并行執(zhí)行的加速效果
 2.2.3 理解并發(fā)執(zhí)行
 2.3 循環(huán)并行化
 2.3.1 parallel.for
 2.3.2 parallel.foreach
 2.3.3 從并行循環(huán)中退出
 2.4 指定并行度
 2.4.1 paralleloptions
 2.4.2 計(jì)算硬件線程
 2.4.3 邏輯內(nèi)核并不是物理內(nèi)核
 2.5 通過甘特圖檢測臨界區(qū)
 2.6 小結(jié)
第3章 命令式任務(wù)并行
 3.1 創(chuàng)建和管理任務(wù)
 3.1.1 system.threading.tasks.task
 3.1.2 理解task狀態(tài)和生命周期
 3.1.3 通過使用任務(wù)來對代碼進(jìn)行并行化
 3.1.4 等待任務(wù)完成
 3.1.5 忘記復(fù)雜的線程
 3.1.6 通過取消標(biāo)記取消任務(wù)
 3.1.7 從任務(wù)返回值
 3.1.8 taskcreationoptions
 3.1.9 通過延續(xù)串聯(lián)多個(gè)任務(wù)
 3.1.10 編寫適應(yīng)并發(fā)和并行的代碼
 3.2 小結(jié)
第4章 并發(fā)集合
 4.1 理解并發(fā)集合提供的功能
 4.1.1 system.collections.concurrent
 4.1.2 concurrentqueue
 4.1.3 理解并行的生產(chǎn)者-消費(fèi)者模式
 4.1.4 concurrentstack
 4.1.5 將使用數(shù)組和不安全集合的代碼轉(zhuǎn)換為使用并發(fā)集合的代碼
 4.1.6 concurrentbag
 4.1.7 iproducerconsumer
 collection
 4.1.8 blockingcollection
 4.1.9 concurrentdictionary
 4.2 小結(jié)
第5章 協(xié)調(diào)數(shù)據(jù)結(jié)構(gòu)
 5.1 通過汽車和車道理解并發(fā)難題
 5.1.1 非預(yù)期的副作用
 5.1.2 競爭條件
 5.1.3 死鎖
 5.1.4 使用原子操作的無鎖算法
 5.1.5 使用本地存儲(chǔ)的無鎖算法
 5.2 理解新的同步機(jī)制
 5.3 使用同步原語
 5.3.1 通過屏障同步并發(fā)任務(wù)
 5.3.2 屏障和continuewhenall
 5.3.3 在所有的參與者任務(wù)中捕捉異常
 5.3.4 使用超時(shí)
 5.3.5 使用動(dòng)態(tài)數(shù)目的參與者
 5.4 使用互斥鎖
 5.4.1 使用monitor
 5.4.2 使用鎖超時(shí)
 5.4.3 將代碼重構(gòu)為避免使用鎖
 5.5 將自旋鎖用作互斥鎖原語
 5.5.1 使用超時(shí)
 5.5.2 使用基于自旋的等待
 5.5.3 自旋和處理器出讓
 5.5.4 使用volatile修飾符
 5.6 使用輕量級(jí)的手動(dòng)重置事件
 5.6.1 使用manualreseteventslim進(jìn)行自旋和等待
 5.6.2 使用超時(shí)和取消
 5.6.3 使用manualresetevent
 5.7 限制資源的并發(fā)訪問
 5.7.1 使用semaphoreslim
 5.7.2 使用超時(shí)和取消
 5.7.3 使用 semaphore
 5.8 通過countdownevent簡化動(dòng)態(tài)fork和join場景
 5.9 使用原子操作
 5.10 小結(jié)
第6章 plinq:聲明式數(shù)據(jù)并行
 6.1 從linq轉(zhuǎn)換到plinq
 6.1.1 parallelenumerable及其asparallel方法
 6.1.2 asordered和orderby子句
 6.2 指定執(zhí)行模式
 6.3 理解plinq中的數(shù)據(jù)分區(qū)
 6.4 通過plinq執(zhí)行歸約操作
 6.5 創(chuàng)建自定義的plinq聚合函數(shù)
 6.6 并發(fā)plinq任務(wù)
 6.7 取消plinq
 6.8 指定所需的并行度
 6.8.1 withdegreeofparallelism
 6.8.2 測量可擴(kuò)展性
 6.9 使用forall
 6.9.1 foreach和forall的區(qū)別
 6.9.2 測量可擴(kuò)展性
 6.10 通過withmergeoptions配置返回結(jié)果的方式
 6.11 處理plinq拋出的異常
 6.12 使用plinq執(zhí)行mapreduce算法
 6.13 使用plinq設(shè)計(jì)串行多步操作
 6.14 小結(jié)
第7章 visual studio 2010的任務(wù)調(diào)試能力
 7.1 充分利用多顯示器的支持
 7.2 理解并行任務(wù)調(diào)試器窗口
 7.3 查看parallel stacks圖
 7.4 跟蹤并發(fā)代碼
 7.4.1 調(diào)試匿名方法
 7.4.2 查看方法
 7.4.3 在源代碼中查看線程
 7.5 檢測死鎖
 7.6 小結(jié)
第8章 線程池
 8.1 探究任務(wù)的底層技術(shù)
 8.2 理解新的clr 4線程池引擎
 8.2.1 理解全局隊(duì)列
 8.2.2 等待工作線程完成工作
 8.2.3 跟蹤動(dòng)態(tài)數(shù)目的工作線程
 8.2.4 使用任務(wù)(而不是線程)將作業(yè)加入隊(duì)列
 8.2.5 理解任務(wù)和線程池之間的關(guān)系
 8.2.6 理解局部隊(duì)列和工作竊取算法
 8.2.7 指定自定義的任務(wù)調(diào)度器
 8.3 小結(jié)
第9章 異步編程模型
 9.1 結(jié)合使用異步編程和任務(wù)
 9.1.1 使用taskfactory.fromasync
 9.1.2 編寫異步方法執(zhí)行結(jié)束之后的延續(xù)
 9.1.3 合并多個(gè)并發(fā)異步操作的結(jié)果
 9.1.4 執(zhí)行異步wpf ui更新
 9.1.5 執(zhí)行異步windows forms ui更新
 9.1.6 創(chuàng)建執(zhí)行eap操作的任務(wù)
 9.1.7 使用taskcompletionsource
 9.2 小結(jié)
第10章 并行測試和調(diào)優(yōu)
 10.1 準(zhǔn)備并行測試
 10.1.1 使用性能剖析功能
 10.1.2 測量并發(fā)性
 10.2 常見問題模式的解決方案
 10.2.1 串行化的執(zhí)行
 10.2.2 鎖爭用
 10.2.3 鎖封護(hù)
 10.2.4 申請超額
 10.2.5 申請不足
 10.2.6 分區(qū)問題
 10.2.7 工作站垃圾回收開銷
 10.2.8 使用服務(wù)器垃圾回收
 10.2.9 i/o瓶頸
 10.2.10 主線程過載
 10.3 理解偽共享
 10.4 小結(jié)
第11章 向量化、simd指令以及其他并行庫
 11.1 理解simd和向量化
 11.2 從mmx到sse4.x和avx
 11.3 使用intel math kernellibrary
 11.3.1 使用適用于多核的高度優(yōu)化的軟件函數(shù)
 11.3.2 將基于任務(wù)的編程和外部優(yōu)化的庫混合使用
 11.3.3 并行生成偽隨機(jī)數(shù)
 11.4 使用intel integratedperformance primitives
 11.5 小結(jié)
附錄a .net 4中與并行相關(guān)的類圖
附錄b 并發(fā)uml模型
附錄c parallel extensions extras

章節(jié)摘錄

版權(quán)頁:插圖:

編輯推薦

《C#并行編程高級(jí)教程:精通NET 4 Parallel Extensions》是由清華大學(xué)出版社出版的。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    C#并行編程高級(jí)教程 PDF格式下載


用戶評論 (總計(jì)52條)

 
 

  •   書的內(nèi)容很好,對使用****進(jìn)行并行編程講解很詳細(xì)
  •   詳細(xì)講解了并行編程的方方面面,也有示例代碼,值得一讀
  •   多線程開發(fā)難得的好書,對并行開發(fā)設(shè)計(jì)來說很有幫助
  •   聽說算是C#并行編程里比較好的書,買來專門學(xué)習(xí)的,包裝不錯(cuò),書很好~
  •   我是并行算法的初學(xué)者。。。感覺這本書有點(diǎn)像參考手冊。。對我有難度看懂運(yùn)用!?。?。期待傻瓜一步一步指導(dǎo)式的并行算法的書。并行計(jì)算難?。。?!
  •   并行開發(fā)不是很容易的書,這本書拋磚引路而已,實(shí)踐起來還是具體問題具體看,伸縮性和性能之間需要平衡
  •   講解了高級(jí)編程的內(nèi)容,適合進(jìn)階的人學(xué)習(xí)
  •   老早以前出過一本多線程編程參考啥的,那還是在2.0時(shí)代,多年過去了總算又出了本相關(guān)書籍不容易啊。
  •   對多線程的編程很有幫助
  •   多線程方面的書不多,希望這本有所幫助
  •   對于尤其多線程的編寫,很有促進(jìn)作用
  •   這本書很有指導(dǎo)價(jià)值,不像其他的技術(shù)書籍,把大量的代碼堆砌在書中。這本書中代碼很精簡,理論很實(shí)在。值得一讀。
  •   **** 4的新東西,值得看看呀
  •   還沒看,不過wrox出品的應(yīng)該是經(jīng)典書籍
  •   經(jīng)典的書籍,受益匪淺。
  •   這本書真值的看看,****開發(fā)人員必看啊
  •   講解的東西很有深度,需要好好理解
  •   很好,內(nèi)容比較新穎,閱讀中
  •   不錯(cuò)的一本書?。。。。。。。。。。。。?!
  •   總體感覺還不錯(cuò),書的質(zhì)量也很好,字跡清晰,要好好研究一下
  •   隨手翻了一下 書的質(zhì)量還是不錯(cuò)的
  •   他說相當(dāng)好
  •   想全面地學(xué)習(xí)并行編程,這本書很好!
  •   內(nèi)容我很喜歡,只是并行編程的常出錯(cuò)和技巧類,寫的不詳。
  •   以后并行是趨勢啊。
  •   平行庫講的比較全面, 還不錯(cuò)
  •   講的很詳細(xì),也挺全面。
  •   書的內(nèi)容很精彩,需要慢慢品讀。
  •   不是很需要,也沒怎么細(xì)看,感覺買錯(cuò)了
  •   讀過英文原版還不錯(cuò)!希望翻譯的質(zhì)量不會(huì)讓我失望
  •   值得一讀。但需要有一定基礎(chǔ)
  •   內(nèi)容適合高級(jí)程序員閱讀,唯一的缺點(diǎn)是物流,本來是周一上午送到的,不知怎么搞得,一直等到周二才送到。
  •   內(nèi)容很好, 但是質(zhì)量太差, 有點(diǎn)像盜版
  •   送貨慢,顯示4月1號(hào)送達(dá)結(jié)果晚了一天??爝f態(tài)度比較吊。
    為什么當(dāng)當(dāng)賣的書永遠(yuǎn)看著是臟的...要不是看著賣的便宜些,肯定不會(huì)在這買。
  •   這本書比較詳細(xì)的介紹了并行編程,,包括里面的數(shù)據(jù)同步問題,比如鎖啊 信號(hào)量之類的使用。總體來說是一本擴(kuò)展用的好書,建議有C#基礎(chǔ),對APM,Task ,Parallel 有一定基礎(chǔ)的人去閱讀,會(huì)讓你看到不一樣的并行和它的魅力
  •   還應(yīng)當(dāng)提供壓縮開銷的解決方案這本書我更多關(guān)注與VS2010操作相關(guān)的章節(jié)。
  •   介于圖靈和機(jī)械粗版社之間吧,跟圖靈還是有很大差距的以上僅評論翻譯質(zhì)量,內(nèi)容質(zhì)量還是很好的
  •   感覺一般般,很多內(nèi)容msdn上都有
  •   買回來幾乎就一口氣簡讀了一下,內(nèi)容翔實(shí),寫的新技術(shù)很多,對于剛上手VS2010-2012的人很適合
  •   基本上把并行編程講得比較清楚,最后一章需要的類庫需要花錢,實(shí)用性不大。
  •   這本書對.net4中新增的并行編程技術(shù)進(jìn)行了非常詳細(xì)的講解,對于想在這一塊深入學(xué)習(xí)的朋友來說絕對是非常有幫助的一本書,也有詳細(xì)的代碼和代碼注釋,唯一覺得稍有不滿的就是,書中對代碼的解釋方式有些啰嗦了,先是列出一個(gè)全的代碼,然后后面講解的時(shí)候又將對應(yīng)部分的代碼復(fù)制了一遍來進(jìn)行講解,完全沒有這個(gè)必要,可以在完整的代碼中加上標(biāo)記,然后直接引用標(biāo)記不就行了嗎?
  •   還沒開始看,C#需要撿撿再看這些相對高層次的,但書的外觀質(zhì)量滿意
  •   需要潛心閱讀,練習(xí)實(shí)踐
  •   4.0新特性說的不錯(cuò)!看了兩三章,感覺很不錯(cuò)
  •   老早以前出過一本多線程編程參考啥的,那還是在2.0時(shí)代,多年過去了總算又出了本相關(guān)書籍不容易啊。如果沒什么基礎(chǔ)的話..就建議大家先把VISUAL C#2010先學(xué)習(xí)了再回過頭來看這本書.
  •   重點(diǎn)介紹.NET4有關(guān)并發(fā)編程的新功能庫
  •   .NET并行運(yùn)算的好書
  •   把并行編程介紹的很詳細(xì)
  •   哎喲不錯(cuò)哦·
  •   價(jià)格比外面低
  •   正品的圖書
  •   有點(diǎn)深,但是多核時(shí)代必須要掌握這門技術(shù)
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7