本书全面涵盖了并行软件和硬件的方方面面,深入浅出地介绍如何使用mpi(分布式内存编程)、pthreads和openmp(共享内存编程)编写高效的并行程序。各章节包含了难易程度不同的编程习题。
本书可以用做计算机科学专业低年级本科生的专业课程的教材,也可以作为软件开发人员学习并行程序设计的专业参考书。
《并行程序设计导论》
出版者的话
译者序
本书赞誉
前言
致谢
第1章为什么要并行计算
1.1为什么需要不断提升的性能
1.2为什么需要构建并行系统
1.3为什么需要编写并行程序
1.4怎样编写并行程序
1.5我们将做什么
1.6并发、并行、分布式
1.7本书的其余部分
1.8警告
1.9字体约定
1.10小结
1.11习题
第2章并行硬件和并行软件
2.1背景知识
.2.1.1冯·诺依曼结构
2.1.2进程、多任务及线程
2.2对冯·诺依曼模型的改进
2.2.1cache基础知识
2.2.2cache映射
2.2.3cache和程序: 一个实例
2.2.4虚拟存储器
2.2.5指令级并行
2.2.6硬件多线程
2.3并行硬件
2.3.1simd系统
2.3.2mimd系统
2.3.3互连网络
2.3.4cache一致性
2.3.5共享内存与分布式内存
2.4并行软件
2.4.1注意事项
2.4.2进程或线程的协调
2.4.3共享内存
2.4.4分布式内存
2.4.5混合系统编程
2.5输入和输出
2.6性能
2.6.1加速比和效率
2.6.2阿姆达尔定律
2.6.3可扩展性
2.6.4计时
2.7并行程序设计
2.8编写和运行并行程序
2.9假设
2.10小结
2.10.1串行系统
2.10.2并行硬件
2.10.3并行软件
2.10.4输入和输出
2.10.5性能
2.10.6并行程序设计
2.10.7假设
2.11习题
第3章用mpi进行分布式内存编程
3.1预备知识
3.1.1编译与执行
3.1.2mpi程序
3.1.3mpi_init和mpi_finalize
3.1.4通信子、mpi_comm_size和mpi_comm_rank
3.1.5spmd程序
3.1.6通信
3.1.7mpi_send
3.1.8mpi_recv
3.1.9消息匹配
3.1.10status_p参数
3.1.11mpi_send和mpi_recv的语义
3.1.12潜在的陷阱
3.2用mpi来实现梯形积分法
3.2.1梯形积分法
3.2.2并行化梯形积分法
3.3i/o处理
3.3.1输出
3.3.2输入
3.4集合通信
3.4.1树形结构通信
3.4.2mpi_reduce
3.4.3集合通信与点对点通信
3.4.4mpi_allreduce
3.4.5广播
3.4.6数据分发
3.4.7散射
3.4.8聚集
3.4.9全局聚集
3.5mpi的派生数据类型
3.6mpi程序的性能评估
3.6.1计时
3.6.2结果
3.6.3加速比和效率
3.6.4可扩展性
3.7并行排序算法
3.7.1简单的串行排序算法
3.7.2并行奇偶交换排序
3.7.3mpi程序的安全性
3.7.4并行奇偶交换排序算法的重要内容
3.8小结
3.9习题
3.10编程作业
第4章用pthreads进行共享内存编程
4.1进程、线程和pthreads
4.2“hello,world”程序
4.2.1执行
4.2.2准备工作
4.2.3启动线程
4.2.4运行线程
4.2.5停止线程
4.2.6错误检查
4.2.7启动线程的其他方法
4.3矩阵-向量乘法
4.4临界区
4.5忙等待
4.6互斥量
4.7生产者-消费者同步和信号量
4.8路障和条件变量
4.8.1忙等待和互斥量
4.8.2信号量
4.8.3条件变量
4.8.4pthreads路障
4.9读写锁
4.9.1链表函数
4.9.2多线程链表
4.9.3pthreads读写锁
4.9.4不同实现方案的性能
4.9.5实现读写锁
4.10缓存、缓存一致性和伪共享
4.11线程安全性
4.12小结
4.13习题
4.14编程作业
第5章用openmp进行共享内存编程
5.1预备知识
5.1.1编译和运行openmp程序
5.1.2程序
5.1.3错误检查
5.2梯形积分法
5.3变量的作用域
5.4归约子句
5.5parallel for指令
5.5.1警告
5.5.2数据依赖性
5.5.3寻找循环依赖
5.5.4π值估计
5.5.5关于作用域的更多问题
5.6更多关于openmp的循环:排序
5.6.1冒泡排序
5.6.2奇偶变换排序
5.7循环调度
5.7.1schedule子句
5.7.2static调度类型
5.7.3dynamic和guided调度类型
5.7.4runtime调度类型
5.7.5调度选择
5.8生产者和消费者问题
5.8.1队列
5.8.2消息传递
5.8.3发送消息
5.8.4接收消息
5.8.5终止检测
5.8.6启动
5.8.7atomic指令
5.8.8临界区和锁
5.8.9在消息传递程序中使用锁
5.8.10critical指令、atomic指令、锁的比较
5.8.11经验
5.9缓存、缓存一致性、伪共享
5.10线程安全性
5.11小结
5.12习题
5.13编程作业
第6章并行程序开发
6.1n体问题的两种解决方法
6.1.1问题
6.1.2两个串行程序
6.1.3并行化n体算法
6.1.4关于i/o
6.1.5用openmp并行化基本算法
6.1.6用openmp并行化简化算法
6.1.7评估openmp程序
6.1.8用pthreads并行化算法
6.1.9用mpi并行化基本算法
6.1.10用mpi并行化简化算法
6.1.11mpi程序的性能
6.2树形搜索
6.2.1递归的深度优先搜索
6.2.2非递归的深度优先搜索
6.2.3串行实现所用的数据结构
6.2.4串行实现的性能
6.2.5树形搜索的并行化
6.2.6采用pthreads实现的静态并行化树搜索
6.2.7采用pthreads实现的动态并行化树搜索
6.2.8pthreads树搜索程序的评估
6.2.9采用openmp实现的并行化树搜索程序
6.2.10openmp实现的性能
6.2.11采用mpi和静态划分来实现树搜索
6.2.12采用mpi和动态划分来实现树搜索
6.3忠告
6.4选择哪个api
6.5小结
6.5.1pthreads和openmp
6.5.2mpi
6.6习题
6.7编程作业
第7章接下来的学习方向
参考文献
索引
《全能网页设计师精炼手册》内容简介:本书通过对网页设计的核心基础进行讲解,使读者全面了解和掌握作为一个网页设计师应掌握的排
《中国反电信网络诈骗蓝皮书(2016)》内容简介:本蓝皮书共分为“我国电信网络诈骗基本情况”“我国电信网络诈骗犯罪的成因”“打
本书出自第一线JAVA编程专家之手,为读者展现正确、高效、强固之JAVA代码实践方案。这本取材广泛的掼,以不同层级的专家经验,帮
深入剖析现代编译器运用的算法和技术强调代码优化和代码生成体现编译原理教学的最新理念本书旨在介绍编译器构造法中的艺术和科学
《论语今注今译》内容简介:本丛书由出版大家王云五先生主编,严选国学经史子集各部中的名家名典,力邀一批学风严谨、学术缜密的文
AlistairCockburn是用例方面的一位著名专家。他是HumansandTechnology公司的资深顾问,在那里他负责帮助客户在面向对象项目上获得
人体通信的建模、仿真与实现 本书特色宋勇、郝群*的《人体通信的建模仿真与实现》主要结合作者已完成和正在进行的研究工作,系统阐述人体通信的建模、仿真及实现问题,具...
Awiderangeofdelightfulproductscreatedforchildrenandtheirdesign-consciousparents....
《Oracle数据库性能优化方法论和最佳实践》内容简介:Oracle性能优化一直是Oracle数据库实践中相对困难和神秘的领域,即使是资深DB
《人间修炼指南》内容简介:为什么看了那么多鸡汤,依然过不好这一生?面对疯狂的世界,在被无力感击溃之后,我们怎么做? 人间到处
《威柄在御》内容简介:“大礼议”之争、追尊生父并为之立庙,是嘉靖帝“天性至情、君亲大义”,还是“醉翁之意不在酒”?李福达狱
《国外计算机科学教材系列•Intel汇编语言程序设计(第5版)》全面细致地讲述了汇编语言程序设计的各个方面。从微处理器体系结构、工
数据库技术教程(三级) 内容简介 本书根据教育部考试中心制订的《全国计算机等级考试 考试大纲(2004年版)》中的“三级(数据库技术)考试大纲”编写,内容包括:...
《蔡澜说美食:学会浅尝二字》内容简介:蔡澜先生说: 吃不饱的菜,最妙。豆那么细小,一颗颗吃,爱惜每一粒的滋味,也爱惜了人生中
物流仓储配送系统设计技巧450问 本书特色 本书通过大量的公式、图形、表格、实例,系统地介绍了物流配送中心、自动化仓库、堆垛机、输送机、储存机械、高密度储存、a...
Manycompaniesrecognizethatpeopleexpecteffortless,engaginginteractionwithdesktopa...
《华与华正道》内容简介:人人都说要走正道,但如何才能走上正道呢?简单来讲,正道就是大道,关键在于知行合一、一以贯之。华与华
《新少儿小提琴集体课教程 第六册》内容简介:本教程里充满了音乐材料,从一开始到结束,都是大家熟知的民间音调和国外音乐材料,很
《围观考古现场》内容简介:翻开这本书之前,请你思考一个问题:考古学究竟是一门怎样的学问?是挖坟掘墓找古董?是翻山越岭看岩壁
《雨夜短文》内容简介:《雨夜短文》余秋雨散文新作,篇幅短小,意境至美。上辑“万里入心”不仅是苦旅足迹遍布四海的余秋雨在空间