TonyYin's Blog

Back

[toc]

Chapter 7:Parallel Processors from Client to Cloud

由于功耗墙的限制,单核处理器的性能提升遇到瓶颈,所以转向多核以追求更高能效。

Parallelism 分为:

  • 指令级并行:每个处理器执行的 指令不同
  • 数据级并行:每个处理器执行的 指令相同,数据不同

本章重点:MIMD,向量机、GPU。

Parallel Programming#

要通过并行计算得到较好性能,难点在:负载均衡、协调、通信开销

Amdahl’s Law#

由于串行部分的存在,加速比是有上限的。

阿姆达尔定律,用来计算 加速比

如果有 100 个处理器,想要达到加速比为 90 倍。

Speedup=ToldTnew=ToldToldTparallelizable+Tparallelizable100=90\text{Speedup}=\frac{T_{\text{old}}}{T_{\text{new}}}=\frac{T_{\text{old}}}{T_{\text{old}}-T_{\text{parallelizable}}+\dfrac{T_{\text{parallelizable}}}{100}}=90

FF 表示可并行指令的比例,则:

Speedup=1(1Fparallelizable)+Fparallelizable100\text{Speedup}=\frac{1}{(1-F_{\text{parallelizable}})+\dfrac{F_{\text{parallelizable}}}{100}}

解得需要 Fparallelizable=0.999F_{\text{parallelizable}}=0.999 才能达到。

Scaling#

在 HPC 中,Scaling 概念,是用来衡量 系统或算法扩展能力 的核心指标。

  • Strong scaling
    • 问题规模固定。
    • 希望用更多的资源来缩短同一个任务的等待时间。
    • 瓶颈:串行部分。
  • Weak scaling
    • 问题规模随处理器数量线性增加
    • 每个处理器负责的数据量不变,希望在相同的时间内解决一个更大的问题。
    • 瓶颈:通信和同步代价。

Vector Processors#

MIMD 是现在最常用的,多指令多数据流。

为了实现这个数据流,需要 向量机 和一组 向量寄存器

向量寄存器 (v0-v31):每个寄存器可以存放 32 个 64 位元素。

向量指令:每次可以算 32 个数。常用的有:

  • 加载、存储、向量相加、把一个标量加到向量的每个元素上等等。

优势:没有循环判断;减少取指和译码;

GPU Architectures#

  • 进程与线程:一个进程可以包含若干个线程。所有线程共用一个虚拟内存空间,但每个线程有自己独立的寄存器和PC。
并行处理器:从客户端到云端
https://www.tonyyin0418.com/blog/computer-org/co-chap7
Author Yin
Published at December 9, 2025
Comment seems to stuck. Try to refresh?✨