高性能计算 (HPC) 是一种用于聚合计算资源的做法,这种做法获得的性能要优于单个工作站、服务器或计算机的性能。HPC 可以采用定制的超级计算机或计算机组(称为集群)的形式。HPC 可以在本地、云端或两者的混合环境中运行。集群中的每台计算机通常称为一个节点,其中每个节点负责一项不同的任务。控制器节点运行基础服务并在节点之间协调工作,交互式节点或登录节点充当用户通过图形界面或命令行登录的主机,而计算节点或工作器节点执行计算。算法和软件在集群的每个节点上并行运行,以帮助执行其给定任务。HPC 通常具有三个主要组件:计算、存储和网络。
HPC 使公司和研究人员能够聚合计算资源,以解决因标准计算机无法单独处理的过大问题,或者处理耗时过长的问题。因此,它有时也称为超级计算。
HPC 用于解决学术研究、科学、设计、模拟和商业智能方面的问题。HPC 能够快速处理海量数据,因此可以为当今社会的一些最基本方面提供支持,例如,银行能够一次性同时验证数百万笔信用卡交易是否存在欺诈行为,汽车制造商可以测试汽车的碰撞安全性设计,或者了解明天的天气情况。
详细了解 Google 的 HPC。
高性能计算包含三个主要组成部分:
简单来说,HPC 系统的节点(计算)会连接到其他节点以同时运行算法和软件,然后再连接到(网络)数据服务器(存储)以捕获输出。由于 HPC 项目往往庞大而复杂,因此系统的节点通常必须相互交换计算结果,这意味着它们需要快速磁盘、高速内存,以及在节点和存储系统之间建立低延迟、高带宽网络。
HPC 通常可分为两种常规设计类型:集群计算和分布式计算。
并行计算采用一系列协同工作的计算机(集群)完成,例如采用物理上和网络拓扑中彼此紧密相连的一组服务器以最大程度减少节点之间的延迟时间。
分布式计算模型通过网络连接了存在于单个位置(通常是本地)或分布在多个位置的多台计算机(可能包括本地硬件和云资源)的计算能力。
此外,HPC 集群还可以区分同构与异构硬件模型。在同构集群中,所有机器具有相似的性能和配置,通常被视为相同且可互换。在异构集群中,有一组硬件具有不同特征(高 CPU 核心数、GPU 加速等),若在为节点分配任务时,可以充分利用它们的独特优势,则系统将得到最佳利用。
HPC 环境中的工作负载通常分为两种不同的类型:松散耦合和紧密耦合。
松散耦合的工作负载(通常称为并行作业或高吞吐量作业)由可在整个系统内同时运行的独立任务组成。这些任务可能会共用存储空间,但并不依赖于上下文,因此在完成时不需要相互传达结果。松散耦合工作负载的一个示例是,在故事片中渲染计算机生成的图像 (CGI),其中视频的每一帧均独立于其他帧进行渲染,尽管它们均共享相同的输入数据(例如背景和 3D 模型)。
紧密耦合的工作负载由许多小进程组成,每个进程都由集群中的不同节点处理,这些节点彼此依赖来完成整体任务。紧密耦合的工作负载通常需要在节点之间建立低延迟网络,并需要快速访问共享内存和存储空间。这些工作负载的进程间通信由消息传递接口 (MPI) 使用 OpenMPI 和 Intel MPI 等软件处理。紧密耦合工作负载的一个示例是天气预报,其中涉及对温度、风力、压力、降水等动态且相互依赖的系统进行基于物理学的模拟。在这里,每个聚类节点都可以计算不同天气因素的部分解,为总体天气预报做出一份贡献。
HPC 可以在本地使用专用设备执行,也可以在云端执行,还可以混合使用者两种方式。
云端 HPC 具备灵活性和可伸缩性,而且无需购买和维护昂贵的专用超级计算机。云端 HPC 提供执行大型复杂任务(如数据存储、网络解决方案、专业计算资源、安全和人工智能应用)所需的全部必要基础设施。工作负载可以按需执行,这意味着组织可以节省购买设备的资金和计算周期的时间,只在需要时才使用所需的资源。
选择在云端运行 HPC 时的一些常见注意事项包括:
延迟时间和带宽:随着在 HPC 工作负载中运行的数据量增加,云服务提供商需要以低延迟提供强大的网络功能(>100 GB/秒)。
性能:云端 HPC 最适合那些需要不断更新系统以优化性能的提供商,尤其适合需要优化计算机处理器、存储解决方案和网络功能的提供商。
可持续性:HPC 是一种资源密集型计算形式,与普通工作负载相比,所需的电量要多得多。本地高性能计算机每年的能耗可能达数百万美元。优先采用可再生能源的公有云(例如 Google Cloud)可以减轻 HPC 对能源的影响。
存储:鉴于大多数 HPC 任务的规模,运行 HPC 工作负载时,可扩缩的数据存储空间是一个重要的考虑因素。可以(通过 Cloud Storage Filestore High Scale 或 DDN EXAScaler 等)轻松存储和管理大量数据的云服务提供商在 HPC 中具有优势。
安全:采用以私密方式管理的全球基础设施的云服务提供商可以确保最大限度地减少向公共互联网泄露数据和应用。虚拟私有云 (VPC) 网络支持节点之间的连接,并且可以为 HPC 应用配置防火墙。机密计算功能支持在使用中加密,以及静态加密和传输中加密。
速度与性能
高性能计算处理数据和任务的速度比单台服务器或计算机快得多。在常规计算系统中可能需要数周或数月才能完成的任务在 HPC 中可能只需数小时。
灵活性和效率
借助云端的 HPC,您可以根据需要扩缩工作负载。凭借强大的互联网连接,您可以从世界上的任何地方访问 HPC。
节约费用
得益于 HPC 在云端的速度、灵活性和效率,组织可以在计算资源和工时方面节省时间和金钱。
容错性
如果 HPC 集群的一个节点发生故障,系统的其他节点不会崩溃,因为它具有足够强的弹性。鉴于 HPC 会执行复杂的大型任务,容错能力就是一个很大的优势。
加速研发
HPC 可加快数据密集型项目(例如医药建模、设计新机器和零部件,或通过模拟实验来减少物理测试)得出结果,为开展研发的公司提供了优势。
初始费用
本地 HPC 集群和超级计算机的初始成本较高。考虑设备、人力、软件和配置成本后,大多数组织都无法实现本地 HPC。
能源消耗
安装本地超级计算机所产生的能源成本可能很高。对于注重环保和成本的公司来说,通过在世界上最清洁的云上运行 HPC,可以实现可持续的 HPC 能耗。
维护
采用最新一代硬件和优化软件时,HPC 的运行效果最佳。及时更新本地 HPC 集群或超级计算机以确保最佳性能很快就会成为一项持续性巨大开支。
现代生态系统充斥着大量数据和计算密集型分析工具。借助 HPC,企业和组织能够及时处理所有数据,从而推动新的数据洞见、创新和科学发现。这样一来,公司就可以预测业务场景、预测市场波动并给出建议。同时,医疗领域正在通过轻松访问云端 HPC 实现转型,有助于模拟潜在的疾病爆发、解码癌症细胞的基因组,以及了解疾病的演变。
简而言之,HPC 正在加快科学、技术和商业进步的速度,帮助人类创造更繁荣的未来。
以下是高性能计算的一些使用场景。
研究
HPC 在学术和科研中用于分析和计算大型数据集(例如来自卫星和望远镜的天文数据)、创造新材料、发现新药物或对蛋白质进行建模。
模拟
HPC 用于模拟汽车碰撞以及飞机机翼或发动机内部的气流等物理场景,或者潜在的新药物如何与人类细胞相互作用。
设计
制造商通常使用 HPC 和人工智能在软件中设计飞机和汽车等新机器,然后再构建物理样机。如果没有 HPC 的计算能力,设计和渲染潜在模型将花费更长的时间,因此会减慢制造过程。计算机芯片制造商会先使用 HPC 来为新的芯片设计建模,然后再在代工厂进行原型设计。
优化
HPC 可帮助优化大型和困难的数据集,例如金融投资组合或最高效的运输和物流路线。
预测
HPC 可处理大型复杂数据集并及时进行预测。许多航空航天公司使用 HPC 来预测他们的机器所需的维护时间。大多数天气预报都是通过高性能计算进行的,这让气象学家能够预测风暴的路径,或者模拟气候变化。