# G.9 历史回顾与参考文献
<!-- source: p1119 -->

本节补充第 4 章历史回顾中未展开的一些细节和参考文献。

CDC STAR 处理器及其后继 CYBER 205 都是存储器—存储器型向量处理器。为了简化硬件，同时满足很高的带宽要求——每次浮点运算最多需要三次访存——这些处理器不能高效处理非单位步长访问。虽然多数循环采用单位步长，但非单位步长循环在这些处理器上的性能很差，因为必须在存储器之间移动数据，才能将不相邻的向量元素收集到一起，随后再分散回去；这些操作使用专门的 scatter-gather 指令。此外，处理器还为稀疏向量提供专门支持：用一个位向量标示零元素和非零元素的位置，并用一个稠密向量保存非零值。由于存储器延迟很长，这些较复杂的向量操作速度较慢；对于稀疏或非单位步长操作，采用标量方式往往更快。Schneck [1987] 介绍了从早期流水线处理器（例如 Stretch）到第一代向量处理器的发展，其中包括 205 和 Cray-1。Dongarra [1986] 也作了很好的综述，重点是较新的处理器。

20 世纪 80 年代还出现了规模较小的向量处理器，称为小型超级计算机（minisupercomputer）。它们的价格约为超级计算机的十分之一：50 万～100 万美元，而后者为 500 万～1000 万美元，因此很快流行起来。虽然许多公司进入了这一市场，但最成功的是 Convex 和 Alliant。Convex 最初推出单处理器 C-1 向量机，随后提供一系列小型多处理器系统，最后一款是 1994 年宣布的 C-4。这段时期 Convex 成功的关键，在于重视 Cray 软件兼容能力、编译器的有效性（见图 G.9），以及 UNIX 操作系统实现的质量。C-4 是 Convex 销售的最后一款向量机；此后，该公司转向使用 Hewlett-Packard 的 RISC 微处理器构建大型多处理器系统，并于 1995 年被 HP 收购。Alliant [1987] 更重视多处理器方面，构建了一台八处理器计算机，每个处理器都具有向量能力。Alliant 于 20 世纪 90 年代初停止运营。

20 世纪 80 年代初，CDC 分拆出一个名为 ETA 的团队，开发性能达 10 GFLOPS 的新型超级计算机 ETA-10。ETA 处理器于 80 年代末交付（见 Fazio [1987]），采用低温 CMOS，<!-- source: p1120 -->最多可配置 10 个处理器。每个处理器都沿用基于 CYBER 205 的存储器—存储器体系结构。虽然 ETA-10 的峰值性能极高，但标量速度并未达到相应水平。1989 年，作为第一家超级计算机厂商的 CDC 关闭了 ETA，并退出超级计算机设计业务。

1986 年，IBM 推出 System/370 向量体系结构（见 Moore 等人 [1987]），以及它的首个实现 3090 Vector Facility。这一体系结构在 System/370 的基础上增加了 171 条向量指令。3090/VF 集成在 3090 CPU 内。与当时多数向量处理器不同，3090/VF 的向量数据经过缓存。IBM 370 系列此后不断演进，后来称为 IBM zSeries。向量扩展已从该体系结构中移除，一部分操作码空间被重新用于实现 64 位地址扩展。

1989 年末，Cray Research 分为两家公司，双方都致力于开发可在 90 年代初推出的高端处理器。Seymour Cray 领导其中分拆出来的 Cray Computer Corporation，直到该公司于 1995 年倒闭。其首款处理器 Cray-3 原计划采用砷化镓实现，但公司未能开发出可靠且具有成本效益的实现技术。1993 年，一台 Cray-3 原型机交付美国国家大气研究中心（NCAR）作评估之用，但该设计没有找到付费客户。公司申请破产时，原计划成为首款 1 GHz 处理器的 Cray-4 原型机已接近完成。1996 年因车祸不幸去世前不久，Seymour Cray 又创办了 SRC Computers，开发高性能系统，不过这一次采用通用商品组件。2000 年，SRC 宣布推出 SRC-6 系统，结合了 512 颗 Intel 微处理器、50 亿门可重构逻辑，以及一个高性能的向量式存储器系统。

Cray Research 则专注于 C90。这款新的高端机器最多具有 16 个处理器，时钟频率为 240 MHz，于 1991 年交付。J90 是采用 CMOS 和 DRAM 主存的向量机，起价 25 万美元，但典型配置约为 100 万美元。原书记载，1995 年年中，Cray Research 被 Silicon Graphics 收购；1998 年，该公司推出 SV1 系统，将速度显著更高的 CMOS 处理器接入 J90 存储器系统，并为各 CPU 增加向量数据缓存，以帮助满足增长的存储器带宽需求。SV1 还引入了 MSP 概念：通过组合多个较慢的 CPU，获得具有竞争力的单 CPU 性能。2000 年，Silicon Graphics 将 Cray Research 出售给 Tera Computer，合并后的公司更名为 Cray Inc。

现代向量化编译器技术的基础，以及数据依赖这一概念，由伊利诺伊大学的 Kuck 及其同事 [1974] 建立。Banerjee [1979] 提出了以他命名的检验方法。Padua 和 Wolfe [1986] 对向量化编译器技术作了很好的概述。

Lubeck、Moore 和 Mendez [1985]、Bucher [1983] 以及 Jordan [1987]，都开展过不同超级计算机的基准测试研究，<!-- source: p1121 -->并尝试理解性能差异。有若干面向科学计算的基准测试套件，经常用于超级计算机性能评测，其中包括 Linpack 和 Lawrence Livermore Laboratories FORTRAN kernels。伊利诺伊大学协调收集了一组超级计算机基准测试，称为 Perfect Club。1993 年，Perfect Club 并入 SPEC；后者于 1996 年发布面向高端科学计算的 SPEChpc96 基准测试套件。NASA Ames Research Center 开发的 NAS parallel benchmarks [Bailey 等人 1991]，已成为广泛用于超级计算机评估的一组计算内核和应用程序。后来又出现了 HPC Challenge 基准测试套件：除浮点性能外，其中的若干计算内核还着重考察存储器和互连带宽 [Luszczek 等人 2005]。虽然标准超级计算机基准测试可以粗略衡量机器能力，但在采购大型超级计算机之前，通常仍会根据客户现场实际需要运行的应用组合，进行细致的性能评估。
