高性能计算
高性能计算 (HPC) 是一门使用一组尖端计算机系统执行复杂模拟、计算和数据分析的艺术和科学,这是现有标准商业计算系统无法实现的。
什么是 HPC?
HPC 计算机系统的特点是其高速处理能力、高性能网络和大内存容量,具备执行大量并行处理任务的能力。超级计算机是一种非常先进的 HPC 计算机,提供极强的计算能力和极高的速度,是高性能计算系统的关键组成部分。
近年来,HPC 已从专注于基于模拟的科学研究的工具演变为兼具模拟和机器学习 (ML) 能力的工具。HPC 系统应用范围的扩展势头强劲,是因为基于物理的模拟与 ML 的结合缩短了气候建模、药物发现、蛋白质折叠和计算流体动力学 (CFD) 等领域获取科学洞察的时间。
超级计算机的基本系统架构。
推动 HPC 和 ML 演变的一个关键因素是图形处理器 (GPU) 技术的发展。GPU 是专门设计用于并行处理大量数据的计算机芯片,非常适合某些 HPC 任务,因此目前是 ML/AI 计算的常规选择。高性能 GPU 与软件优化相结合,使 HPC 系统能够执行复杂的模拟和计算,而且速度比传统计算系统快得多。
为什么 HPC 很重要?
高性能计算之所以重要,有以下几个原因:
- 速度和效率:与传统计算机相比,HPC 系统可以更快地执行复杂计算,使研究人员和工程师能够解决传统计算资源无法处理的大规模问题。
- 科学发现:HPC 对于许多科学学科至关重要,包括气候建模、分子动力学和计算流体动力学。它使研究人员能够模拟复杂的系统和过程,从而获得新的见解和发现。
- 产品设计与优化:HPC 广泛应用于航空航天、汽车和能源等行业,用于模拟和优化产品、流程和材料的设计,提高性能并缩短开发时间。
- 数据分析:HPC 对于分析大型数据集(例如在观察性研究、模拟或实验过程中生成的数据集)也很重要。它使研究人员能够识别数据中的模式和相关性,而使用传统计算资源则很难检测。
- 医疗保健:在医疗保健领域,HPC 越来越广泛地用于开发新的治疗手段和方法,包括个性化医疗、药物发现和分子建模。
HPC 彻底改变了研究和工程的进行方式,从提高工业流程的效率到灾难响应和缓解,再到加深我们对周围世界的理解,都对我们生活的许多方面产生了深远影响。
HPC 的工作原理是什么?
高性能计算是指将多台计算机的计算能力组合起来,执行单台计算机无法完成的大规模任务。HPC 的工作原理如下:
- 集群配置:HPC 集群由多台通过高速网络连接的计算机或节点组成。每个节点都配备了一个或多个处理器、内存和存储。
- 任务并行化:计算工作被分成较小的独立任务,这些任务可以在集群中的不同节点上同时运行,这称为任务并行化。
- 数据分发:计算所需的数据被分发到各个节点上,因此每个节点都有一部分要处理的数据。
- 计算:各个节点并行执行其计算部分,结果被共享并最终整合,直至工作完成。
- 监测和控制:集群包含用于监测节点性能以及控制任务和数据分发的软件工具。这有助于确保计算高效且有效地运行。
- 输出:最终输出是集群中所有节点执行的组合计算的结果。输出通常保存到大型并行文件系统并且/或者以图形方式呈现为图像或其他视觉表现形式,以促进发现、理解和沟通。
通过利用多台计算机的组合能力,HPC 使大规模模拟、数据分析和其他计算密集型任务能够快速完成,所需时间仅为单台计算机执行这些任务所花费时间的一小部分。
什么是 HPC 集群?
高性能计算集群是一组紧密互连的计算机,这些计算机以单系统形式并行运行,以执行大规模计算任务。HPC 集群旨在提供高性能和可扩展性,使科学家、工程师和研究人员能够解决单台计算机无法处理的复杂问题。
HPC 集群通常由许多单独的计算节点组成,每个节点都配备了一个或多个处理器、加速器、内存和存储。这些节点通过高性能网络连接,使它们能够共享信息并协作执行任务。此外,集群通常包含专门用于管理资源(如调度作业、分发数据和监控性能)的软件和工具。通过分割数据和分配任务以并行执行任务,可以实现应用加速。
使用传统 HPC 加速训练数据。
来源:人工智能与高性能计算在 NSF 支持的网络基础设施上的融合 | Journal of Big Data | 全文 (springeropen.com) 中的图表数据
HPC 用例
气候建模
气候模型用于模拟地球气候的行为,包括大气、海洋和陆地表面。这些模拟可能是任务密集型任务,需要大量数据和并行计算,因此非常适合 GPU 加速的 HPC 系统。通过使用 GPU 和其他并行处理技术,气候科学家可以运行更详细、更准确的模拟,从而更好地了解地球气候和人类活动的影响。随着这一用例不断取得进展,预测能力将会增强,并可用于设计有效的缓解和适应策略。
药物研发
新药物的发现和开发是一个复杂的过程,需要模拟数百万种化合物才能找到有可能治疗疾病的化合物。传统的药物发现方法因计算能力不足而受到限制,但 HPC 和 GPU 技术使科学家能够运行更详细的模拟并部署更有效的 AI 算法,从而加快新药物的发现速度。
蛋白质折叠
蛋白质折叠是指蛋白质折叠成三维结构的过程,这些结构对其功能至关重要。了解蛋白质折叠对于开发阿尔茨海默氏症和癌症等疾病的治疗方法至关重要。HPC 和 GPU 技术使科学家能够更高效地运行蛋白质折叠模拟,从而更好地了解该过程并加速新疗法的开发。
计算流体动力学
计算流体动力学 (CFD) 模拟用于对真实世界系统中的流体行为 (例如飞机周围的空气流动) 进行建模。利用 HPC 和 GPU 技术,工程师能够运行更详细、更准确的 CFD 模拟,有助于改进风力涡轮机、喷气发动机和各种类型的运输车辆等系统的设计。
HPC 和 ML/Al 对用于模拟地球行为的气候建模产生了重大影响。
HPC 应用程序
科学和工程领域中一些最常用的高性能计算应用包括:
- 分子动力学模拟
- 计算流体动力学
- 气候建模
- 计算化学
- 结构力学与工程
- 电磁模拟
- 地震成像与分析
- 材料科学与工程
- 天体物理模拟
- 机器学习与数据分析
有多种计算机代码用于分子动力学 (MD) 模拟,其中最常用的代码包括:
- 格罗宁根化学模拟机 (GROMACS)
- 能量优化辅助建模 (AMBER)
- 哈佛大学化学分子力学 (CHARMM)
- 大规模原子/分子并行模拟器 (LAMMPS) 纳米级分子动力学 (NAMD)
- OpenMM
有多种计算机代码用于 CFD 模拟,其中最常用的代码包括:
- Ansys Fluent
- OpenFOAM
- COMSOL Multiphysics
- STAR-CCM+
有多种计算机代码用于气候建模,其中最常用的代码包括:
- 社区地球系统模型 (CESM)
- 气候跨学科研究模型 (MIROC)
- 地球物理流体动力学实验室 (GFDL) 气候模型
- 欧洲中期天气预报中心 (ECMWF) 模型
- 英国气象局统一模型 (MetUM)
- 马克斯·普朗克气象研究所 (MPI-M) 地球系统模型
有多种计算机代码用于计算化学,其中最常用的代码包括:
- 高斯
- ORCA
- NWChem
- Quantum ESPRESSO
- 分子轨道包 (MOPAC)
- 阿姆斯特丹密度泛函 (ADF)
- Q-Chem
有多种计算机代码用于机器学习,其中最常用的代码包括:
- TensorFlow
- PyTorch
- scikit-learn
- Keras
- Caffe
这些代码提供广泛的机器学习算法,包括监督式学习和无监督学习、深度学习和强化学习。它们广泛用于图像和语音识别、自然语言处理和预测分析等任务,是解决计算机视觉、机器人和金融等领域内复杂问题的重要工具。
HPC 如何入门?
以下是高性能计算的一些入门方法:
- 熟悉计算机架构、操作系统和编程语言的基础知识,特别是常用于高性能计算的语言(如 C、C++、Fortran 和 Python)。
- 学习并行计算和分布式计算概念,包括并行算法、进程间通信和同步。
- 亲身体验高性能计算工具和系统,如集群、GPU 和消息传递接口 (MPI)。您可以访问 NVIDIA 深度学习培训中心(DLI) 学习相关课程,或尝试在公共计算集群上运行模拟。
- 阅读有关该学科的研究论文和书籍,了解高性能计算的最新进展和现实应用。
- 考虑参加在线课程或注册计算机科学、工程或相关领域的学位课程,以便更全面地了解该学科。
- 参加以高性能计算为主题的编码挑战和编程马拉松,以提高您的实践技能。
- 加入 NVIDIA 开发者计划等在线社区,并参加研讨会和会议,以便与专业人士进行交流并及时了解该领域的最新发展情况。
