目 录 1
第一章绪论 1
§1.1并行处理计算机 1
1.1.1并行处理 1
1.1.2并行处理计算机 2
§1.2并行程序设计语言和模型 4
1.2.1并行程序设计存在的问题 4
1.2.3新的并行程序设计语言 5
1.2.2传统串行语言的扩展 5
1.2.4独立于结构的并行程序设计模型 6
第二章并行程序设计语言 7
§2.1 Occam语言 7
2.1.1 Transputer简介 7
2.1.2 Occam语言 8
2.1.3 Occam并行程序设计实例 16
§2.2并行C语言 19
2.2.1概述 19
2.2.2并行C语言 20
2.2.3并行C程序设计实例 24
§2.3 并行FORTRAN语言 27
2.3.1并行FORTRAN语言 27
2.3.2并行FORTRAN程序设计实例 29
§2.4 并行关系LISP语言(PARALATION LISP) 32
2.4.1 COMMON LISP简介 32
2.4.2并行关系LISP代码 33
2.4.3并行关系LISP词汇 39
3.1.1什么叫并行关系模型 46
3.1.2为什么要提出并行关系模型 46
第三章并行关系模型 46
§3.1 引言 46
3.1.3并行关系模型简介 47
§3.2数据结构与域 49
3.2.1域——新的顺序数据结构 49
3.2.2域的性质 51
3.2.3并行关系的性质 51
3.2.5域的读入 52
3.2.4索引 52
3.2.6局部性 53
§3.3逐元求值 53
3.3.1副作用 54
3.3.2同步 54
3.3.3 elwise错误 55
3.3.4 elwise变量的词法指定 57
3.3.5 elwise和λ表达式 58
§3.4通信 59
3.4.1匹配与映象 60
3.4.2 目标结点之间的相互作用 64
§3.5词典查询代码与术语 65
3.5.1词典查询代码 65
3.5.2库函数:vref 66
3.5.3库函数:choose 68
3.5.4 elwise的约束缩写 69
3.5.5把“域”作为序列处理 70
3.6.1筛选质数 71
§3.6程序设计实例 71
3.6.2集合上的操作 72
§3.7并行关系模型的通用性 74
3.7.1提高并行关系模型通用性的策略 74
3.7.2处理中的问题及其解决方法 74
3.7.3通信中的问题及其解决方法 75
3.7.4增强精确性 75
3.8.1什么是形状 76
§3.8形状 76
3.7.5进程间的同步 76
3.8.2并行关系模型的形状 79
3.8.3应用 84
第四章基于并行关系模型的程序设计 87
§4.1引言 87
§4.2层次结构 88
4.2.1嵌套循环 88
4.2.2搜索状态空间 89
4.2.3模型与欲解问题的结构 97
§4.3程序设计风格 98
4.2.4局部性的继承 98
4.3.1副作用实例 99
4.3.2作用式风格 100
4.3.3语言对程序设计风格的影响 101
§4.4程序设计的其他原则 102
4.4.1简明性、规范性和正交性 102
4.4.2零-壹-无穷 103
4.4.3信息保护 103
4.4.4费用局部化 104
4.4.7信息隐蔽 105
4.4.5可移植性 105
4.4.6结构 105
4.4.8标号 106
4.4.9自动化和抽象 106
§4.5程序复杂性 107
4.5.1并行复杂性 108
4.5.2并行关系程序的复杂性 109
§4.6传统程序设计的困境 111
4.7.1质数生成器 112
§4.7并行关系模型的应用实例 112
4.7.2快速分类算法 114
4.7.3在I/O系统中的应用 122
4.7.4最短路径算法 125
§4.8形式化的描述 128
4.8.1概述 128
4.8.2操作语义 130
4.8.3为提供方便而设置的语义 141
5.1.1为什么需要描述实现 145
§5.1 引言 145
第五章并行关系模型的实现策略 145
5.1.2何种语言为基语言 146
5.1.3虚拟处理器 146
§5.2数据结构和域的实现 147
5.2.1嵌套域 148
5.2.2可继承的局部性 149
5.2.3映象表示 150
5.3.1 SIMD elwise 151
§5.3逐元求值的实现 151
5.3.2 MIMD elwise 152
5.3.3信息传递 152
5.3.4共享内存 154
5.3.5并行关系结点间的干扰 154
§5.4匹配与移动的实现 155
5.4.1 匹配 155
5.4.2利用标准映象实现高效串行移动 158
5.4.4并行硬件的效率 160
5.4.3并行移动 160
§5.5库函数的实现 161
5.5.1概述 161
5.5.2习语提取 162
§5.6并行关系模型的实现 162
5.6.1概述 162
5.6.2理想目标机 162
5.6.3连接机并行关系LISP的编译器 163
6.1.2通用性 164
6.1.1等价模型 164
§6.1并行关系模型的重要作用 164
第六章多种并行程序设计模型的比较 164
6.1.3非冗余性 167
6.1.4几种可选择的并行关系模型 168
6.1.5并行关系模型的贡献 170
§6.2并行关系模型与其他几种并行程序设计模型的比较 173
6.2.1语言比较 173
6.2.2 APL:早期的显式并行模型 173
6.2.3PRAM/MIMD程序设计模型 175
6.2.4 SIMD程序设计模型 176
6.2.5隐式并行模型 180
6.2.6面向对象的语言 183
6.2.7 C*语言 183
6.2.8连接机LISP 184
6.2.9 Multi LISP 187
6.2.10 FORTRAN 8x 数组扩展 187
6.2.11关系数据库语言 189
6.2.12并行性和语言设计 190