搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
并行程序设计导论(原书第2版)/计算机科学丛书
0.00     定价 ¥ 129.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购25本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787111743194
  • 作      者:
    作者:(美)彼得·S.帕切科//马修·马伦塞克|责编:曲熠|译者:黄智濒//肖晨
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2024-05-01
收藏
畅销推荐
内容介绍
并行硬件已经无处不在,但如何在并行环境下编写出高性能的程序,仍然是摆在广大程序员面前的一道难题,特别是,不少计算机科学专业的学生在毕业时甚至没有并行编程的经验。本书尝试解决这个问题。主要面向没有经验的读者,清晰讲解如何设计、调试和评估分布式内存和共享内存程序的性能。 新版更新及特色: 讨论如何利用MPI、Pthreads、OpenMP和CUDA这四种广泛使用的并行编程API来编写并行程序。其中,关于CUDA的章节是全新的。 新增关于GPU编程和异构编程的章节,此外,还新增了与并行程序开发相关的示例和练习。 学习曲线友好,从简单的编程示例开始,逐步构建更具挑战性的示例,关于四种API的章节相互独立,便于读者根据需要选择阅读。 配有丰富的练习和编程作业,所有源代码均可从本书网站免费下载。
展开
目录
译者序
前言
第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.1 缓存基础
2.2.2 缓存映射
2.2.3 缓存和程序:示例
2.2.4 虚拟内存
2.2.5 指令级并行
2.2.6 硬件多线程
2.3 并行硬件
2.3.1 并行计算机的分类
2.3.2 SIMD系统
2.3.3 MIMD系统
2.3.4 互连网络
2.3.5 高速缓存一致性
2.3.6 共享内存与分布式内存
2.4 并行软件
2.4.1 注意事项
2.4.2 协调进程/线程
2.4.3 共享内存
2.4.4 分布式内存
2.4.5 GPU编程
2.4.6 混合系统编程
2.5 输入和输出
2.5.1 MIMD系统
2.5.2 GPU
2.6 性能
2.6.1 在MIMD系统中的加速比和效率
2.6.2 阿姆达定律
2.6.3 MIMD系统的可扩展性
2.6.4 MIMD程序的计时
2.6.5 GPU性能
2.7 并行程序设计
2.7.1 示例
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.2 MPI程序
3.1.3 MPI_Init和MPI_Finalize
3.1.4 通信域、MPI_Comm_size和MPI_Comm_rank
3.1.5 SPMD程序
3.1.6 通信
3.1.7 MPI_Send
3.1.8 MPI_Recv
3.1.9 消息匹配
3.1.10 status_p参数
3.1.11 MPI_Send和MPI_Recv的语义
3.1.12 一些潜在的陷阱
3.2 MPI中的梯形法则
3.2.1 梯形法则
3.2.2 梯形法则的并行化
3.3 处理I/O
3.3.1 输出
3.3.2 输入
3.4 集合通信
3.4.1 树形结构的通信
3.4.2 MPI_Reduce
3.4.3 集合通信与点对点通信
3.4.4 MPI_Allreduce
3.4.5 广播
3.4.6 数据分布
3.4.7 分散
3.4.8 收集
3.4.9 综合实例
3.5 MPI派生的数据类型
3.6 MPI程序的性能评估
3.6.1 计时
3.6.2 结果
3.6.3 加速比和效率
3.6.4 可扩展性
3.7 一种并行排序算法
3.7.1 一些简单的串行排序算法
3.7.2 并行奇偶移项排序
3.7.3 MPI程序中的安全性
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.4 Pthreads栅栏
4.9 读写锁
4.9.1 排序的链表函数
4.9.2 多线程链表
4.9.3 Pthreads的读写锁
4.9.4 各种实现方案的性能
4.9.5 实现读写锁
4.10 缓存、缓存一致性和伪共享
4.11 线程安全
4.11.1 不正确的程序可以产生正确的输出
4.12 小结
4.13 练习
4.14 编程作业
第5章 OpenMP共享内存编程
5.1 入门
5.1.1 编译和运行OpenMP程序
5.1.2 程序
5.1.3 错误检查
5.2 梯形法则
5.2.1 第一个OpenMP版本
5.3 变量的作用域
5.4 归约子句
5.5 parallel指令
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.1 schedule子句
5.7.2 static调度类型
5.7.3 dynamic和guided调度类型
5.7.4 runtime调度类型
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.7 atomic指令
5.8.8 临界区和锁
5.8.9 在消息传递程序中使用锁
5.8.10 critical指令、atomic指令或锁
5.8.11 注意
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证