高性能计算 (HPC) 是指利用先进的计算系统(通常是拥有大量并行处理器的集群或超级计算机)以极快的速度和极大的规模解决复杂问题。HPC 能够处理海量数据集并运行细粒度模拟,从而推动了科学研究、工业创新和人工智能 (AI) 领域的突破,这些任务若由传统系统处理将耗费太多时间。
随着现代工作负载在企业内部、云端和分布式环境中不断扩展,数据治理变得越来越重要。数据治理能确保敏感数据得到正确处理、数据访问受到控制、计算结果保持可信且可审计——且不会影响性能。
什么是高性能计算?
高性能计算的定义:HPC 是一种计算方法,它利用并行处理、高速互连和优化的系统架构,以极高的吞吐量解决计算密集型问题并处理海量数据集。
与依赖于单个中央处理器 (CPU) 依次排队完成任务不同,HPC 将工作分配给多个同时运行的处理器来并行处理。对于可以拆分为较小任务的工作负载(尤其是仿真、建模和数据密集型分析),这种并行方法可以缩短获得结果所需的时间。
HPC 系统与传统计算机的区别在于其具备以下能力:
- 在众多计算资源上同时运行大规模并行工作负载
- 在处理数据密集型工作流时保持高吞吐量(而不仅仅是快速计算)
- 支持建模与仿真、AI 训练以及大规模分析等现代工作负载
超级计算机是最先进的 HPC。它们将大规模并行计算与专用架构相结合,性能比通用企业系统高出几个数量级,支持气候建模、基因组分析和大规模 AI 训练等用例。
高性能计算是如何工作的?
与在单个处理器上按顺序处理任务的传统计算机不同,HPC 系统将工作负载分配给多个同时运行的处理器。这种并行计算方法是实现大规模 HPC 的基础。
大多数 HPC 环境都是以集群形式构建的,这些集群由许多计算系统组成,通过低延迟网络连接、并由集群管理软件进行协调。一个典型的 HPC 集群包括:
- 头节点:管理集群、调度任务并协调工作负载
- 计算节点:运行应用程序工作负载,可能包含多个 CPU;当前越来越多的计算节点会使用图形处理单元 (GPU) 等加速器
- 高速互连:以极低延迟实现节点之间的快速通信
- 共享存储系统:在整个集群范围内提供集中式数据访问
在现代 HPC 领域,性能已不再仅由计算能力决定。内存带宽、存储吞吐量以及系统内数据传输的效率都可能影响生成计算结果的时间,尤其是当工作负载需要对大型数据集进行流式处理或重新排列时。随着企业的工作负载扩展至多个环境,在实施相应的数据治理要求(访问控制、保留策略、数据血统和合规性)时,也必须避免造成瓶颈或者增加不必要的数据副本。
高性能计算的发展历程是怎样的?
HPC 的发展史是一部架构变革的历史,其背后是人们对更高性能、更强可扩展性以及更高效数据处理的需求。
- 20 世纪 60 年代 - 早期超级计算:由 Control Data Corporation 制造的 CDC 6600 是公认最早的超级计算机之一,具备前所未有的处理速度,主要用于完成科学计算任务。
- 20 世纪 70 年代 - 向量处理系统:Cray-1 等系统通过对大型数据集高效应用向量运算,提升了建模和仿真的水平。
- 20 世纪 80 年代 - HPC 应用范围扩大:HPC 的应用范围扩展至科研和政府领域,为天气预报和复杂物理模拟等工作负载提供支持。
- 20 世纪 90 年代 - 并行处理成为 HPC 的基础:HPC 逐渐转向集群化和大规模并行架构,通过将工作负载分布在相互连接的节点上,来提高可扩展性。
- 21 世纪 00 年代中期 - 多核 CPU 架构:随着 CPU 时钟速度趋于平稳,性能提升越来越依赖于核心数量的增加,使得软件级并行处理变得愈发重要。
- 21 世纪 10 年代至今 - 异构计算与加速器驱动计算:HPC 系统越来越多地采用异构节点,将 CPU 与加速器(最常见的是 GPU)相结合,以提升高并行度工作负载的性能和能效。
- 21 世纪 10 年代末至今 - AI 工作负载扩张:AI 和机器学习的兴起带来了更多高并行度工作负载,进一步增加了对配备大量加速器的 HPC 系统、高带宽内存、更快的存储以及更高效数据传输的需求。
如今,随着云集成、可组合基础设施概念的提出,以及内存与存储融合、先进互连技术等新技术的兴起,HPC 仍在不断发展当中。而 HPC 要实现的目标始终未变:减少成本高昂的数据传输,提高可用带宽并提升性能,同时在分布式环境中保持有效的运营控制和数据治理。
高性能计算的主要类型有哪些?
要理解 HPC,最好通过其架构模型来把握,而非通过僵化的“类型”,因为不同的方法决定了工作负载的运行位置、扩展方式以及数据的管理方式。
- 集群计算:集群是由紧密耦合的节点组成的集合,作为单一系统运行,专为低延迟、高性能的并行执行而优化。集群在本地 HPC 环境中十分常见。
- 分布式计算:分布式计算是指在多个系统上或多个地点运行工作负载,计算节点通常分布在地理上的不同位置。分布式计算通常用于基于云的 HPC 和数据密集型工作流,这些应用场景能够从弹性扩展架构中获益。
- 混合型 HPC:混合型 HPC 是指将本地集群基础设施与云资源相结合。企业通常使用此模型将工作负载“转移”至云端,以应对需求高峰。混合型 HPC 可提高灵活性,并能在不同环境之间平衡成本、性能和数据治理要求。
高性能计算的应用范围如何?
HPC 广泛用于需要快速数据密集型处理的领域,以及需要高级建模和高精度仿真的领域。HPC 的常见用例包括:
- 医疗保健与生命科学:基因组测序、蛋白质建模、医学影像分析以及药物研发流程。
- 金融服务:风险建模、欺诈检测、投资组合模拟以及蒙特卡洛方法。
- AI 和机器学习:大规模模型、超参数调优以及大规模高吞吐量推理。
- 科学研究:气候与天气建模、天体物理学、材料科学和计算化学。
- 工程与制造:仿真、数字孪生、计算流体力学以及设计优化。
随着数据集规模不断扩大、工作流日益分散,HPC 系统在确保限时生成结果的同时,还能支持严格的数据治理措施——例如控制可以访问敏感数据集的人员、减少不必要的数据重复,以及确保跨团队和跨站点的数据重现性。
HPC 的大规模部署和运行可能比较困难。常见的挑战包括基础设施和运营成本、系统复杂性(调度、调优和监控)、供电和散热要求,以及由数据传输导致的性能瓶颈——尤其是当存储、内存带宽和互连限制导致计算资源无法得到充分利用时。数据治理可能会对访问控制、审计和策略执行提出额外要求,在满足这些要求的同时,必须避免给工作流带来负面影响。
没有一种编程语言能够“最适合”所有 HPC 工作负载。C 和 C++ 广泛应用于对性能要求极高的应用;Fortran 在科学计算领域依然普遍使用;而 Python 则常用于系统编排、数据工作流和原型开发。许多现代 HPC 环境还依赖于并行编程模型和库(如 MPI 和 OpenMP),以及针对 GPU 工作负载的专用加速器工具链。