第一章 并行计算机发展的现状与趋势 1
1.1 并行计算机的类型 1
1.1.1 SISD 型计算机 2
1.1.2 SIMD 型计算机 2
1.1.3 共享内存MIMD多处理机 3
1.1.4 分布工存储MIMD多处理机 3
1.2 若干分布式国产并行计算机简介 5
1.2.1 BJ-02 5
1.2.2 BJ-1 6
1.2.3 江南3号 7
1.2.4 曙光1000 9
1.3 国际上若干高性能大规模并行机介绍 11
1.3.1 Paragon XP/S 11
1.3.2 CM-5E 13
1.3.3 T3D 15
1.3.4 SP2 17
1.4 计算机性能评估与测试程序 19
1.4.1 基本测试程序 20
1.4.2 Linpack 22
1.4.3 其它测试程序 22
1.5 全世界500 台最高性能计算机统计分析 23
8.2.3 libpvm 中的消息 25
第二章 网络计算平台 27
2.1 计算机网络简介 27
2.1.1 常用的计算机网络 27
2.1.2 TCP/IP协议 29
2.2 Internet及其网络服务 30
2.2.1 Internet 的网络服务器 30
2.2.2 网络计算机数据库Netlib与NHSE 31
2.3 中科院网络计算平台NCFC与LSEC 33
2.3.1 中国国家计算与网络设施NCFC 33
2.3.2 科学与工程计算国家重点实验室LSEC 35
2.4 网络并行与可移植的消息传递环境 36
2.4.1 网络并行的优点 36
2.4.2 可移植的异构编程环境PVM 37
2.4.3 消息传递标准平台MPI 37
2.4.4 其它可移植的编程环境 39
第三章 并行计算概论 40
3.1 高性能计算与并行计算 40
3.1.1 并行处理是大型科学工程计算之必需 40
3.1.2量美国HPCC计划 41
3.2 并行算法的基本概念 42
3.2.1 并行算法的目标 42
3.2.2 并行加速比定律与可扩展性 42
3.2.3 并行算法的分类 45
3.3.1 网络并行编程的基本模式 46
3.3 并行编程的基本方法 46
3.3.2 负载平衡的基本方法 48
3.4 并行计算方法是研制高效并行数值软件的基础 50
3.4.1 并行计算的技术路线 50
3.4.2 关于"分面治之"的原则与重新排序 51
3.5 并行计算模型 53
3.5.1 LogP 计算模型 53
3.5.2 C3 计算模型 53
3.6 并行测试程序NAS 与PARKBENCH 53
3.6.1 并行测试程序NAS 内容简介 53
3.6.2 并行测试程序PARKBENCH 54
3.6.3 NAS的最新测试结果 55
4.1 Schwarz方法及其并行化 62
4.1.1 基本思想 62
第四章 区域分解法 62
4.1.2 模型问题 63
4.1.3子区域分解 63
4.1.4经典Schwarz方法 64
4.1.5并行Schwarz算法 65
4.2无重叠区域分解法 65
4.3加法Schwarz预条件子迭代 67
4.3.1子区域预条件子 68
4.3.2粗网格预条件子 69
第五章 矩阵相乘的若干并行算法 71
5.1 矩阵相乘的若干并行算法 71
5.1.1行列划分算法 72
5.1.2行行划分算法 72
5.1.3列列划分算法 73
5.1.4 列行划分算法 73
5.1.5 Cannon算法 74
5.2.1 分布式系统的试行LU分解算法 75
5.2 线性方程式组的解法 75
5.2.2 具有共享存储系统的并行LU分解 77
5.2.3 三角方程组的并行解法 78
5.3 对称正定线性方程组的并行解法 80
5.3.1 Cholesky 分解列格式的并行计算 80
5.3.2 双曲变换Cholesky 分解 81
5.3.3 修正的双曲变换Cholesky 分解 83
5.4 三对角方程组的并行解法 84
5.4.1 递推法 84
5.4.2 分裂法 86
5.5 异步并行迭代法 87
5.5.1 异步并行迭代法基础 87
5.5.2 线性迭代的一般收敛性结果 88
5.6 矩阵乘积的Occam语言程序 89
5.6.1 串行矩阵乘法程序 89
5.6.2 并行矩阵乘法程序 90
6.1 PVM的安装 93
第六章 PVM 安装调试及应用程序编译链接 93
6.2 PVM控制台 96
6.3 PVM的配置与调试 98
6.4 PVM 应用程序的编译\链接与运行 100
第七章 PVM 消息传递用户界面 103
7.1 进程控制 103
7.2 虚拟机动态配置 106
7.3 消息传递 108
7.3.1 消息缓冲区 108
7.3.2 数据打包 109
7.3.3 发送与接收 111
7.3.4 数据拆包 112
7.4 任务组 113
7.5 编程实例 114
7.6 XPVM 118
第八章 PVM系统的实现及网络性能 121
8.1 PVM 的构件 121
8.1.1任务标识符 121
8.1.2 结点机类型 122
8.1.3 消息模式 122
8.1.4 异步通告 122
8.2.1 消息片与数据缓冲区 123
8.1.5 PVM Daemon 和程序库 123
8.2 PVM 的消息 123
8.2.2 包缓冲区 124
8.2.4 pvmd 中的消息 125
8.2.5 pvmd中的消息处理 126
8.2.6 用于控制的消息 126
8.3 PVM Daemon 127
8.3.1 启动与终止 127
8.3.2 机器表与机器的配置 127
8.3.4 等待现场 128
8.3.3 任务表 128
8.3.5 pvmd 的影子 pvmd' 129
8.3.6 启动从 pvmd 129
8.3.7 资源管理器 131
8.4 PVM 的通信协议 132
8.4.1 消息的头 132
8.4.2 pvmd - pvmd 通信 132
8.4.3 pvmd -task 和 tasd-task 的通信 133
8.5 消息路由 134
8.5.1 pvmd 134
8.5.3 libpvm 135
8.5.2 pvmd 与远程的任务 135
8.5.4 广播 136
8.6 任务环境 136
8.6.1 环境变量 136
8.6.2 标准输入输出 137
8.6.3 跟踪 138
8.7 资源的限制 138
8.7.1 PVM Daemon的限制 138
8.7.2 任务的限制 139
8.8 PVM网络性能测试 139
8.9 并行NAS性能测试 142
第九章 Linux操作系统与微机网络并行计算环境 144
9.1 Linux 操作系统简介 144
9.2 Linux 操作系统的安装 145
9.2.1 安装时的启动 147
9.2.2 硬盘的分区 148
9.2.3 基本系统安装与配置 149
9.2.4 其它模块的安装 155
9.3 X窗口的安装 156
9.3.1 X窗口系统XFree86 的安装 156
9.3.2 配置文件XF86Config的格式 156
9.3.3 X窗口系统的启动 160
9.3.4 XF86Config文件的配置与调试 161
9.4.1 退出与关机 162
9.4 Linux系统的使用 162
9.4.2 虚拟终端 163
9.4.3 X窗口与虚拟终端 163
9.4.4 随机资料 163
9.4.5 使用LoadLin启动 Linux 系统 163
9.5 Linux 的C与Fortran编译器 164
9.6 微机上的PVM系统 165
第十章 PVM应用实例 167
10.1 随机数发生器 167
10.2 矩阵乘积 167
10.3.1 差分方程式与多重网格算法 168
10.3 多重网格法 168
10.3.2 区域划分 169
10.3.3 PVM程序简介 170
10.3.4 输出结果实例 172
附录A PVM3.3.7子程序说明 174
附录B 若干PVM应用程序 188
B.1 随机数发生器PVM程序 188
B.2 矩阵乘积PVM程序 189
B.3 三维多重网格PVM程序 197
参考文献 220
索引 223