注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)C#并行編程高級(jí)教程:精通.NET 4 Parallel Extensions

C#并行編程高級(jí)教程:精通.NET 4 Parallel Extensions

C#并行編程高級(jí)教程:精通.NET 4 Parallel Extensions

定 價(jià):¥68.00

作 者: (美)希拉里 著,鄭思遙,房佩慈 譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: VC++

購(gòu)買這本書(shū)可以去


ISBN: 9787302273561 出版時(shí)間: 2012-01-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 487 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

  Caston C.Hillar是一位獨(dú)立軟件咨詢師,自1997年起便一直從事并行編程、多處理器和多核領(lǐng)域的研究,Gaston擁有使用C#和.NET Framework來(lái)設(shè)計(jì)和開(kāi)發(fā)各種復(fù)雜并行解決方案的豐富經(jīng)驗(yàn),曾于2009年榮膺Intel Black Belt Software Developer獎(jiǎng)。

圖書(shū)目錄

第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 檢測(cè)可并行化的熱點(diǎn)
 2.2.2 測(cè)量并行執(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 通過(guò)甘特圖檢測(cè)臨界區(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 通過(guò)使用任務(wù)來(lái)對(duì)代碼進(jìn)行并行化
 3.1.4 等待任務(wù)完成
 3.1.5 忘記復(fù)雜的線程
 3.1.6 通過(guò)取消標(biāo)記取消任務(wù)
 3.1.7 從任務(wù)返回值
 3.1.8 taskcreationoptions
 3.1.9 通過(guò)延續(xù)串聯(lián)多個(gè)任務(wù)
 3.1.10 編寫(xiě)適應(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 通過(guò)汽車和車道理解并發(fā)難題
 5.1.1 非預(yù)期的副作用
 5.1.2 競(jìng)爭(zhēng)條件
 5.1.3 死鎖
 5.1.4 使用原子操作的無(wú)鎖算法
 5.1.5 使用本地存儲(chǔ)的無(wú)鎖算法
 5.2 理解新的同步機(jī)制
 5.3 使用同步原語(yǔ)
 5.3.1 通過(guò)屏障同步并發(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 將自旋鎖用作互斥鎖原語(yǔ)
 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ā)訪問(wèn)
 5.7.1 使用semaphoreslim
 5.7.2 使用超時(shí)和取消
 5.7.3 使用 semaphore
 5.8 通過(guò)countdownevent簡(jiǎn)化動(dòng)態(tài)fork和join場(chǎng)景
 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 通過(guò)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 測(cè)量可擴(kuò)展性
 6.9 使用forall
 6.9.1 foreach和forall的區(qū)別
 6.9.2 測(cè)量可擴(kuò)展性
 6.10 通過(guò)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 檢測(cè)死鎖
 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 編寫(xiě)異步方法執(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章 并行測(cè)試和調(diào)優(yōu)
 10.1 準(zhǔn)備并行測(cè)試
 10.1.1 使用性能剖析功能
 10.1.2 測(cè)量并發(fā)性
 10.2 常見(jiàn)問(wèn)題模式的解決方案
 10.2.1 串行化的執(zhí)行
 10.2.2 鎖爭(zhēng)用
 10.2.3 鎖封護(hù)
 10.2.4 申請(qǐng)超額
 10.2.5 申請(qǐng)不足
 10.2.6 分區(qū)問(wèn)題
 10.2.7 工作站垃圾回收開(kāi)銷
 10.2.8 使用服務(wù)器垃圾回收
 10.2.9 i/o瓶頸
 10.2.10 主線程過(guò)載
 10.3 理解偽共享
 10.4 小結(jié)
第11章 向量化、simd指令以及其他并行庫(kù)
 11.1 理解simd和向量化
 11.2 從mmx到sse4.x和avx
 11.3 使用intel math kernellibrary
 11.3.1 使用適用于多核的高度優(yōu)化的軟件函數(shù)
 11.3.2 將基于任務(wù)的編程和外部?jī)?yōu)化的庫(kù)混合使用
 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

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)