多核應用編程實戰

來源:互聯網
上載者:User
《多核應用編程實戰》基本資料原書名:Multicore application programming:for windows,linux,and Oracle Solaris作者: (美)戈夫(Darryl Gove)譯者: 郭晴霞叢書名: 圖靈程式設計叢書出版社:人民郵電出版社ISBN:9787115317506上架時間:2013-5-22出版日期:2013 年5月開本:16開頁碼:1版次:1-1所屬分類:電腦更多關於 》》》《多核應用編程實戰》內容簡介電腦書籍  《多核應用編程實戰》是一本全面實用的多核應用編程指南,旨在介紹如何編寫功能正確、效能優越且適合擴充為在多個cpu核心的系統啟動並執行應用程式。本書面向多種作業系統和處理器類型引用程式樣本,內容涵蓋類unix 作業系統(linux、oracle solaris、os x)和windows 系統上多核應用的編寫方法、多核的硬體實現對應用程式的效能影響、編寫並行應用程式時要避免的潛在問題,以及如何編寫可擴充至大量並行線程的應用程式。   《多核應用編程實戰》適合所有c程式員學習參考。   面向主流平台打造多核應用程式,真正實現高效能與高可擴充性並舉。   《多核應用編程實戰》是一本全面、實用的高效能多核應用編程指南,不僅介紹了在windows、linux和oracle solaris上實現並行化的前沿方法,而且通過樣本闡述了面向多核處理器編程時所涉及的各種挑戰,指導讀者開發功能正確、效能優越,且可擴充為在8個、16個甚至更多cpu核心的系統啟動並執行應用程式。通讀本書,你將瞭解具體硬體實現對應用程式效能的影響,瞭解如何避免常見問題,一步步學會編寫可處理大量並行線程的應用程式,並掌握進階並行化技術。   《多核應用編程實戰》並不局限於一種方式或平台。有了它,每一位使用現代多核處理器的c程式員都能在任意前沿作業系統環境中遊刃有餘!   《多核應用編程實戰》內容   在最佳時機採用並行化技術在多線程間安全共用資料   用posix或windows線程編寫應用程式   用自訂代碼實現同步和共用   充分利用自動並行化和openmp   克服限制擴充性的常見障礙   用新的方法編寫正確、快速、可擴充的並行代碼目錄《多核應用編程實戰》第1章 硬體、進程和線程  11.1  電腦的內部結構  11.2  多核處理器的緣起  31.2.1  在單晶片上支援多線程  41.2.2  通過處理器核心流水線作業提高指令發出率  81.2.3  使用緩衝儲存最近使用的資料  101.2.4  用虛擬記憶體儲存資料  121.2.5  從虛擬位址轉換到物理地址  131.3  多處理器系統的特徵  141.4  原始碼到組合語言的轉換  161.4.1  32位與64位代碼的效能  181.4.2  確保記憶體操作的正確順序  191.4.3  進程和線程的差異  211.5  小結  23第2章 高效能編碼  242.1  定義效能  242.2  瞭解演算法複雜度  252.2.1  演算法複雜度的樣本  262.2.2  演算法複雜度的重要性  28.2.2.3  謹慎運用演算法複雜度  302.3  結構如何影響效能  302.3.1  在原始碼和產生結構上權衡效能和便利性  302.3.2  利用庫結構化應用程式  332.3.3  資料結構對效能的影響  422.4  編譯器的作用  472.4.1  兩種編譯器最佳化  482.4.2  選擇合適的編譯器選項  502.4.3  如何用跨檔案最佳化提高效能  512.4.4  使用設定檔反饋  532.4.5  潛在的指標別名會如何抑制編譯器最佳化  552.5  通過分析確定佔用時間的地方  582.6  怎樣避免手動最佳化  642.7  從設計角度看效能  642.8  小結  65第3章 識別並行機會  663.1  使用多進程提高系統工作效率  663.2  多使用者使用一個系統  673.3  通過整合提高機器工作效率  683.3.1  用容器隔離共用一個系統的應用程式  693.3.2  使用Hypervisor託管多個作業系統  693.4  採用並行機制提高單個任務的效能  713.4.1  理解並行應用程式  723.4.2  並行如何影響演算法的選擇  723.4.3  amdahl定律  733.4.4  確定最大實際線程數  753.4.5  同步成本怎樣降低擴充性  763.5  並行模式  783.5.1  使用simd指令的資料並行  783.5.2  通過進程或線程實現並行化  793.5.3  多個獨立任務  793.5.4  多個鬆散耦合的任務  803.5.5  相同任務的多個副本  813.5.6  單個任務拆分到多個線程  823.5.7  使用流水線任務完成某個事項  823.5.8  將工作分配給用戶端和伺服器  833.5.9  將責任劃分給生產者和消費者  843.5.10  結合多種並行化策略  853.6  依賴關係對並行運行代碼能力的影響  853.6.1  反依賴和輸出依賴  863.6.2  通過推測打破依賴  883.6.3  關鍵路徑  913.7  發現並行機會  923.8  小結  93第4章 同步和資料共用  944.1  資料爭用  944.1.1  使用工具檢測資料爭用  954.1.2  避免資料爭用  984.2  同步原語  984.2.1  互斥量和臨界區  984.2.2  自旋鎖  994.2.3  訊號量  1004.2.4  讀寫鎖  1004.2.5  屏障  1014.2.6  原子操作和無鎖代碼  1024.3  死結和活鎖  1034.4  線程和進程間的通訊  1044.4.1  記憶體、共用記憶體和記憶體對應檔  1044.4.2  條件變數  1054.4.3  訊號和事件  1074.4.4  訊息佇列  1084.4.5  具名管道  1084.4.6  通過網路棧進行通訊  1094.4.7  線程之間共用資料的其他方法  1104.5  儲存線程私人資料  1104.6  小結  112第5章 使用posix線程  1135.1  建立線程  1135.1.1  線程終止  1145.1.2  用子線程接收和傳遞資料  1155.1.3  分離線程  1165.1.4  設定pthread的屬性  1175.2  編譯多線程代碼  1195.3  進程終止  1215.4  線程之間共用資料  1225.4.1  使用互斥鎖保護訪問  1225.4.2  互斥鎖屬性  1245.4.3  使用自旋鎖  1255.4.4  讀寫鎖  1275.4.5  屏障  1295.4.6  訊號量  1305.4.7  條件變數  1365.5  變數和記憶體  1405.6  多進程編程  1435.6.1  在進程之間共用記憶體  1445.6.2  在進程之間共用訊號量  1475.6.3  訊息佇列  1475.6.4  管道和具名管道  1505.6.5  使用訊號與進程通訊  1515.7  通訊端  1565.8  可重新進入代碼和編譯器標誌  1585.9  小結  160第6章 windows線程  1616.1  建立windows本機線程  1616.1.1  終止線程  1656.1.2  建立和重新啟動掛起的線程  1676.1.3  使用核心資源的控制代碼  1686.2  同步和資源共用的方式  1686.2.1  線程間需要同步的一個例子  1696.2.2  保護對臨界區代碼的訪問  1706.2.3  用互斥量保護程式碼片段  1726.2.4  輕量級讀寫鎖  1736.2.5  訊號量  1756.2.6  條件變數  1776.2.7  向其他線程或進程發出事件完成的訊號  1786.3  windows中的寬字元串處理  1796.4  建立進程  1806.4.1  在進程之間共用記憶體  1826.4.2  在子進程中繼承控制代碼  1856.4.3  互斥量命名及其在進程間的共用  1866.4.4  用管道通訊  1876.4.5  用通訊端進行通訊  1906.5  變數的原子更新  1936.6  分配執行緒區域儲存  1956.7  設定線程的優先順序  1976.8  小結  198第7章 自動並行化和openmp  1997.1  使用自動並行化產生並行代碼  1997.1.1  識別和並行約簡  2037.1.2  對包含調用的代碼進行自動並行化  2047.1.3  協助編譯器實現代碼的自動並行化  2067.2  使用openmp產生並行應用程式  2087.2.1  使用openmp並行化迴圈  2097.2.2  openmp應用程式的運行時行為  2107.2.3  openmp並列區域中的變數範圍  2107.2.4  使用openmp並行化約簡  2127.2.5  在並列區域外訪問私人資料  2127.2.6  使用調度改進工作分配  2147.2.7  用並行段完成獨立工作  2177.2.8  嵌套並行  2187.2.9  使用openmp動態定義並行任務  2197.2.10  保持資料對線程私人  2237.2.11  控制openmp運行時環境  2257.2.12  等待工作完成  2277.2.13  限制執行代碼地區的線程  2297.3  確保並列區域的代碼按順序執行  2327.4  摺疊迴圈改進工作負載均衡  2337.5  強制實現記憶體一致性  2347.6  並行化樣本  2357.7  小結  239第8章 手工編碼的同步和共用  240

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.