Skip to main content

4 posts tagged with "hpc"

View All Tags

写给新生的高性能计算入门(一) —— 高性能计算国内外发展现状及发展趋势

· 10 min read

说起超级计算机,大家应该会有一个概念,大致就是计算能力很强的计算机。甚至在某乎,还有人问 在超算上面打游戏是什么体验。 这里解释一下,实际上,由于超算系统的限制,很少能够可以连接互联网,而且远程连接网络性能也可能不好; 还有就是,游戏的程序并没有做大规模并行化(实际上也没必要),顶多只能单节点多核运行(可能还没GPU),所以打游戏的计算性能和单个普通服务器的性能差不多。对于超算来说,其强势主要在于计算能力(而且为了保证你的程序可以利用上超算的计算资源,需要针对超算环境去编写/改写并行程序,这个我们后面讨论并行编程的时候会讲)。

在高性能计算领域,有一个榜单 top500,该榜单每半年(6月份和11月份)公布一次世界上计算能力前500的超级计算机,其中6月份是在ISC(the International Supercomputing Conference)大会上公布,11月份是在SC(SuperComputing Conference)大会上公布。 该榜单最早由Hans MeuerErich StrohmaierJack Dongarra于1993年发起。

超算中的基本概念

节点(nodes)

简单来说,超算就是有很多计算节点,通过高速互联网络连接而成的计算机系统。每个节点实际上是一台比较独立的计算机,每个节点上可能会有多块 CPU 、加速计算硬件(如GPU、Intel phi等)、内存、操作系统(基本都是Linux系统)。 由于一个节点上,可能有多快CPU,每个CPU可能还是多核的,再加上加速卡,所以一般单节点都是一个具有多个核心的节点。
例如,目前(2019.09)排名 top500 第一的超算 summit,每个节点的结构如下图所示。其每个节点有一个 Power9 CPU,外加3块 NVIDIA V100 GPU。节点内部的 CPU-GPU 以及 GPU-GPU之间通过 NVIDIA NVLink 互联起来。
summit link

文件系统

一般地,超算上不是每个节点都有一块硬盘的,而是用的各个节点共享的并行文件系统,使用并行文件系统,各个节点都可以向这个共享的文件系统中写入或读取文件。

计算能力的衡量指标: FLOPS

FLOPS,或者叫 Flops、flops 或 flop/s,即 floating point operations per second, 指的是计算机系统每秒可以进行的浮点数操作次数, 具体可参见 wikipedia-FLOPS。 除了FLOPS作为单位外,还有 GFlops,TFlops,EFlops,ZFlops等单位,其中:

  • 1 KFlops = 1000 Flops
  • 1 MFlops = 1000 KFlops
  • 1 GFlops = 1000 MFlops
  • 1 TFlops = 1000 GFlops
  • 1 PFlops = 1000 TFlops
  • 1 EFlops = 1000 PFlops
  • 1 ZFlops = 1000 EFlops

例如目前,无锡神威太湖之光超级计算机,其持续浮点性能为 93.0146 PFlops,9.3亿亿次/秒 (在 top500 网站上列出的超级计算机性能表里面,会提到系统的峰值性能(Rpeak)和持续性能(Rmax))。