并行计算与分布式计算原理

云计算 分布式
虽然并行计算和分布式计算存在细微的差别,但两个概念往往可以互换。并行代表一类紧耦合系统,而分布式则代表更广泛的一类系统,包括紧耦合系统。

 

云计算是一种新的技术趋势,可以更好地利用IT基础设施、服务和应用。云计算采用了一种按使用付费的服务交付模式,用户无需拥有自己的基础设备、平台或应用,只在需要时使用这些服务即可。串行和并行是两种基本的主要计算模型。串行计算起源于 20世纪 40年代,比并行(分布式)计算早了近十年。当时,架构、编译器、应用程序和问题解决环境成为计算发展的四个关键要素。

计算时代的兴起离不开硬件架构的发展,最终产生了系统软件,特别是在编译器和操作系统领域,实现了系统管理和应用开发。应用和系统的研发是最令人感兴趣的地方,当设计出问题解决环境并且可以为工程师们提供便利时,这种研发就会被逐渐整合。这标志着计算范式已经成熟并成为主流。另外,计算时代的每个方面都经历着三个阶段;研究和开发(R&D)、商业化、商品化。

并行计算与分布式计算

虽然并行计算和分布式计算存在细微的差别,但两个概念往往可以互换。并行代表一类紧耦合系统,而分布式则代表更广泛的一类系统,包括紧耦合系统。

更准确地说,并行计算指的是将计算任务分配给几个共享相同内存的处理器的计算模式。并行计算系统的架构通常表现为组件的同构性;每个处理器都是相同类型的,且拥有相同的处理性能。共享内存有一个独立的地址空间,可供所有处理器访问。并行程序被分成若干执行单元并分配给不同的处理器,它们之间依靠共享内存相互通信。起初,只有具有共享同一物理内存的多处理器的架构才可称为并行系统。随着时间的推移,这些限制条件已经放宽,只要是基于共享内存这一概念的架构,无论是物理内存系统,还是由库、特定的硬件和高效的网络基础设施组成的系统,都可以称为并行系统。例如,一个集群中节点通过无限带宽网络连接,且配置了分布式共享内存系统,就可以称作并行系统。

分布式计算是指那些将计算任务进行划分,并在不同计算单元中同时执行的架构或系统,不论计算单元是不同节点上的处理器,或是同一计算机上的处理器,再或是同一处理器中的内核。因此,相比并行计算,分布式计算包含的系统和应用程序的范围更广,是更为通用的概念。尽管没有规定,但分布式这一术语通常意味着计算单元的位置不同,且这些单元在硬件和软件功能上也可能各不相同。典型的分布式系统实例是计算网格或互联网计算系统,分布式系统在全球范围内集成各种架构、系统和应用。

并行处理硬件架构

并行处理的核心元素是 CPU。根据可以同时处理的指令流和数据流的数量,计算机系统可以分为以下四类:

●单指令流单数据流(SISD)系统。

●单指令流多数据流(SIMD)系统。

● 多指令流单数据流(MISD)系统。

●多指令流多数据流(MIMD)系统。

1、SISD系统

SISD 计算系统是一个能在单数据流上执行单指令的单处理器机器。在 SISD系统中,机器指令按顺序进行处理,因此采用这种模式的计算机通常称为序列计算机。大多数传统计算机采用SISD模型构建。所有需要处理的指令和数据必须存放在主存储器上。SISD模型中,处理单元的速度受到计算机内部信息传递速率的限制。典型 SISD系统有32 IBM PC、Macintosh 和工作站。

2. SIMD系统

SIMD 计算系统是可以在不同的数据流上操作而在多 CPU 上执行同一指令的多处理器机器。由于包括大量的向量和矩阵运算,所以基于 SIMD 模型的机器适用于科学计算。例如,语句Ci= Ai×Bi可以传递给所有处理单元(PE),向量A和 B中有组织的数据元素可以分成多组(N组对应N个PE 系统),一个PE可以处理一个数据集。

3、MISD 系统

MISD 计算系统是能在同一数据集上操作而在不同 PE 执行不同指令的多处理器机器。例如,语句 33y= sin(x) + cos(x) + tan(x)在同一数据集上执行不同的操作。使用MISD模型构建的机器不适于大多数应用程序,已经设计的几台机器没有一个可以商业化,它们更像是智能测试而非实用的配置。


4、MIMD系统

MIMD计算系统是能在多个数据集上执行多个指令的多处理器机器。MIMD模型中的每一个 PE 都有单独的指令和数据流,因此使用该模型的机器适用于所有类型的应用程序。与 SIMD 和 MISD模型不同,MIMD机器中的 PE 是异步工作的。

MIMD 机器按照 PE 与主存耦合方式不同大致可分为共享内存 MIMD 和分布式内存 MIMD。

(1)共享内存 MIMD计算机

在共享内存 MIMD 模型中,所有执行单元都连接到一个可供访问的单一全局内存上。基于这个模型的系统也称为紧耦合多处理器系统。模型中 PE 之间通过共享内存进行通信,一个 PE 修改存储在全局内存中的数据,对所有其他 PE都是可见的。共享内存 MIMD 模型的典型系统主要有 Silicon Graphics 计算机和 Sun/IBM SMP(对称多处理器)。

(2)分布式内存MIMD计算机

在分布式内存 MIMD 模型中,所有 PE都有一个本地内存。基于这种模型的系统也称为松耦合多处理器系统。模型中的 PE 之间通过内部互联网络进行通信(进程间通信通道/ IPC)。PE 之间的网络连接可配置成树状、网状、块状等。每一个 PE 进行异步操作,如果任务之间需要通信/ 同步,那么可以通过互相交换信息来实现。

共享内存 MIMD 架构与分布式内存 MIMD 模型相比,前者更易编程,但对故障的容忍度更低且更难扩展。共享内存 MIMD 中的故障会影响整个系统,但是分布式模型则不然,分布式模型的每一个 PE 都可以轻易地实现隔离。此外,共享内存 MIMD架构难以扩展,因为增加更多的 PE 会导致内存争用。在分布式内存 MIMD 模型中不会出现这种情况,因为每一个 PE 都有自己的内存。

分布式系统架构和组件

分布式系统是从硬件到软件的整个计算层次模型中多个组件交互的结果。许多组件协同工作,为用户呈现出一个单一的整体系统。下图描述了提供分布式系统服务的不同层的概况。

在底层,计算机和网络硬件构成了物理基础设施,这些组件由操作系统直接管理。操作系统负责提供基础服务,用于进程间通信、进程调度和管理、文件系统和本地设备的资源管理。将网络和计算机这两层合并为一个平台,在这个平台上配置特定软件,便可将联网计算机组成一个分布式系统。

把公认的标准应用到操作系统层甚至硬件网络层中,利用异构组件可以很容易地构造一个统一的集成系统。例如,不同设备之间的网络连接由协议进行控制,实现设备无缝交互。在操作系统层,进程间通信服务在标准化通信协议下执行,例如 TCP/IP协议、UDP 协议等。

中间件层利用这些服务构建了一个开发和部署分布式应用程序的统一环境。这一层支持分布式系统的编程范式。依靠操作系统提供的服务,中间件层可开发协议、数据格式以及用于开发分布式应用程序的编程语言或框架。这些为分布式应用程序开发人员提供了统一接口,完全独立于底层操作系统且屏蔽了底层的异构性。

分布式系统层次架构的顶层是利用中间件设计和开发的应用或服务。设计应用层可实现多个目的,并且具有通过本地或 Web 浏览器可访问的图形用户接口(GUI)。例如,在云计算系统中,不论是为终端用户提供分布式应用接口,还是为构建分布式系统提供平台服务,都强烈推荐采用 Web技术。laaS 的供应商给出了很好的实例,如亚马逊 Web 服务(AWS)便于创建虚拟机、将虚拟机组织成集群以及在集群中部署应用和系统。图 2-11说明了分布式系统的一般参考架构如何应用于云计算系统。

硬件和操作系统层组成了一个或多个数据中心的最基本结构,其中服务器通过高速网络部署和连接在一起。这些硬件由操作系统管理,操作系统提供了基本的管理计算机和网络的能力。核心业务逻辑在管理虚拟化层的中间件上实现,虚拟化部署在物理机上,以实现最大化资源利用。并目提供可定制的应用运行环培。按照为客户提供的服务类利。中间件为应用开发人员提供了不同的工具。这些工具通过 Web 2.0 兼容接口提供了—系列服务,包括电拟机创建、应用程序开发和运行环境部署。

 

责任编辑:姜华 来源: 架构师技术联盟
相关推荐

2011-12-30 15:01:36

淘宝

2010-06-11 08:52:17

并行计算

2010-04-02 10:26:14

云计算

2024-03-01 09:53:34

2010-03-22 14:45:40

云计算

2023-03-09 11:35:40

2017-09-01 05:35:58

分布式计算存储

2010-03-19 17:23:45

云计算

2014-04-24 10:25:15

2013-03-26 13:43:08

Java分布式计算

2012-09-19 14:09:20

Hadoop开源

2023-10-26 18:10:43

分布式并行技术系统

2011-04-21 09:13:14

并行计算

2012-08-17 09:32:52

Python

2011-04-20 17:15:21

并行计算

2009-12-18 09:38:27

.NET 4.0并行计

2012-07-06 09:27:02

云计算分布式服务器负载均衡

2021-04-15 11:04:13

云计算分布式边缘计算边缘计算

2022-06-21 08:27:22

Seata分布式事务

2019-04-18 09:15:05

DaskPython计算
点赞
收藏

51CTO技术栈公众号