出版时间:2009-7 出版社:机械工业出版社 作者:[美] Calvin Lin,[美] Lawrence Snyder 页数:235 译者:陆鑫达,林新华
Tag标签:无
前言
随着多核体系结构的出现和快速发展,使得并行计算科学的硬件基础设施发生了很大变化,如果把并行硬件基础设施看成是“经济基础”,则其相应的上层并行软件就可以视为“上层建筑”。由于“经济基础”的变化,作为其中重要的“上层建筑”之一的并行程序设计技术,必须进行相应的变化以适应新的“经济基础”。因此如何在多核体系结构上进行高效的并行程序设计以充分利用多核所提供的硬件并行性,从而大幅度地提升并行计算性能指标就显得非常重要。本书的主要论题之一便是环绕这一问题展开的。并行程序设计比顺序程序设计要困难得多,一是因为并行程序设计的平台不是唯一的,存在多种不同的并行体系结构,而顺序程序设计只有唯一的冯·诺依曼体系结构;二是因为并行程序有多个进程或线程在同时运行,它们之往往需要进行通信和同步,这就使并行程序设计变得复杂,特别是在要获得线性加速比时尤为如此;三是因为并行程序设计没有顺序程序设计中如C及Java那样通用和普及的并行程序设计语言,因此只能针对不同的体系结构选择使用不同的并行语言或例程库,例如对于共享地址空间的体系结构就必须选择如OpenMP、Java Threads或POSIX Threads那样的语言,而对于分布地址空间的体系结构就不得不选择如MPI或PVM那样的例程库语言。此外若要开发数据并行性,则就需要选用高性能的如Fortran(HPF)那样的语言。本书另一个主要论题便是环绕这一问题展开的。本书侧重论述并行程序设计的基本原理,解释各种现象,并分析为何这些现象意味着成功进行并行程序设计的机遇或是阻碍。并行的硬件基础设施和并行的软件设计环境随着时间的变迁会不断发生变化,但原理则永远不会过时。以原理作为第一要素进行论述是本书的特色之一。本书的另一个特色是,它侧重可扩展性和可移植性,即所设计的并行程序具有在任何数目处理器系统上和在任何并行体系结构平台上运行良好的能力。这一概念在多核时代是非常关键的,这是因为:首先,使得并行计算具有可扩展能力的大多数技术与在多核芯片上生成高效求解的技术是相同的;其次,虽然目前的多核芯片所具有的处理器数目还比较小,通常是2~8个,但今后每个芯片上的核数将会急剧增加,这就使得可扩展并行概念与之直接相关;最后,显然我们应该侧重研究和开发那些在现在和将来都能很好工作的方法。内容非常实用是本书的又一特色。这是因为本书在介绍并行程序设计系统的同时,还叙述如何在这些系统中应用并行程序的设计原理。作者通过自身丰富的实践经验为读者介绍了在从事并行程序设计时应遵循的方法学。译者认为从事并行程序设计者应注重对并行程序设计方法学的了解、掌握,以及有关素质的培养,唯此才能开发出性能良好以及生命力持久的并行程序,并提高编制并行程序的能力和生产率。翻译本书的原因有两个:一是本书的内容相当新,涉及现代的并行硬件和软件技术,包括多核体系结构及其并行程序设计技术;二是本书论述了并行程序设计中的一些深层次问题,如可扩展性、可移植性以及并行程序设计应遵的方法学等。本书的不足之处在于对一些性能问题的定量分析不够充实,此外所介绍的并行机抽象模型也不够全面,只有一个CTA模型。但这些瑕疵并不会影响本书的阅读价值。本书是计算机科学专业本科高年级学生或一年级硕士生的理想教科书,对专业程序员来讲则是从事并行程序设计的一本理想入门书。本书对软件工程师和计算机系统设计师也是非常值得一读的参考书。本书的翻译工作由陆鑫达教授负责和组织。陆鑫达教授翻译了目录、前言、第1~4章以及第10~11 章,林新华老师翻译了第5~9章。译稿全文由陆鑫达教授统稿审校。原书只分章不分节,为方便读者阅读,我们统一进行了分节。值此中译本出版之际,译者特向机械工业出版社华章公司的策划和编辑人员表示深切的谢意。书中的术语翻译,我们尽量采用已公布的计算机科学技术名词(第二版),对于一些未公布的术语(包括一些新出现的术语)我们尽量采用行的译法。由于时间较为仓促,翻译中的错误或不妥之处在所难免,敬请广大读者不吝指正。
内容概要
本书内容新颖,涉及现代并行硬件和软件技术,包括多核体系结构及其并行程序设计技术。本书侧重论述并行程序设计的原理,并论述了并行程序设计中一些深层次问题,如可扩展性、可移植性以及并行程序设计应遵循的方法学等。 本书是高等院校计算机专业高年级本科生或低年级研究生的理想教科书,同时也是专业程序员从事并行程序设计的理想入门书。 多核体系结构的出现使得并行程序设计技术对软件工程师和计算机系统设计师变得日益重要。本书着重论述并行计算的基本原理,解释各种现象,并分析为何这些现象是成功进行并行程序设计的机遇或阻碍。 本书是高等院校计算机专业高年级本科生或低年级研究生的理想教科书,同时也是专业程序员从事并行程序设计的理想入门书。
作者简介
作者:(美国)Calvin Lin (美国)Lawrence Snyder 译者:陆鑫达 林新华
书籍目录
出版者的话推荐序译者序第一部分 基础 第1章 导论 1.1 并行的威力和潜能 1.2 考察顺序程序和并行程序 1.3 使用多指令流实现并行 1.4 目标:可扩展性和性能可移植性 1.5 小结 历史回顾 习题 第2章 认识并行计算机 2.1 用可移植性衡量机器特征 2.2 6种并行机介绍 2.3 顺序计算机的抽象 2.4 PRAM:一种并行计算机模型 2.5 CTA:一种实际的并行计算机模型 2.6 存储器访问机制 2.7 进一步研究通信 2.8 CTA模型的应用 2.9 小结 历史回顾 习题 第3章 性能分析 3.1 动机和基本概念 3.2 性能损失的原因 3.3 并行结构 3.4 性能协调 3.5 性能度量 3.6 可扩展性能 3.7 小结 历史回顾 习题第二部分 并行抽象 第4章 并行程序设计起步 第5章 可扩展算法技术第三部分 并行程序设计语言 第6章 线程程序设计 第7章 MPI和其他局部视图语言 第8章 ZPL和其他全局视图语言 第9章 对并行程序设计现状的评价第四部分 展望 第10章 并行程序设计的未来方向 第11章 编写并行程序术语表参考文献
章节摘录
插图:并行是我们熟悉的一个概念。杂耍(juggling)是人类能完成的一个并行任务。房屋建造是一种并行活动,因为几个工人能同时完成不同的工作,如电线配线、水管安置、锅炉管道安装等等。大多数的工业产品如汽车、吹风器、速冻食品,都以流水线方式进行生产,在流水线上正在建造的许多单件产品是同时进行加工或装配的。呼叫中心则是另一种应用并行的结构,其中有许多雇员在同时为顾客服务。虽然熟悉,但应注意这些并行形式是不同的。例如呼叫中心在本质上与房屋建造有所不同:呼叫通常是独立的,因此能以任意次序提供服务,而且工作人员之间几乎没有交互。而在建房时,某些任务能同时完成,如电线配线和水管安置,而另外一些任务则必须依次进行,例如配线架必须在配线之前进行安装。这种顺序限制了能同时进行的并行量,从而也就限制了一个建设项目完成的进度。顺序性也增加了工人之间的交互程度。制造业的流水线与前两者又有所不同,因为它们有严格的顺序约束,制造产品的各个阶段通常以顺序方式进行,并行性来自干流水线上同时在生产许多单件产品。杂耍则属于事件驱动的并行,当一个事件(一个落下的球)发生时将引起有关操作的执行(抓球、抛球)以响应该事件。这些熟悉的并行形式也将出现在我们要讨论的并行计算中。
编辑推荐
《并行程序设计原理》由机械工业出版社出版。
图书封面
图书标签Tags
无
评论、评分、阅读与下载