超算有什么用(超算是什么)

2023-04-29 20:17:01 views

1、超级计算,对普通民众而言,是一个“高大上”的名词,代表着全世界最强大的计算机,以及基于强大硬件之上的复杂科学计算软件;而对于各领域的科学家和工程师而言,它又是在数字世界里延展我们探索未知世界能力的重要工具。

2、最近的10年是中国超级计算(简称超算)蓬勃发展的10年。在2018年的两院院士大会上,超级计算成为习近平总书记讲话中,战略高技术发展的一个重要成果体现:“超级计算机连续10次蝉联世界之冠,采用国产芯片的‘神威·太湖之光’获得高性能计算应用最高奖‘戈登·贝尔奖’”。

3、超级计算机的早期发展:电子计算机诞生之初,由于造价昂贵,只有大型的科研机构或商业公司才有使用条件。通常意义上的第一台电子计算机ENIAC,就是由美国军方的弹道研究实验室资助设计的一台基于真空管的计算系统,它可以自动进行乘法和累加。尽管ENIAC的本来目的是为了计算火炮系统的弹道表,但冯·诺依曼(J. von Neumann)等当时就利用这台系统进行了氢弹研制以及数值天气模拟等开创性的科学计算工作,随着1950—1960年代集成电路技术的逐渐发展,处理器的设计和制造逐渐成为可能。超级计算机也在这个时期迎来重要发展。由于彼时处理器硬件以及计算软件的研发都处于萌芽时期,并没有太多规则和兼容性的束缚,享有“超级计算机之父”之称的克雷(S. Cray)在早期提出了很多天才的构想,比如超级计算机CDC6600系统中中央处理器(CPU)和辅助处理器(PPU)的协同设计,以及Cray-1计算机中专门针对科学计算的大规模数组操作的向量处理器设计。这些设计理念直到现在仍在不同的计算系统中沿用、集成和重新发展。

4、从CDC6600诞生的1964年,到几乎整个1970年代,超级计算机都沿用了类似的结构,即整个系统仅靠一个或者几个强劲的处理器来支撑,每个处理器内部都有复杂的单元设计和功能,直到1980年代,超级计算机发展的另一条路径才开始逐步显现。在超级计算机的复杂向量处理器发展的同时,集成电路技术催生下的微处理器[如英特尔(Intel)早期的4004和8008]和个人电脑也在迎来日新月异的变化。相较于成本高昂、通用性低的向量处理器,尽管微处理器单个的性能无法与之相比,但通过网络来集成大量价格低廉、标准化生产的微处理器却可以实现更高的计算性能。1981年,加州理工学院的研究者采用64个Intel 8086处理器,通过六维超立方的互联,建成了Cosmic Cube系统。此后,英特尔的iPSC系统、麻省理工学院研发的CM(Connection Machine)系统、日本富士通研发的风洞模拟器等集成了成百上千个处理器的大规模并行处理机开始不断涌现,并提供了比原来的向量处理器更高的计算性能。

5、在此过程当中,科学计算领域仍对是否能够驾驭如此大规模的并行机器存在深深的疑虑。根据阿姆达尔定律的分析,如果一个程序中有10%的部分无法并行,那么即使采用1000个处理器,最多也就是把剩下90%的时间优化到可以忽略不计,所获得性能加速比(加速比指同一个任务在单处理器系统和并行处理器系统中运行消耗的时间的比率)最多是10倍。那么几百个甚至几千个处理器是否能够获得相应的性能收益,这是有疑问的。1985年底,卡普(A. Karp)在邮件中发起挑战,如果任何人能在并行机上取得一个科学计算软件200倍以上的加速,他将私人支付100美元的奖金。1987年,计算机领域的著名研究者戈登·贝尔(Gordon Bell)正式设立了“戈登·贝尔奖”来奖励和跟踪超级计算机上最顶尖的应用成果,当年的获奖者就在由1024个节点组成的nCube系统上获得了400到600倍的性能提升。

6、此后近30多年里20多届“戈登·贝尔奖”的评定和颁发,见证了超级计算机和依托于超级计算机的高性能计算应用的飞速发展,也成为了国际超算应用领域的最高奖项。从头几年每秒十亿次浮点运算左右的应用性能,到2021年量子电路模拟超过每秒400亿亿次浮点运算的应用性能,无论是超级计算机硬件所能提供的计算能力,还是高性能计算软件的相关技术,都取得了长足的进步。