AWS ParallelCluster
自动在 AWS 上构建 HPC(高性能计算)集群的开源工具,通过 Slurm 作业调度器高效执行批量计算
概述
AWS ParallelCluster 是一款自动构建 HPC(高性能计算)工作负载环境的开源集群管理工具。标准配备 Slurm 作业调度器,通过单一配置文件完成计算节点自动扩缩容、共享文件系统挂载(FSx for Lustre、EFS)和通过 EFA(Elastic Fabric Adapter)的低延迟节点间通信配置。适用于流体力学模拟、基因组分析、金融风险计算等需要大规模并行计算的科学计算。
集群配置与自动扩缩容设计
ParallelCluster 集群由头节点(作业提交和调度)和计算节点(实际计算执行)组成。YAML 配置文件声明式定义实例类型、最小/最大节点数、子网和安全组,通过 pcluster create-cluster 命令作为 CloudFormation 堆栈部署。Slurm 自动扩缩容集成在作业提交到队列时自动启动所需计算节点,作业完成后空闲超时自动终止。常见做法是为 GPU 实例(p4d.24xlarge)、内存优化(r6i.32xlarge)和通用(c6i.32xlarge)定义多个队列(分区)。每个队列还可配置 Spot 实例使用,将可中断的作业分配到 Spot 以降低 60-90% 的成本。
高速网络与共享文件系统
HPC 工作负载中节点间通信延迟直接影响扩展效率,EFA(Elastic Fabric Adapter)的使用至关重要。EFA 提供 OS 旁路 RDMA 通信,将 MPI(Message Passing Interface)应用程序的节点间通信延迟保持在微秒级。在 ParallelCluster 配置中启用 EFA 后,自动为计算节点附加 EFA 设备并安装 libfabric 库。共享文件系统方面,FSx for Lustre 最适合 HPC 工作负载,提供数百 GB/s 吞吐量和数百万 IOPS,自动 S3 同步实现从 S3 透明读取输入数据和写回结果。实践中,EFS 用于小型作业和配置文件共享,FSx for Lustre 用于大规模 I/O 的双挂载配置很有效。
科学计算实践模式与成本管理
计算流体力学(CFD)模拟中,OpenFOAM 或 ANSYS Fluent 在 ParallelCluster 上运行,将网格分割到数百个节点进行并行计算。基因组分析中,常见模式是使用 Slurm 作业数组并行处理数千个样本的 BWA-MEM2 读段比对和 GATK 变异检测。成本管理方面,Slurm 的记账功能按用户和项目记录计算时间,与 AWS Cost Explorer 基于标签的报告对照实现部门计费。集群生命周期管理中,在不需要计算的夜间和周末删除集群、需要时重新创建是实用的做法,ParallelCluster 的快速供应(10-15 分钟)使这成为可能。预构建自定义 AMI 可消除软件安装时间,加速集群启动。