超级计算机(Supercomputer)指能够执行一般个人电脑无法处理的高速运算的计算机,规格与性能比个人计算机强大许多。现有的超级计算机运算速度大都可以达到每秒一兆(万亿,非百万)次以上。
超级计算机(Supercomputer)指能够执行一般个人电脑无法处理的高速运算的计算机,规格与性能比个人计算机强大许多。现有的超级计算机运算速度大都可以达到每秒一兆(万亿,非百万)次以上。“超级计算”(supercomputing)这名词第一次出现,是在 1929 年《纽约世界报》关于 IBM 为哥伦比亚大学建造大型制表机(tabulator)的报导。
1960 年代,超级计算机由西摩·克雷在控制数据公司里设计出来并领先市场直到 1970 年代克雷创立自己的公司──克雷研究。凭着他的新设计,他控制了整个超级计算机市场,并占据颠峰位置长达五年(1985 年-1990 年)。到了 1980 年代,正值小型计算机市场萌芽阶段,大量小型对手加入竞争。在 1990 年代中期,很多对手受不了市场的冲击而消声匿迹。今天,超级计算机成了一种由像 IBM 及惠普等大型计算机公司所特意设计的计算机。虽然这些公司通过不断并购其他公司而增强了自己的经验,克雷研究依然是超级计算机领域的巨头之一。
历史
“超级计算机”一词并无明确定义,其含义随计算机业界的发展而发生变化。早期的控制数据公司机器可达十倍速于竞争对手,但仍然是比较原始的标量处理器。到了 1970 年代,大部分超级计算机就已经是向量处理器了,很多是新进者自行开发的廉价处理器来攻占市场。1980 年代初期,业界开始转向大规模并行计算系统,这时的超级计算机由成千上万的普通处理器所组成。1980 年代中叶,将适量的向量处理器(一般由 8 个到 16 个不等)联合起来进行并行计算成为通用的方法。1990 年代以后到 21 世纪初,超级计算机则主要互联基于精简指令集的张量处理器(譬如 PowerPC、PA-RISC 或 DEC Alpha)来进行并行计算。
用途
超级计算机常用于需要大量运算的工作,譬如数值天气预报、运算化学、分子模型、天体物理模拟、汽车设计模拟、密码分析等。
设计
超级计算机的创新设计在于把复杂的工作细分为可以同时处理的工作并分配于不同的处理器。他们在进行特定的运算方面表现突出,但在处理一般工作时却不那么优秀。他们的数据结构是经过精心设计来确保数据及指令及时送达——传递速度的细微差别可以导致运算能力的巨大差别。其输入/输出系统也有特殊设计来提供高带宽,但是这里的数据传输延迟却并不重要——超级计算机并非数据交换机。
根据阿姆达尔定律,超级计算机的设计都集中在减少软件上的序列化、用硬件在瓶颈上加速。
技术挑战及其解决方案
超级计算机通常产生大量的高热,冷却超级计算机是一个很大的问题。
因为资料传送的速度不能比光快,几米的距离导致了几十纳秒的延迟,而克雷著名的环型设计保持了最短距离。
超级计算机在短时间内消耗及生产大量的数据,需要投入很多资源确保资讯妥善传送及访问。
因超级计算机而开发的技术:
矢量处理器和张量处理器水冷技术非均匀访存模型
处理器技术
矢量处理因超级计算机而创建并用于高性能运算。矢量处理技术后来被用于普通计算机内的信号处理架构及单指令流多数据流,例如:电视游乐器及通用图形处理器等。
操作系统
一般的超级计算机都使用 Unix 或类 Unix 操作系统,但在讲求绝对高性能的操作环境时,超级计算机开发人员会动用特别的轻量级核心(Light Weight Kernel-LWK),减少中断请求、进程间通信等开销以提高性能。
轻量级核心包括 Cray XT3 的 Catamount,Cray XT4 的 CNL (Compute Node Linux), 以及 IBM 蓝色基因的 CNK(Compute Node Kernel)。
编程环境
信息传递接口及较旧的并行虚拟机(PVM)常用于非共享内存系统(Distributed Memory System),而 OpenMP 常用于共享内存并发系统。
传统上 Fortran 的编译器可以产生比 C 或 C++更高性能目标代码,所以 Fortran 仍然被使用作科学编程。
优化编译器
超级计算机需要编译器优化技术以产生优佳的目标代码,现今的优化编译器都对向量化(Vectorization)、程序循环、存储器层次结构及数据局部性进行优化。
此外,优化编译器都以高层次的中间表示(Intermediate Representation)优化程序 - 包括 Open64 编译器的 WHIRL、IBM XL 编译器的 Wcode。
数学函数库
超级计算机主要执行科学运算等拥有大量向量及矩阵浮点计算的程序,因此优化常用的数学函数会提高运算性能。BLAS 函数库使向量及矩阵浮点计算性能大大提高,而优佳化数学函数库则提高三角函数及平方根等数学运算。
平行文件系统
平行文件系统属于分布式文件系统的一类,支持多客户端节点、多文件系统服务器,以及支持平行 I/O(如 MPI-IO、HDF5);现今流行的平行文件系统包括 Lustre 和 PVFS。
网络技术
超级计算机节点之间的通信一般都需要使用高性能的网络接口,现今大多 TOP500 的超级计算机使用以太网(44.8%)及 InfiniBand(41.8%)。
传统上 InfiniBand 比以太网有更高的带宽,同时因操作系统调用省略(Operating System Bypass)而提供更低的延迟时间(latency);然而 2011 年思科系统开发 VFIO 技术于超级计算机和集群应用,使一般的以太网接口也能提供低延迟时间,从而提升以太网在超级计算机的应用层面。
通用超级计算机的类型
大致上可以分为三种:
矢量处理机器能为大量数据同时进行同样的运算。丛集式处理器特别创建连接处理器及记忆体的通信网络,非均匀访存模型就是最常见的。最快的超级计算机就是使用这个科技。商品计算机丛集使用高带宽低延误的网络来连接大量普通商品计算机,建设成一个计算机集群。
根据摩尔定律及经济规模,一个现代的桌面计算机比 15 年前的超级计算机有更高性能,皆因某些超级计算机的设计已经放在桌面计算机内。再者,简单芯片的开发及生产成本比特意设计给超级计算机的更便宜。
超级计算机所处理的问题都适合并行化,当中减少处理单元之间的资料传送量。因此,传统的超级计算机可以被计算机丛集所代替。