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

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

Scheduling 部分

(必需)定义要在集群中使用的作业调度程序以及作业调度程序管理的计算实例的特征。可以使用的两个作业调度程序是Slurm和Amazon Batch,每个都支持不同的设置和属性。

Scheduling: Scheduler: slurm SlurmSettings: ScaledownIdletime: integer Dns: DisableManagedDns: boolean HostedZoneId: string UseEc2Hostnames: string SlurmQueues: - Name: string ComputeSettings: LocalStorage: RootVolume: Size: integer Encrypted: boolean VolumeType: string Iops: integer Throughput: string EphemeralVolume: MountDir: string CapacityType: string Networking: SubnetIds: - string AssignPublicIp: boolean SecurityGroups: - string AdditionalSecurityGroups: - string PlacementGroup: Enabled: boolean Id: string Proxy: HttpProxyAddress: string ComputeResources: - Name: string InstanceType: string MinCount: integer MaxCount: integer SpotPrice: float DisableSimultaneousMultithreading: boolean Efa: Enabled: boolean GdrSupport: boolean CustomActions: OnNodeStart: Script: string Args: - string OnNodeConfigured: Script: string Args: - string Iam: InstanceProfile: string InstanceRole: string S3Access: - BucketName: string EnableWriteAccess: boolean KeyName: boolean 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 Batchqueue. 只支持一个队列。此部分是必需的:Schedulerawsbatch.

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 Batchqueue.

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

CapacityType(可选String

在中使用的计算资源的类型。Amazon Batchqueue. 支持的值为 ONDEMANDSPOT。原定设置值为 ONDEMAND

注意

何时CapacityType设置为SPOT,一定有AWSServiceRoleForEC2Spot账户中的服务相关角色。您可以使用以下内容创建此角色:Amazon CLI命令:

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

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

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

Networking

(必需)定义网络配置Amazon Batchqueue.

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

指定要在其中预置的现有子网的 ID。Amazon Batchqueue. 目前仅支持一个子网。

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

AssignPublicIp(可选String

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

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

SecurityGroups(可选[String]

用于Amazon Batchqueue. 如果没有指定安全组,Amazon ParallelCluster将创建新的。

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

AdditionalSecurityGroups(可选[String]

用于Amazon Batchqueue.

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

ComputeResources

(必需)定义ComputeResources的配置Amazon Batchqueue.

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 Batchqueue.

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

InstanceTypes(必需[String]

要包括在此中的实例类型数组Amazon Batch计算环境。所有实例类型都必须使用x86_64架构。

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

MinvCpus(可选Integer

The minimum number of VCPUs for the Amazon Batch计算环境。

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

DesiredVcpus(可选Integer

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

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

MaxvCpus(可选Integer

的最大 vCPU 数。Amazon Batch计算环境。这不能设置为低于DesiredVcpus.

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

SpotBidPercentage(可选Float

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

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

SlurmQueues

(可选)的设置Slurmqueue. 此部分是必需的:Schedulerslurm.

SlurmQueues: - Name: string ComputeSettings: LocalStorage: RootVolume: Size: integer Encrypted: boolean VolumeType: string Iops: integer Throughput: string EphemeralVolume: MountDir: string CapacityType: string Networking: SubnetIds: - string AssignPublicIp: boolean SecurityGroups: - string AdditionalSecurityGroups: - string PlacementGroup: Enabled: boolean Id: string Proxy: HttpProxyAddress: string ComputeResources: - Name: string InstanceType: string MinCount: integer MaxCount: integer SpotPrice: float DisableSimultaneousMultithreading: boolean Efa: Enabled: boolean GdrSupport: boolean CustomActions: OnNodeStart: Script: string Args: - string OnNodeConfigured: Script: string Args: - string Iam: InstanceProfile: string InstanceRole: string S3Access: - BucketName: string EnableWriteAccess: boolean KeyName: boolean AdditionalIamPolicies: - Policy: string Image: CustomAmi: string

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

SlurmQueues属性

Name(必需String

的名称Slurmqueue.

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

CapacityType(可选String

在中使用的计算资源的类型。Slurmqueue. 支持的值为 ONDEMANDSPOT。原定设置值为 ONDEMAND

注意

何时CapacityType设置为SPOT,一定有AWSServiceRoleForEC2Spot账户中的服务相关角色。您可以使用以下内容创建此角色:Amazon CLI命令:

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

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

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

Networking

(必需)定义网络配置Slurmqueue.

Networking: SubnetIds: - string AssignPublicIp: boolean SecurityGroups: - string AdditionalSecurityGroups: - string PlacementGroup: Enabled: boolean Id: string Proxy: HttpProxyAddress: string
Networking属性
SubnetIds(必需[String]

指定要在其中预置Slurmqueue. 目前仅支持一个子网。

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

AssignPublicIp(可选String

为中的节点创建或分配公有 IP 地址。Slurmqueue. 支持的值为 truefalse。默认值取决于指定的子网;具有公有 IP 的子网将默认分配公有 IP 地址。

如果您定义了 p4d 实例类型或其他具有多个网络接口或网络接口卡的实例类型,则必须设置HeadNode/Networking/ElasticIptrue为公有提供访问。Amazon只能将公有 IP 分配给使用单个网络接口启动的实例。对于这种情况,建议您使用NAT 网关提供对集群计算节点的公有访问。在这种情况下,请设置AssignPublicIpfalse. 有关 IP 地址的更多信息,请参阅分配辅助私有 IPv4 地址.

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

SecurityGroups(可选[String]

用于Slurmqueue. 如果没有指定安全组,Amazon ParallelCluster将创建新的。

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

AdditionalSecurityGroups(可选[String]

用于Slurmqueue.

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

PlacementGroup(可选

指定置放群组设置Slurmqueue.

PlacementGroup: Enabled: boolean Id: string

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

Enabled(可选Boolean

指示置放群组是否用于Slurmqueue. 如果未指定,则默认值为false.

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

Id(可选String

现有集群置放群组的置放群组名称用于Slurmqueue. 如果没有指定这一点,Amazon ParallelCluster将为每个队列创建一个新的集群置放群组。

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

Proxy(可选

指定代理设置Slurmqueue.

Proxy: HttpProxyAddress: string

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

HttpProxyAddress(可选String

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

没有默认值。

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

Image

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

Image: CustomAmi: string
Image属性
CustomAmi(可选String

要用于Slurm队列而不是默认 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>" ] } ] }

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

ComputeResources

(必需)定义ComputeResources的配置Slurmqueue.

ComputeResources: - Name: string InstanceType: string MinCount: integer MaxCount: integer SpotPrice: float DisableSimultaneousMultithreading: boolean Efa: Enabled: boolean GdrSupport: boolean
ComputeResources属性
Name(必需String

的计算环境的名称Slurmqueue.

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

DisableSimultaneousMultithreading(可选Boolean

如果true,禁用中的节点上的超线程Slurmqueue. 原定设置值为 false

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

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

InstanceType(必需String

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

如果您定义了 p4d 实例类型或其他具有多个网络接口或网络接口卡的实例类型,则必须设置HeadNode/Networking/ElasticIptrue为公有提供访问。Amazon只能将公有 IP 分配给使用单个网络接口启动的实例。对于这种情况,建议您使用NAT 网关提供对集群计算节点的公有访问。有关 IP 地址的更多信息,请参阅分配辅助私有 IPv4 地址.

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

MinCount(可选Integer

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

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

MaxCount(可选Integer

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

更新策略:将队列的大小降至低于当前节点数量需要先停止计算队列。

SpotPrice(可选Float

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

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

Efa(可选

Elastic Fabric Adapter (EFA) 在Slurmqueue.

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

Efa: Enabled: boolean GdrSupport: boolean
Enabled(可选Boolean

指定启用 Elastic Fabric Adapter (EFA)。EFA 受特定实例类型的支持(c5n.18xlargec5n.metalg4dn.metali3en.24xlargei3en.metalm5dn.24xlargem5n.24xlargem5zn.12xlargem5zn.metalr5dn.24xlarger5n.24xlargep3dn.24xlarge, 和p4d.24xlarge对于 x86-64 实例和c6gn.16xlarge对于特定操作系统上基于 ARM 的 Graviton2 实例)alinux2centos7ubuntu1804,或者ubuntu2004对于 x86-64 实例和alinux2ubuntu1804,或者ubuntu2004对于基于 ARM 的 Graviton2 实例)。有关更多信息,请参阅 Elastic Fabric Adapter。使用集群置放群组来最大限度地减少实例之间的延迟。原定设置值为 false

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

GdrSupport(可选Boolean

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

注意

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

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

ComputeSettings

(必需)定义ComputeSettings的配置Slurmqueue.

ComputeSettings属性

指定的属性ComputeSettings中的节点Slurmqueue.

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

指定的属性LocalStorage中的节点Slurmqueue.

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

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

RootVolume(可选

指定节点的根卷的详细信息Slurmqueue.

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

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

Size(可选Integer

指定中的注释的根卷大小(以 GiB 为单位)。Slurmqueue. 默认大小来自 AMI。使用不同的大小需要 AMI 支持growroot.

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

Encrypted(可选Boolean

如果true,中节点的根卷Slurm队列已加密。原定设置值为 false

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

VolumeType(可选String

指定Amazon EBS 卷类型中的节点Slurmqueue. 支持的值为gp2gp3io1io2sc1st1, 和standard. 原定设置值为 gp2

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

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

Iops(可选Boolean

定义 IOPS 数io1io2键入卷。

默认值、支持的值和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)io2Block Express 卷)†

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

† 最大 IOPS 仅在基于 Nitro 系统构建的实例配置超过 32,000 的 IOPS。其他实例保证最高为 32000 个 IOPS。较早io1除非您的卷可能无法实现完全性能修改卷.io2 Block Express 卷支持volume_iops价值高达 256000R5b实例类型。有关更多信息,请参阅 。io2Block Express 卷中的适用于 Linux 实例的 Amazon EC2 用户指南.

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

Throughput(可选Integer

定义的吞吐量gp3卷类型,以 Miib/s 为单位。此设置仅在VolumeTypegp3. 原定设置值为 125。支持的值:125—1000 Mi/ 秒

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

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

EphemeralVolume(可选Boolean

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

EphemeralVolume: MountDir: string

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

MountDir(可选String

为中的每个音符指定临时卷的挂载目录Slurmqueue.

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

CustomActions

(可选)指定要在中的节点上运行的自定义脚本Slurmqueue.

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

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

CustomActions属性
OnNodeStart(可选String

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

Script(必需String

指定要使用的文件。文件路径可以以开头https://要么s3://.

Args(可选[String]

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

OnNodeConfigured(可选String

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

Script(必需String

指定要使用的文件。文件路径可以以开头https://要么s3://.

Args(可选[String]

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

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

Iam

(可选)定义可选的 IAM 设置Slurmqueue.

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

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

Iam属性
InstanceProfile(可选String

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

如果指定了此选项,则S3AccessAdditionalIamPolicies设置将被忽略。建议使用AdditionalIamPolicies因为功能已添加到Amazon ParallelCluster通常需要新的权限。

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

InstanceRole(可选String

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

如果指定了此选项,则S3AccessAdditionalIamPolicies将忽略设置。建议使用AdditionalIamPolicies因为功能已添加到Amazon ParallelCluster通常需要新的权限。

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

S3Access(可选

指定存储桶Slurmqueue. 这用于生成策略以授予对存储桶的指定访问权限的策略Slurmqueue.

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

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

BucketName(必需String

存储桶的名称。

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

KeyName(可选String

存储桶的钥匙。原定设置值为 *

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

EnableWriteAccess(可选Boolean

指示是否已为存储桶启用写入访问。

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

AdditionalIamPolicies(可选

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

IAM 策略名称及其 ARN 不相同。如果名称无法使用。InstanceProfile要么InstanceRole指定设置,则忽略此设置。建议使用AdditionalIamPolicies因为AdditionalIamPolicies被添加到权限Amazon ParallelCluster需要,而且InstanceRole必须包括所需的所有权限。随着功能的不断添加,所需权限通常会随版本发生变化。

没有默认值。

AdditionalIamPolicies: - Policy: string
Policy(必需[String]

IAM 策略列表。

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

SlurmSettings

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

SlurmSettings: ScaledownIdletime: integer Dns: DisableManagedDns: boolean HostedZoneId: string UseEc2Hostnames: string

SlurmSettings属性

ScaledownIdletime(可选Integer

定义没有作业的时间量(以分钟为单位),经过此时段后,Slurm节点终止。

原定设置值为 10

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

Dns

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

Dns: DisableManagedDns: boolean HostedZoneId: string UseEc2Hostnames: string

Dns属性

DisableManagedDns(可选Boolean

如果true,则不应创建集群的 DNS 条目。默认情况下,Amazon ParallelCluster创建 Route 53 托管区域。原定设置值为 false。如果DisableManagedDns设置为true,托管区域不是由Amazon ParallelCluster.

警告

集群需要名称解析系统才能正常运行。如果DisableManagedDns设置为true,则还必须提供额外的姓名解析系统。

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

HostedZoneId(可选String

定义用于集群的 DNS 名称解析的自定义 Route 53 托管区域 ID。

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

UseEc2Hostnames(可选String

指定使用默认 EC2 主机名。

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