圖書導(dǎo)航
作者:英特爾軟件學(xué)院教材編寫組
字?jǐn)?shù):318
頁數(shù):318
版次:
定價(jià):49.5
ISBN:978-7-313-06870-5
出版日期:2011/01
1 多核技術(shù)導(dǎo)論
1.1 微處理器發(fā)展史
1.1.1 計(jì)算機(jī)與微處理器
1.1.2 4位、8位與16位微處理器
1.1.3 32位微處理器
1.2 并行計(jì)算機(jī)
1.2.1 并行處理思想與弗林(Flynn)分類
1.2.2 超級計(jì)算機(jī)
1.3 片上多核處理器架構(gòu)
1.3.1 多核芯片
1.3.2 片上多核處理器體系結(jié)構(gòu)
1.3.3 典型多核芯片架構(gòu)
1.4 操作系統(tǒng)對多核處理器的支持方法
1.4.1 調(diào)度與中斷
1.4.2 輸入輸出系統(tǒng)
1.4.3 存儲(chǔ)管理與文件系統(tǒng)
1.4.4 典型支持多核的操作系統(tǒng)
2 多線程并行程序性能分析方法綜述
2.1 性能調(diào)優(yōu)周期
2.1.1 搜集性能數(shù)據(jù)
2.1.2 分析數(shù)據(jù)并定位性能瓶頸
2.1.3 加速比性能定律
2.1.4 解決性能瓶頸
2.1.5 實(shí)現(xiàn)優(yōu)化措施
2.1.6 測試
2.2 使用Intel Tune進(jìn)行性能分析
2.2.1 性能分析器功能與使用方法
2.2.2 性能分析器實(shí)驗(yàn)
2.3 MKL數(shù)學(xué)核心函數(shù)庫
2.3.1 MKI。數(shù)學(xué)核心函數(shù)庫功能與特性
2.3.2 MKL數(shù)學(xué)核心函數(shù)庫性能
2.3.3 MKL數(shù)學(xué)核心函數(shù)庫實(shí)驗(yàn)
2.4 Thread Checker線程檢查器
2.4.1 線程檢查器功能與使用
2.4.2 線程檢查器實(shí)驗(yàn)
2.5 Thread Profiler線程檔案器
2.5.1 線程檔案器功能與使用
2.5.2 線程檔案器實(shí)驗(yàn)
3 Intel多核處理器上的性能調(diào)優(yōu)方法
3.1 體系結(jié)構(gòu)無關(guān)的性能調(diào)優(yōu)方法
3.1.1 消除循環(huán)不變量
3.1.2 減少過程調(diào)用
3.1.3 消除不必要的內(nèi)存存取
3.2 阻礙優(yōu)化的因素
3.2.1 編譯優(yōu)化選項(xiàng)
3.2.2 變量別名
3.2.3 函數(shù)調(diào)用的邊際效應(yīng)
3.3 體系結(jié)構(gòu)無關(guān)優(yōu)化的小結(jié)
3.4 深入理解Intel多核處理器體系結(jié)構(gòu)
3.4.1 Intel多核處理器微體系結(jié)構(gòu)的顯著特性
3.5 Intel多核處理器體系結(jié)構(gòu)相關(guān)的優(yōu)化
3.5.1 Intel多核處理器微體系結(jié)構(gòu)中對代碼優(yōu)化的支持
4 多線程編程方法綜述
4.1 線程的基本概念
4.1.1 線程與進(jìn)程的區(qū)別
4.1.2 用戶級線程、核心級線程和硬件線程
4.1.3 線程的生命周期
4.2 線程的同步
4.2.1 競爭條件
4.2.2 臨界區(qū)
4.2.3 信號量
4.2.4 鎖
4.2.5 條件變量
4.2.6 線程的本地存儲(chǔ)
4.2.7 介紹TLS的特性和使用方法
4.3 多線程編程模型
4.3.1 流水線
4.3.2 工作組
4.3.3 客戶/服務(wù)器方式
4.4 多線程編程的原則及要點(diǎn)
4.4.1 靜態(tài)負(fù)載平衡
4.4.2 動(dòng)態(tài)負(fù)載平衡
4.4.3 負(fù)載平衡的難題
4.4.4 串行化方面的難題
5 多線程程序設(shè)計(jì)中的常見問題及解決途徑
5.1 線程過多
5.2 數(shù)據(jù)競爭、死鎖和活鎖
5.2.1 數(shù)據(jù)競爭
5.2.2 死鎖和活鎖
5.3 競爭激烈的鎖
5.3.1 優(yōu)先級倒置
5.3.2 鎖競爭激烈的解決方法
5.4 非阻塞算法
5.4.1 比較并交換
5.4.2 原子變量類
5.4.3 非阻塞算法的介紹
5.4.4 ABA問題
5.4.5 cache線乒乓現(xiàn)象
5.4.6 存儲(chǔ)空間回收問題
5.4.7 一些建議
5.5 線程安全函數(shù)和庫
5.5.1 理解可重入與線程安全
5.5.2 函數(shù)可重入化
5.5.3 函數(shù)線程安全化
5.6 存儲(chǔ)問題
5.6.1 帶寬
5.6.2 cache的利用
5.6.3 存儲(chǔ)競爭
5.7 Cache相關(guān)問題
5.7.1 偽共享
5.7.2 存儲(chǔ)一致性
5.7.3 當(dāng)前IA-32體系結(jié)構(gòu)
5.7.4 Itanium體系結(jié)構(gòu)
5.7.5 高級語言
5.8 避免IA-32上的流水線停頓
5.9 面向高性能的數(shù)據(jù)組織
6 Unix/Linux多線程編程
6.1 POSIX的一些基本知識
6.2 POSIX線程庫
6.2.1 創(chuàng)建線程
6.2.2 分離和接合線程
6.2.3 退出和取消線程
6.2.4 用戶級線程和內(nèi)核級線程
6.2.5 線程的屬性
6.2.6 線程安全函數(shù)
6.2.7 線程特定數(shù)據(jù)