# 第三章-技术
欲穷千里目,更上一层楼
# supercomputer
- 定义:具有超强计算能力的计算机。
- 性能:计算能力用 FLOPS(floating-point operations per second) 描述
更多超级计算机,请阅读 wiki (opens new window)。
# processor technology
典型的处理器有:
- CPU (Central processing unit) wiki (opens new window)
- GPU (General-Purpose Graphic Processing Unit) wiki (opens new window)
- TPU (Google Tensor Processing Unit) wiki (opens new window)
除了处理器,还需要了解一些指令集的知识,请参阅 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个二进制位表示,
- 每个二进制位可以翻转一次,因此延迟是

当前 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规模,分布式计算,新的处理器架构
⭐️ 优化:算法,数据管理,编译器
⭐️ 系统:网络拓扑系统,文件系统
同时 Networks 和 IO 是提升算力(这里的算力用 FLOPS 衡量)所必须关注的事情。
# 参考资料
Introduction parallel computing tutorial (opens new window)
台湾新竹清华大学 平行程式 (opens new window)