內容簡介
《基於CUDA的並行程序設計》介紹瞭並行計算和圖形處理器(GPU)係統結構;基於GPU並行計算的GUDA語言;CUDA的編程優化技巧;GPU存儲器結構;並就生物圖像分析、醫學圖像三維重建、遙感圖像校正和信息提取等三個領域具體討論瞭利用GPU實現其並行計算的實施方案和編程技巧。書中對利用GPU編程和使用方法注意事項做瞭詳實介紹。
《基於CUDA的並行程序設計》可以作為CUDA學習入門和編程的參考書,主要麵嚮高校計算機專業的教師、研究生生和科研研究機構的科技工作者,以及利用GPU加速的科研人員。
作者簡介
劉金碩,博士,武漢大學副教授,荷蘭皇傢科學院訪問學者,韓國建國大學訪問學者,畢業於荷蘭萊頓大學。主要研究方嚮:數字圖像分析、模式識彆、高性能計算。主持或參與多項科研項目,是武漢大學NVIDIA全球教學中心和全球研發中心的學術帶頭人。
目錄
前言
第1章 並行計算概述
1.1 並行計算簡介
1.2 並行處理的計算機體係結構
1.2.1 並行計算機分類
1.2.2 並行計算機的物理結構模型
1.3 並行算法的設計方法
1.3.1 並行算法的相關概念
1.3.2 設計並行算法應注意的問題
1.3.3 並行算法的通用設計方法
1.4 基於各種並行處理體係結構的算法對比
1.4.1 SIMD算法
1.4.2 MIMD算法
1.4.3 MIMD進程通信和死鎖
1.4.4 MIMD任務調度
1.5 小結
參考文獻
第2章 GPU概述
2.1 GPU的發展
2.2 GPU的體係結構
2.2.1 NVIDIA公司的GPU體係結構
2.2.2 AMD公司的GPU體係結構
2.3 多核CPU和GPU的協同工作原理
2.4 GPU並行與分布式對比
2.5 采用多核CPU和GPU的異構集群
2.6 小結
參考文獻
第3章 CUDA編程基礎
3.1 CUDA簡介
3.2 CUDA並行新思維
3.3 CUDA的安裝及配置
3.3.1 CUDA在Mac OS X中的配置
3.3.2 CUDA在Linux中的配置
3.3.3 CUDA在Windows中的配置
……
第4章 GPU存儲器使用技巧
第5章 CUDA編程優化
第6章 基於C++的遙感影像處理的CUDA優化
第7章 基於OpenGL的體繪製技術實現剪切波數據三維可視化的CUDA優化
第8章 基於MATLAB的生物細胞圖像病理診斷的CUDA優化
第9章 基於CUDA的核外計算集群中間件
附錄A 數學函數
附錄B 原子函數
精彩書摘
MapReduce是Google開發的C++編程工具,用於大規模數據集(大於lTB)的並行運算。由於計算分布在成百上韆的機器上,盡管輸入的是海量數據,計算還是可以在一個閤理的時間內結束。分割分配輸入數據,在機器群中調度執行並行計算、處理錯誤、負載平衡是MapReduce的代碼的重點。MapReduce最初是Google公司為瞭處理不斷增長的文檔和Web需求日誌而設計的並行編程模型。同時它還可以進行很多衍生計算,例如,倒排索引、Web文檔的圖結構錶示、每個主機的頁數匯總和指定日的最頻繁查尋等。
Map:將每對輸入數據的邏輯記錄計算轉為一組中間鍵/值對集閤。MapReduce庫將相同中間鍵的中間值集閤在一起,傳遞給Reduce函數。
Reduce:閤並所有具有相同的中間鍵的中間值。例如,Reduce函數接受一個中間鍵,和具有這個鍵的一組值。將這組值閤並形成一個可能更小的值集閤。
MapReduce的執行過程如圖1.16所示,具體如下。
(1)用戶程序中的MapReduce庫首先將輸入文件分割成M塊(由用戶通過參數控製,一般每份16~64MB),然後集群中的機器擁有程序的多個備份。
(2)程序的一個備份是特殊的——主機(master),其他是由主機分配工作的從機(worker)。一共有M個Map任務,JR個Reduce任務需要分配。主機選取空閑從機並且給它們一個Map或者Reduce任務。
……
前言/序言
基於CUDA的並行程序設計 下載 mobi epub pdf txt 電子書 格式