出版時間:2012-8 出版社:機械工業(yè)出版社 作者:9787111388067 頁數:165 譯者:凌杰
Tag標簽:無
內容概要
在當前多核體系結構中,習慣于編寫所有程序員熟悉的那種串行化代碼顯然已無法滿足用戶的性能需求,并行編程將是提升系統(tǒng)性能的最簡單、最直接的途徑。
并行編程一直被認為只有專家才能涉足的領域,同時也經常被視為一個雷區(qū),其中隱藏著各種難以重現(xiàn)的、詭異的軟件缺陷。幸運的是,并行模式庫(PPL)和異步代理庫的出現(xiàn)將我們引入了一種全新的并行編程模型,這大大地簡化了編寫并行程序的工作。當然,這一切要歸功于一系列精致而復雜的算法,它們能夠很好地適應多核體系結構中的動態(tài)分布式計算。
通過學習《Visual
C++并行編程實戰(zhàn)(多核構架下分工與協(xié)作的設計模式)》(作者坎貝爾、米勒)介紹的設計模式,讀者可以極大地改善應用程序在多核計算機上的性能?!禫isual
C++并行編程實戰(zhàn)(多核構架下分工與協(xié)作的設計模式)》介紹的這些模式不僅適用于現(xiàn)階段的硬件環(huán)境,同時也方便日后擴展使用。
隨著計算機并行架構的不斷提升,應用程序的表現(xiàn)也會越來越好。
作者簡介
作者簡介
Colin Campbell 資深并發(fā)編程專家,Model Computation公司的創(chuàng)始人,與人合著有《Model-Based Software Testing and Analysis in C#》、《Parallel Programming with Microsoft .NET》等經典著作,還發(fā)表了若干篇針對軟件分析(嚴格數學方法)的學術論文。
Ade Miller 資深并發(fā)編程專家,微軟研究院首席軟件開發(fā)工程師,擔任基于Windows HPC Server團隊的項目經理和微軟公司模式與實踐團隊的開發(fā)主管。目前主要關注并行和分布式計算,以及使用工程領導方式改善團隊開發(fā)的方式。他與人合著有《C++ AMP》、《Parallel Programming with Microsoft .NET》等經典著作。
譯者簡介
凌杰 自由軟件開發(fā)者,畢業(yè)于浙江大學。專注于C/C++領域多年,擁有豐富的國內外大型研究型項目開發(fā)及管理經驗,并長年擔任上海交通大學飲水思源BBS的C/C++版版主。
書籍目錄
譯者序
推薦序一
推薦序二
前言
致謝
第1章 引言
1.1 潛在并行化的重要意義
1.2 分解、協(xié)調、可擴展性共享
1.2.1 理解任務
1.2.2 協(xié)調任務
1.2.3 可擴展性數據共享
1.2.4 設計方法
1.3 選擇正確的設計模式
1.4 關于術語
1.5 并行的局限
1.6 一些建議
1.7 練習題
1.8 更多資源
第2章 并行循環(huán)
2.1 基本用法
2.1.1 并行版的for循環(huán)
2.1.2 parallel_for_each
2.1.3 期望為何
2.2 實例示范
2.2.1 串行版的Credit Review
2.2.2 parallel_for_each版的Credit Review
2.2.3 性能對比
2.3 模式變體
2.3.1 提前退出循環(huán)
2.3.2 異常處理
2.3.3 小型循環(huán)體的特殊處理
2.3.4 并行度控制
2.4 反面模式
2.4.1 隱性循環(huán)體依賴
2.4.2 少量迭代的小循環(huán)體
2.4.3 重復輸入性枚舉
2.4.4 基于協(xié)同性阻塞的交叉調度
2.5 相關模式
2.6 練習題
2.7 補充閱讀
第3章 并行任務
3.1 基本用法
3.2 實例示范
3.3 模式變體
3.3.1 基于協(xié)同性阻塞的任務協(xié)調
3.3.2 取消一個任務組
3.3.3 異常處理
3.3.4 預測性執(zhí)行
3.4 反面模式
3.4.1 閉包中的變量捕獲
3.4.2 計劃外的取消狀態(tài)傳遞
3.4.3 同步化成本
3.5 設計注意事項
3.5.1 任務組調用約定
3.5.2 任務與線程
3.5.3 如何調度任務
3.5.4 結構化任務組及任務處理
3.5.5 輕量級任務
3.6 練習題
3.7 補充閱讀
第4章 并行聚合
4.1 基本用法
4.2 實例示范
4.3 模式變體
4.3.1 基于小型循環(huán)體的考慮
4.3.2 Combinable對象的其他用處
4.4 設計注意事項
4.5 相關模式
4.6 練習題
4.7 補充閱讀
第5章 Future
5.1 基本用法
5.2 實例示范:Adatum金融儀表盤
5.2.1 業(yè)務對象
5.2.2 分析引擎
5.3 模式變體
5.3.1 取消Future對象
5.3.2 消除瓶頸
5.3.3 在運行時修改任務圖
5.4 設計注意事項
5.4.1 分解到future對象中去
5.4.2 函數式風格
5.5 相關模式
5.5.1 管道模式
5.5.2 Master/Worker模式
5.5.3 動態(tài)任務并行化模式
5.5.4 離散事件模式
5.6 練習題
第6章 動態(tài)任務并行化
6.1 基本用法
6.2 實例示范
6.3 模式變體
6.3.1 非空while循環(huán)體的并行化
6.3.2 在掛起等待環(huán)境中添加任務
6.4 練習題
6.5 補充閱讀
第7章 管道
7.1 消息塊類型概述
7.2 基本用法
7.3 實例示范
7.3.1 串行化的圖形處理
7.3.2 圖形管道
7.3.3 性能特征
7.4 模式變體
7.4.1 異步管道
7.4.2 管道中的取消操作
7.4.3 管道中的異常處理
7.4.4 多生產者作用下的負載平衡
7.4.5 管道與流的關系
7.5 反面模式
7.5.1 在管道各階段之間進行大量的數據拷貝
7.5.2 管道階段中的工作量過小
7.5.3 在消息傳遞時忘記使用隔離技術
7.5.4 無限期的等待
7.5.5 無限制的隊列增長
7.5.6 更多信息
7.6 設計注意事項
7.7 關聯(lián)模式
7.8 練習題
7.9 補充閱讀
附錄A 任務調度器與資源管理器
附錄B 并行應用程序的調試與分析
附錄C 技術總覽
術語表
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載
Visual C++并行編程實戰(zhàn) PDF格式下載