圖書導航
作者:英特爾軟件學院教材編寫組
字數:318
頁數:318
版次:
定價:49.5
ISBN:978-7-313-06870-5
出版日期:2011/01
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 線程特定數據