当前位置:文档之家› 并行计算的基本原理

并行计算的基本原理


并行计算的特点
为利用并行计算,通常计算问题表现为以下特征: 为利用并行计算,通常计算问题表现为以下特征: (1)将工作分离成离散部分,有助于同时解决; )将工作分离成离散部分,有助于同时解决; (2)随时并及时地执行多个程序指令; )随时并及时地执行多个程序指令; (3)多计算资源下解决问题的耗时要少于单个计算资源下的耗时。 )多计算资源下解决问题的耗时要少于单个计算资源下的耗时。 并行计算是相对于串行计算来说的, 并行计算是相对于串行计算来说的,所谓并行计算分为时间上的并行和 空间上的并行。 时间上的并行就是指流水线技术, 空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用 多个处理器并发的执行计术语(2)
Shared Memory(共享内存): ):完全从硬件的视角来描述计算机体系 (共享内存): 结构,所有的处理器直接存取通用的物理内存(基于总线结构)。在 编程的角度上来看,他指出从并行任务看内存是同样的视图,并且能 够直接定位存取相同的逻辑内存位置上的内容,不管物理内存是否真 的存在。 Symmetric Multi-Processor(对称多处理器): ):这种硬件体系结构 (对称多处理器): 是多处理器共享一个地址空间访问所有资源的模型;共享内存计算。 Distributed Memory(分布式存储): ):从硬件的角度来看,基于网络 (分布式存储): 存储的物理内存访问是不常见的。在程序模型中,任务只能看到本地 机器的内存,当任务执行时一定要用通信才能访问其他机器上的内存 空间。 Communication:并行任务都需要交换数据。有几种方法可以完成, : 例如:共享内存总线、网络传输,然而不管用什么方法,真实的数据 交换事件通常与通信相关。 Synchronization:实时并行任务的调度通常与通信相关。总是通过 : 建立一个程序内的同步点来完成,一个任务在这个程序点上等待,直 到另一个任务到达相同的逻辑设备点是才能继续执行。同步至少要等 待一个任务,致使并行程序的执行时间增加。
并行计算的术语(3) 并行计算的术语
Observed Speedup:测量代码并行化之后的加速比。这是最简单也 最广泛使用的测量并行程序性能的方法。 Parallel Overhead(并行开销):对并行任务调度花费的时间没有做 (并行开销) 有用的工作。并行开销可以包含如下因素:任务启动时间、同步、数 据通信、并行编译器、库、工具、操作系统等花费的软件开销,任务 终止的时间等。 Scalability:指的是并行系统通过增加更多的处理器的个数按比例提 高并行性能的能力。促进可扩展性的因素有:硬件——特别是内存、 CPU带宽和网络通信,应用程序算法,相关的并行开销、特定的应用 和编码方式的特征。 Multi-core Processors:一个CPU上有多个处理器。 Cluster Computing:用一般的处理器单元(处理器、网络、SMP) 来构建并行系统。 Supercomputing / High Performance Computing(高性能计算): (高性能计算) 使用世界上最快最大的机器来解决大规模的问题。
并行计算机的分类
并行计算科学中主要研究的是空间上的并行问题。 并行计算科学中主要研究的是空间上的并行问题。 空间上 的并行导致了两类并行机的产生,按照Flynn的说法分为: 的说法分为: 的并行导致了两类并行机的产生,按照 的说法分为 单指令流多数据流( 单指令流多数据流(SIMD)和多指令流多数据流 ) )。我们常用的串行机也叫做单指令流单数据流 (MIMD)。我们常用的串行机也叫做单指令流单数据流 )。 (SISD)。 )。
SISD
SIMD
MIMD
并行计算的术语( ) 并行计算的术语(1)
Task:可计算工作在逻辑上不连续的分区。一个任务通常 :可计算工作在逻辑上不连续的分区。 是一个程序或者类似程序一样的可以被处理器执行的指令 集。 Parallel Task:一个任务可以被多个处理器安全的并行的 : 执行,产生正确的结果。 执行,产生正确的结果。 Serial Execution:程序相继的执行,每次一个状态。在 :程序相继的执行,每次一个状态。 最简单的情况下,单核处理器就是这样运行的。可是, 最简单的情况下,单核处理器就是这样运行的。可是,实 际上所有并行的任务有一些并行程序的区域一定要串行的 执行。 执行。 Parallel Execution:一个或多个任务同时执行的程序, :一个或多个任务同时执行的程序, 每个任务同时能够执行相同的或不同的代码语句。 每个任务同时能够执行相同的或不同的代码语句。 Pipelining:不同的处理器单元把一个任务根据输入流来 : 分解成一系列步骤来执行,相当于一条流水线; 分解成一系列步骤来执行,相当于一条流水线;并行计算 的一种。 的一种。
并行计算机的存储结构
共享内存、分布式内存、 共享内存、分布式内存、混合型分布式共享内寸
接点间的连接
按连接方式分类: 按连接方式分类: Completely-connected, Star, Tree, Linear Array and Ring, Hypercube
集群计算机: 集群计算机: 通过高速网络LAN将PC机或工作站连结而成。 机或工作站连结而成。 通过高速网络 将 机或工作站连结而成
并行计算的基本原理
并行计算( 并行计算(Parallel Computing)是指同时使用多种计算 ) 资源解决计算问题的过程。 资源解决计算问题的过程。并行计算的主要目的是快速解 决大型且复杂的计算问题。此外还包括:利用非本地资源, 决大型且复杂的计算问题。此外还包括:利用非本地资源, 使用多个“廉价”计算资源取代大型计算机, 节约成本 ― 使用多个“廉价”计算资源取代大型计算机, 同时克服单个计算机上存在的存储器限制。 同时克服单个计算机上存在的存储器限制。 传统地,串行计算是指在单个计算机( 传统地,串行计算是指在单个计算机(具有单个中央处 理单元)上执行软件写操作。CPU 逐个使用一系列指令解 理单元)上执行软件写操作。 决问题,但其中只有一种指令可提供随时并及时的使用。 决问题,但其中只有一种指令可提供随时并及时的使用。 并行计算是在串行计算的基础上演变而来, 并行计算是在串行计算的基础上演变而来,它努力仿真自 然世界中的事务状态:一个序列中众多同时发生的、 然世界中的事务状态:一个序列中众多同时发生的、复杂 且相关的事件。 且相关的事件。
关注的问题
1、通信 2、同步 3、数据依赖 4、负载平衡 5、I/O
并行计算的性能分析
1、加速比(speedup)
speedup=T1/TN = 1/(1 − P ) = 1/( P / N + S )
2、并行效率
并行编程
1.线程模型(OpenMP,POSIX) 线程模型( 线程模型 2.消息传递模型(MPI,PVM) 消息传递模型( 消息传递模型 , ) 3.数据并行模型(HPF) 数据并行模型( 数据并行模型 )
问题分解
1.作用域分解:与问题相关的数据将会被分解。每个并行的任务只 能使用部分数据 。 2.功能分解:关注要被完成的计算而不是操作数据的计算。问题是 根据当前一定要完成的任务划分的。每个任务完成全部工作的一部 分。
相关主题