# I.8 定制集群方案：Blue Gene/L
<!-- source: p1216 -->

Blue Gene/L（BG/L）是一种可扩展的消息传递超级计算机。按每瓦计算能力衡量，其设计提供了前所未有的计算密度。由于注重能效，BG/L 的每立方英尺吞吐量也达到了当时无与伦比的水平。高计算密度、性价比高的节点，以及对可靠性、可用性和可维护性（RAS）的广泛支持，使 BG/L 能高效扩展到极大的处理器规模。

BG/L 采用分布式存储和消息传递，却与常见的集群计算机颇为不同。后者往往面向吞吐量，处理器、互连，有时连封装和系统组织都采用通用商品技术。BG/L 则使用专门定制的处理节点：其中包含两个处理器、缓存和互连逻辑；处理器源自嵌入式市场中低功耗、较低时钟频率的 PowerPC 440。加入 SDRAM 芯片后，就构成完整的计算节点；这些 SDRAM 是 BG/L 设计中唯一的通用商品半导体器件。

原书描述，BG/L 最多包含 64 K 个节点，组织成 32 个机架，每架在约 50 立方英尺的空间中容纳 1 K 个节点。每个机架包含两块双面板，每板 512 个节点。由于板内和机架内密度很高，85% 的互连都位于单个机架内部，大幅减少了机架间连接的复杂性与延迟。节点的低功耗和高密度又使机架十分紧凑，<!-- source: p1217 -->从而显著提高效率：机架内连接所需的互连网络逻辑，集成在构成每个节点的单颗计算芯片中。

> **译注：** 原书同段的“64 K 个节点”与“32 架、每架 1 K 节点”不相符；后者合计为 32 K 节点。

附录 F 讨论了 BG/L 的主要互连网络，即三维 torus。它还有四种网络：连接指定 I/O 节点的千兆以太网、用于测试的 JTAG 网络、屏障网络，以及全局集体通信网络。屏障网络包含四条独立通道，可在所有处理器之间执行全局 OR 或全局 AND，延迟小于 1.5 μs。全局集体通信网络把所有处理器连接成树，用于全局操作；它直接支持多种整数归约，无须处理器介入，使大规模归约比典型超级计算机快 10–100 倍。该网络还能高效地广播单个值。集体通信网络与 torus 的支持逻辑，都集成在每个处理节点的核心芯片中。

## Blue Gene/L 计算节点

每个 BG/L 节点由一颗处理芯片和若干 SDRAM 芯片组成。图 I.18 中的处理芯片包含以下部分：

1. **两个 PowerPC 440 CPU。** 原书将每个 CPU 描述为双发射超标量处理器，采用七级流水线，具备推测式乱序发射能力，时钟频率为适中而节能的 700 MHz。每个 CPU 有独立的 32 KB 指令缓存和 32 KB 数据缓存，采用非阻塞设计，最多支持四个尚未完成的未命中请求；缓存一致性必须由软件保证。每个 CPU 还包含一对浮点协处理器，每个协处理器都有自己的浮点寄存器组，每周期能发射一次乘加操作。它们支持专用 SIMD 指令集能力，其中包括利用寄存器对和 128 位操作数完成复数运算。
2. **各自独立的全相联 L2 缓存。** 每个 L2 容纳 2 KB 数据，块大小为 128 字节，实质上充当预取缓冲区。L2 控制器识别流式数据访问，也负责从 L3 或主存预取。其延迟很低，为 11 个周期；原书给出的带宽为每周期 5 字节，并称 L2 预取缓冲区能够向 L1 缓存提供 5.5 GB/s。
3. **采用嵌入式 DRAM 实现的 4 MB L3 缓存。** 每个 L2 缓冲区都通过总线连接 L3，总线从 L3 提供 11 GB/s 带宽。
4. **支持 256–512 MB DDR DRAM 的存储器总线。** 它向 L3 缓存提供 5.5 GB/s 的主存带宽。考虑到每个节点有两个处理器、每个处理器又有两个浮点单元，这个内存容量似乎偏小。按 Amdahl 的经验规则，即每 1 MIPS 配备 1 MB 内存，再假定性能达到峰值的 25%，每节点内存应约为现有容量的 2.7 倍。不过，对于浮点运算密集型应用，<!-- source: p1218 -->计算需求相对于内存容量通常呈超线性增长，所以每节点最高 512 MB 的配置可能是合理的。
5. **五种互连网络的支持逻辑。**

> **译注：** 原书所列“每周期 5 字节”与 700 MHz、5.5 GB/s 并不一致：按前两项相乘为 3.5 GB/s。原图也标示 5.5 GB/s。CPU 发射方式等描述同样按本节原述保留。

![Blue Gene/L 处理节点的 CPU、缓存、互连及内存接口](/figures/app-i/fig-i-18.png)
{#fig-I.18 .wide .expand num="I.18" caption="BG/L 处理节点。未填色的方框为加有浮点单元的 PowerPC 处理器；深灰色方框为网络接口；浅灰色方框属于存储系统，另有外部 DDR RAM 补充。"}

图中两个 CPU 各有 32 KB/32 KB 的 L1 缓存和双发射浮点单元；L2 prefetch buffer 为 L2 预取缓冲区，Snoop 为监听通路。中间是带 ECC 纠错控制的嵌入式 DRAM 共享 L3 目录，右侧为可用作 L3 缓存或存储器的 4 MB 嵌入式 DRAM。连线标出 128、256、1024 位等宽度，以及 5.5、11、22 GB/s 的带宽。底部接口从左到右依次为千兆以太网、IEEE 1149.1 JTAG、torus、集体通信、全局中断／lockbox、带 ECC 的 DDR 控制器。原图将 torus 标为六条出链路和六条入链路、每条 1.4 GB/s；集体通信为三出三入、每条 2.8 GB/s；全局网络支持四个全局屏障或中断；DDR 为含 ECC 的 144 位宽、256/512 MB，带宽 5.5 GB/s。这些链路单位照原图保留。

BG/L 把 DRAM 以外的全部逻辑放入单颗芯片，提高密度、降低功耗与成本，使处理节点可以极其紧凑地排列。这种密度又使互连网络兼具低延迟、高带宽和较高性价比。两者结合，得到了一种能够经济有效地扩展的超级计算机：对于超大规模多处理器，与其他方案相比，每瓦 GFLOPS 提高了一个数量级，每美元 GFLOPS 也显著改善。

例如，具有 64 K 节点的 BG/L 峰值性能为 360 TFLOPS，功耗约 1.4 MW。若使用原书所称能效最高的高端浮点处理器 Power5+ 达到同样的 360 TFLOPS 峰值，约需 23,500 个处理器<!-- source: p1219 -->——其双处理器配置以 1.9 GHz 运行，每周期最多执行 8 次浮点运算。仅处理器本身，不包括外部缓存、DRAM 和互连，功耗就约为 2.9 MW，约是整套 BG/L 的两倍。同样，BG/L 节点芯片面积较小，外部只需 DRAM 芯片，因此与基于高端多处理器构建的节点相比，成本也显著降低。图 I.19 展示了 64 K 节点 BG/L 的照片。这个拥有 128 K 处理器的系统，总占地规模与早期 16 K 处理器的多处理器系统相当。

![Blue Gene/L 系统的多排机架](/figures/app-i/fig-i-19.png)
{#fig-I.19 .wide .expand num="I.19" caption="64 K 处理器的 Blue Gene/L 系统。"}

> **译注：** 图 I.19 原图注写的是“64 K 处理器”，而同页正文写“64 K 节点、128 K 处理器”。两种口径有冲突。
