内容简介
《基于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