
http://www.ccf.org.cn
行程序设计。集中表现在上述几本书的作者,有的在书名中更强调了并行计算而出版了第二版,有
的将内容扩充,另出版了新书
[10-13]
。尽 管 并行算法的研究历史似乎有些起伏,但一直在前进发展着,
而且更面向实用。
并行算法研究的新机遇与新挑战 近几年来,随着半导体器件工艺水平的提高,计算技术和通
信网络的迅速发展,双 CPU 或 4CPU 的高档机已随处可见;而大学和研究所的各专业实验室中,自
行用多台 PC 机搭建的机群系统也越来越多。随着现今并行机的普及,并行机的用户要求学习和使
用并行算法也甚为迫切,这就给我们研究并行算法带来新的机遇,它将使并行算法的研究产生一个
新的飞跃。与此同时,近几年来由于硬件技术的飞速发展,使得拥有成千上万个 CPU 的高端并行机
相继研制成功。如何充分有效地利用如此巨量的 CPU,成为并行算法研究面对的一个极富挑战性的
问题。
当今并行算法研究的主要内容
当今并行算法主要研究内容包括并行计算模型、并行算法设计技术和并行复杂性理论等
[14]
。
并行计算模型 并行计算模型是从不同并行计算机体系结构中抽象出来的、供并行算法设计者
使用的一种抽象的并行机。任何模型均必须提供为数不多的、能反映并行机计算特性的且可以定量
计算出或实际测量出的一组参数,并按照模型所定义的计算行为构造成本函数,以此进行算法的复
杂度分析。常用的并行计算模型有共享存储的模型,包括共享存储的 SIMD 同步 PRAM
4
模型和共享
存储的 MIMD
5
异步 APRAM
6
模型;分布式存储模型,包括分布存储的 MIMD 大同步 BSP
7
模型和异
步 LogP
8
模型等
[15]
;分布共享存储模型,包括分布存储的 MIMD 均匀存储层次 UMH
9
模型和扩充 logP
存储 Memory-logP 模型以及分布式存储层次 DRAM(h)
10
模型等
[16]
。其中 PRAM 是算法界最常用
的抽象模型,但不太实用;BSP 和 LogP 等能反映大规模并行机的通信特性;UMH、Memory-logP
和 DRAM(h)等能反映近代主流并行机的多层次存储特性。此外,对于松散耦合的并行系统(如
基于局域网连接的 PC 机群等),也提出了异构非独占使用方式的分时计算模型。至于基于广域网连
接的网格计算系统,目前尚没有像前述那样的计算模型。
基本设计技术 并行算法设计技术尽管理论上不是很成熟,带有一定的技巧性,但也不是无章
可循。经过多年的发展,已经总结出了一些基本的、带有普适性的并行算法设计技术。归纳起来有:
划分法(Partitioning)是设计并行算法最自然朴素的方法,系将一个计算任务分解成若干个规模大
致相等的子任务而并行求解;分治法(Divide-and-Conquer)是求解大型问题的一种策略,系将一个
大而难的问题,逐次化为一些小规模可求解的子问题而递归求解;流水线法(Pipelining)是一种基
于 空 间 并行和时间重叠的问题求解技术,是并行处理技术中普遍使用的方法;随机法
(Randomization)是一种不确定性算法,在算法设计步中引入随机性,从而可望得到平均性能良好、
设计简单的并行算法;平衡树法(Balanced Tree)、倍增法(Doubling)和破对称法(Symmetry Breaking)
4
Parallel Random Access Machine (PRAM) 并行随机访存机器
5
Multiple Instruction Multiple Data (MIMD) 多指令多数据流
6
Asynchronous Parallel Random Access Machine (APRAM) 异步并行随机访存机器
7
Bulk Synchronous Parallel (BSP) 大同步并行
8
由大卫·库勒(David Culler)、理查德·卡普(Richad M. Karp)等人提出的一种并行计算模型,其特点是考虑并
行机的实际参数如延迟(latency)、消息传递开销(overhead)、消息传递间隙(gap)、处理器及内存模块数目( number
of processor/memory modules)等
9
Uniform Memory Hierarchy
10
Distributed Random Access Machine 分布式随机访存机器,h 表示存储的层次数目
评论