前言
第1章并行讓程序運行得更快
你可能會想到的一些問題
采用線程化方法的4個步驟
并行算法的背景知識
共享內存編程與分布式內存編程的比較
本書采用的并發編程方法
第2章是否采用并發
并發算法的設計模型
哪些算法不能并行
第3章算法正確性證明與性能衡量
并行算法的驗證
示例:臨界區問題
性能測試(程序的執行情況如何)
硬件并行性的發展歷史
第4章多線程程序設計中的8條簡單規則
規則1:找出真正獨立的運算
規則2:在盡可能高的層次上實現并發
規則3:盡早考慮通過增加處理器核的數量來獲得可伸縮性
規則4:盡可能使用線程安全的庫
規則5:使用正確的多線程模型
規則6:永遠不要假設程序會按照某種特定的順序執行
規則7:盡可能使用線程局部存儲或者與特定數據相關的鎖
規則8:要敢于對代碼進行修改以獲得更好的并發性
小結
第5章線程化庫
隱式線程化
顯式線程化
其他主題
特定領域的庫
第6章并行求和與前綴求和
并行求和
前綴求和
選擇
最后的思考
第7章映射歸約
并發映射運算
并發歸約運算
映射歸約的應用
映射歸約作為一般性并發
第8章排序
冒泡排序
奇偶換位排序
希爾排序
快速排序
基數排序
第9章搜索
未排序的數據序列
二分搜索
第10章圖算法
深度優先搜索
最短路徑問題
最小生成樹
第11章線程化工具
調試器
性能工具
其他主題
再接再厲