超级计算机
超级计算机(Supercomputer)
超级计算是一种高性能计算形式,使用功能强大的计算机“超级计算机”执行确定或计算,减少总求解时间。不同于传统的计算机,超级计算机使用多个中央处理器 (CPU)。 这些 CPU 分组成多个计算节点,包含一个处理器或一组处理器(对称多处理 (SMP)) 和一个内存块。 在规模上,超级计算机可以包含数万个节点。 凭借互相连接通信能力,这些节点可以协作解决特定问题。
超级计算以每秒浮点运算次数 (FLOPS) 衡量。 Petaflop 是计算机处理速度的一种度量单位,等同于每秒千万亿次浮点运算。 速度为 1 petaflop 的计算机系统每秒可以执行百万的四次方次浮点运算。 实际测试中,利用Linpack 基准测试近似计算机解决数值问题的速度来作为计算的结果,在行业中被广泛使用。
根据超算 500 强名单排名,当前世界上最快的超级计算机是美国的 Frontier,截至 2022 年 6 月统计的速度是 1102 petaflop(E级)。 日本超级计算机 Fugaku 和 荷兰超级计算机 LUMI 分别位列第二名和第三名,速度分别是 442 和 151.9 petaflop。
『Fun fact』当前榜单第一名Frontier及第三名LUMI均为“同一架构”超算,均采用了AMD处理器及加速卡。第一名Frontier实现了比第二名Fugaku(ARM架构)多12.5%的核心,实现了性能的翻倍(达到E级),且整体功耗也要相对低好多。
峰值计算
FLOPS在高性能计算机集群(超算)上可以使用如下公式计算:
细分到处理器上,以单个 Intel® Xeon® Gold 6258R 举例,该处理器基于Cascade Lake架构,每个计算单元有2个FMA(fused multiply-add),每个FMA可以对512bit数据在一个时钟周期中做一次乘运算和一次加运算:
-
(512bit/32bit) x 2(FMA) x 2(乘和加) = 64 SP FLOPs/cycle,即每个时钟周期可以做64个单精度浮点计算。
-
(512bit/64bit) x 2(FMA) x 2(乘和加) = 32 DP FLOPs/cycle,即每个时钟周期可以做32个双精度浮点计算。
因单个CPU峰值浮点计算性能 = CPU核数 x CPU频率 x 每周期执行的浮点操作数,故 Intel® Xeon® Gold 6258R 处理器:
-
单精度理论峰值性能 = 28(CPU核数) x 2.7GHz(CPU频率) x 64 SP FLOPs/cycle = 4838.4 GFLOPs/s 峰值浮点计算能力。
-
双精度理论峰值性能 = 28(CPU核数) x 2.7GHz(CPU频率) x 32 DP FLOPs/cycle = 2419.2 GFLOPs/s 峰值浮点计算能力。
实际应用
超级计算机目前在计算科学领域发挥着重要作用,被广泛用于各个领域的计算密集型任务,它们将帮助我们模拟超新星,开拓新材料,探索癌症治疗,遗传与环境,量子力学、天气预报、气候研究、油气勘探、分子建模(化合物、生物大分子、聚合物和晶体)和物理模拟(如宇宙早期模拟、飞机和航天器空气动力学、核武器爆炸和核聚变)。
因为超级计算机经常用来运行人工智能程序,所以超级计算几乎成为人工智能的代名词。 这种常规的用法是因为人工智能程序需要超计算机提供的高性能计算。 换言之,超级计算机可以处理人工智能应用程序通常需要的工作负载类型。
超算与高性能计算
虽然超级计算通常是指超级计算机使用的复杂的大型计算过程,但高性能计算 (HPC) 是指使用多台超级计算机来处理复杂的大型计算。 这两个术语经常互换使用。
超算与并行计算
超级计算机有时也被称为并行计算机,因为超级计算机可以使用并行处理。 并行处理是指多个 CPU 在给定时间共同对单个计算求解。 然而,HPC 场景也使用并行性,但不一定使用超级计算机。另一个例外是,超级计算机可以使用其他处理器系统,例如向量处理器、标量处理器或多线程处理器。