内容简介
《多核并行高性能计算 OpenMP》主要介绍了共享内存并行编程0penMP的基本原理,采用实例方式讲解在Fortran语言环境中0penMP并行程序的编写和运行,并综合评述了高性能计算编程中遇到的常见问题和解决方案。
《多核并行高性能计算 OpenMP》面向实际应用,简洁易学,使读者能够亲身感受到并行计算的魅力。
《多核并行高性能计算 OpenMP》为计算机专业本科教材、高性能计算领域的理工科高年级本科生和研究生的并行计算课程教材,也可以作为从事并行计算研究、设计和开发的教师和工程师的专业参考书。
目录
1 并行计算概论
1.1 多核CPU
1.2 并行计算与分布式计算
1.3 并行计算机的种类
1.3.1 CPU与存储器的连接方式
1.3.2 数据的通信方式
1.3.3 指令和数据之间的工作方式
1.4 并行编程模式
1.4.1 共享内存模式
1.4.2 消息传递模式
1.4.3 数据并行模式
1.5 OpenMP和MPI的特点
1.6 并行计算中常用概念
1.6.1 程序、线程、进程和超线程
1.6.2 单核编程和多核编程
1.6.3 多线程编程和多进程编程
1.6.4 并行算法评价
1.7 OpenMP多核编程
1.7.1 OpenMP的历史
1.7.2 OpenMP的特点
1.8 科学计算领域语言的选取
1.9 Fortran发展历史
1.9.1 Windows系统
1.9.2 Iinux系统
1.9.3 Fortran程序的编译和执行
1.1 0小结
练习题
2 OpenMP编程简介
2.1 编译指导语句
2.2 并行执行模式
2.2.1 编译指导语句格式
2.2.2 主要指令
2.2.3 主要子句
2.2.4 指令和子句的配套使用
2.3 头文件
2.4 常用库函数
2.5 最简单的并行程序
2.6 小结
练习题
3 数据环境
3.1 PRIVATE子句、SHARED子句和DEFAULT子句
3.2 FIRSIPRIVATE子句和LASFPRIVATE子句
3.3 THREAIPRIVATE子句
3.4 COPYIN子句和COPYPRIVATE子句
3.5 REDUTION子句
3.6 伪共享
3.7 小结
练习题
4 并行控制
4.1 PARALIJEL指令
4.2 设定线程数量
4.3 默认模式
4.4 静态模式
4.5 动态模式
4.6 嵌套模式与NuMJHREADS子句
4.7 IF子句(条件并行)
4.8 小结
练习题
5 并行构造
5.1 负载平衡
5.1.1 静态负载平衡
5.1.2 动态负载平衡
5.2 D0指令
5.2.1 循环依赖
5.2.2 单重循环
5.2.3 嵌套循环
5.2.4 循环工作量的划分与调度
5.3 SEClIONS指令
5.4 WORKSHARE指令
5.5 SINGLE指令
5.6 小结
练习题
6 线程同步
6.1 互斥锁机制
6.2 事件同步机制
6.3 BARRIER指令
6.4 NOWAIT指令
6.5 MASTER指令
6.6 CRITICAL指令
6.7 ATOMIC指令
6.8 ORDERED指令
6.9 FIUSH指令
6.10 小结
练习题
7 运行环境
7.1 环境变量
7.1.1 OMP—DYNAMIC
7.1.2 OMP—SCHEDtILE
7.1.3 OMF一NUMTHREADS
7.1.4 OMP—NESTED
7.1.5 OMP—STACKSIZE
7.1.6 环境变量的设置方法
7.2 库函数
7.2.1 运行环境操作函数
7.2.2 OpenMP时间函数
7.2.3 Fortran常用时间函数
7.2.4 锁函数
7.3 小结
练习题
8 OpenMP3.O新特征
8.1 任务
8.1.1 任务结构
8.1.2 任务特征
8.1.3 任务类别
8.1.4 任务同步
8.1.5 DO指令、SECTIONS指令和TASK指令
8.1.6 TASK指令与递归算法
8.2 COLLAPSE子句
8.3 锁拥有者的变迁
8.4 小结
练习题
9 应用实例
9.1 循环的并行
9.1.1 单重循环
9.1.2 多维数组和嵌套循环
9.2 粗粒度的设置
9.2.1 IF子句
9.2.2 if语句
9.2.3 方案总结
9.3 全局变量和局部变量
9.3.1 common定义
9.3.2 module定义
9.3.3 全局变量和局部变量、共享变量和私有变量
9.3.4 私有变量和段错误
9.4 小结
练习题
10 高性能计算程序的实现途径
10.1 硬件条件和操作系统
10.2 科学问题算法的优化
10.2.1 数学模型
10.2.2 求解方法
10.3 串行程序的编写
10.4 常见的调试器
10.5 高性能程序的优化步骤
10.6 串行程序的正确性调试
10.6.1 程序的错误类型
10.6.2 计算程序中常见错误
10.6.3 静态安全检查
10.6.4 动态安全检查
10.6.5 IDBC串行调试
10.7 程序热点的确定
10.7.1 编译器热点分析报告
10.7.2 手动热点分析报告
10.8 串行程序的优化
10.8.1 循环变换
10.8.2 向量化
10.8.3 IntelFortran常用优化策略
10.9 并行程序的优化
10.9.1 性能提升的预估
10.9.2 并行优化步骤
10.9.3 向导自动并行化(GAP)
10.9.4 优化技术
10.9.5 自动并行化
10.9.6 并行调试策略
10.9.7 IDBC并行调试
10.10 小结
练习题
附录
附录1 常用的L,inux命令
附录2 Linux下的文本编辑器vi
附录2.1 vi的基本概念
附录2.2 vi的主要操作
附录3 Intel:Fortran安装
附录4 常用的GDB命令
附录5 Linux环境下IntelFon=ran常用编译方案
附录6 IntelFollran常用编译开关
附录7 C和c++语言中OpenMP常见用法
附录7.1 语法格式
附录7.2 头文件
附录7.3 指令类
附录7.4 子句类
附录7.5 库函数
附录7.6 最简单的C/C++并行程序
附录7.7 OpenMP并行程序的编译和执行
参考文献
前言/序言
多核并行高性能计算 OpenMP 电子书 下载 mobi epub pdf txt