內容簡介
《多核多執行緒技術》就多核體系結構、晶片發展與系統軟體,多性能並行程式,多執行緒程式的性能調優方法,多執行緒編程方法以及編程中的常見問題等作了綜合講述,處處體現了多執行緒編程理念與綜合套用能力的培養。全書深入淺出,適合廣大程式設計師和IT從事人員使用。
圖書目錄
1 多核技術導論
1.1 微處理器發展史
1.1.1 計算機與微處理器
1.1.2 4位、8位與16位微處理器
1.1.3 32位微處理器
1.2 並行計算機
1.2.1 並行處理思想與弗林(Flynn)分類
1.2.2 超級計算機
1.3 片上多核處理器架構
1.3.1 多核晶片
1.3.2 片上多核處理器體系結構
1.3.3 典型多核晶片架構
1.4 作業系統對多核處理器的支持方法
1.4.1 調度與中斷
1.4.2 輸入輸出系統
1.4.3 存儲管理與檔案系統
1.4.4 典型支持多核的作業系統
2 多執行緒並行程式性能分析方法綜述
2.1 性能調優周期
2.1.1 蒐集性能數據
2.1.2 分析數據並定位性能瓶頸
2.1.3 加速比性能定律
2.1.4 解決性能瓶頸
2.1.5 實現最佳化措施
2.1.6 測試
2.2 使用Intel Tune進行性能分析
2.2.1 性能分析器功能與使用方法
2.2.2 性能分析器實驗
2.3 MKL數學核心函式館
2.3.1 MKI。數學核心函式館功能與特性
2.3.2 MKL數學核心函式館性能
2.3.3 MKL數學核心函式館實驗
2.4 Thread Checker執行緒檢查器
2.4.1 執行緒檢查器功能與使用
2.4.2 執行緒檢查器實驗
2.5 Thread Profiler執行緒檔案器
2.5.1 執行緒檔案器功能與使用
2.5.2 執行緒檔案器實驗
3 Intel多核處理器上的性能調優方法
3.1 體系結構無關的性能調優方法
3.1.1 消除循環不變數
3.1.2 減少過程調用
3.1.3 消除不必要的記憶體存取
3.2 阻礙最佳化的因素
3.2.1 編譯最佳化選項
3.2.2 變數別名
3.2.3 函式調用的邊際效應
3.3 體系結構無關最佳化的小結
3.4 深入理解Intel多核處理器體系結構
3.4.1 Intel多核處理器微體系結構的顯著特性
3.5 Intel多核處理器體系結構相關的最佳化
3.5.1 Intel多核處理器微體系結構中對代碼最佳化的支持
4 多執行緒編程方法綜述
4.1 執行緒的基本概念
4.1.1 執行緒與進程的區別
4.1.2 用戶級執行緒、核心級執行緒和硬體執行緒
4.1.3 執行緒的生命周期
4.2 執行緒的同步
4.2.1 競爭條件
4.2.2 臨界區
4.2.3 信號量
4.2.4 鎖
4.2.5 條件變數
4.2.6 執行緒的本地存儲
4.2.7 介紹TLS的特性和使用方法
4.3 多執行緒編程模型
4.3.1 流水線
4.3.2 工作組
4.3.3 客戶/伺服器方式
4.4 多執行緒編程的原則及要點
4.4.1 靜態負載平衡
4.4.2 動態負載平衡
4.4.3 負載平衡的難題
4.4.4 串列化方面的難題
5 多執行緒程式設計中的常見問題及解決途徑
5.1 執行緒過多
5.2 數據競爭、死鎖和活鎖
5.2.1 數據競爭
5.2.2 死鎖和活鎖
5.3 競爭激烈的鎖
5.3.1 優先權倒置
5.3.2 鎖競爭激烈的解決方法
5.4 非阻塞算法
5.4.1 比較並交換
5.4.2 原子變數類
5.4.3 非阻塞算法的介紹
5.4.4 ABA問題
5.4.5 cache線桌球現象
5.4.6 存儲空間回收問題
5.4.7 一些建議
5.5 執行緒安全函式和庫
5.5.1 理解可重入與執行緒安全
5.5.2 函式可重入化
5.5.3 函式執行緒安全化
5.6 存儲問題
5.6.1 頻寬
5.6.2 cache的利用
5.6.3 存儲競爭
5.7 Cache相關問題
5.7.1 偽共享
5.7.2 存儲一致性
5.7.3 當前IA-32體系結構
5.7.4 Itanium體系結構
5.7.5 高級語言
5.8 避免IA-32上的流水線停頓
5.9 面向高性能的數據組織
6 Unix/Linux多執行緒編程
6.1 POSIX的一些基本知識
6.2 POSIX執行緒庫
6.2.1 創建執行緒
6.2.2 分離和接合執行緒
6.2.3 退出和取消執行緒
6.2.4 用戶級執行緒和核心級執行緒
6.2.5 執行緒的屬性
6.2.6 執行緒安全函式
6.2.7 執行緒特定數據
……