最佳实践 - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

最佳实践

最佳实践:头节点实例类型选择

尽管头节点不运行作业,但其功能和大小对集群的整体性能至关重要。在选择用于头节点的实例类型时,请考虑以下特征:

集群大小:头节点编排集群的扩展逻辑,并负责将新节点附加到调度器。要纵向扩展和缩减具有大量节点的集群,请为头节点提供一些额外的计算容量。

共享文件系统:当您使用共享文件系统时,请选择具有足够网络带宽和足够的 Amazon EBS 带宽的实例类型来处理您的工作流程。确保头节点既能够为集群公开足够的 NFS 服务器目录,又能够处理需要在计算节点和头节点之间共享的构件。

最佳实践:网络性能

网络性能对于高性能计算 (HPC) 应用程序至关重要。如果没有可靠的网络性能,这些应用程序就无法正常运行。为了优化网络性能,请考虑以下最佳实践。

  • 置放群组:如果您使用的是 Slurm,请考虑将每个 Slurm 队列配置为使用集群置放群组。集群置放群组 是单个可用区中的实例的逻辑分组。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的置放群组。您可以在队列的 Networking 部分指定 PlacementGroup,每个计算资源都将分配给队列的置放群组。在计算资源的 Networking 部分指定 PlacementGroup 时,该特定计算资源将分配给该置放群组。计算资源置放群组规范优先于计算资源的队列规范。有关更多信息,请参阅 SlurmQueues/Networking/PlacementGroupSlurmQueues/ComputeResources/Networking/PlacementGroup

    Networking: PlacementGroup: Enabled: true Id: your-placement-group-name

    或者让 Amazon ParallelCluster 为您创建一个置放群组。

    Networking: PlacementGroup: Enabled: true

    从 Amazon ParallelCluster 版本 3.3.0 开始,对置放群组的创建和管理进行了修改。在指定要启用的置放群组时,如果没有指定 nameId,则在队列中,会为每个计算资源分配自己的托管置放群组,而不是为整个队列分配一个托管群组。这有助于减少容量不足错误。如果您需要为整个队列设置一个置放群组,则可以使用命名置放群组。

    添加了 SlurmQueues/Networking/PlacementGroup/Name 作为 SlurmQueues/Networking/PlacementGroup/Id 的首选替代方案。

    有关更多信息,请参阅Networking

  • 增强联网:考虑选择支持增强联网的实例类型。此建议适用于所有当前一代实例。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的 Linux 上的增强联网

  • Elastic Fabric Adapter:要支持高水平可扩展实例间通信,请考虑为网络选择 EFA 网络接口。EFA 量身定制的操作系统 (OS) 旁路硬件可利用 Amazon Web Services 云 的按需弹性和灵活性增强实例间通信。您可以配置每个 Slurm 队列 ComputeResource 以使用 Efa。有关将 EFA 与 Amazon ParallelCluster 配合使用的更多信息,请参阅 Elastic Fabric Adapter

    ComputeResources: - Name: your-compute-resource-name Efa: Enabled: true

    有关 EFA 的更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的 Elastic Fabric Adapter

  • 实例带宽:带宽随实例大小而扩展。有关不同实例类型的信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的 Amazon EBS 优化实例Amazon EBS 卷类型

最佳实践:预算提醒

要在 Amazon ParallelCluster 中管理资源成本,我们建议使用 Amazon Budgets 操作来创建预算。您还可以为选定的 Amazon 资源创建已定义的预算阈值提醒。有关更多信息,请参阅 Amazon Budgets 用户指南 中的配置预算操作。同样,您还可使用 Amazon CloudWatch 创建账单警报。有关更多信息,请参阅创建账单警报以监控 Amazon 预估费用

最佳实践:将集群迁移至新的 Amazon ParallelCluster 次要版本或修补版本

目前,每个 Amazon ParallelCluster 次要版本连同其 pcluster CLI 都是独立的。要将集群迁移至新的次要版本或修补版本,必须使用新版本的 CLI 重新创建集群。

为了优化将集群迁移到新的次要版本或修补版本的过程,我们建议执行下列操作:

  • 将个人数据保存在集群外部创建的外部卷中,例如 Amazon EFS 和适用于 Lustre 的 FSx。这样,您以后便可以轻松地将数据从一个集群迁移到另一个集群。

  • 使用以下类型创建共享存储系统。您可以使用 Amazon CLI 或 Amazon Web Services Management Console 创建这些系统。

    在集群配置中将某个文件系统或卷定义为现有文件系统或卷。这样,当您删除集群时,这些文件系统或卷会被保留下来,并且可以附加到新集群。

    我们建议使用 Amazon EFS 或适用于 Lustre 的 FSx 文件系统。这两个系统可以同时附加到多个集群。此外,您可以在删除现有集群之前将其中任何一个系统附加到新集群。

  • 使用自定义引导操作来自定义您的实例,而不是使用自定义 AMI。如果您改为使用自定义 AMI,则需要对每次新版本发布删除并重新创建该 AMI。

  • 我们建议您按以下顺序应用上述建议:

    1. 更新现有集群配置以使用现有文件系统定义。

    2. 验证 pcluster 版本并在需要时进行更新。

    3. 创建并测试新集群。在测试新集群时,请检查以下内容:

      • 确保您的数据在新集群中可用。

      • 确保您的应用程序可以在新集群中正常运行。

    4. 在新集群经过全面测试并可正常运行,并且您不再需要现有集群后,将现有集群删除。