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

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

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

定 價:¥68.00

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

ISBN: 9787302273561 出版時間: 2012-01-01 包裝: 平裝
開本: 16開 頁數(shù): 487 字數(shù):  

內(nèi)容簡介

  您想淋漓盡致地發(fā)揮多核計算機系統(tǒng)的處理能力嗎?《C#并行編程高級教程:精通NET 4 Parallel Extensions》將幫助您實現(xiàn)這一夙愿。這本精品書籍濃墨重彩地描述如何使用C# 4、Visual Studio 2010和.NET Framework 4高效地創(chuàng)建基于任務的并行應用程序,詳細講述最新的單指令、多數(shù)據(jù)流指令和向量化等并行編程技術(shù),介紹現(xiàn)代并行庫,討論如何珠聯(lián)璧合地使用高級Intel工具與C#,并指導您巧妙使用新引入的輕型協(xié)調(diào)結(jié)構(gòu)來開發(fā)自己的解決方案并解決最棘手的并發(fā)編程問題。主要內(nèi)容◆介紹如何基于新Task Parallel Library和.NET 4設計穩(wěn)定的可擴展并行應用程序。◆講解命令式數(shù)據(jù)并行、命令式任務并行、并發(fā)集合以及協(xié)調(diào)數(shù)據(jù)結(jié)構(gòu)。◆描述PLINQ高級聲明式數(shù)據(jù)并行?!粲懻撊绾问褂眯碌腣isual Studio 2010并行調(diào)試功能來調(diào)試匿名方法、任務和線程?!粞菔救绾螌?shù)據(jù)源進行分區(qū),以便在不同任務和線程之間合理分配工作負荷。

作者簡介

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

圖書目錄

第1章 基于任務的程序設計
 1.1 使用共享內(nèi)存的多核系統(tǒng)
 1.1.1 共享內(nèi)存多核系統(tǒng)與分布式內(nèi)存系統(tǒng)之間的區(qū)別
 1.1.2 并行程序設計和多核程序設計
 1.2 理解硬件線程和軟件線程
 1.3 理解amdahl法則
 1.4 考慮gustafson法則
 1.5 使用輕量級并發(fā)模型
 1.6 創(chuàng)建成功的基于任務的設計
 1.6.1 以并發(fā)的思想指導設計
 1.6.2 理解交錯并發(fā)、并發(fā)和并行之間的區(qū)別
 1.6.3 并行化任務
 1.6.4 盡量減少臨界區(qū)
 1.6.5 理解多核并行程序的設計原則
 1.7 為numa架構(gòu)和更高的可擴展性做好準備
 1.8 判斷是否適合并行化
 1.9 小結(jié)
第2章 命令式數(shù)據(jù)并行
 2.1 加載并行任務  
 2.1.1 system.threading.tasks.parallel類
 2.1.2 parallel.invoke
 2.2 將串行代碼轉(zhuǎn)換為并行代碼
 2.2.1 檢測可并行化的熱點
 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 計算硬件線程
 2.4.3 邏輯內(nèi)核并不是物理內(nèi)核
 2.5 通過甘特圖檢測臨界區(qū)
 2.6 小結(jié)
第3章 命令式任務并行
 3.1 創(chuàng)建和管理任務
 3.1.1 system.threading.tasks.task
 3.1.2 理解task狀態(tài)和生命周期
 3.1.3 通過使用任務來對代碼進行并行化
 3.1.4 等待任務完成
 3.1.5 忘記復雜的線程
 3.1.6 通過取消標記取消任務
 3.1.7 從任務返回值
 3.1.8 taskcreationoptions
 3.1.9 通過延續(xù)串聯(lián)多個任務
 3.1.10 編寫適應并發(fā)和并行的代碼
 3.2 小結(jié)
第4章 并發(fā)集合
 4.1 理解并發(fā)集合提供的功能
 4.1.1 system.collections.concurrent
 4.1.2 concurrentqueue
 4.1.3 理解并行的生產(chǎn)者-消費者模式
 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 非預期的副作用
 5.1.2 競爭條件
 5.1.3 死鎖
 5.1.4 使用原子操作的無鎖算法
 5.1.5 使用本地存儲的無鎖算法
 5.2 理解新的同步機制
 5.3 使用同步原語
 5.3.1 通過屏障同步并發(fā)任務
 5.3.2 屏障和continuewhenall
 5.3.3 在所有的參與者任務中捕捉異常
 5.3.4 使用超時
 5.3.5 使用動態(tài)數(shù)目的參與者
 5.4 使用互斥鎖
 5.4.1 使用monitor
 5.4.2 使用鎖超時
 5.4.3 將代碼重構(gòu)為避免使用鎖
 5.5 將自旋鎖用作互斥鎖原語
 5.5.1 使用超時
 5.5.2 使用基于自旋的等待
 5.5.3 自旋和處理器出讓
 5.5.4 使用volatile修飾符
 5.6 使用輕量級的手動重置事件
 5.6.1 使用manualreseteventslim進行自旋和等待
 5.6.2 使用超時和取消
 5.6.3 使用manualresetevent
 5.7 限制資源的并發(fā)訪問
 5.7.1 使用semaphoreslim
 5.7.2 使用超時和取消
 5.7.3 使用 semaphore
 5.8 通過countdownevent簡化動態(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任務
 6.7 取消plinq
 6.8 指定所需的并行度
 6.8.1 withdegreeofparallelism
 6.8.2 測量可擴展性
 6.9 使用forall
 6.9.1 foreach和forall的區(qū)別
 6.9.2 測量可擴展性
 6.10 通過withmergeoptions配置返回結(jié)果的方式
 6.11 處理plinq拋出的異常
 6.12 使用plinq執(zhí)行mapreduce算法
 6.13 使用plinq設計串行多步操作
 6.14 小結(jié)
第7章 visual studio 2010的任務調(diào)試能力
 7.1 充分利用多顯示器的支持
 7.2 理解并行任務調(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 探究任務的底層技術(shù)
 8.2 理解新的clr 4線程池引擎
 8.2.1 理解全局隊列
 8.2.2 等待工作線程完成工作
 8.2.3 跟蹤動態(tài)數(shù)目的工作線程
 8.2.4 使用任務(而不是線程)將作業(yè)加入隊列
 8.2.5 理解任務和線程池之間的關系
 8.2.6 理解局部隊列和工作竊取算法
 8.2.7 指定自定義的任務調(diào)度器
 8.3 小結(jié)
第9章 異步編程模型
 9.1 結(jié)合使用異步編程和任務
 9.1.1 使用taskfactory.fromasync
 9.1.2 編寫異步方法執(zhí)行結(jié)束之后的延續(xù)
 9.1.3 合并多個并發(fā)異步操作的結(jié)果
 9.1.4 執(zhí)行異步wpf ui更新
 9.1.5 執(zhí)行異步windows forms ui更新
 9.1.6 創(chuàng)建執(zhí)行eap操作的任務
 9.1.7 使用taskcompletionsource
 9.2 小結(jié)
第10章 并行測試和調(diào)優(yōu)
 10.1 準備并行測試
 10.1.1 使用性能剖析功能
 10.1.2 測量并發(fā)性
 10.2 常見問題模式的解決方案
 10.2.1 串行化的執(zhí)行
 10.2.2 鎖爭用
 10.2.3 鎖封護
 10.2.4 申請超額
 10.2.5 申請不足
 10.2.6 分區(qū)問題
 10.2.7 工作站垃圾回收開銷
 10.2.8 使用服務器垃圾回收
 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 將基于任務的編程和外部優(yōu)化的庫混合使用
 11.3.3 并行生成偽隨機數(shù)
 11.4 使用intel integratedperformance primitives
 11.5 小結(jié)
附錄a .net 4中與并行相關的類圖
附錄b 并發(fā)uml模型
附錄c parallel extensions extras

本目錄推薦

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