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

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

Scheduling 部分

(必填)定义集群中使用的作业调度器以及作业调度器管理的计算实例。你可以使用Slurm要么Amazon Batch调度器。每个都支持一组不同的设置和属性。

Scheduling: Scheduler: slurm SlurmSettings: ScaledownIdletime: integer QueueUpdateStrategy: string EnableMemoryBasedScheduling: integer CustomSlurmSettings: [dict] CustomSlurmSettingsIncludeFile: string Database: Uri: string UserName: string PasswordSecretArn: string Dns: DisableManagedDns: boolean HostedZoneId: string UseEc2Hostnames: boolean SlurmQueues: - Name: string ComputeSettings: LocalStorage: RootVolume: Size: integer Encrypted: boolean VolumeType: string Iops: integer Throughput: integer EphemeralVolume: MountDir: string CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string CapacityType: string AllocationStrategy: string JobExclusiveAllocation: boolean CustomSlurmSettings: dict Tags: - Key: string Value: string HealthChecks: Gpu: Enabled: boolean Networking: SubnetIds: - string AssignPublicIp: boolean SecurityGroups: - string AdditionalSecurityGroups: - string PlacementGroup: Enabled: boolean Id: string Name: string Proxy: HttpProxyAddress: string ComputeResources: - Name: string InstanceType: string Instances: - InstanceType: string MinCount: integer MaxCount: integer DynamicNodePriority: integer StaticNodePriority: integer SpotPrice: float DisableSimultaneousMultithreading: boolean SchedulableMemory: integer HealthChecks: Gpu: Enabled: boolean Efa: Enabled: boolean GdrSupport: boolean CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string Networking: PlacementGroup: Enabled: boolean Name: string CustomSlurmSettings: dict Tags: - Key: string Value: string CustomActions: OnNodeStart: Sequence: - Script: string Args: - string Script: string Args: - string OnNodeConfigured: Sequence: - Script: string Args: - string Script: string Args: - string Iam: InstanceProfile: string InstanceRole: string S3Access: - BucketName: string EnableWriteAccess: boolean KeyName: string AdditionalIamPolicies: - Policy: string Image: CustomAmi: string
Scheduling: Scheduler: awsbatch AwsBatchQueues: - Name: string CapacityType: string Networking: SubnetIds: - string AssignPublicIp: boolean SecurityGroups: - string AdditionalSecurityGroups: - string ComputeResources: # this maps to a Batch compute environment (initially we support only 1) - Name: string InstanceTypes: - string MinvCpus: integer DesiredvCpus: integer MaxvCpus: integer SpotBidPercentage: float

Scheduling 属性

Scheduler(必填项String)

指定使用的调度程序的类型。支持的值为 slurmawsbatch

更新政策:如果更改此设置,则不允许更新。

注意

awsbatch仅支持alinux2操作系统和x86_64平台。

AwsBatchQueues

(可选)的Amazon Batch队列设置。仅支持一个队列。如果Scheduler设置为awsbatch,此部分为必填项。有关更多信息awsbatch调度程序,请参阅网络设置Amazon Batch (awsbatch)

AwsBatchQueues: - Name: string CapacityType: string Networking: SubnetIds: - string AssignPublicIp: boolean SecurityGroups: - string AdditionalSecurityGroups: - string ComputeResources: # this maps to a Batch compute environment (initially we support only 1) - Name: string InstanceTypes: - string MinvCpus: integer DesiredvCpus: integer MaxvCpus: integer SpotBidPercentage: float

更新政策:可以在更新期间更改此设置。

AwsBatchQueues 属性

Name(必填项String)

的名字Amazon Batch队列。

更新政策:如果更改此设置,则不允许更新。

CapacityType(可选String)

计算资源的类型Amazon Batch队列使用。支持的值为 ONDEMANDSPOT。默认值为 ONDEMAND

注意

如果你设置了CapacityTypeSPOT,您的账户必须包含AWSServiceRoleForEC2Spot服务相关角色。您可以使用以下方法创建此角色Amazon CLI命令。

$ aws iam create-service-linked-role --aws-service-name spot.amazonaws.com

有关更多信息,请参阅竞价型实例请求的服务相关角色适用于 Linux 实例的亚马逊 EC2 用户指南

更新策略:必须停止计算队列才能更改此设置以进行更新。

Networking

(必填)定义的网络配置Amazon Batch队列。

Networking: SubnetIds: - string AssignPublicIp: boolean SecurityGroups: - string AdditionalSecurityGroups: - string
Networking 属性
SubnetIds(必填项[String])

指定要置备的现有子网的 IDAmazon Batch排队。目前仅支持一个子网。

更新策略:必须停止计算队列才能更改此设置以进行更新。

AssignPublicIp(可选String)

为中的节点创建或分配公有 IP 地址Amazon Batch队列。支持的值为 truefalse。默认值取决于您指定的子网。

更新政策:如果更改此设置,则不允许更新。

SecurityGroups(可选[String])

安全组列表Amazon Batch队列使用。如果您未指定安全组,Amazon ParallelCluster创建新的安全组。

更新政策:可以在更新期间更改此设置。

AdditionalSecurityGroups(可选[String])

安全组列表Amazon Batch队列使用。

更新政策:可以在更新期间更改此设置。

ComputeResources

(必填)定义了 ComputeResources 的配置Amazon Batch队列。

ComputeResources: # this maps to a Batch compute environment (initially we support only 1) - Name: string InstanceTypes: - string MinvCpus: integer DesiredvCpus: integer MaxvCpus: integer SpotBidPercentage: float
ComputeResources 属性
Name(必填项String)

的名字Amazon Batch队列计算环境。

更新策略:必须停止计算队列才能更改此设置以进行更新。

InstanceTypes(必填项[String])

的Amazon Batch由实例类型组成的计算环境数组。所有实例类型都必须使用x86_64建筑。

更新策略:必须停止计算队列才能更改此设置以进行更新。

MinvCpus(可选Integer)

一个 vCPU 的最小数量Amazon Batch计算环境可以使用。

更新政策:可以在更新期间更改此设置。

DesiredVcpus(可选Integer)

中所需的 vCPU 数量Amazon Batch计算环境。Amazon Batch在两者之间调整此值MinvCpusMaxvCpus基于任务队列中的需求。

更新政策:更新期间不分析此设置。

MaxvCpus(可选Integer)

的 vCPU 的最大数量Amazon Batch计算环境。您不能将此值设置为低于DesiredVcpus

更新政策:更新期间不能减少此设置。

SpotBidPercentage(可选Float)

在实例启动之前,EC2 竞价型实例价格可以达到的实例类型按需价格的最大百分比。默认值为100(100%)。支持的范围是1-100

更新政策:可以在更新期间更改此设置。

SlurmQueues

(可选)的设置Slurm队列。如果Scheduler设置为slurm,此部分为必填项。

SlurmQueues: - Name: string ComputeSettings: LocalStorage: RootVolume: Size: integer Encrypted: boolean VolumeType: string Iops: integer Throughput: integer EphemeralVolume: MountDir: string CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string CapacityType: string AllocationStrategy: string JobExclusiveAllocation: boolean CustomSlurmSettings: dict Tags: - Key: string Value: string HealthChecks: Gpu: Enabled: boolean Networking: SubnetIds: - string AssignPublicIp: boolean SecurityGroups: - string AdditionalSecurityGroups: - string PlacementGroup: Enabled: boolean Id: string Name: string Proxy: HttpProxyAddress: string ComputeResources: - Name: string InstanceType: string Instances: - InstanceType: string MinCount: integer MaxCount: integer DynamicNodePriority: integer StaticNodePriority: integer SpotPrice: float DisableSimultaneousMultithreading: boolean SchedulableMemory: integer HealthChecks: Gpu: Enabled: boolean Efa: Enabled: boolean GdrSupport: boolean CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string Networking: PlacementGroup: Enabled: boolean Name: string CustomSlurmSettings: dict Tags: - Key: string Value: string CustomActions: OnNodeStart: Sequence: - Script: string Args: - string Script: string Args: - string OnNodeConfigured: Sequence: - Script: string Args: - string Script: string Args: - string Iam: InstanceProfile: string InstanceRole: string S3Access: - BucketName: string EnableWriteAccess: boolean KeyName: string AdditionalIamPolicies: - Policy: string Image: CustomAmi: string

更新政策:对于此列表值设置,可以在更新期间添加新值,或者在删除现有值时必须停止计算队列。

SlurmQueues 属性

Name(必填项String)

的名字Slurm队列。

更新政策:如果更改此设置,则不允许更新。

CapacityReservationTarget
注意

CapacityReservationTarget已添加Amazon ParallelCluster版本 3.3.0。

CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string

为队列的计算资源指定按需容量预留。有关更多信息,请参阅使用 ODCR(按需容量预留)启动实例

CapacityReservationId(可选String)

为队列的计算资源预留的现有容量预留的 ID。有关更多信息,请参阅使用 ODCR(按需容量预留)启动实例

按需容量预留必须使用与实例相同的平台。例如,如果您的实例运行在rhel8,您的容量预留必须在红帽企业 Linux 平台上运行。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的支持的平台

注意

如果你包括Instances在集群配置中,必须排除此队列级别CapacityReservationId从配置中设置。

CapacityReservationResourceGroupArn(可选String)

资源组的 Amazon 资源名称 (ARN),用作队列计算资源的服务相关容量预留组。Amazon ParallelCluster根据以下条件确定并使用资源组中最合适的容量预留:

资源组必须为队列的所有计算资源和可用区的可用区中的每种实例类型保留至少一个 ODCR。有关更多信息,请参阅使用 ODCR(按需容量预留)启动实例

有关多子网配置要求的更多信息,请参阅Networking/SubnetIds

注意

中添加了多个可用区Amazon ParallelCluster版本 3.4.0。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

CapacityType(可选String)

计算资源的类型Slurm队列使用。支持的值为 ONDEMANDSPOT。默认值为 ONDEMAND

注意

如果你设置了CapacityTypeSPOT,您的账户必须有一个AWSServiceRoleForEC2Spot服务相关角色。您可以使用以下方法创建此角色Amazon CLI命令。

$ aws iam create-service-linked-role --aws-service-name spot.amazonaws.com

有关更多信息,请参阅竞价型实例请求的服务相关角色适用于 Linux 实例的亚马逊 EC2 用户指南

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

AllocationStrategy(可选String)

为中定义的所有计算资源指定分配策略Instances

有效值:lowest-price | capacity-optimized

默认值:lowest-price

lowest-price
  • 如果你使用CapacityType = ONDEMAND,EC2 队列使用价格来确定订单,并首先启动价格最低的实例。

  • 如果你使用CapacityType = SPOT,EC2 队列从具有可用容量的最低价格竞价型实例池中启动实例。如果池在满足您的所需容量之前已用完容量,EC2 队列会通过为您启动实例来满足您的请求。特别是,EC2 队列从具有可用容量的最低价格竞价型实例池中启动实例。EC2 队列可能会从多个不同的池中启动 Spot 实例。

capacity-optimized
  • 如果你设置了CapacityType = ONDEMANDcapacity-optimized不可用。

  • 如果你设置了CapacityType = SPOT,EC2 队列从竞价型实例池启动实例,其容量最适合要启动的实例数量。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

注意

AllocationStrategy从开始就支持了Amazon ParallelCluster版本 3.3.0。

JobExclusiveAllocation(可选String)

如果设置为true,Slurm分割OverSubscribe旗帜设置为EXCLUSIVE。什么时候OverSubscribe=EXCLUSIVE,分区中的作业可以独占访问所有已分配的节点。有关更多信息,请参阅排他性的在Slurm文档。

有效值:true | false

默认值:false

更新政策:可以在更新期间更改此设置。

注意

JobExclusiveAllocation从开始就支持了Amazon ParallelCluster版本 3.7.0。

CustomSlurmSettings(可选Dict)

定义自定义Slurm分区(队列)配置设置。

指定自定义词典Slurm适用于队列(分区)的配置参数键值对。

每个单独的键值对,例如Param1: Value1,单独添加到末尾Slurm格式为分区配置行Param1=Value1

你只能指定Slurm中未被拒绝列出的配置参数CustomSlurmSettings。有关被拒名单的信息Slurm配置参数,请参见被拒登名单Slurm的配置参数CustomSlurmSettings

Amazon ParallelCluster仅检查参数是否在拒绝列表中。Amazon ParallelCluster无法验证您的自定义Slurm配置参数语法或语义。您有责任验证您的自定义Slurm配置参数。无效的自定义Slurm配置参数可能导致Slurm守护程序失败可能导致集群创建和更新失败。

有关如何指定自定义的更多信息Slurm配置参数带有Amazon ParallelCluster,请参阅Slurm配置自定义

有关以下内容的更多信息Slurm配置参数,请参见slurm.conf在Slurm文档。

更新政策:可以在更新期间更改此设置。

注意

CustomSlurmSettings从开始就支持Amazon ParallelCluster版本 3.6.0。

Tags(可选,[字符串])

标签键值对列表。ComputeResource标签会覆盖中指定的重复标签Tags 部分或者在SlurmQueues/Tags

Key(可选String)

标签键。

Value(可选String)

标签值。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

HealthChecks(可选)

为队列中的所有计算资源指定计算节点运行状况检查。

Gpu(可选)

为队列中的所有计算资源指定 GPU 运行状况检查。

注意

Amazon ParallelCluster不支持HealthChecks/Gpu在使用的节点中alinux2ARM 操作系统。这些平台不支持NVIDIA 数据中心 GPU 管理器 (DCGM)

Enabled(可选Boolean)

是否Amazon ParallelCluster对计算节点执行 GPU 运行状况检查。默认为 false

Gpu运行状况检查行为
  • 如果Gpu/Enabled设置为true,Amazon ParallelCluster对队列中的计算资源执行 GPU 运行状况检查。

  • Gpu运行状况检查会对计算资源执行 GPU 运行状况检查,以防止在 GPU 降级的节点上提交作业。

  • 如果计算节点出现故障Gpu运行状况检查,计算节点状态更改为DRAIN。新作业不会在此节点上启动。现有作业将运行直至完成。所有正在运行的作业完成后,如果计算节点是动态节点,则会终止;如果是静态节点,则会被替换。

  • 的持续时间Gpu运行状况检查取决于所选的实例类型、实例中的 GPU 数量以及实例的数量Gpu运行状况检查目标(等同于作业 GPU 目标的数量)。对于具有 8 个 GPU 的实例,通常持续时间少于 3 分钟。

  • 如果Gpu运行状况检查在不受支持的实例上运行,它会退出,作业在计算节点上运行。例如,如果一个实例没有 GPU,或者如果一个实例有 GPU,但它不是 NVIDIA GPU,则运行状况检查将退出,作业将在计算节点上运行。仅支持 NVIDIA 显卡。

  • Gpu运行状况检查使用dcgmi用于在节点上执行运行状况检查的工具,并执行以下步骤:

    Gpu运行状况检查从节点开始:

    1. 它会检测是否nvidia-dcgmnvidia-fabricmanager服务正在运行。

    2. 如果这些服务未运行,Gpu健康检查会启动他们。

    3. 它会检测是否启用了持久模式。

    4. 如果未启用持久模式,则Gpu运行状况检查将其启用。

    在运行状况检查结束时,Gpu运行状况检查可将这些服务和资源恢复到其初始状态。

  • 如果任务分配给一组特定的节点 GPU,则Gpu运行状况检查仅在该特定集合上运行。否则,Gpu运行状况检查将在节点中的所有 GPU 上运行。

  • 如果计算节点收到 2 个或更多Gpu同时运行状况检查请求,仅运行第一个运行状况检查,其他运行状况检查会被跳过。针对节点 GPU 的运行状况检查也是如此。您可以查看日志文件以获取有关此情况的更多信息。

  • 特定计算节点的运行状况检查日志可在/var/log/parallelcluster/slurm_health_check.log文件。该文件可在亚马逊上找到 CloudWatch,在集群中 CloudWatch 日志组,您可以在其中找到:

    • 有关由执行的操作的详细信息Gpu运行状况检查,包括启用和禁用服务以及持久模式。

    • GPU 标识符、序列号和 UUID。

    • 运行状况检查输出。

更新政策:可以在更新期间更改此设置。

注意

HealthChecks从开始就支持了Amazon ParallelCluster版本 3.6.0。

Networking

(必填)定义的网络配置Slurm队列。

Networking: SubnetIds: - string AssignPublicIp: boolean SecurityGroups: - string AdditionalSecurityGroups: - string PlacementGroup: Enabled: boolean Id: string Name: string Proxy: HttpProxyAddress: string

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Networking 属性
SubnetIds(必填项[String])

您预配置的现有子网的 IDSlurm排队。

如果您在中配置实例类型SlurmQueues/ComputeResources/InstanceType,您只能定义一个子网。

如果您在中配置实例类型SlurmQueues/ComputeResources/Instances,您可以定义一个或多个子网。

如果您使用多个子网,则为队列定义的所有子网都必须位于同一 VPC 中,每个子网位于单独的可用区 (AZ) 中。

例如,假设您为队列定义了子网 1 和子网 2。

subnet-1subnet-2不可能两者都在 AZ-1 中。

subnet-1可以在 AZ-1 中而且subnet-2可以在 AZ-2 中。

如果您只配置一种实例类型并想使用多个子网,请在中定义您的实例类型Instances而不是InstanceType

例如,定义ComputeResources/Instances/InstanceType=instance.type而不是ComputeResources/InstanceType=instance.type

注意

不同的可用区域不支持弹性结构适配器 (EFA)。

使用多个可用区可能会导致存储网络延迟增加,并增加可用区间的数据传输成本。例如,当一个实例访问位于不同可用区的文件存储时,可能会发生这种情况。有关更多信息,请参阅同一个内部的数据传输Amazon Web Services 区域

集群更新将从使用单个子网更改为使用多个子网:
  • 假设集群的子网定义是用单个子网和Amazon ParallelCluster为 Lustre 文件系统托管 FSx。那么,您就无法使用更新的子网 ID 定义直接更新此集群。要更新群集,必须先将托管文件系统更改为外部文件系统。有关更多信息,请参阅转换Amazon ParallelCluster托管存储到外部存储

  • 假设集群的子网定义是用单个子网和一个外部 Amazon EFS 文件系统定义的,前提是定义为要添加的多个子网的所有可用区都不存在 EFS 挂载目标。那么,您就无法使用更新的子网 ID 定义直接更新此集群。要更新集群或创建集群,必须先为定义的多个子网的所有可用区创建所有挂载目标。

可用区和集群容量预留在中定义CapacityReservationResourceGroupArn:
  • 如果定义的容量预留资源组所涵盖的实例类型和可用区集与为队列定义的一组实例类型和可用区之间没有重叠,则无法创建集群。

  • 如果定义的容量预留资源组所涵盖的实例类型和可用区集与为队列定义的一组实例类型和可用区之间存在部分重叠,则可以创建集群。Amazon ParallelCluster会发送一条警告消息,说明这种情况存在部分重叠。

  • 有关更多信息,请参阅使用 ODCR(按需容量预留)启动实例

注意

中添加了多个可用区Amazon ParallelCluster版本 3.4.0。

警告

此警告适用于所有 3.x.yAmazon ParallelCluster3.3.1 版之前的版本。Amazon ParallelCluster如果更改此参数,版本 3.3.1 不会受到影响。

对于Amazon ParallelCluster3.3.1 版本之前的 3 个版本:

更改此参数并更新群集会为 Lustre 文件系统创建新的托管 FSx,并在不保留现有数据的情况下删除现有托管 FSx for Lustre 文件系统。这会导致数据丢失。在继续操作之前,如果要保留数据,请务必备份现有 FSx for Lustre 文件系统中的数据。有关更多信息,请参阅处理备份fsX for Lustre 用户指南

如果添加了新的子网值,更新政策:可以在更新期间更改此设置。

如果删除了子网值,更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

AssignPublicIp(可选String)

为中的节点创建或分配公有 IP 地址Slurm队列。支持的值为 truefalse。您指定的子网决定了默认值。具有公有 IP 的子网默认为分配公有 IP 地址。

如果你定义了p4d要么hpc6id实例类型或其他具有多个网络接口或网络接口卡的实例类型,您必须设置HeadNode/Networking/ElasticIptrue提供公众访问权限。Amazon只能将公有 IP 分配给使用单一网络接口启动的实例。对于这种情况,我们建议您使用NAT 网关提供对群集计算节点的公共访问权限。在这种情况下,设置AssignPublicIpfalse。有关 IP 地址的更多信息,请参阅在实例启动期间分配公有 IPv4 地址适用于 Linux 实例的亚马逊 EC2 用户指南

更新政策:如果更改此设置,则不允许更新。

SecurityGroups(可选[String])

用于的安全组列表Slurm队列。如果未指定安全组,Amazon ParallelCluster为您创建安全组。

验证您的安全组配置是否正确SharedStorage系统。

警告

此警告适用于所有 3.xy Amazon ParallelCluster3.3.0 之前的版本。Amazon ParallelCluster如果更改此参数,版本 3.3.0 不会受到影响。

对于Amazon ParallelCluster3.3.0 版本之前的 3 个版本:

更改此参数并更新群集会为 Lustre 文件系统创建新的托管 FSx,并在不保留现有数据的情况下删除现有托管 FSx for Lustre 文件系统。这会导致数据丢失。如果要保留数据,请务必备份现有 FSx for Lustre 文件系统中的数据。有关更多信息,请参阅处理备份fsX for Lustre 用户指南

警告

如果你启用Efa对于您的计算实例,请确保启用 EFA 的实例是允许所有入站和出站流量进入自身的安全组的成员。

更新政策:可以在更新期间更改此设置。

AdditionalSecurityGroups(可选[String])

用于的其他安全组的列表Slurm队列。

更新政策:可以在更新期间更改此设置。

PlacementGroup(可选)

指定置放群组设置Slurm队列。

PlacementGroup: Enabled: boolean Id: string Name: string

更新政策:必须停止所有计算节点才能删除托管置放群组。必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Enabled(可选Boolean)

指明置放群组是否用于Slurm队列。默认为 false

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Id(可选String)

现有集群置放群组的置放群组名称Slurm队列使用。请务必提供置放群组名称不是身份证

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Name(可选String)

现有集群置放群组的置放群组名称Slurm队列使用。请务必提供置放群组名称不是身份证

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

注意
Proxy(可选)

指定代理设置Slurm队列。

Proxy: HttpProxyAddress: string

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

HttpProxyAddress(可选String)

为定义一个 HTTP 或 HTTPS 代理服务器Slurm队列。通常,它是https://x.x.x.x:8080

没有默认值。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Image

(可选)指定要用于Slurm队列。要对所有节点使用相同的 AMI,请使用CustomAmi设置在Image部分

Image: CustomAmi: string

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Image特性
CustomAmi(可选String)

要用于 AMISlurm队列而不是默认 AMI。你可以使用pcluster用于查看默认 AMI 列表的 CLI 命令。

pcluster list-official-images

如果自定义 AMI 需要其他权限才能启动,则必须将这些权限添加到头节点策略中。

例如,如果自定义 AMI 具有与之关联的加密快照,则头节点策略中需要以下其他策略。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:ReEncrypt*", "kms:CreateGrant", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:<AWS_REGION>:<AWS_ACCOUNT_ID>:key/<AWS_KMS_KEY_ID>" ] } ] }

要对自定义 AMI 验证警告进行故障排除,请参阅自定义 AMI 问题疑难解答

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

ComputeResources

(必填)定义了ComputeResources的配置Slurm队列。

ComputeResources: - Name: string InstanceType: string Instances: - InstanceType: string MinCount: integer MaxCount: integer DynamicNodePriority: integer StaticNodePriority: integer SpotPrice: float DisableSimultaneousMultithreading: boolean SchedulableMemory: integer HealthChecks: Gpu: Enabled: boolean Efa: Enabled: boolean GdrSupport: boolean CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string Networking: PlacementGroup: Enabled: boolean Name: string CustomSlurmSettings: dict Tags: - Key: string Value: string

更新政策:对于此列表值设置,可以在更新期间添加新值,或者在删除现有值时必须停止计算队列。

ComputeResources 属性
Name(必填项String)

的名字Slurm队列计算环境。该名称最多可以包含 25 个字符。

更新政策:如果更改此设置,则不允许更新。

InstanceType(必填项String)

此处使用的实例类型Slurm计算资源。集群中的所有实例类型都必须使用相同的处理器架构。实例可以使用x86_64要么arm64建筑。

集群配置必须定义以下任一项InstanceType要么实例。如果两者都被定义,Amazon ParallelCluster失败。

当你定义时InstanceType,您不能定义多个子网。如果您只配置一种实例类型并想使用多个子网,请在中定义您的实例类型Instances而不是进去InstanceType。有关更多信息,请参阅Networking/SubnetIds

如果你定义了p4d要么hpc6id实例类型或其他具有多个网络接口或网络接口卡的实例类型,您必须在私有子网中启动计算实例,如中所述使用两个子网的 Amazon ParallelCluster。Amazon只能将公有 IP 分配给使用单个网络接口启动的实例。有关更多信息,请参阅在实例启动期间分配公有 IPv4 地址适用于 Linux 实例的亚马逊 EC2 用户指南

更新策略:必须停止计算队列才能更改此设置以进行更新。

Instances(必填项)

指定计算资源的实例类型列表。要为实例类型列表指定分配策略,请参阅AllocationStrategy

集群配置必须定义以下任一项InstanceType要么Instances。如果两者都被定义,Amazon ParallelCluster失败。

有关更多信息,请参阅使用 Slurm 进行多实例类型分配

Instances: - InstanceType: string
注意

开始于Amazon ParallelCluster版本 3.7.0,EnableMemoryBasedScheduling如果您在中配置了多个实例类型,则可以启用实例

对于Amazon ParallelCluster版本 3.2.0 到 3.6。xEnableMemoryBasedScheduling如果您在中配置了多个实例类型,则无法启用实例

更新政策:对于此列表值设置,可以在更新期间添加新值,或者在删除现有值时必须停止计算队列。

InstanceType(必填项String)

要在此中使用的实例类型Slurm计算资源。集群中的所有实例类型都必须使用相同的处理器架构x86_64要么arm64

中列出的实例类型Instances必须有:

中列出的实例类型Instances可以有:

  • 内存量不同。

    在这种情况下,应将最小内存设置为消耗品Slurm资源。

    注意

    开始于Amazon ParallelCluster版本 3.7.0,EnableMemoryBasedScheduling如果您在中配置了多个实例类型,则可以启用实例

    对于Amazon ParallelCluster版本 3.2.0 到 3.6。xEnableMemoryBasedScheduling如果您在中配置了多个实例类型,则无法启用实例

  • 不同的网卡。

    在这种情况下,为计算资源配置的网络接口数量由网卡数量最少的实例类型定义。

  • 不同的网络带宽。

  • 不同的实例存储大小。

如果你定义了p4d要么hpc6id实例类型或其他具有多个网络接口或网络接口卡的实例类型,您必须在私有子网中启动计算实例,如中所述使用两个子网的 Amazon ParallelCluster。Amazon只能将公有 IP 分配给使用单一网络接口启动的实例。有关更多信息,请参阅在实例启动期间分配公有 IPv4 地址适用于 Linux 实例的亚马逊 EC2 用户指南

更新策略:必须停止计算队列才能更改此设置以进行更新。

注意

Instances从开始就支持Amazon ParallelCluster版本 3.3.0。

MinCount(可选Integer)

最小实例数Slurm计算资源使用情况。默认值为 0。

更新策略:必须停止计算队列才能更改此设置以进行更新。

MaxCount(可选Integer)

最大实例数Slurm计算资源使用情况。默认值为 10。

更新政策:要将队列大小减至当前节点数以下,需要先停止计算队列。

DynamicNodePriority(可选Integer)

队列计算资源中动态节点的优先级。优先级映射到Slurm节点Weight计算资源动态节点的配置参数。默认值为 1000

Slurm优先考虑最低的节点Weight价值观第一。

警告

有许多不同的用法Weighta 中的值Slurm分区(队列)可能会减慢队列中作业调度的速度。

在Amazon ParallelCluster3.7.0 版之前的版本,静态节点和动态节点的默认权重均为1。在这种情况下,Slurm由于静态和动态节点的命名架构,可能会优先考虑空闲的动态节点而不是空闲的静态节点。当其他一切都相等时,Slurm按名称的字母顺序排列节点。

注意

DynamicNodePriority已添加到Amazon ParallelCluster版本 3.7.0。

更新政策:可以在更新期间更改此设置。

StaticNodePriority(可选Integer)

队列计算资源中静态节点的优先级。优先级映射到Slurm节点Weight计算资源静态节点的配置参数。默认值为 1

Slurm优先考虑最低的节点Weight价值观第一。

警告

有许多不同的用法Weighta 中的值Slurm分区(队列)可能会减慢队列中作业调度的速度。

注意

StaticNodePriority已添加到Amazon ParallelCluster版本 3.7.0。

更新政策:可以在更新期间更改此设置。

SpotPrice(可选Float)

在启动任何 EC2 竞价型实例之前为 EC2 竞价型实例支付的最高价格。默认值为按需价格。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

DisableSimultaneousMultithreading(可选Boolean)

如果true,在中的节点上进行多线程Slurm队列已禁用。默认值为 false

并非所有实例类型都可以禁用多线程。有关支持禁用多线程的实例类型的列表,请参阅每种实例类型的每个 CPU 内核的 CPU 核心和线程适用于 Linux 实例的亚马逊 EC2 用户指南

更新策略:必须停止计算队列才能更改此设置以进行更新。

SchedulableMemory(可选Integer)

中配置的内存量(以 MiB 为单位)Slurm参数RealMemory用于计算资源的计算节点。此值是作业可用节点内存的上限SlurmSettings/EnableMemoryBasedScheduling已启用。默认值为中列出的内存的 95%亚马逊 EC2 实例类型并由亚马逊 EC2 API 返回DescribeInstanceTypes。请务必将以 GiB 为单位给出的值转换为 MiB。

支持的值:1-EC2Memory

EC2Memory是中列出的内存(以 MiB 为单位)亚马逊 EC2 实例类型并由亚马逊 EC2 API 返回DescribeInstanceTypes。请务必将以 GiB 为单位给出的值转换为 MiB。

此选项在以下情况下最为相关SlurmSettings/EnableMemoryBasedScheduling已启用。有关更多信息,请参阅Slurm基于内存的调度

注意

SchedulableMemory从开始就支持Amazon ParallelCluster版本 3.2.0。

默认情况下,从 3.2.0 版本开始,Amazon ParallelCluster配置RealMemory为了Slurm将节点计算到亚马逊 EC2 API 返回的内存的 95%DescribeInstanceTypes。此配置与的值无关EnableMemoryBasedScheduling

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

HealthChecks(可选)

指定对计算资源的运行状况检查。

Gpu(可选)

为计算资源指定 GPU 运行状况检查。

Enabled(可选Boolean)

是否Amazon ParallelCluster对计算队列中的资源执行 GPU 运行状况检查。默认为 false

注意

Amazon ParallelCluster不支持HealthChecks/Gpu在使用的节点中alinux2ARM 操作系统。这些平台不支持NVIDIA 数据中心 GPU 管理器 (DCGM)

Gpu运行状况检查行为
  • 如果Gpu/Enabled设置为true,Amazon ParallelCluster对计算资源执行 GPU 运行状况检查。

  • Gpu运行状况检查对计算资源执行运行状况检查,以防止在 GPU 降级的节点上提交作业。

  • 如果计算节点出现故障Gpu运行状况检查,计算节点状态更改为DRAIN。新作业不会在此节点上启动。现有作业将运行直至完成。所有正在运行的作业完成后,如果计算节点是动态节点,则会终止;如果是静态节点,则会被替换。

  • 的持续时间Gpu运行状况检查取决于所选的实例类型、实例中的 GPU 数量以及实例的数量Gpu运行状况检查目标(等同于作业 GPU 目标的数量)。对于具有 8 个 GPU 的实例,通常持续时间少于 3 分钟。

  • 如果Gpu运行状况检查在不受支持的实例上运行,它会退出,作业在计算节点上运行。例如,如果一个实例没有 GPU,或者如果一个实例有 GPU,但它不是 NVIDIA GPU,则运行状况检查将退出,作业将在计算节点上运行。仅支持 NVIDIA 显卡。

  • Gpu运行状况检查使用dcgmi用于在节点上执行运行状况检查的工具,并执行以下步骤:

    Gpu运行状况检查从节点开始:

    1. 它会检测是否nvidia-dcgmnvidia-fabricmanager服务正在运行。

    2. 如果这些服务未运行,Gpu健康检查会启动他们。

    3. 它会检测是否启用了持久模式。

    4. 如果未启用持久模式,则Gpu运行状况检查将其启用。

    在运行状况检查结束时,Gpu运行状况检查可将这些服务和资源恢复到其初始状态。

  • 如果任务分配给一组特定的节点 GPU,则Gpu运行状况检查仅在该特定集合上运行。否则,Gpu运行状况检查将在节点中的所有 GPU 上运行。

  • 如果计算节点收到 2 个或更多Gpu同时运行状况检查请求,仅运行第一个运行状况检查,其他运行状况检查会被跳过。针对节点 GPU 的运行状况检查也是如此。您可以查看日志文件以获取有关此情况的更多信息。

  • 特定计算节点的运行状况检查日志可在/var/log/parallelcluster/slurm_health_check.log文件。此文件可在亚马逊上找到 CloudWatch,在集群中 CloudWatch 日志组,您可以在其中找到:

    • 有关由执行的操作的详细信息Gpu运行状况检查,包括启用和禁用服务以及持久模式。

    • GPU 标识符、序列号和 UUID。

    • 运行状况检查输出。

更新政策:可以在更新期间更改此设置。

注意

HealthChecks从开始就支持了Amazon ParallelCluster版本 3.6.0。

Efa(可选)

为中的节点指定弹性结构适配器 (EFA) 设置Slurm队列。

Efa: Enabled: boolean GdrSupport: boolean

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Enabled(可选Boolean)

指定启用弹性结构适配器 (EFA)。要查看支持 EFA 的 EC2 实例列表,请参阅支持的实例类型适用于 Linux 实例的亚马逊 EC2 用户指南。有关更多信息,请参阅Elastic Fabric Adapter:我们建议您使用集群SlurmQueues/Networking/PlacementGroup以最大限度地减少实例之间的延迟。

默认值为 false

注意

不同的可用区域不支持弹性结构适配器 (EFA)。有关更多信息,请参阅SubnetIds

警告

如果您要在中定义自定义安全组SecurityGroups,请确保您的启用 EFA 的实例是允许所有入站和出站流量进入自身的安全组的成员。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

GdrSupport(可选Boolean)

(可选)开始于Amazon ParallelCluster版本 3.0.2,此设置无效。如果实例类型支持 GpuDirect RDMA(远程直接内存访问)的弹性结构适配器 (EFA) 支持,则始终处于启用状态Slurm计算资源和操作系统。

注意

Amazon ParallelCluster版本 3.0.0 到 3.0.1:已启用对 GpuDirect RDMA 的支持Slurm计算资源。特定实例类型支持对 GPUDirect RDMA 的支持 (p4d.24xlarge) 在特定的操作系统上 (Osalinux2centos7ubuntu1804,或ubuntu2004)。默认值为 false。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

CapacityReservationTarget
CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string

指定用于计算资源的按需容量预留。有关更多信息,请参阅使用 ODCR(按需容量预留)启动实例

CapacityReservationId(可选String)

表示要为计算资源预留的现有容量预留的 ID。有关更多信息,请参阅使用 ODCR(按需容量预留)启动实例

CapacityReservationResourceGroupArn(可选String)

表示资源组的 Amazon 资源名称 (ARN),该资源组充当计算资源的服务关联容量预留组。Amazon ParallelCluster确定并使用该组中最合适的容量预留。对于为计算资源列出的每种实例类型,资源组必须至少有一个 ODCR。有关更多信息,请参阅使用 ODCR(按需容量预留)启动实例

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

注意

CapacityReservationTarget已添加Amazon ParallelCluster版本 3.3.0。

Networking
Networking: PlacementGroup: Enabled: boolean Name: string

更新政策:必须停止所有计算节点才能删除托管置放群组。必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

PlacementGroup(可选)

指定计算资源的置放群组设置。

Enabled(可选Boolean)

表示是否将置放群组用于计算资源。

  • 如果设置为true,没有Name已定义,该计算资源将分配其自己的托管置放群组,不管该群组如何SlurmQueues/Networking/PlacementGroup设置。

  • 如果设置为true,带有Name已定义,无论如何,该计算资源都将分配给指定的置放群组SlurmQueues/Networking/PlacementGroup设置。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Name(可选String)

用于计算资源的现有集群置放群组的置放群组名称。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

注意
  • 如果两者都是PlacementGroup/EnabledName未设置,它们各自的值默认为SlurmQueues/Networking/PlacementGroup设置。

  • ComputeResources/Networking/PlacementGroup已添加Amazon ParallelCluster版本 3.3.0。

CustomSlurmSettings(可选Dict)

(可选)定义自定义Slurm节点(计算资源)配置设置。

指定自定义词典Slurm适用于的配置参数键值对Slurm节点(计算资源)。

每个单独的键值对,例如Param1: Value1,单独添加到末尾Slurm格式为 node 配置行Param1=Value1

你只能指定Slurm中未被拒绝列出的配置参数CustomSlurmSettings。有关被拒名单的信息Slurm配置参数,请参见被拒登名单Slurm的配置参数CustomSlurmSettings

Amazon ParallelCluster仅检查参数是否在拒绝列表中。Amazon ParallelCluster无法验证您的自定义Slurm配置参数语法或语义。您有责任验证您的自定义Slurm配置参数。无效的自定义Slurm配置参数可能导致Slurm守护程序失败可能导致集群创建和更新失败。

有关如何指定自定义的更多信息Slurm配置参数带有Amazon ParallelCluster,请参阅Slurm配置自定义

有关以下内容的更多信息Slurm配置参数,请参见slurm.conf在Slurm文档。

更新政策:可以在更新期间更改此设置。

注意

CustomSlurmSettings从开始就支持Amazon ParallelCluster版本 3.6.0。

Tags(可选,[字符串])

标签键值对列表。ComputeResource标签会覆盖中指定的重复标签Tags 部分要么SlurmQueues/Tags

Key(可选String)

标签键。

Value(可选String)

标签值。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

ComputeSettings

(必填)定义了ComputeSettings的配置Slurm队列。

ComputeSettings 属性

指定以下各项的属性ComputeSettings中的节点Slurm队列。

ComputeSettings: LocalStorage: RootVolume: Size: integer Encrypted: boolean VolumeType: string Iops: integer Throughput: integer EphemeralVolume: MountDir: string

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

LocalStorage(可选)

指定以下各项的属性LocalStorage中的节点Slurm队列。

LocalStorage: RootVolume: Size: integer Encrypted: boolean VolumeType: string Iops: integer Throughput: integer EphemeralVolume: MountDir: string

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

RootVolume(可选)

指定中节点根卷的详细信息Slurm队列。

RootVolume: Size: integer Encrypted: boolean VolumeType: string Iops: integer Throughput: integer

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Size(可选Integer)

指定中节点的根卷大小(以 GiB 为单位)Slurm队列。默认大小来自 AMI。使用不同的大小需要 AMI 支持growroot

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Encrypted(可选Boolean)

如果true,中节点的根卷Slurm队列已加密。默认值为 false

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

VolumeType(可选String)

指定亚马逊 EBS 卷类型中的节点Slurm队列。支持的值是gp2gp3io1io2sc1st1,以及standard。默认值为 gp3

有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Amazon EBS 卷类型

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Iops(可选Boolean)

定义 IOPS 的数量io1io2,以及gp3键入卷。

默认值、支持的值和volume_iopsvolume_size比率因以下因素而异VolumeTypeSize

VolumeType = io1

默认Iops= 100

支持的值Iops= 100—64000 †

最大值volume_iopsvolume_size比率 = 每 GiB 50 IOPS。5000 IOPS 需要volume_size至少 100 GiB。

VolumeType = io2

默认Iops= 100

支持的值Iops= 100—64000(256000 代表io2区块快递卷) †

最大值IopsSize比率 = 每 GiB 500 IOPS。5000 IOPS 需要Size至少 10 GiB。

VolumeType = gp3

默认Iops= 3000

支持的值Iops= 3000—16000 †

最大值IopsSize对于 IOPS 大于 3000 的卷,比率 = 每 GiB 500 IOPS。

† 只有在以下情况下才能保证最大 IOPS在 Nitro 系统上构建的实例它们还配置了超过 32,000 个 IOPS。其他实例最多可以有 32,000 个 IOPS。早些时候io1除非您,否则卷可能无法达到最大性能修改音量io2区块快递卷支持volume_iops值高达 256000R5b实例类型。有关更多信息,请参阅io2屏蔽快递卷适用于 Linux 实例的亚马逊 EC2 用户指南

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

Throughput(可选Integer)

定义吞吐量gp3卷类型,以 MiB/s 为单位。此设置仅在以下情况下有效VolumeTypegp3。默认值为 125。支持的值:125—1000 MiB/s

的比例ThroughputIops可以不超过 0.25。1000 MiB/s 的最大吞吐量要求Iops设置至少为 4000。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

EphemeralVolume(可选Boolean)

指定临时音量的设置。临时卷是通过将所有实例存储卷合并成一个逻辑卷来创建的,其格式为ext4文件系统。默认为 /scratch。如果该实例类型没有任何实例存储卷,则不会创建临时卷。有关更多信息,请参阅实例存储卷适用于 Linux 实例的亚马逊 EC2 用户指南

EphemeralVolume: MountDir: string

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

MountDir(可选String)

中每个节点的临时卷的挂载目录Slurm队列。

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

CustomActions

(可选)指定要在节点上运行的自定义脚本Slurm队列。

CustomActions: OnNodeStart: Sequence: - Script: string Args: - string Script: string Args: - string OnNodeConfigured: Sequence: - Script: string Args: - string Script: string Args: - string

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

CustomActions特性
OnNodeStart(可选String)

指定要在节点上运行的一系列脚本或单个脚本Slurm在启动任何节点部署引导操作之前排队。Amazon ParallelCluster不支持同时包含单个脚本和Sequence用于相同的自定义操作。有关更多信息,请参阅自定义引导操作

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

OnNodeConfigured(可选String)

指定要在节点上运行的一系列脚本或单个脚本Slurm在所有节点引导操作完成后排队。Amazon ParallelCluster不支持同时包含单个脚本和Sequence用于相同的自定义操作。有关更多信息,请参阅自定义引导操作

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

注意

Sequence以开头添加Amazon ParallelCluster版本 3.6.0。当你指定Sequence,您可以列出一个自定义操作的多个脚本。Amazon ParallelCluster继续支持使用单个脚本配置自定义操作,不包括Sequence

Amazon ParallelCluster不支持同时包含单个脚本和Sequence用于相同的自定义操作。

Iam

(可选)为定义可选的 IAM 设置Slurm队列。

Iam: S3Access: - BucketName: string EnableWriteAccess: boolean KeyName: string AdditionalIamPolicies: - Policy: string InstanceProfile: string InstanceRole: string

更新政策:可以在更新期间更改此设置。

Iam特性
InstanceProfile(可选String)

指定实例配置文件以覆盖的默认实例角色或实例配置文件Slurm队列。不能同时指定两者InstanceProfileInstanceRole。格式为 arn:${Partition}:iam::${Account}:instance-profile/${InstanceProfileName}

如果指定了这一点,则S3AccessAdditionalIamPolicies无法指定设置。

我们建议您指定其中一个或两个S3AccessAdditionalIamPolicies设置,因为添加了功能Amazon ParallelCluster通常需要新的权限。

更新策略:必须停止计算队列才能更改此设置以进行更新。

InstanceRole(可选String)

指定实例角色以覆盖的默认实例角色或实例配置文件Slurm队列。不能同时指定两者InstanceProfileInstanceRole。格式为 arn:${Partition}:iam::${Account}:role/${RoleName}

如果指定了这一点,则S3AccessAdditionalIamPolicies无法指定设置。

我们建议您指定其中一个或两个S3AccessAdditionalIamPolicies设置,因为添加了功能Amazon ParallelCluster通常需要新的权限。

更新政策:可以在更新期间更改此设置。

S3Access(可选)

为指定存储桶Slurm队列。这用于生成策略,以授予对存储桶的指定访问权限Slurm队列。

如果指定了这一点,则InstanceProfileInstanceRole无法指定设置。

我们建议您指定其中一个或两个S3AccessAdditionalIamPolicies设置,因为添加了功能Amazon ParallelCluster通常需要新的权限。

S3Access: - BucketName: string EnableWriteAccess: boolean KeyName: string

更新政策:可以在更新期间更改此设置。

BucketName(必填项String)

存储桶的名称。

更新政策:可以在更新期间更改此设置。

KeyName(可选String)

存储桶的密钥。默认值为 *

更新政策:可以在更新期间更改此设置。

EnableWriteAccess(可选Boolean)

表示是否已为存储桶启用写入权限。

更新政策:可以在更新期间更改此设置。

AdditionalIamPolicies(可选)

指定亚马逊 EC2 的 IAM 策略的亚马逊资源名称 (ARN) 列表。此列表附在用于的根角色上Slurm除了所需的权限外,还要排队Amazon ParallelCluster。

IAM 策略名称及其 ARN 是不同的。不能使用名称。

如果指定了这一点,则InstanceProfileInstanceRole无法指定设置。

我们建议您使用AdditionalIamPolicies因为AdditionalIamPolicies已添加到权限中Amazon ParallelCluster要求,而且InstanceRole必须包含所需的所有权限。随着功能的不断添加,所需权限通常会随版本发生变化。

没有默认值。

AdditionalIamPolicies: - Policy: string

更新政策:可以在更新期间更改此设置。

Policy(必填项[String])

IAM 策略列表。

更新政策:可以在更新期间更改此设置。

SlurmSettings

(可选)定义以下各项的设置Slurm这适用于整个集群。

SlurmSettings: ScaledownIdletime: integer QueueUpdateStrategy: string EnableMemoryBasedScheduling: boolean CustomSlurmSettings: [dict] CustomSlurmSettingsIncludeFile: string Database: Uri: string UserName: string PasswordSecretArn: string Dns: DisableManagedDns: boolean HostedZoneId: string UseEc2Hostnames: boolean

SlurmSettings特性

ScaledownIdletime(可选Integer)

定义没有作业的时间长度(以分钟为单位)以及Slurm节点终止。

默认值为 10

更新策略:必须停止计算队列才能更改此设置以进行更新。

QueueUpdateStrategy(可选String)

指定替换策略SlurmQueues具有以下更新策略的部分参数:

更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。

QueueUpdateStrategy值仅在集群更新过程开始时使用。

有效值:COMPUTE_FLEET_STOP |DRAIN |TERMINATE

默认值:COMPUTE_FLEET_STOP

DRAIN

参数值已更改的队列中的节点设置为DRAINING。处于此状态的节点不接受新作业,正在运行的作业会继续完成。

在节点变为之后idle(DRAINED),如果节点是静态的,则替换该节点;如果该节点是动态的,则该节点将被终止。其他队列中未更改参数值的其他节点不受影响。

此策略需要用更改的参数值替换所有队列节点的时间取决于正在运行的工作负载。

COMPUTE_FLEET_STOP

的默认值QueueUpdateStrategy参数。使用此设置,更新下方的参数SlurmQueues部分要求你停止计算队列在执行集群更新之前:

$ pcluster update-compute-fleet --status STOP_REQUESTED
TERMINATE

在参数值已更改的队列中,正在运行的作业会被终止,节点会立即关机。

静态节点被替换,动态节点被终止。

其他队列中未更改参数值的其他节点不受影响。

更新政策:更新期间不分析此设置。

注意

QueueUpdateStrategy从开始就支持Amazon ParallelCluster版本 3.2.0。

EnableMemoryBasedScheduling(可选Boolean)

如果true,中启用了基于内存的调度Slurm。有关更多信息,请参阅SlurmQueues/ComputeResources/SchedulableMemory

默认值为 false

警告

启用基于内存的调度会影响Slurm调度器处理任务和节点分配。

有关更多信息,请参阅Slurm基于内存的调度

注意

EnableMemoryBasedScheduling从开始就支持Amazon ParallelCluster版本 3.2.0。

注意

开始于Amazon ParallelCluster版本 3.7.0,EnableMemoryBasedScheduling如果您在中配置了多个实例类型,则可以启用实例

对于Amazon ParallelCluster版本 3.2.0 到 3.6。xEnableMemoryBasedScheduling如果您在中配置了多个实例类型,则无法启用实例

更新策略:必须停止计算队列才能更改此设置以进行更新。

CustomSlurmSettings(可选[Dict])

定义自定义Slurm适用于整个集群的设置。

指定列表Slurm要附加到末尾的键值对的配置字典slurm.conf归档那个Amazon ParallelCluster生成。

列表中的每个词典都显示为单独的一行,添加到Slurm配置文件。您可以指定简单参数或复杂参数。

简单参数由单个密钥对组成,如以下示例所示:

- Param1: 100 - Param2: "SubParam1,SubParam2=SubValue2"

渲染的示例Slurm配置:

Param1=100 Param2=SubParam1,SubParam2=SubValue2

复杂Slurm配置参数由多个以空格分隔的键值组成,这些键值对如以下示例所示:

- NodeName: test-nodes[1-10] CPUs: 4 RealMemory: 4196 ... # other node settings - NodeSet: test-nodeset Nodes: test-nodes[1-10] ... # other nodeset settings - PartitionName: test-partition Nodes: test-nodeset ... # other partition settings

示例,渲染于Slurm配置:

NodeName=test-nodes[1-10] CPUs=4 RealMemory=4196 ... # other node settings NodeSet=test-nodeset Nodes=test-nodes[1-10] ... # other nodeset settings PartitionName=test-partition Nodes=test-nodeset ... # other partition settings
注意

自定义Slurm节点不得包含-st-要么-dy-他们名字中的图案。这些模式是为由管理的节点保留的Amazon ParallelCluster。

如果您指定自定义Slurm中的配置参数CustomSlurmSettings,则不得指定自定义Slurm的配置参数CustomSlurmSettingsIncludeFile

你只能指定Slurm中未被拒绝列出的配置参数CustomSlurmSettings。有关被拒名单的信息Slurm配置参数,请参见被拒登名单Slurm的配置参数CustomSlurmSettings

Amazon ParallelCluster仅检查参数是否在拒绝列表中。Amazon ParallelCluster无法验证您的自定义Slurm配置参数语法或语义。您有责任验证您的自定义Slurm配置参数。无效的自定义Slurm配置参数可能导致Slurm守护程序失败可能导致集群创建和更新失败。

有关如何指定自定义的更多信息Slurm配置参数带有Amazon ParallelCluster,请参阅Slurm配置自定义

有关以下内容的更多信息Slurm配置参数,请参见slurm.conf在Slurm文档。

更新政策:可以在更新期间更改此设置。

注意

CustomSlurmSettings从开始就支持Amazon ParallelCluster版本 3.6.0。

CustomSlurmSettingsIncludeFile(可选String)

定义自定义Slurm适用于整个集群的设置。

指定自定义Slurm由自定义组成的文件Slurm要在末尾附加的配置参数slurm.conf归档那个Amazon ParallelCluster生成。

必须包括文件路径。路径可以从https://要么s3://

如果您指定自定义Slurm的配置参数CustomSlurmSettingsIncludeFile,则不得指定自定义Slurm的配置参数CustomSlurmSettings

注意

自定义Slurm节点不得包含-st-要么-dy-他们名字中的图案。这些模式是为由管理的节点保留的Amazon ParallelCluster。

你只能指定Slurm中未被拒绝列出的配置参数CustomSlurmSettingsIncludeFile。有关被拒名单的信息Slurm配置参数,请参见被拒登名单Slurm的配置参数CustomSlurmSettings

Amazon ParallelCluster仅检查参数是否在拒绝列表中。Amazon ParallelCluster无法验证您的自定义Slurm配置参数语法或语义。您有责任验证您的自定义Slurm配置参数。无效的自定义Slurm配置参数可能导致Slurm守护程序失败可能导致集群创建和更新失败。

有关如何指定自定义的更多信息Slurm配置参数带有Amazon ParallelCluster,请参阅Slurm配置自定义

有关以下内容的更多信息Slurm配置参数,请参见slurm.conf在Slurm文档。

更新政策:可以在更新期间更改此设置。

注意

CustomSlurmSettings从开始就支持Amazon ParallelCluster版本 3.6.0。

Database

(可选)定义要启用的设置Slurm集群的会计。有关更多信息,请参阅Slurm会计Amazon ParallelCluster

Database: Uri: string UserName: string PasswordSecretArn: string

更新策略:必须停止计算队列才能更改此设置以进行更新。

Database 属性

Uri(必填项String)

用作后端的数据库服务器的地址Slurm会计。此 URI 的格式必须为host:port并且不得包含计划,例如mysql://。主机可以是 IP 地址,也可以是头节点可解析的 DNS 名称。如果未提供端口,Amazon ParallelCluster使用MySQL默认端口 3306。

Amazon ParallelClusterbootstrapsSlurm记账数据库到集群中,并且必须访问该数据库。

在发生以下情况之前,必须可以访问数据库:

  • 集群已创建。

  • Slurm通过群集更新启用记账。

更新策略:必须停止计算队列才能更改此设置以进行更新。

UserName(必填项String)

那个身份Slurm用于连接数据库、写入记账日志和执行查询。用户必须同时拥有数据库的读取和写入权限。

更新策略:必须停止计算队列才能更改此设置以进行更新。

PasswordSecretArn(必填项String)

的亚马逊资源名称 (ARN)Amazon Secrets Manager包含以下内容的秘密UserName纯文本密码。此密码与UserName和Slurm要在数据库服务器上进行身份验证的记账。

如果用户有权限DescribeSecretPasswordSecretArn已验证。PasswordSecretArn如果指定的密钥存在,则有效。如果用户 IAM 策略不包括DescribeSecretPasswordSecretArn未通过验证并显示警告消息。有关更多信息,请参阅基地Amazon ParallelCluster pcluster用户政策

当你更新时PasswordSecretArn,则必须停止计算队列。如果密钥值发生更改,并且机密 ARN 没有更改,则集群不会自动使用新的数据库密码进行更新。要更新集群以获取新的密钥值,您必须在计算队列停止后从头节点内运行以下命令。

$ sudo /opt/parallelcluster/scripts/slurm/update_slurm_database_password.sh
警告

我们建议您仅在计算队列停止时更改数据库密码,以免丢失会计数据。

更新策略:必须停止计算队列才能更改此设置以进行更新。

注意

Database是从 3.3.0 版本开始添加的。

Dns

(可选)定义以下各项的设置Slurm这适用于整个集群。

Dns: DisableManagedDns: boolean HostedZoneId: string UseEc2Hostnames: boolean

Dns特性

DisableManagedDns(可选Boolean)

如果true,集群的 DNS 条目尚未创建,而且Slurm节点名称无法解析。

默认情况下,Amazon ParallelCluster创建一个 Route 53 托管区域,启动时将在其中注册节点。默认值为 false。如果DisableManagedDns设置为true,托管区域不是由创建的Amazon ParallelCluster。

要了解如何使用此设置在没有 Internet 访问权限的子网中部署集群,请参阅Amazon ParallelCluster在无法访问互联网的单个子网中

警告

集群需要名称解析系统才能正常运行。如果DisableManagedDns设置为true,则必须提供名称解析系统。要使用 EC2 默认 DNS,请设置UseEc2Hostnamestrue。或者,配置您自己的 DNS 解析器,并确保在启动实例时注册节点名称。例如,你可以通过配置来做到这一点CustomActions/OnNodeStart

更新政策:如果更改此设置,则不允许更新。

HostedZoneId(可选String)

定义用于集群的 DNS 名称解析的自定义 Route 53 托管区域 ID。如果提供,Amazon ParallelCluster在指定的托管区域中注册集群节点,但不会创建托管托管区域。

更新政策:如果更改此设置,则不允许更新。

UseEc2Hostnames(可选Boolean)

如果true,则使用默认 EC2 主机名配置集群计算节点。的Slurm NodeHostName也使用此信息进行了更新。默认为 false

要了解如何使用此设置在没有 Internet 访问权限的子网中部署集群,请参阅Amazon ParallelCluster在无法访问互联网的单个子网中

注意

此注释不相关,开头为Amazon ParallelCluster版本 3.3.0。

对于Amazon ParallelCluster3.3.0 之前支持的版本:

什么时候UseEc2Hostnames设置为true,Slurm 配置文件设置为Amazon ParallelCluster prologepilog脚本:

  • prolog运行以向其添加节点信息/etc/hosts分配每个作业时在计算节点上。

  • epilog运行以清理写入的内容prolog

添加自定义prolog要么epilog脚本,将它们添加到/opt/slurm/etc/pcluster/prolog.d/要么/opt/slurm/etc/pcluster/epilog.d/分别是文件夹。

更新政策:如果更改此设置,则不允许更新。