高性能计算(HPC)

高性能计算(HPC)

物理,PDE和数值建模HPC

HPC的基础知识

高性能计算,也称为HPC,指的是使用汇总计算能力来处理计算和数据密集型任务(包括仿真,建模和渲染),标准工作站无法解决。通常,在合理的时间内无法在商品计算机上解决所考虑的问题(需要太多操作),或者由于可用资源有限(需要太多数据),因此无法执行。HPC是通过使用专业或高端硬件或从多个单元积累计算能力来克服这些限制的方法。跨多个单元的数据和操作的相应分布需要并行化

当涉及硬件设置时,有两种通常使用的类型:

  1. 共享存储器
  2. 分布式内存簇

在共享存储器中,所有处理单元都可以访问随机访问存储器(RAM)。同时,在分布式内存簇中,不同处理单元之间的内存无法访问,或者是无法访问的节点。使用分布式内存设置时,必须有一个网络互连来在处理单元之间发送消息(或使用其他通信机制),因为它们无法访问相同的内存空间。现代HPC系统通常是两个概念的混合实现,因为有些单元共享共同的内存空间,而有些则没有。

一个图显示了混合平行计算的动力学,这是HPC中的重要元素。
  • 一个图显示了混合平行计算的动力学,这是HPC中的重要元素。
混合并行计算可最大化共享内存的功能。

使用HPC的原因

HPC主要使用两个原因。首先,由于中央处理单元(CPU)和节点的数量增加,因此可以使用更多的计算能力。较大的计算能力使得可以更快地计算特定模型,因为每个时间单元可以执行更多操作。这被称为加速

加速度定义为并行系统上的执行时间与串行系统上的执行时间之间的比率。

加速的上限取决于模型可以平行的程度。例如,考虑一个固定尺寸的计算,其中50%的代码能够并行化。在这种情况下,理论上的最大速度为2。如果代码可以平行于95%,则可以达到20的理论最大速度。对于完全并行的代码,添加更多时,没有理论上的最大限制系统的计算单元。Amdahl的定律解释了这种现象。

根据Amdahl定律描述理论最大加速的情节。
  • 根据Amdahl定律描述理论最大加速的情节。
如Amdahl定律所指出的那样,理论上的最大加速。

其次,在群集的情况下,可用的内存量通常以线性方式增加,包括其他节点。因此,可以将越来越大的模型计算为单位数量的数量。这被称为缩放速度。采用这种方法可以从某种意义上“作弊” Amdahl定律所构成的局限性,后者考虑了固定尺寸的问题。将计算能力和内存的数量增加一倍,使一个任务是在同一时间内计算的基本任务的两倍。Gustafson-Barsis的定律解释了这一现象。

根据Gustafson-Barsis的定律说明了理论最大加速的图。
  • 根据Gustafson-Barsis的定律说明了理论最大加速的图。
如古斯塔夫森·巴尔西斯(Gustafson-Barsis)定律所指出的那样,理论上的最大加速。

并行化

不同类型的建模问题与不同程度平行。以参数扫描为例,该参数涉及计算具有几个独立几何,边界条件或材料属性的类似模型,这些模型几乎可以完美地平行。这是通过为每个计算单元提供一个模型设置来完成的。这些类型的模拟非常适合并行化,通常称为“令人尴尬的并行问题”。

令人尴尬的并行问题对集群中网络的速度和延迟非常不敏感。(在其他情况下,由于网络不足以有效处理通信。)因此,可以连接商品硬件以加快此类问题的计算(即构建一个Beowulf群集)。

Beowulf群集。
  • Beowulf群集。
由六个笔记本电脑和一个旧开关构建的Beowulf群集。

许多类型的问题可以分为较小的部分,或者子问题。可以通过数据分解(数据并行性)或任务分解(任务并行性)来构建较小的部分。这些子问题之间的耦合程度会影响它们的并行程度。

一个几乎完全脱钩的问题的一个例子是一个令人尴尬的平行问题,例如上面讨论的参数扫描。完全耦合的问题的一个示例将是一个迭代过程,在其中计算必须以严格的串行方式完成。

当子问题耦合时,无法独立处理,因为一个子问题的中间结果可能取决于其他子问题。一个人需要通过信息交换来照顾这些依赖关系(与原始序列问题相比,这包括其他工作)。共享内存或互连网络可用于不同计算单元之间的通信和同步。取决于计算是否在共享内存环境或分布式内存环境中运行,各种因素对并行化和可能的加速有影响。

当在几个节点上运行分布式内存模拟时,计算单元必须使用网络进行通信。这里,网络延迟和带宽进一步影响沟通速度。因此,大多数HPC群集配备了高带宽/低延迟网络,在群集的不同节点之间快速提供数据。

发布:2016年3月7日
最后修改:2017年2月21日