一、并行计算的定义
1、定义
并行计算是指同时对多个任务或多条指令、或对多个数据项进行处理。完成此项处理的计算机系统称为并行计算机系统,它是将多个处理器(可以几个、几十个、几千个、几万个等)通过网络连接以一定的方式有序地组织起来(一定的连接方式涉及网络的互联拓扑、通信协议等,而有序的组织则涉及操作系统、中间件软件等)。
2、并行计算的主要目的
一是为了提供比传统计算机快的计算速度;
二是解决传统计算机无法解决的问题。
二、并行计算的研究内容
并行计算的研究内容广泛,包括并行计算机系统结构、并行算法设计、并行编程环境等,具体表现在下面几个方面:
1、并行计算机的设计
包括并行计算机的结构设计、互联拓扑、网络通信等。设计并行计算机重要的一点要考虑处理机数目的按比例增长(即可扩展性)及支持快速通信及处理机间的数据共享等。
2、有效算法的设计
如果没有有效的并行算法,并行计算机无法使用,而并行算法的设计完全不同于串行算法的设计,不同的并行计算机的算法设计不同。只有将不同的并行计算机与不同的实际问题相结合,才能设计出有效的并行算法。主要研究内容包括并行计算模型、并行算法的一般设计方法、基本设计技术和一般设计过程,并讨论一些数值并行算法与非数值并行算法的设计。
3、评价并行计算机的方法
对于给定的并行计算机及运行在上面的并行算法,需要评价运行性能。性能分析需解决的问题:如何利用基于并行计算机及其相适应的并行算法去快速地解决问题,及如何有效地利用各个处理器。研究内容包括结合机器与算法,提出相应的性能评测指标,为设计高效的并行算法提供依据。
4、并行计算机语言
与传统的机器语言不同,并行计算机语言依赖于并行计算机,并行计算机语言必须简洁,编程容易,可以有效地实现,目前的语言有:PVM、MPI、HPF等,而且新的编程语言和编程模式正在不断地出现。
5、并行编程环境与工具
为了使编程容易,必须开发综合的编程环境与工具,且能达到两个目的:并行计算机的底层机构对用户透明;为用户提供设计与开发程序所需要的调试器与模拟器等工具。
6、并行程序的可移植性
可移植性为并行程序设计的主要问题,要求在一台并行机上开发的程序不加修改或进行少量修改即可在另一台计算机上运行。这一点为目前受到了广泛关注的重要课题。
7、并行计算机的自动编程
可否设计一个并行化编译器,使用户的串行程序通过并行化编译器编译,直接可在并行机上运行。到目前为此,这种编译器还不存在,而仅有一些半自动并行化编译器。
三、并行计算机的应用范围
并行计算在许多计算机应用领域都产生了巨大的影响,使原来无法解决的应用问题成为可能。
应用范围
天气预报、卫星数据处理、石油数据处理(连续优化问题),调度问题、平面性问题及VLSI设计(离散优化问题)、生物工程、医药研究、飞机制造、汽车设计、环境保护等领域。
四、并行计算的应用分类
科学与工程计算对并行计算的需求是十分广泛的,但所有的应用可概括为三个方面:
1、计算密集型(Compute-Intensive)
这一类型的应用问题主要集中在大型科学工程计算与数值模拟(气象预报、地球物理勘探等)
2、数据密集型 (Data-Intensive)
Internet的发展,为我们提供了大量的数据资源,但有效地利用这些资源,需要进行大量地处理,且对计算机的要求也相当高,这些应用包括数字图书馆、数据仓库、数据挖掘、计算可视化。
3、网络密集型 (Network-Intensive)
通过网络进行远距离信息交互,来完成用传统方法不同的一些应用问题。如协同工作、遥控与远程医疗诊断等。