發表於2024-12-15
多核與GPU編程:工具、方法及實踐 計算機與互聯網 書籍|5206918 pdf epub mobi txt 電子書 下載
書[0名0]: | 多核與GPU編程:工具、方[0法0]及實踐|5206918 |
圖書定價: | 129元 |
圖書作者: | (阿聯酋)傑拉西莫斯·巴拉斯(Gerassimos Barlas) |
齣版社: | 機械工業齣版社 |
齣版日期: | 2017/2/1 0:00:00 |
ISBN號: | 9787111557685 |
開本: | 16開 |
頁數: | 0 |
版次: | 1-1 |
作者簡介 |
Gerassimos Barlas 沙迦美[0國0][0大0][0學0]計算機科[0學0]與工程係教授。他的研究興趣包括並行算[0法0]、開發、分析,以及負載平衡的建模框架,分布式視頻點播。Barlas教授講授並行編程課程已有12年時間,早在20世紀90年代,他就開始研究並行計算,並積[0極0]參與並行和分布式係統可分負載理論這一新[0領0]域的研究工作。 |
內容簡介 |
本書從並行軟件的實現、調試、[0優0]化和剖析四個方麵,詳細討論瞭[0當0]前主要的並行計算關鍵技術,主要內容包括:多核和並行程序設計、共享內存編程中的綫程與OpenMP、分布式內存編程、GPU編程、Thrust模闆庫、負載均衡等。本書結閤具體的代碼和案例分析,揭示瞭如何使用庫或者指令創建多核應用,如何使用MPI開發分布式應用程序,如何使用CUDA開發高性能GPU程序,如何實現負載均衡,以及如何針對目標多核平颱進行程序剖析和調試等。本書可供從事高性能計算技術研究的專業人員參考,也可作為高校相關專業的教[0學0]用書。 |
目錄 |
譯者序 前 言 [0第0]1章 概述 1 1.1 多核計算機時代 1 1.2 並行計算機的分類 3 1.3 現代計算機概覽 4 1.3.1 Cell BE處理器 5 1.3.2 NVIDIA Kepler 6 1.3.3 AMD APU 9 1.3.4 從多核到眾核:Tilera TILE-Gx8072和Intel Xeon Phi 10 1.4 性能指標 12 1.5 並行程序性能的預測與測量 16 1.5.1 Amdahl定律 18 1.5.2 Gustafson-Barsis定律 20 [0第0]2章 多核和並行程序設計 23 2.1 引言 23 2.2 PCAM方[0法0][0學0] 24 2.3 分解模式 26 2.3.1 任務並行 27 2.3.2 分而治之分解 28 2.3.3 幾何分解 30 2.3.4 遞歸數據分解 32 2.3.5 流水綫分解 35 2.3.6 基於事件的閤作分解 39 2.4 程序結構模式 39 2.4.1 單程序多數據 40 2.4.2 多程序多數據 40 2.4.3 主/從 41 2.4.4 map-reduce 41 2.4.5 fork/join 42 2.4.6 循環並行 44 2.5 匹配分解模式和程序結構模式 44 [0第0]3章 共享內存編程:綫程 46 3.1 引言 46 3.2 綫程 48 3.2.1 綫程的定義 48 3.2.2 綫程的作用 49 3.2.3 綫程的生成和初始化 49 3.2.4 在綫程間共享數據 55 3.3 設計考慮 57 3.4 信號量 58 3.5 經典問題中的信號量 62 3.5.1 生産者–消費者 63 3.5.2 終止處理 66 3.5.3 理發師問題:引入公平性 75 3.5.4 讀者–寫者問題 80 3.6 monitor 84 3.6.1 設計方[0法0]1:monitor內部的關鍵區 87 3.6.2 設計方[0法0]2:monitor控製關鍵區的入口 87 3.7 經典問題中的monitor 91 3.7.1 重新考慮生産者–消費者問題 91 3.7.2 重新考慮讀者–寫者問題 95 3.8 動態綫程管理與靜態綫程管理 102 3.8.1 Qt綫程池 102 3.8.2 綫程池的創建和管理 103 3.9 調試多綫程應用 111 3.10 高層次結構:無須顯式利用綫程的多綫程編程 115 3.10.1 並發map 116 3.10.2 map-reduce 118 3.10.3 並發過濾 120 3.10.4 filter-reduce 121 3.10.5 案例研究:多綫程存儲 122 3.10.6 案例研究:多綫程圖像匹配 131 [0第0]4章 共享內存編程:OpenMP 140 4.1 引言 140 4.2 個OpenMP程序 141 4.3 變量作用域 144 4.3.1 定積分OpenMP版本V.0:人工劃分 146 4.3.2 定積分OpenMP版本 V.1:無競爭條件的人工劃分 147 4.3.3 定積分OpenMP V.2:基於鎖的隱式劃分 148 4.3.4 定積分OpenMP V.3:基於歸約的隱式劃分 150 4.3.5 變量作用域總結 151 4.4 循環級並行 152 4.4.1 數據依賴 154 4.4.2 嵌套循環 162 4.4.3 調度 162 4.5 任務並行 166 4.5.1 sections指令 166 4.5.2 task指令 171 4.6 同步結構 177 4.7 正確性與[0優0]化問題 183 4.7.1 綫程安全 183 4.7.2 假共享 187 4.8 案例研究:OpenMP中的排序算[0法0] 192 4.8.1 自下而上歸並排序算[0法0]的OpenMP實現 192 4.8.2 自上而下歸並排序算[0法0]的OpenMP實現 195 4.8.3 性能[0評0]估 200 [0第0]5章 分布式內存編程 203 5.1 通信進程 203 5.2 MPI 204 5.3 核心概念 205 5.4 你的個MPI程序 206 5.5 程序體係結構 208 5.5.1 SPMD 208 5.5.2 MPMD 209 5.6 點對點通信 210 5.7 可選的點對點通信模式 214 5.8 非阻塞通信 216 5.9 點對點通信小結 220 5.10 錯誤報告與處理 220 5.11 集閤通信簡介 222 5.11.1 分發 226 5.11.2 收集 231 5.11.3 歸約 233 5.11.4 多對多收集 237 5.11.5 多對多分發 240 5.11.6 多對多歸約 245 5.11.7 全局同步 245 5.12 通信對象 245 5.12.1 派生數據類型 246 5.12.2 打包/解包 253 5.13 節點管理:通信器和組 254 5.13.1 創建組 255 5.13.2 建立內部通信器 257 5.14 單邊通信 259 5.14.1 RMA通信函數 261 5.14.2 RMA同步函數 262 5.15 I/O注意事項 270 5.16 MPI多進程和多綫程混閤編程 276 5.17 時序和性能測量 279 5.18 調試和分析MPI程序 279 5.19 Boost.MPI庫 283 5.19.1 阻塞和非阻塞通信 285 5.19.2數據序列化 289 5.19.3集閤通信 292 5.20 案例研究:有限擴散聚閤模型 295 5.21 案例研究:暴力加密破解 300 5.21.1 版本1:“基本型”MPI 300 5.21.2 版本2:MPI與OpenMP的結閤 305 5.22 案例研究:主/從式並行模型的MPI實現 308 5.22.1 簡單主/從式設置 309 5.22.2 多綫程主/從式設置 316 [0第0]6章 GPU編程 333 6.1 GPU編程簡介 333 6.2 CUDA編程模型:綫程、綫程塊、綫程網格 335 6.3 CUDA執行模型:流多處理器和warp 340 6.4 CUDA程序編譯過程 344 6.5 構建CUDA項目 347 6.6 內存層次結構 349 6.6.1 本地內存/寄存器 355 6.6.2 共享內存 356 6.6.3 常量內存 363 6.6.4 texture和surface內存 368 6.7 [0優0]化技術 369 6.7.1 綫程組織設計 369 6.7.2 kernel結構 378 6.7.3 共享內存訪問 382 6.7.4 全局內存訪問 388 6.7.5 page-locked與zero-copy內存 392 6.7.6 統一內存 394 6.7.7 異步執行和流 397 6.8 動態並行 403 6.9 CUDA程序的調試 407 6.10 CUDA程序剖析 410 6.11 CUDA和MPI 412 6.12 案例研究 417 6.12.1 分形集閤計算 417 6.12.2 塊加密算[0法0] 426 [0第0]7章 Thrust模闆庫 452 7.1 引言 452 7.2 使用Thrust的步 453 7.3 Thrust數據類型 456 7.4 Thrust算[0法0] 459 7.4.1 變換算[0法0] 460 7.4.2 排序與查詢 463 7.4.3 歸約 468 7.4.4 scan /前綴和 471 7.4.5 數據管理與處理 472 7.5 花式迭代器 475 7.6 交換設備後端 480 7.7 案例研究 481 7.7.1 濛特卡洛積分 481 7.7.2 DNA序列比對 485 [0第0]8章 負載均衡 493 8.1 引言 493 8.2 動態負載均衡:Linda的遺贈 494 8.3 靜態負載均衡:可分負載理論方[0法0] 495 8.3.1 建模開銷 496 8.3.2 通信設置 502 8.3.3 分析 503 8.3.4 總結:簡短的文獻綜述 510 8.4 DLTlib:分割工作負載的庫 513 8.5 案例研究 516 8.5.1 Mandelbrot集“電影”的混閤計算:動態負載均衡案例研究 516 8.5.2 分布式塊加密:靜態負載均衡案例研究 526 在綫資源 附錄A 編譯Qt程序 附錄B 運行MPI程序:準備與配置步驟 附錄C 測量時間 附錄D Boost.MPI 附錄E CUDA環境搭建 附錄F DLTlib 術語錶 參考文獻 |
多核與GPU編程:工具、方法及實踐 計算機與互聯網 書籍|5206918 pdf epub mobi txt 電子書 下載