本书介绍用高性能(并行)计算方法求解大规模工程科学问题的基本知识和基本方法。全书共分五章,分别介绍了并行计算、并行计算机、并行算法以及并行编程的基本知识,以及并行计算对解决大规模工程科学问题的意义;MPI并行程序设计的基础知识及其应用;线性代数方程组直接求解与迭代求解的并行算法,矩阵特征值问题的并行算法以及蒙特卡罗方法的并行算法等;并行数值算法的软件包,包括SuperLU、MUMps和PETs等;最后介绍并行有限元法、并行边界元法以及它们在力学、材料科学、电磁学等领域的应用。
样章试读
目录
- 前言
第一章 并行计算概述
1.1 并行计算及其内容
1.1.1 什么是并行计算
1.1.2 并行计算的内容
1.1.3 推动并行计算发展的主要动力
1.2 并行计算机体系结构
1.2.1 单处理机体系结构
1.2.2 并行计算机的基本概念及其分类
1.2.3 共享存储与分布存储
1.2.4 并行计算机体系结构
1.2.5 超级计算机TOP500
1.3 并行操作系统与编程环境
1.3.1 并行计算机的操作系统
1.3.2 进程、进程间通信与线程
1.3.3 并行编程环境
1.4 并行算法及其设计方法
1.4.1 基本概念与性能参数
1.4.2 并行算法的加速比与效率
1.4.3 并行计算的可扩展性
1.4.4 并行算法设计方法
1.4.5 并行算法的一般设计过程
1.5 并行计算在工程科学中的应用举例
1.5.1 计算力学
1.5.2 并行计算力学
参考文献
第二章 MPI并行程序设计
2.1 MPI简介
2.1.1 MPI的基本概念
2.1.2 MPI目标
2.1.3 MPI历史
2.1.4 MPI的语言绑定
2.1.5 目前主要的MPI实现
2.2 第一个MPI程序
2.2.1 MPI实现的“Hello World!”
2.2.2 MPI程序的一些惯例
2.3 MPI编程基础
2.3.1 MPI基本调用
2.3.2 MPI数据类型
2.3.3 MPI数据类型匹配和数据转换
2.3.4 MPI消息
2.4 MPI程序设计与通信模式
2.4.1 MPI程序设计模式
2.4.2 MPI通信模式
2.5 MPI程序常见错误
2.5.1 程序设计中的错误
2.5.2 运行时的错误
2.6 MPI并行高斯消去法程序
2.6.1 高斯消去法简介
2.6.2 高斯消去法并行算法
2.6.3 并行高斯全主元消去法源程序
参考文献
第三章 并行数值算法基础
3.1 矩阵的划分
3.1.1 一维块状划分
3.1.2 二维块状划分
3.2 并行矩阵向量乘法
3.2.1 串行算法
3.2.2 一维块状划分下的并行算法
3.2.3 二维块状划分下的并行算法
3.3 并行矩阵乘法
3.3.1 串行矩阵乘法
3.3.2 行列划分算法
3.3.3 行行划分算法
3.3.4 列列划分算法
3.3.5 列行划分算法
3.3.6 Cannon算法
3.4 线性代数方程组并行直接求解
3.4.1 稠密线性代数方程组并行LU分解算法
3.4.2 三角形线性方程组的并行求解
3.4.3 Cholesky分解的并行计算
3.5 经典迭代法的并行计算
3.5.1 Jacobi迭代法
3.5.2 Gauss-Seidel迭代法
3.6 MPI Cannon算法程序
3.7 MPI Gauss-Seidel迭代法程序
参考文献
第四章 大型稀疏线性方程组的并行求解
4.1 稀疏矩阵的基本概念
4.1.1 稀疏矩阵的结构
4.1.2 稀疏矩阵与图的关系
4.1.3 稀疏矩阵的存储
4.1.4 稀疏矩阵与稠密向量的乘积
4.2 稀疏线性方程组并行直接求解
4.2.1 Cholesky分解
4.2.2 稀疏Cholesky分解
4.2.3 稀疏Cholesky分解中的并行性
4.2.4 稀疏Cholesky分解的并行算法
4.3 稀疏线性方程组并行迭代求解
4.3.1 CG法
4.3.2 PCG法
4.3.3 PCG法的并行化处理
参考文献
第五章 可移植可扩展科学计算工具箱PETSc
5.1 PETSc工具箱概况
5.1.1 体系结构
5.1.2 基本特色
5.2 PETSc数据结构组件
5.2.1 向量
5.2.2 矩阵
5.3 PETSc方程求解器
5.3.1 线性求解器
5.3.2 非线性求解器
5.3.3 时间步进求解器
5.4 其他重要的PETSc功能
5.4.1 性能分析
5.4.2 运行时选项
5.4.3 阅读器
5.4.4 图形输出
5.4.5 其他软件的接口
5.5 编译PETSc
5.5.1 编译PETSc
5.5.2 调用PETSc
5.6 PETSc的程序示例
5.6.1 程序示例一
5.6.2 程序示例二
5.7 PETSc的FORTRAN编程
5.8 基于PETSc的有限元并行求解器
5.8.1 程序流程
5.8.2 主要并行部分
5.8.3 算例测试
参考文献
第六章 并行线性解法器Aztec
6.1 Aztec解法器概况
6.2 Aztec的使用
6.3 Aztec的数据结构
6.3.1 MSR格式
6.3.2 VBR格式
6.3.3 DMSR和DVBR格式
6.4 其他重要的Aztec功能
6.4.1 数据层次
6.4.2 求解信息重复使用
6.4.3 重要常数
6.4.4 AZ_transform子任务
6.4.5 矩阵自由性能
6.5 安装Aztec
6.5.1 在Linux/Unix上编译Aztec
6.5.2 调用Aztec
6.6 Aztec的程序示例
6.7 基于Aztec的方程组求解并行程序开发
6.7.1 Aztec的FORTRAN编程
6.7.2 基于Aztec的方程组并行求解程序测试
参考文献
第七章 并行有限元法
7.1 有限元法及其并行性分析
7.1.1 有限元法基本原理
7.1.2 有限元法并行性分析
7.2 基于区域分解的有限元并行算法
7.2.1 区域分解算法
7.2.2 子结构方法
7.2.3 SBS方法
7.2.4 基于Schur补的子结构并行算法
7.3 EBE方法
7.4 基于EBE-PCG三维弹性体有限元程序
参考文献