使用 AWS ParallelCluster 构建 HPC 环境 - Slurm 集群的自动构建与扩展

基于 CloudFormation 自动构建 HPC 集群,使用 Slurm 调度器管理作业。同时介绍通过 Spot 实例优化成本。

ParallelCluster 概述

ParallelCluster 是 AWS 提供的开源 HPC 集群管理工具。通过 YAML 配置文件定义集群构成(实例类型、节点数、存储、网络),使用 pcluster create-cluster 命令作为 CloudFormation 堆栈自动构建。标准配置 Slurm 作业调度器,可使用现有 Slurm 脚本和工作流。可用于计算流体力学(CFD)、分子动力学、基因组分析、气象模拟、金融风险计算等并行计算工作负载。版本 3 引入了 Multi-Queue 模式,可在单个集群中定义多个队列,每个队列分配不同的实例类型和存储配置。配置变更可通过 pcluster update-cluster 应用到现有集群,但操作系统等部分设置更改后不允许更新。

自动扩展与成本优化

ParallelCluster 的自动扩展与 Slurm 作业队列联动。提交作业时计算节点自动启动,作业完成后空闲超过指定时间(默认 10 分钟)节点自动终止。无作业时计算节点数降为零,不产生计算节点费用。使用 Spot 实例可降低 HPC 工作负载成本。通过 Allocation Strategy: capacity-optimized 指定多种实例类型,可形成应对 Spot 中断的配置。对于支持检查点的应用,可配置 Spot 中断时自动重新排队作业。可采用头节点使用按需实例运行、仅计算节点使用 Spot 的配置。ScaledownIdletime 参数可调整空闲计时器;在频繁提交短作业的环境中,增大该值可减少节点启动/终止开销。

EFA 与共享存储

EFA(Elastic Fabric Adapter)是面向 HPC 工作负载的高速网络接口,可降低节点间通信延迟。对于基于 MPI(Message Passing Interface)的并行计算中节点间数据交换成为瓶颈的工作负载非常有效。在 ParallelCluster 配置中启用 EFA 后,计算节点会配置 EFA。使用 EFA 的节点采用放置在放置组内的配置,ParallelCluster 通过 Placement 配置段创建集群放置组。共享存储支持 FSx for Lustre、EFS 和 EBS。FSx for Lustre 可用于大规模数据集的并行读取,与 S3 集成可自动将 S3 数据导入 Lustre 文件系统并将计算结果导出到 S3。EFS 适用于多集群间数据共享或节点数变动较大的环境,但延迟高于 FSx for Lustre。

设计最佳实践与常见陷阱

ParallelCluster 生产运行中的检查项目:数百节点规模的集群会增加 Slurm 控制器的内存消耗,因此根据节点数选择头节点的规格。头节点停止会导致整个集群不可用,需配置 EBS 快照定期备份。网络设计方面,将计算节点放置在私有子网中,通过 NAT 网关或 VPC 端点访问 S3 和 CloudWatch。使用 S3 VPC 端点(网关型)可避免 NAT 网关的数据传输费用。使用自定义 AMI 时,基于包含 ParallelCluster 所需软件包(Slurm、Munge、supervisord)的官方 AMI 进行定制,并使用 pcluster build-image 命令构建。操作系统可从 Amazon Linux 2023、Ubuntu 22.04 / 24.04、RHEL 8 / 9、Rocky Linux 8 / 9 中选择。

与 AWS Batch 的比较与选择

AWS 提供 ParallelCluster 和 AWS Batch 两种 HPC/批处理服务,按工作负载特性区分使用。ParallelCluster 使用 Slurm 作为调度器,可用于从本地 HPC 环境迁移到云且不修改作业脚本的场景。对于使用 EFA 低延迟节点间通信的紧耦合并行计算(CFD、分子动力学等),一种方法是使用 ParallelCluster。相比之下,AWS Batch 是完全托管服务,使用基于容器的作业定义打包工作负载。对于大量独立任务并行执行的高吞吐量计算(基因组序列比对、图像处理流水线),采用使用 AWS Batch 的配置。ParallelCluster 可精细指定集群配置,因此可用于需要指定特定实例放置和存储配置的科研计算场景。

总结

ParallelCluster 是在 AWS 上自动构建基于 Slurm 的 HPC 集群的工具。通过自动扩展实现按作业的资源管理,通过 Spot 实例降低成本,通过 EFA 提供高速节点间通信。可用于从本地 HPC 集群迁移或应对临时增加的计算需求。Multi-Queue 模式可将不同工作负载整合到单个集群,FSx for Lustre 与 S3 联动可高效处理大规模数据输入输出。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享