# 第三章-技术

欲穷千里目,更上一层楼

# supercomputer

  • 定义:具有超强计算能力的计算机。
  • 性能:计算能力用 FLOPS(floating-point operations per second) 描述
串行

更多超级计算机,请阅读 wiki (opens new window)

# processor technology

典型的处理器有:

除了处理器,还需要了解一些指令集的知识,请参阅 wiki (opens new window)

# interconnect and network technology

网络可以用 network 这个词描述。通信可以用 communication 这个词描述。通信指的是计算机程序之间的通信,方法有多种,共享内存、socket等等。通信在这个章节更多的应该指的是网络通信。

通信对并行程序的性能影响巨大(甚至比计算能力和内存影响更大):

  • 网络通常比 CPU 慢很多
  • 并行程序之间的通信是极常见的
  • 同步是昂贵的,并且有可能随着服务器数量的增加同步代价成指数级增加

# Network Topology

网络的设计需要考虑的四个因素:

  • Scalability,可扩展性
  • Performance,性能
  • Resilience,恢复能力
  • Cost,代价
串行

不同类型网络拓扑图的指标:

串行
  • Diameters (lantency),网络延迟,通过网络传输经过的节点个数量化此指标,越低表示通信经过的节点越少
  • Bisection (resilience),把一个网络分开成两个的能力,恢复力。越高表示恢复力越高
  • Links (cost),连接个数,也就是建立此网络拓扑图的代价。越低表示建立网络的代价越少
  • Degree (scalability),度数,可扩展性。越低表示扩展越容易

用线性(Linear array)的网络拓扑结构来看待:网络延迟很高;如果一个节点出错,整个网络就断开了;构建此网络需要 P-1 个连接;线性结构的网络很容易扩展。线性的网络拓扑结构搭建简单,但是可靠性低、延迟高。

串行

用 2-D Mesh 的网络拓扑结构来看待:网络延迟较低;个别节点出问题不会影响整个网络的通信;构架此网络需要较多的连接个数;拓展性新的节点较难。2-D Mesh 网络拓扑结构比较适合用在矩阵计算上,能够被拓展到 3-D Mesh。

串行

用 4-D Hypercube 的网络结构来看待:

  • 低延迟,恢复能力强。但同时构建网络更复杂,网络的拓展性差
  • 比较适合用在小型网络系统
  • 每个节点都有一个编号,有4个二进制位表示,log2(P)=4{log}_2(P) = 4
  • 每个二进制位可以翻转一次,因此延迟是 log2(P){log}_2(P)
串行

当前 supercomputer 开始用 Dragonfly topology (opens new window) 网络拓扑结构。

从上述的几种典型结构来看,四种指标难以全都兼顾,需要针对某几个做权衡。这种 权衡 的思想在计算机中应用非常广泛。

# 网络设备

对比两种常用的网络设备(图较老,2018年图),InfiniBand (opens new window)Ethernet (opens new window)

串行

# IO & storage technology

内存的架构如下图所示。越往上速度越快、空间越小、价格越贵;越往下,速度越慢、空间越大、价格越便宜。

串行

并行文件系统:Lustre file system (opens new window), MPI-IO

Burst Buffer (opens new window):提升高性能计算(HPC)突发流量I/O性能、降低时延。

# 总结

对 computing 能力的追求是一直存在、且会持续下去的:

⭐️ 技术:CPU规模,分布式计算,新的处理器架构
⭐️ 优化:算法,数据管理,编译器
⭐️ 系统:网络拓扑系统,文件系统

同时 NetworksIO 是提升算力(这里的算力用 FLOPS 衡量)所必须关注的事情。

# 参考资料

Introduction parallel computing tutorial (opens new window)

台湾新竹清华大学 平行程式 (opens new window)

最近更新: 3/20/2022, 18:36:58