第十七章 并行处理

教材参考计算机组织与结构——性能设计(第九版)第14章

并行处理机分为四类:

  • SISD Single Instruction Single Data stream
  • SIMD Single Instruction Multiple Data stream
  • MISD Multiple Instruction Single Data stream
  • MIMD Multiple Instruction Multiple Data stream

一、SISD 单指令单一数据流

虽然只有一个处理器,但是可以使用流水线技术来提高并发程度。

只拥有一个处理器,单一的指令流,数据存储在单一内存中。

image-20220216160009688

二、SIMD 单指令多数据流

可以读取多块局部的数据,虽然只有一条指令,但是该指令可以同时对多块的数据进行同时的处理。

可以想到这种处理器多用来做向量和矩阵的运算。

三、MISD 多指令单数据流

这种处理器只是理论上的,没有实际被使用过,可以不考虑。

四、MIMD 多指令多数据流

同时有多个指令在执行,并且处理不同的数据,需要多个处理器。

MIMD又可以分成两类:

  • 紧耦合的共享内存,如SMP(对称多处理机)和NUMA(非统一内存访问)

  • 松耦合的分布式内存,如Cluster(集群)

image-20220216160429341

17.1 对称多处理机 symmetric multiprocessor

SMP的架构如下图所示:

image-20220216160610534

SMP中包含了多个处理机,都拥有自己的cache,但是这些处理机是共享内存的,而内存共享的方式就是通过一个共享的总线,同时,也共享了IO。

之所以叫做对称,是因为这些处理机的性能都差不多,都有着相同的功能。

整个系统是被一个集成的操作系统所控制的,所以多个处理机之间能够很好地协作。

优点:

  • 性能更好
  • 容错能力:一个坏了不会使系统宕机
  • 可以通过增加处理机来提高性能
  • 灵活性好,可以根据需要来确定处理机个数
  • 多个处理机对于用户而言是透明的。

缺点:

  • 共享总线限制了系统的性能
  • 要解决总线带来的性能降低,就要使用多级cache,减少从总线读数据的次数,但是会带来cache一致性问题

当然,也可以使用多端口内存(multiport)

共享内存的方式

  • 时分复用总线

    • 优点:简单、灵活(扩展起来方便)、可靠
    • 缺点:性能降低,要等待正在使用的用完,所以需要cache,但是带来了cache一致性问题
  • 多端口内存

    • 优点:性能更好,能够同时多个读取,可以配置某个端口只被一个处理器使用
    • 缺点:控制复杂,cache一致性问题,需要写直达

多处理机的OS设计问题:

  • 并发的处理机
  • 调度
  • 同步
  • 内存管理
  • 可靠性和容错

17.2 集群 Cluster

多个完整的计算机系统连接在一起,被看作是一个系统,这种就叫做集群,其中的每一个计算机系统都被称为一个节点

集群的优点

  • 完全的可扩展,每一个节点都可以是多处理机系统
  • 扩展起来容易,增加节点即可
  • 可靠,容错率高
  • 性能高且价格低

被动备份passive standby和活跃式的备份active secondary:被动备份也就是一个节点只用来做备份使用,周期性地进行备份,而活跃式的也进行任务的处理。

在集群的轻量级应用中,采用活跃式的,两台机器承担对等的工作。

集群OS设计问题:

  • 出错管理
  • 负载均衡(load balancing)
  • 并行计算

17.3 非统一内存访问 NUMA

非统一的意思就是内存访问时间取决于处理器的内存位置。对于SMP而言,多个处理机访问内存的时间基本是相同的;对于Cluster而言,内存是非统一编址的,而NUMA是统一编址的。

由于需要访问非本地的内存,因此和内存位置就有关系了。

image-20220216171105431

CC-NUMA的组织示意图

举个例子,比如2-3这个处理机需要访问789这个内存,那么就会去查目录,知道这个地址不在本地,而是在节点1的目录,这时候就发出一个请求,然后节点1接收到之后就应答,并把数据放到总线上传输,这样节点2就得到了数据,将数据放到总线上,然后处理机再拿数据。

CC-NUMA:cache coherent NUMA,有cache一致性的NUMA系统。

为什么需要NUMA?

  • 对比SMP,SMP会受到总线的限制,导致处理机个数有限。
  • 对比Cluster,集群的每个节点无法看到一个全局的内存,因此性能受限。

优点:

  • 并行度更高
  • 访问远端不会太频繁

缺点:

  • 需要一个新的操作系统支持
  • 可用性 依赖于具体的实现
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值