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 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 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 SpotPrice: float DisableSimultaneousMultithreading: boolean SchedulableMemory: integer Efa: Enabled: boolean GdrSupport: boolean CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string Networking: PlacementGroup: Enabled: boolean Name: string CustomActions: OnNodeStart: Script: string Args: - string OnNodeConfigured: 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

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

AwsBatchQueues

(可选)Amazon Batch队列设置。仅支持一个队列。如果设置Schedulerawsbatch,则此部分为必填部分。有关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 的 Amazon EC2 用户指南(适用于 Linux 实例)中的 Sot 实例请求的服务相关角色

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

Networking

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

Networking: SubnetIds: - string AssignPublicIp: boolean SecurityGroups: - string AdditionalSecurityGroups: - string
Networking 属性
SubnetIds必需[String]

指定要在其中置备Amazon Batch队列的现有子网的 ID。目前仅支持一个子网。

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

AssignPublicIp可选String

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

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

SecurityGroups可选[String]

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

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

AdditionalSecurityGroups可选[String]

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

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

ComputeResources

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

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

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

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

DesiredVcpus可选Integer

Amazon Batch计算环境中所需的 vCPU 数量。 Amazon BatchMaxvCpus根据作业队列中的需求在MinvCpus和之间调整此值。

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

MaxvCpus可选Integer

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

更新政策:此设置在更新期间无法降低。

SpotBidPercentage可选Float

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

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

SlurmQueues

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

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 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 SpotPrice: float DisableSimultaneousMultithreading: boolean SchedulableMemory: integer Efa: Enabled: boolean GdrSupport: boolean CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string Networking: PlacementGroup: Enabled: boolean Name: string CustomActions: OnNodeStart: Script: string Args: - string OnNodeConfigured: 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是在 3.3.0Amazon ParallelCluster 版本中添加的。

CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string

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

CapacityReservationId可选String

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

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 的 Amazon EC2 用户指南(适用于 Linux 实例)中的 Sot 实例请求的服务相关角色

更新策略:必须停止计算队列或设置计算队列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 = ONDEMAND,则capacity-optimized不可用。

  • 如果设置CapacityType = SPOT,则 EC2 队列从其容量最适合将启动的实例数量的 Spot 实例池启动实例。

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

注意

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

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]

您在其中置备Slurm队列的现有子网的 ID。

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

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

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

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

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

subnet-1可以在 AZ-1 中,subnet-2也可以在 AZ-2 中。

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

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

注意

不同的可用区不支持 Elastic Fabric Adapter (EA)。

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

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

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

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

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

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

注意

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

警告

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

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

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

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

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

AssignPublicIp可选String

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

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

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

SecurityGroups可选[String]

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

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

警告

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

对于Amazon ParallelCluster 3.0 之前的 3 版本:

更改此参数并更新集群会为 Lustre 文件系统创建一个新的托管 FSx,并在不保留现有数据的情况下删除 Lustre 文件系统的现有托管 FSx。这会导致数据丢失。如果要保留数据,请务必备份现有 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队列使用的现有集群置放群组的置放组名称。确保提供置放群组名称而不是 ID

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

Name可选String

Slurm队列使用的现有集群置放群组的置放组名称。确保提供置放群组名称而不是 ID

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

注意
Proxy可选

指定Slurm队列的代理设置。

Proxy: HttpProxyAddress: string

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

HttpProxyAddress可选String

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

没有默认值。

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

Image

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

Image: CustomAmi: string

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

Image属性
CustomAmi可选String

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

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

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

ComputeResources: - Name: string InstanceType: string Instances: - InstanceType: string MinCount: integer MaxCount: integer SpotPrice: float DisableSimultaneousMultithreading: boolean SchedulableMemory: integer Efa: Enabled: boolean GdrSupport: boolean CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string Networking: PlacementGroup: Enabled: boolean Name: 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 只能分配给使用单个网络接口启动的实例。有关更多信息,请参阅适用于 Linux 的 Amazon EC2 用户指南(适用于 Linux 实例)中的在实例启动期间分配公有 IPv4 地址

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

Instances必需

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

群集配置必须定义InstanceTypeInstances。如果两者都被定义,Amazon ParallelCluster则失败。

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

Instances: - InstanceType: string

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

InstanceType必需String

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

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

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

  • 不同的内存量。

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

    如果您指定多个实例类型,则EnableMemoryBasedScheduling无法启用。

  • 不同的网卡。

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

  • 不同的网络带宽。

  • 不同的实例存储大小。

如果您定义p4d或hpc6id实例类型,或者其他具有多个网络接口或网络接口卡的实例类型,则必须按照中的说明在私有子网中启动计算实例使用两个子网的 Amazon ParallelCluster。 Amazon公有 IP 只能分配给使用单个网络接口启动的实例。有关更多信息,请参阅适用于 Linux 的 Amazon EC2 用户指南(适用于 Linux 实例)中的在实例启动期间分配公有 IPv4 地址

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

注意

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

MinCount可选Integer

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

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

MaxCount可选Integer

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

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

SpotPrice可选Float

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

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

DisableSimultaneousMultithreading可选Boolean

如果是true,则禁用Slurm队列中节点上的多线程。默认值为 false

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

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

SchedulableMemory可选Integer

在计算资源的计算节点的Slurm参数中配置的以 MiBRealMemory 为单位的内存量。此值是启用 SlurmSettings/EnableMemoryBasedScheduling时作业可用的节点内存的上限。默认值是 Amazon EC2 实例类型中列出并由 Amazon EC2 API 返回的内存的 95% DescribeInstanceTypes。确保将 GiB 中给出的值转换为 MiB。

支持的值:1-EC2Memory

EC2Memory是在 Amazon EC2 实例类型中列出并由Amazon EC2 API 返回的内存(以 MiB 为单位)DescribeInstanceTypes。确保将 GiB 中给出的值转换为 MiB。

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

注意

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

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

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

Efa可选

为Slurm队列中的节点指定Elastic Fabric Adapter (EFA) 设置。

Efa: Enabled: boolean GdrSupport: boolean

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

Enabled可选Boolean

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

默认值为 false

注意

不同的可用区不支持 Elastic Fabric Adapter (EA)。有关更多信息,请参阅SubnetIds

警告

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

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

GdrSupport可选Boolean

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

注意

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

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

CapacityReservationTarget
CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string

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

CapacityReservationId可选String

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

CapacityReservationResourceGroupArn可选String

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

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

注意

CapacityReservationTarget是在 3.3.0Amazon ParallelCluster 版本中添加的。

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才能更改此设置才能进行更新。

注意
  • 如果Name未设置PlacementGroup/Enabled和,则它们各自的值默认为 SlurmQueues/Networking/PlacementGroup设置。

  • ComputeResources/Networking/PlacementGroup是在 3.3.0Amazon ParallelCluster 版本中添加的。

ComputeSettings

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

ComputeSettings 属性

指定Slurm队列ComputeSettings中节点的属性。

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

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

LocalStorage可选

指定Slurm队列LocalStorage中节点的属性。

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

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

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

Encrypted可选Boolean

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

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

VolumeType可选String

指定Slurm队列中节点的 Amazon EBS 卷类型。支持的值为gp2gp3io1io2sc1st1、和standard。默认值为 gp3

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

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

Iops可选Boolean

定义io1io2gp3类型卷的 IOPS 数量。

默认值、支持的值和volume_size比率volume_iopsVolumeType和而异Size

VolumeType = io1

默认值Iops = 100

支持的值Iops = 100—64000 †

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

VolumeType = io2

默认值Iops = 100

支持的值Iops = 100—64000(io2Block Express 卷为 256000)†

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

VolumeType = gp3

默认值Iops = 3000

支持的值Iops = 3000—16000 †

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

† 只有在 IOPS 超过 32,000的情况下,才能保证在 Nitro 系统上构建的实例,才能保证在 IOPS 上实现最大 IOPS。其他实例最多可包含 32000 IOPS。除非您修改io1卷,否则较旧的卷可能无法实现完全性能。 io2Block Express 卷支持的R5b实例类型volume_iops值最高为 256,000。有关更多信息,请参阅适用于 Linux 的 Linux 实例的 Amazon EC2 用户指南中的 Bl io2ock Expres

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

Throughput可选Integer

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

Throughput的比率Iops不能超过 0.25。1000 MiB/s 的最大吞吐量要求Iops设置至少为 4000。

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

EphemeralVolume可选Boolean

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

EphemeralVolume: MountDir: string

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

MountDir可选String

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

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

CustomActions

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

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

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

CustomActions属性
OnNodeStart可选String

指定在启动任何节点部署引导操作之前在Slurm队列中的节点上运行的脚本。有关更多信息,请参阅自定义引导导导导导导操作

Script必需String

要使用的文件。文件路径可以以https://或开头s3://

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

Args可选[String]

要传递给脚本的参数列表。

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

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

OnNodeConfigured可选String

指定在所有节点引导操作完成后在Slurm队列中的节点上运行的脚本。有关更多信息,请参阅自定义引导导导导导导操作

Script必需String

要使用的文件。文件路径可以以https://或开头s3://

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

Args可选[String]

要传递给脚本的参数列表。

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

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

Iam

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

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}

如果指定了此AdditionalIamPolicies设置,则无法指定S3Access和设置。

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

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

InstanceRole可选String

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

如果指定了此AdditionalIamPolicies设置,则无法指定S3Access和设置。

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

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

S3Access可选

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

如果指定了此InstanceRole设置,则无法指定InstanceProfile和设置。

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

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

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

BucketName必需String

存储桶的名称。

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

KeyName可选String

水桶的钥匙。默认值为 *

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

EnableWriteAccess可选Boolean

指示是否为桶启用写入权限。

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

AdditionalIamPolicies可选

指定适用于 Amazon EC2 IAM 策略的 Amazon 资源名称(ARN)的列表。除所需的权限外,此列表还附加到用于Slurm队列的根角色Amazon ParallelCluster。

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

如果指定了此InstanceRole设置,则无法指定InstanceProfile和设置。

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

没有默认值。

AdditionalIamPolicies: - Policy: string

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

Policy必需[String]

IAM 策略列表。

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

SlurmSettings

(可选)定义适用于整个集群的设置。Slurm

SlurmSettings: ScaledownIdletime: integer QueueUpdateStrategy: string EnableMemoryBasedScheduling: boolean 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从 3.2.0Amazon ParallelCluster 版本开始支持。

EnableMemoryBasedScheduling可选Boolean

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

默认值为 false

警告

启用基于内存的调度会影响调Slurm度程序处理作业和节点分配的方式。

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

注意

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

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

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 ParallelCluster将Slurm会计数据库引导到集群,并且必须访问该数据库。

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

  • 集群已创建。

  • Slurm通过群集更新启用了会计。

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

UserName必需String

Slurm用于连接数据库、写入会计日志和执行查询的身份。用户必须同时具有对数据库读取和写入的权限。

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

PasswordSecretArn必需String

包含UserName纯文本密码的Amazon Secrets Manager密钥的 Amazon 资源名称 (ARN)。此密码与UserName和Slurm账户一起使用以在数据库服务器上进行身份验证。

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

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

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

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

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

注意

Database是从 3.0 版开始添加的。

Dns

(可选)定义适用于整个集群的设置。Slurm

Dns: DisableManagedDns: boolean HostedZoneId: string UseEc2Hostnames: boolean

Dns属性

DisableManagedDns可选Boolean

如果true,则集群的 DNS 条目未创建,Slurm节点名称不可解析。

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

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

警告

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

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

HostedZoneId可选String

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

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

UseEc2Hostnames可选Boolean

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

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

注意

从Amazon ParallelCluster版本 3.3.0 开始,此注释就无关紧要了。

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

如果设置UseEc2Hostnamestrue,则使用Amazon ParallelClusterprologepilog脚本设置 Slurm 配置文件:

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

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

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

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