釋放多核潛能

釋放多核潛能

《釋放多核潛能》,英特爾亞太研發有限公司著,清華大學出版社2010年出版。

基本信息

內容簡介

《釋放多核潛能:英特爾Parallel Studio並行開發指南》採用工程理論、工具詳解和實際案例分析相結合的方式,全面介紹了英特爾Parallel Studio工具集的使用。全書分三部分:基礎部分(第1、2章)介紹了多核架構、並行編程的關鍵理論,Parallel Studio的特點以及一些簡單案例;中級部分(第3~12章)詳述了Parallel Studio各個組件的使用,是《釋放多核潛能:英特爾Parallel Studio並行開發指南》的重點;提高部分(第13章)選取了來自英特爾執行緒挑戰賽的4個算例和1個商業軟體並行最佳化案例,提供了從工程實際角度解決並行問題的視角。

《釋放多核潛能:英特爾Parallel Studio並行開發指南》適合所有對並行開發技術感興趣的人員,包括具備一定編程經驗的程式設計師、調試人員,計算密集型行業的高性能計算架構師、性能最佳化分析師,並行開發的研究人員,對英特爾Parallel Studio感興趣的技術決策者等。此外,《釋放多核潛能:英特爾Parallel Studio並行開發指南》也可作為高等院校計算機專業並行開發相關課程的培訓及社會實踐參考用書。

編輯推薦

多核時代,從串列到並行,你的編程思想和開發技術必須升級!

由英特爾、並行科技的技術專家共同編寫,兼具理論和實踐

國內第一本Windows並行開發利器——英特爾Parallel Studio工具詳解應運而生!

作者簡介

並行科技,北京並行科技有限公司(以下簡稱並行科技),是一家專注於高性能計算軟體與技術服務的高新技術企業,與英特爾等軟硬體廠商有著密切的合作夥伴關係,主要客戶包括科研院所、能源、氣象、製造、金融、網際網路等計算密集型用戶。在程式並行化、最佳化領域,並行科技擁有自主智慧財產權的Paramon、paraview專業工具,積累了從蒐集套用特徵、定位性能瓶頸到分級最佳化的系統方法,被譽為“性能專家”。同時,並行科技作為英特爾軟體代理商,也為用戶提供卓越的英特爾軟體技術支持、培訓等。

英特爾高性能計算支持團隊,英特爾高性能計算支持團隊,專注於多核平台和伺服器集群的並行套用最佳化,負責為國內高性能計算和網際網路數據中心用戶,提供套用性能最佳化、代碼並行、套用特徵分析、開發工具培訓以及並行解決方案建議和評估等工程支持,在石油勘探、製造業、氣候氣象、生命科學和網際網路搜尋引擎等大規模並行套用領域積累了豐富的經驗。

適用對象

本書適合所有對並行開發技術感興趣的人員,包括具備一定編程經驗的程式設計師、調試人員;計算密集型行業的高性能計算架構師、性能最佳化分析師;並行開發的研究人員;對英特爾Parallel Studio感興趣的技術決策者等。此外,本書也可作為高等院校計算機專業並行開發相關課程的培訓及社會實踐參考用書。

圖書目錄

第1章 並行開發理論基礎

1.1 並行相關概念

1.1.1 並發與並行、並行度

1.1.2 粒度

1.1.3加速比及其定律

1.1.4 可擴展性與並行效率

1.1.5 負載均衡

1.1.6 吞吐量與延遲

1.1.7 熱點與瓶頸

1.2 多核並行

1.2.1 多核軟硬體現實

1.2.2 多核架構

1.2.3 多核並行手段

1.2.4 多核並行設計方法

1.2.5 多核多執行緒系統

1.2.6 多核多執行緒同步

1.2.7 多核多執行緒實現的問題

1.3 小結

第2章 英特爾Parallel Studio基礎

2.1 英特爾Parallel Studio介紹

2.1.1 英特爾 Parallel Studio背景

2.1.2 英特爾 Parallel Studio的組成

2.1.3 英特爾 Parallel Studio的特色

2.1.4 英特爾 Parallel Studio的使用者

2.2 英特爾Parallel Studio快速上手

2.2.1 英特爾 Parallel Studio的下載安裝

2.2.2 選擇案例

2.2.3 實踐動手第一步:採用Parallel Studio運行串列程式

2.2.4 實踐動手第二步:選用合適的實現對代碼並行化

2.2.5 實踐動手第三步:定位錯誤

2.2.6 實踐動手第四步:性能最佳化

2.3 小結

第3章 英特爾Parallel Composer詳解

3.1 Composer概述

3.2 英特爾C/C++編譯器

3.2.1 自動並行和openmp並行

3.2.2 過程間最佳化

3.2.3 檔案導引最佳化

3.2.4 編譯器向量化

3.3 英特爾並行調試器

3.3.1 英特爾並行調試器概述

3.3.2 執行緒數據共享偵測

3.3.3可重入函式調用偵測

3.3.4 SSE暫存器視窗

3.3.5 OpenMP多執行緒調試

3.3.6 並行區域的串列執行

3.4 英特爾TBB執行緒構建模組

3.4.1 英特爾TBB概述

3.4.2 功能模組分類與介紹

3.4.3 編譯和運行TBB多執行緒程式

3.5 英特爾IPP性能基元

3.5.1 英特爾IPP概述

3.5.2 主要函式及其功能

3.5.3 編譯和運行

3.6 小結

第4章 並行化方法

4.1 基本概念

4.1.1Amdahl定律

4.1.2 進程與執行緒

4.2 並行化方法

4.3 並行化設計

4.3.1 任務劃分

4.3.2 功能劃分

4.3.3 並行化開發中的一些思考

4.4 案例分析:用蒙特卡羅方法計算π值

4.5 小結

第5章 英特爾Parallel Composer案例分析

5.1 案例5-1:Composer的使用——向量化和自動並行化

5.2 案例5-2:並行調試器的使用

5.3 案例5-3:通過TBB進行字元串查找

5.4 案例5-4:IPP壓縮和解壓縮案例介紹

5.5 小結

第6章 英特爾Parallel Inspector詳解

6.1 Inspector概述

6.2 啟動Inspectort

6.2.1 工作流程

6.2.2 啟動

6.3 配置查找錯誤的類型和粒度

6.3.1 基於執行緒的相關錯誤及粒度

6.3.2 基於記憶體的相關錯誤及粒度

6.4 定位和解決發現的錯誤

6.4.1 檢查錯誤

6.4.2 查看和分析錯誤

6.5 小結

第7章 軟體糾錯方法

7.1 基本概念

7.1.1 軟體查錯或糾錯

7.1.2 白盒測試

7.1.3 黑盒測試

7.2 並行軟體的糾錯

7.3 執行緒並行的常見錯誤

7.3.1 執行緒間死鎖

7.3.2 執行緒間競爭

7.3.3 記憶體泄露

7.4 小結

第8章 並行軟體糾錯案例

8.1 案例8-1:執行緒間相互作用導致的死鎖問題

8.2 案例8-2:執行緒競爭

8.3 案例8-3:記憶體泄露

8.4 小結

第9章 英特爾Parallel Amplifier詳解

9.1 Amplifier概述

9.1.1 如何開始Amplifier

9.1.2 如何使用符號信息

9.1.3 環境和對象

9.2 Amplifier的幾個概念

9.3 Amplifier的分析運行

9.3.1 分析運行的幾個選項

9.3.2 選擇分析模式

9.3.3 如何選擇分析模式

9.3.4 如何在命令行下運行分析模式

9.3.5 熱點:分析程式哪裡耗時

9.3.6 並行度:展現並行程式的另外一個特點

9.3.7 鎖和等待:分析程式在哪裡等待

9.3.8 選擇數據採集的時段

9.4 Amplifier中瀏覽性能數據結果

9.4.1 總覽

9.4.2 在Bottom-up和Top-down中切換

9.4.3 選擇和管理棧類型

9.4.4 選擇顏色方案

9.4.5 按照不同類型劃分組

9.4.6 在命令行模式下查看性能數據

9.5 Amplifier解釋性能數據結果

9.5.1 總覽

9.5.2 解釋熱點分析結果

9.5.3 解釋並行度分析結果

9.5.4 解釋鎖和等待分析結果

9.6 Amplifier中的原始碼

9.7 Amplifier中對比性能數據結果

9.8 Amplifier中管理結果檔案

9.9 小結

第10章 性能最佳化方法

10.1 性能最佳化概述

10.1.1 性能和性能最佳化是計算機領域不變的主題

10.1.2 性能最佳化的定義

10.2 性能最佳化通用方法

10.2.1 性能最佳化的順序

10.2.2 系統級別的性能最佳化

10.2.3 套用級別的性能最佳化

10.2.4 微架構級別的性能最佳化

10.2.5 性能最佳化工作循環

10.2.6 性能最佳化循環的常見問題

10.3 並行套用性能最佳化方法

10.3.1 概述

10.3.2 減少關鍵路徑上的時間

10.3.3 檢查是否選擇最優的並行方法

10.3.4 檢查是否選擇合適的層級開始並行

10.3.5 Amdahl定律的檢查:減少串列部分的比例

10.3.6 檢查程式的負載均衡問題

10.3.7 檢查程式的粒度問題

10.3.8 採用合適的執行緒庫

10.3.9 檢查同步性能問題

10.3.10 檢查硬體導致的擴展性問題

10.4 小結

第11章 性能最佳化案例

11.1 IO並行:系統級最佳化案例

11.2 鎖的實現:鎖最佳化案例

11.3 同步與負載均衡:生產消費類型的最佳化案例

11.4 最佳化臨界區:WinThread循環計算型最佳化案例

11.5 負載均衡與歸約:OpenMP循環計算型最佳化案例

11.6 執行緒數,桶數與鎖:Hash表與TBB最佳化案例

11.7 選擇合適的層級並行:任務與數據並行最佳化案例

11.8 避免硬體性能瓶頸:記憶體與高速快取最佳化案例

11.9 算法選擇:排序最佳化與TBB案例

11.10 記憶體操作TBB最佳化案例

11.11 小結

第12章 英特爾Parallel Advisor詳解

12.1 Advisor基礎

12.1.1 Advisor總覽

12.1.2 如何開始Advisor

12.2 Advisor工作流程

12.3 Annotations

12.4 Advisor 工具

12.4.1 Survey

12.4.2 Suitability

12.4.3 Correctness

12.5 使用案例

12.5.1 SpMV並行化

12.5.2 DGEMM並行化

12.6 小結

第13章 總體系統化案例

13.1 數獨

13.1.1 串列算法

13.1.2 並行最佳化

13.1.3 小結

13.2 最短路徑

13.2.1 串列算法

13.2.2 並行最佳化

13.2.3 小結

13.3 基數排序

13.3.1 串列算法

13.3.2 並行最佳化

13.3.3 小結

13.4 騎士巡遊

13.4.1 串列算法

13.4.2 並行最佳化

13.4.3 小結

13.5 商業軟體Paraview

13.5.1 問題描述

13.5.2 並行最佳化

13.5.3 小結

附錄A 英文術語表

書籍書評

“當它向我正確指出占用時間最長的原始碼行時,我非常高興。修改之後,應用程式的速度幾乎提高了10倍。”

一位匿名beta版測試人員這樣描述英特爾ParallelAmplifier

“英特爾ParallelStudio中新的分析和評測工具,使得開發新的Envivio4Caster系列代碼轉換器變得更快更有效。尤其是通過使用英特爾ParallelInspector和英特爾ParallelAmplifier,提高了代碼的可靠性及其在多核多執行緒環境下的性能,從而縮短了總體開發周期。在合格性檢查階段,由於安全性提高,減少了紊亂代碼的數量,錯誤跟蹤也變得更容易。英特爾ParallelStudio全面最佳化了我們的軟體產品,並縮短了上市周期。”

EricRosier工程副總裁Envivio公司

“英特爾ParallelInspector和英特爾ParallelAmplifier極大地簡化了查找熱點和記憶體泄露的任務,整體性能提升兩倍,同時也消除了過去幾處未發現的記憶體泄露,我們非常滿意。”

VladRomashko軟體開發經理opencascadeS.A.S

“使用英特爾ParallelStudio能幫助我們對遊戲進行性能分析,找到熱點,並能定位記憶體錯誤和執行緒錯誤。ParallelStudio與IDE完美整合,方便易用,使我們的開發效率和開發質量大幅度提高,降低了風險和成本。”

徐鴻開發主管第九城市信息技術有限公司

“處理器從單核到多核的變遷,使得軟體的並行或者並發成為必然。‘工欲善其事,必先利其器’,並行程式的調試和最佳化尤其需要出色的開發工具。英特爾ParallelStudio方便、高效,在傳統的高性能計算領域已經發揮了巨大的作用,而對每一個有志於進行並行軟體開發的程式設計師來說,它都應該是首選的開發工具。”

姚繼鋒原上海超級計算中心首席架構師

現中科嘉速(北京)並行軟體有限公司總經理

“在TechEd2009的英特爾展台,我們向用戶推薦了英特爾ParallelStudio,他們都認為並行開發是未來的發展方向。ParallelStudio面向Windows用戶,4個組件涵蓋查找熱點、調試編譯、驗證和調優,與項目開發過程相吻合,很容易上手。這本書可以說是英特爾ParallelStudio並行開發的‘紅寶書’,值得一讀。”

顏偉技術工程師北京並行科技有限公司

相關詞條

相關搜尋

熱門詞條

聯絡我們