课程介绍:
MPI(Message Passing Interface)是目前最重要的一种并行编程工具和环境,几乎所有重要的并行计算机厂商都提供对它的支持,MPI将功能、高效和移植性三个重要而又有一定矛盾的方面很好地融为一体,这是MPI能够取得成功的重要原因。
SIMD/MIMD并行计算机:
指令和数据是计算机解决问题所涉及到的两个基本方面,即让计算机"执行什么"样的操作和对"什么对象"执行相应的操作,虽然现在计算机有了很大的发展,但他们仍然有重要的地位和作用,这也是为什么指令数据的划分方式至今仍在使用的重要原因。不管是同时执行多条指令,还是同时处理多个数据,具有这样功能的计算机都可以称为并行计算机。
根据一个并行计算机能够同时执行的指令与处理数据的多少,可以把并行计算机分为SIMD(Single-Instruction
Multiple-Data)单指令多数据并行计算机和MIMD(Multiple-Instruction
Multiple-Data)多指令多数据并行计算机。
举例说明SIMD计算机的功能
SIMD计算机同时用相同的指令对不同的数据进行操作,比如对于数组赋值运算
A=A+1
在SIMD并行机上可以用加法指令同时对数组A的所有元素实现加1。即数组(或向量)运算特别适合在SIMD并行计算机上执行,SIMD并行机可以对这种运算形式进行直接地支持,高效地实现。
举例说明MIMD计算机的功能
MIMD计算机同时有多条指令对不同的数据进行操作,比如对于算术表达式
A=B+C+D-E+F*G
可以转换为
A=(B+C)+(D-E)+(F*G)
加法(B+C),减法(D-E),乘法(F*G)如果有相应的直接执行部件,则这三个不同的计算可以同时进行。
SPMD/MPMD并行计算机
SIMD和MIMD这种表达方法虽然至今还在广泛使用,但是,随着新的并行计算机组织方式的产生,比照上面的划分方法,人们按同时执行的程序和数据的不同,又提出了SPMD(Single-Program Multuple-Data)单程序多数据并行计算机和MPMD(Multiple-Program Multiple-Data)多程序多数据并行计算机的概念。
并行计算机的分类:
共享内存的并行计算机
对于共享内存的并行计算机,各个处理单元通过对共享内存的访问来交换信息、协调各处理器对并行任务的处理。对这种共享内存的编程,实现起来相对简单,但共享内存往往成为性能特别是扩展性的重要瓶颈。
分布式内存的并行计算机
对于分布式内存的并行计算机,各个处理单元都拥有自己独立的局部存储器,由于不存在公共可用的存储单元,因此各个处理器之间通过消息传递来交换信息,协调和控制各个处理器的执行。这是本书介绍的消息传递并行编程模型所面对的并行计算机的存储方式。不难看出,通信对分布式内存并行计算机的性能有重要的影响,复杂的消息传递语句的编写成为在这种并行计算机上进行并行程序设计的难点所在,但是,对于这种类型的并行计算机,由于它有很好的扩展性和很高的性能,因此,它的应用非常广泛。
分布式共享内存的并行计算机
分布式共享内存的并行计算机结合了前两者的特点,是当今新一代并行计算机的一种重要发展方向。对于目前越来越流行的机群计算(Cluster Computing),大多采用这种形式的结构。通过提高一个局部结点内的计算能力,使它成为所谓的"超结点",不仅提高了整个系统的计算能力,而且可以提高系统的模块性和扩展性,有利于快速构造超大型的计算系统。以下是图表示:
物理问题在并行计算机上的求解步骤是怎样的?
多级映射
没学过并行计算机,哎,还是要去找一些资料来看看,要不学不明白