高性能计算(High Performance Computing)是现代科学与工程的核心基础设施。从气象预报到蛋白质折叠,从核聚变模拟到金融市场风险分析——这些都需要在数百甚至数千个计算节点上协同执行大规模并行任务。理解 HPC 的软件栈、硬件架构和编程模型,是将计算能力从单机扩展到集群的关键。
本专题共收录 43 篇深度文章,覆盖 HPC 的九大核心维度:编程模型(MPI/OpenMP/CUDA)、集群调度与存储(Slurm/Lustre)、网络与通信(InfiniBand/RDMA/NCCL)、性能优化方法论(Roofline/NUMA/内存层次/perf/Nsight/GPU 内核调优)、工程实践(Singularity 容器/工作流编排/容错检查点/集群运维)、进阶应用与云原生(Python 分布式计算 Dask/Ray、Kubernetes 调度 HPC、并行 I/O、分子动力学、云上弹性 HPC、HPL 基准测试)、编译器与精度(PGO/LTO、SIMD 向量化、IEEE 754 浮点、OpenACC/SYCL/HIP/Kokkos 可移植性)、前沿方向(量子-经典混合计算、HPC 与 AI 融合)、工程闭环(MPI 进阶通信与单边通信、稀疏矩阵求解、并行调试与死锁诊断、检查点与重启、互连拓扑设计、FPGA 可重构加速)。无论你是使用超算中心资源,还是构建私有 GPU 集群,都能在这里找到体系化的知识支撑。
一、并行编程模型
掌握三种主流并行编程范式,覆盖从共享内存到分布式内存到异构加速的全场景:
| 文章 | 核心内容 | 难度 |
|---|---|---|
| MPI 并行编程入门:从点对点通信到集合操作 | MPI_Init、send/recv、广播/归约/Scatter/Gather、非阻塞通信(Isend/Irecv)、进程拓扑 | ★★★★☆ |
| OpenMP 共享内存并行:指令、调度与任务并行 | parallel/for/sections、reduction、schedule 策略、barrier/critical/atomic、task 并行 | ★★★☆☆ |
| CUDA + MPI 异构并行:多 GPU 集群编程实战 | 多 GPU 编程模型、GPUDirect RDMA、NCCL 集合通信、大规模集群实践 | ★★★★★ |
二、集群调度与资源管理
理解大规模集群的作业调度逻辑与存储架构,是高效利用计算资源的前提:
| 文章 | 核心内容 | 难度 |
|---|---|---|
| Slurm 集群调度:作业提交、队列与 QoS 策略 | Slurm 架构、sbatch/srun/salloc、分区配置、backfill 调度、资源预留与优先级 | ★★★☆☆ |
| HPC 内存层次优化:NUMA、HBM 与 STREAM Benchmark | NUMA 感知编程 numactl、STREAM 带宽测试、内存交错、缓存优化 | ★★★★☆ |
| Lustre 并行文件系统:架构、条带化与调优 | MDS/OSS/Client 架构、stripe 配置、lfs 命令、MPI-IO 性能优化 | ★★★☆☆ |
| Dell R650 vs HPE DL360 Gen11 企业级服务器深度评测 | 机型规格与扩展性、CPU/内存带宽实测、功耗与散热、采购选型建议 | ★★★☆☆ |
三、性能分析与优化
用科学的性能模型指导优化决策,避免盲目调参:
| 文章 | 核心内容 | 难度 |
|---|---|---|
| Roofline 性能模型:判断 memory-bound 还是 compute-bound | 计算强度、带宽天花板、ridge point、ERT/Intel Advisor 工具 | ★★★★☆ |
| 并行算法设计模式:从主从到工作窃取 | 主从/分治/流水线/SPMD、work stealing、并行前缀和与排序 | ★★★★☆ |
| HPC 性能剖析与调优工具链:perf/gprof/VTune/Nsight | 剖析方法学、perf 火焰图、VTune/uProf、Nsight Compute/Systems、mpiP/TAU 通信剖析 | ★★★★☆ |
| GPU 内核性能优化进阶:占用率、访存与指令级调优 | Occupancy 计算、访存合并与共享内存、bank conflict、ILP、warp divergence、cuBLAS/NCCL 调优 | ★★★★★ |
四、网络通信与科学计算生态
RDMA 网络通信栈与科学计算软件生态是高端 HPC 的核心基础设施:
| 文章 | 核心内容 | 难度 |
|---|---|---|
| InfiniBand 与 RDMA:高性能集群网络实战 | IB 架构、RDMA write/read/send/atomic、RoCEv2、OFED 性能调优 | ★★★★☆ |
| PETSc 科学计算库:稀疏矩阵求解器实战 | Vec/Mat/KSP/SNES、CSR/AIJ 格式、Krylov 子空间求解器、预处理 | ★★★★☆ |
| OpenFOAM 流体模拟入门:从网格到并行求解 | 求解器/库结构、blockMesh/snappyHexMesh、边界条件、并行运行 | ★★★☆☆ |
| AMD ROCm/HIP:开源 GPU 编程与 CUDA 迁移 | ROCm 平台、HIP 编程模型、hipify 迁移工具、ROCm 生态实践 | ★★★★☆ |
| NCCL 集合通信:AllReduce 原理与多卡训练网络优化 | Ring/Tree AllReduce、拓扑感知、NVLink/IB 通路选择、调优环境变量 | ★★★★☆ |
| ARM 超算与专用加速器:A64FX 与 NVIDIA Grace | A64FX SVE 向量、Fugaku 架构、Grace Hopper 超级芯片、ARM 生态与迁移 | ★★★★☆ |
五、容器、工作流与集群运维
容器化与工作流编排正在重塑 HPC 的软件交付形态,容错机制与集群运维则保障大规模系统的稳定运行:
| 文章 | 核心内容 | 难度 |
|---|---|---|
| HPC 容器与可复现环境:Singularity/Apptainer 深入 | SIF 镜像格式、无特权运行、Docker 转换、MPI/Conda 集成、可复现性与缓存 | ★★★★☆ |
| 科学工作流引擎:Nextflow/Snakemake 与管线编排 | task/DAG、DSL2/channel、rule 通配符、executor 调度、断点续跑与重放 | ★★★★☆ |
| HPC 容错与检查点:Checkpoint/Restart、ULFM 与恢复 | 故障模型、周期/增量/分层检查点、SCR/DMTCP、ULFM 收缩、异步恢复策略 | ★★★★☆ |
| HPC 集群管理与软件栈运维:模块、Spack 与监控 | Lmod 模块、Spack 包管理、Prometheus/Ganglia 监控、队列治理、能源与散热 | ★★★☆☆ |
| 绿色 HPC:能耗优化与功率封顶实战 | 能耗度量与 PUE、DVFS 与功率封顶、能效感知调度、碳排与成本权衡 | ★★★☆☆ |
六、进阶应用与云原生
Python 分布式计算、Kubernetes 调度与云上弹性正重塑 HPC 的应用形态,科学仿真与基准测试则展现 HPC 的真实负载画像:
| 文章 | 核心内容 | 难度 |
|---|---|---|
| Python 高性能计算:Dask 与 Ray 分布式计算实战 | Dask 惰性图/DataFrame、Ray task/actor、集群部署、数据预处理与 RL/Serve | ★★★☆☆ |
| Kubernetes 调度 HPC 作业:KubeRay、GPU 资源与调度器 | Job 模型、GPU 设备插件、Kueue/Volcano、KubeRay、MPI Operator、存储网络 | ★★★☆☆ |
| 并行 I/O 实战:MPI-IO、HDF5 与 NetCDF 数据读写 | 文件视图、集合 I/O、HDF5/NetCDF 并行写、Lustre 条带化、Darshan/io500 | ★★★★☆ |
| 分子动力学仿真:GROMACS 与 LAMMPS 并行加速实践 | 力场/邻居列表、域分解、GROMACS GPU 卸载、PMe 静电、LAMMPS 实战 | ★★★★☆ |
| 云上弹性 HPC:AWS ParallelCluster 与按需集群实战 | ParallelCluster、EFA/RDMA、FSx for Lustre、Spot 成本优化、混合云 | ★★★☆☆ |
| HPC 基准测试:HPL/Linpack、HPCG 与 TOP500 实战 | 浮点峰值、HPL 参数调优、HPCG、TOP500/Green500、跑分陷阱 | ★★★★☆ |
| 科学数据格式与并行 IO 栈:HDF5、NetCDF 与 ADIOS2 | HDF5 数据模型与并行 API、NetCDF-4、ADIOS2 BP 引擎、in-situ 与 staging I/O | ★★★★☆ |
七、编译器、精度与可移植性
从编译器优化到浮点数值语义,再到跨厂商异构编程模型,这一层决定了性能能否「可移植地」兑现:
| 文章 | 核心内容 | 难度 |
|---|---|---|
| HPC 编译器优化:GCC/LLVM/Intel 优化选项、PGO、LTO 与自动调优 | -O 级别与语义、PGO 采样反馈、LTO/ThinLTO、-march 与自动调优、编译器诊断 | ★★★★☆ |
| SIMD 向量化:从 AVX-512 到编译器自动向量化 | SIMD 执行模型、AVX2/AVX-512、内建函数、自动向量化条件、AoSoA 与对齐 | ★★★★☆ |
| 浮点精度与数值稳定性:IEEE 754、FP32/FP64/BF16/TF32 与混合精度 | IEEE 754 表示、舍入与误差传播、混合精度与补偿算法、fast-math 陷阱 | ★★★★☆ |
| OpenACC 与指令式卸载编程:指令、异步与数据管理 | parallel/kernels 指令、data 子句与数据生命周期、async 流水线、与 OpenMP target 对比 | ★★★☆☆ |
| 跨厂商 GPU 可移植性:SYCL 与 HIP 的编程模型与迁移 | SYCL 队列/缓冲区模型、HIP 与 CUDA 差异、hipify/syclomatic 迁移、性能可移植性 | ★★★★☆ |
| 可移植异构编程:Kokkos 与 SYCL/oneAPI 实战 | Kokkos 抽象层、执行空间与内存空间、并行模式、oneAPI 工具链与性能可移植 | ★★★★☆ |
八、前沿方向
量子-经典混合与超算 AI 融合,是 HPC 正在发生的范式转移:
| 文章 | 核心内容 | 难度 |
|---|---|---|
| 量子-经典混合计算:变分算法、量子模拟器与 HPC 集成 | VQE/QAOA 变分算法、态矢与张量网络模拟器、混合调度、与超算集成 | ★★★★★ |
| HPC 与 AI 融合:超算跑大模型训练 | 超算拓扑适配大模型训练、并行策略、通信与存储瓶颈、AI for Science 工作流 | ★★★★☆ |
九、调试、稀疏求解与专用加速
从并行程序的调试与容错,到稀疏线性代数与互连拓扑设计,再到 FPGA 专用加速,这一层补齐了大规模并行程序的工程闭环:
| 文章 | 核心内容 | 难度 |
|---|---|---|
| MPI 进阶通信:派生数据类型、通信子与单边通信 | 派生数据类型与打包、通信子与组操作、RMA 单边通信(Put/Get/Accumulate)、集合通信算法与调优 | ★★★★★ |
| 稀疏矩阵存储与 SpMV 优化 | CSR/ELL/COO 格式、SpMV 访存模式、矩阵重排与分块、迭代求解器与预条件 | ★★★★☆ |
| 并行调试与死锁诊断工具链 | 调试器并行附加、消息队列检视、死锁与竞态检测、栈回溯与核心转储、CI 中的调试实践 | ★★★★☆ |
| 检查点与重启策略 | 多级检查点、异步与增量写、SCR/VeloC 选型、重启对齐与验证、存储与带宽权衡 | ★★★★☆ |
| 互连拓扑设计:Fat-tree、Torus 与 Dragonfly | 拓扑族对比、对分带宽与直径、路由与拥塞控制、拓扑感知映射、故障降级 | ★★★★☆ |
| FPGA 可重构加速 | HLS 与 RTL 流程、数据流与流水线、主机-FPGA 通信、OpenCL/SYCL 落地、与 GPU 的取舍 | ★★★★★ |
十、技术路线建议
路线 A:科学计算开发者
MPI 入门 → OpenMP → PETSc/求解器 → Slurm 调度 → Lustre 文件系统 → 性能分析
路线 B:GPU 集群工程师
CUDA + MPI 异构 → NCCL 通信 → InfiniBand/RDMA → GPUDirect → Slurm 调度 → 性能模型
路线 C:HPC 系统管理员
Slurm 集群 → Lustre 存储 → InfiniBand 网络 → 容器化部署 → Spack 软件栈 → 监控与容错
路线 D:云原生与 AI 工程
Kubernetes 调度 HPC → GPU 设备插件 → Dask/Ray 分布式 → 云上弹性集群 → 并行 I/O → 基准测试与验收
十一、关联专题
| 专题 | 对应内容 |
|---|---|
| C++ 进阶专题 | STL、多线程、内存模型、并行算法 |
| 操作系统专题 | CPU 调度、进程/线程、虚拟内存、文件系统 |
| AI 推理加速专题 | CUDA 编程、TensorRT、ONNX Runtime、GPU 内存优化 |
| DevOps 专题 | CI/CD、基础设施即代码、SRE 实践 |
| 网络专题 | TCP/IP、协议分析、网络性能优化 |