并发程序设计基础教程
2008-12
赵煜辉 北京理工大学出版社 (2008-12出版)
赵煜辉 编
181
无
本书系统介绍了并发程序设计的基础知识,并提供了很多具体应用的例子,以便于读者学习和理解并发程序设计的方法。本书主要面向高年级的本科学生,同时也可以作为研究生的入门教程。通过学习本书,可以使他们学习到并发程序设计的基本知识,同时也可以了解一些具体的开发工具。
本书共3大部分,分为10章,系统介绍了与并发程序设计相关的基础知识,包括硬件组成结构、软件开发工具以及设计并发程序的基本思想。本书提供了很多具体应用的例子,以便于读者学习和理解并发程序设计的方法学。 本书主要面向高年级的本科学生,同时也可以作为研究生的入门教程。
赵煜辉,男,1971年10月出生,东北大学计算机应用博士毕业,北京科技大学博士后(在站),副教授,信息管理与信息系统专业教研室主任。主要从事计算机应用方面研究。
第—部分 基础知识第1章 并行计算机的硬件基础1.1 并行计算机的组成1.2 共享存储器多处理器系统1.3 消息传递多计算机系统第2章 并行计算模型2.1 PRAM2.2 BSP2.3 LogP第3章 并发程序的评测和调试3.1 加速比的计算3.2 时间复杂度的计算3.3 程序的调试和优化第4章 共享存储器系统的程序实现4.1 并行性的构造4.2 数据共享4.3 并行程序设计语言4.4 程序举例第5章 消息传递系统的程序实现5.1 进程创建5.2 基本消息通信5.3 消息传递的时间代价分析5.4 消息传递库的调用5.5 程序举例第二部分 并发程序设计基础第6章 划分和分治6.1 划分和分治策略介绍6.2 应用实例第7章 负载平衡7.1 负载平衡7.2 动态负载平衡7.3 分布式的终止检测7.4 程序举例第8章 流水线技术8.1 流水线技术简介8.2 流水线的应用实例第9章 同步计算9.1 同步的定义9.2 同步计算9.3 同步循环的例子第三部分 具体算法与应用实现第10章 排序算法10.1 基本概念10.2 基于比较一交换的排序算法10.3 在专用网络上的排序附录A Pthread简介A.1 线程管理A.2 互斥锁管理A.3 条件变量管理A.4 读写锁管理附录B OpenMP简介B.1 OpenMP指令简介B.2 parallel——并行区域构造B.3 工作共享构造B.4 合并的并行工作共享构造B.5 同步构造B.6 threadprivate——数据环境指令B.7 数据作用域子句B.8 schedule——调度子句B.9 num_threads子句B.10 子句在指令中的放置附录C PVM简介C.1 系统管理C.2 进程管理C.3 缓存管理C.4 通信相关例程附录D MPI简介D.1 点对点通信D.2 集合通信D.3 组及通信子D.4 系统管理参考文献
插图:3.MIMD和SIMD分类 这种方式是根据指令和数据之间的工作方式来划分并行机系统的。一共有4种,分别如下。单指令流单数据流系统(Single Instruction Stream Single Data Stream,SISD):实际上就是人们非常熟悉的单机系统。单指令流多数据流系统(Single Instruction Stream Multiple Data Streams,SIMD): 这里的单指令流其实是指多个处理器运行完全相同的指令,每个处理器处理的是不同的数据。多指令流单数据流系统(Multiple Instruction Streams Single Data Stream,MISD):这种类型实际是不存在的。多指令流多数据流系统(Multiple:InstaaJction Streams.Multiple Data Streams,MIMD):系统中的每个处理器执行的指令和处理的数据都不同。目前,大多数的并行机系统都属于这种类型,比如前面提到的MPP和集群系统。MIMD类型的并行系统有下面两个优点。(1)MIMD系统在使用上有很大的灵活性。它既可以作为一个单用户系统,为用户提供高性能的服务;也可以作为多用户系统,同时执行多个不同的应用程序,为多个用户提供服务。(2)MIMD系统可以获得较高的性价比。因为构建一个MIMD系统可以使用通用的商用部件,比如集群系统完全可以用普通的局域网来构建。而SIMD系统一般要使用专用的CPIJ,因而价格昂贵。1.1.2静态网络连接结构对于大型的并行机系统,要使用多个处理器/存储器模块,这些模块之间通过一定的网络结构相互联系。网络结构一般可以分为两种:静态网络连接结构和动态网络连接结构。本节介绍静态网络连接结构,1.1-3节介绍动态网络连接结构。静态互联网络是指网络连接方式是固定的,不能改动。常用的静态网络连接结构有以下几种:完全连接;线状/环状连接;网格/花环连接;超立方体连接;树状连接。此外,还可以采用嵌入(Embedding)技术,将一种网络连接结构映射为另一种逻辑网络连接结构。1.完全连接完全连接结构是指两两节点之间都有一条物理链路。因此,需要n(n-1)/2条链路。这种结构的优点是消息延迟最小,因为任何两个节点之间的通信,只需要经过一条链路,而不必通过中间节点传送。但当节点数比较多时,这种方法代价很大,不经济,而且也很难布线。所以实际的并行机都采用连接个数有限的连接方式。2.线状/环状连接如图l_4所示,最简单的连接方式是将节点依次顺序连接,从0到Ⅳ。这种结构无法提供容错性能,任何一条链路失效,都将导致数据无法从失效点的一端传到另一端。如果把线状连接的两端也连接起来,就形成了环状连接。由于从一个节点到另一个节点有两条路径,所以有一定的容错能力。一条链路失效,数据仍可以传送。
《并发程序设计基础教程》主要面向高年级的本科学生,同时也可以作为研究生的入门教程。通过学习《并发程序设计基础教程》,可以使他们学习到并发程序设计的基本知识,同时也可以了解一些具体的开发工具。
无
相对来说还是不错的!
这本书太令人失望了,本来以为是编程方面的,是那种东拼西凑的东西!