超级计算机是什么

维基 问答 2022-05-11 01:26:55 阅读(...)

超级计算机(Supercomputer)指能够执行一般个人电脑无法处理的高速运算的计算机,规格与性能比个人计算机强大许多。现有的超级计算机运算速度大都可以达到每秒一兆(万亿,非百万)次以上。

超级计算机(Supercomputer)指能够执行一般个人电脑无法处理的高速运算的计算机,规格与性能比个人计算机强大许多。现有的超级计算机运算速度大都可以达到每秒一兆(万亿,非百万)次以上。“超级计算”(supercomputing)这名词第一次出现,是在 1929 年《纽约世界报》关于 IBM 为哥伦比亚大学建造大型制表机(tabulator)的报导。

超级计算机 Supercomputer

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 年前的超级计算机有更高性能,皆因某些超级计算机的设计已经放在桌面计算机内。再者,简单芯片的开发及生产成本比特意设计给超级计算机的更便宜。

超级计算机所处理的问题都适合并行化,当中减少处理单元之间的资料传送量。因此,传统的超级计算机可以被计算机丛集所代替。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • 大型计算机 Rackmount Led Console In Server Room Data Center. Server. Room S

    大型计算机是什么

    大型计算机(mainframe),又称大型机、大型主机、主机等,是从IBM System/360开始的一系列计算机及与其兼容或同等级的计算机,主要用于大量数据和关键项目的计算,例如银行金融交易及数据处理、人口普查、企业资源规划等。
  • 蛮力攻击 Brute-force attack

    蛮力攻击是什么

    蛮力攻击又称为蛮攻、穷举攻击或暴力破解,是一种密码分析的方法,主要精神是透过软件逐一测试可能的密码,直到找出真正的密码为止况。
  • DAppNode 操作系统

    DAppNode是什么

    DAppNode是一个操作系统,可以让您以真正的去中心化方式托管dapp程序,消除第三方的依赖、不再受中心化影响。它还增加了一层额外的激励措施,有助于推广区块链生态系统的采用并解决基础设施集中化的问题。
  • 超级计算机 supercomputer

    混合计算机是什么

    混合计算机是把模拟计算机与数字计算机联合在一起应用于系统仿真的计算机系统。主要适用于一些严格要求实时性的复杂系统的仿真。例如在导弹系统仿真中,连续变化的姿态动力学模型由模拟计算机来实现,而导航和轨道计算则由数字计算机来实现。
  • 微芯片 Microchip

    微芯片是什么

    微芯片是采用微电子技术制成的集成电路芯片,已发展到进入千兆(芯片GSI)时代。微芯片上的器件密度已达到人脑中神经元密度水平。这样水平的微芯片将促使计算机及通信产业更新换代,大大改变人们生产、生活的面貌。
  • 记忆电阻器 Memristor

    忆阻器是什么

    忆阻器,全称记忆电阻器(Memristor)。是表示磁通与电荷关系的电路器件。忆阻具有电阻的量纲,但和电阻不同的是,忆阻的阻值是由流经它的电荷确定。因此,通过测定忆阻的阻值,便可知道流经它的电荷量,从而有记忆电荷的作用。