本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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
)-
指定使用的调度程序的类型。支持的值为
slurm
和awsbatch
。注意
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队列使用。支持的值为
ONDEMAND
或SPOT
。默认值为ONDEMAND
。注意
如果你设置了
CapacityType
到SPOT
,您的账户必须包含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队列。支持的值为
true
和false
。默认值取决于您指定的子网。 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在两者之间调整此值
MinvCpus
和MaxvCpus
基于任务队列中的需求。 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根据以下条件确定并使用资源组中最合适的容量预留:
-
如果
PlacementGroup
已在中启用SlurmQueues/Networking要么SlurmQueues/ComputeResources/Networking,Amazon ParallelCluster选择以实例类型为目标的资源组,然后PlacementGroup
对于计算资源(如果计算资源存在)。的
PlacementGroup
必须以中定义的实例类型之一为目标ComputeResources。 -
如果
PlacementGroup
中未启用SlurmQueues/Networking要么SlurmQueues/ComputeResources/Networking,Amazon ParallelCluster如果计算资源存在,则选择仅针对计算资源的实例类型的资源组。
资源组必须为队列的所有计算资源和可用区的可用区中的每种实例类型保留至少一个 ODCR。有关更多信息,请参阅使用 ODCR(按需容量预留)启动实例:
有关多子网配置要求的更多信息,请参阅Networking/SubnetIds。
注意
中添加了多个可用区Amazon ParallelCluster版本 3.4.0。
-
CapacityType
(可选,String
)-
计算资源的类型Slurm队列使用。支持的值为
ONDEMAND
或SPOT
。默认值为ONDEMAND
。注意
如果你设置了
CapacityType
到SPOT
,您的账户必须有一个AWSServiceRoleForEC2Spot
服务相关角色。您可以使用以下方法创建此角色Amazon CLI命令。$
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com有关更多信息,请参阅竞价型实例请求的服务相关角色在适用于 Linux 实例的亚马逊 EC2 用户指南。
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 队列从竞价型实例池启动实例,其容量最适合要启动的实例数量。
-
更新政策:必须停止计算队列或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
)-
标签值。
HealthChecks
(可选)-
为队列中的所有计算资源指定计算节点运行状况检查。
Gpu
(可选)-
为队列中的所有计算资源指定 GPU 运行状况检查。
注意
Amazon ParallelCluster不支持
HealthChecks
/Gpu
在使用的节点中alinux2
ARM 操作系统。这些平台不支持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
运行状况检查从节点开始:-
它会检测是否
nvidia-dcgm
和nvidia-fabricmanager
服务正在运行。 -
如果这些服务未运行,
Gpu
健康检查会启动他们。 -
它会检测是否启用了持久模式。
-
如果未启用持久模式,则
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-1
和subnet-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队列。支持的值为
true
和false
。您指定的子网决定了默认值。具有公有 IP 的子网默认为分配公有 IP 地址。如果你定义了p4d要么hpc6id实例类型或其他具有多个网络接口或网络接口卡的实例类型,您必须设置HeadNode/Networking/ElasticIp到
true
提供公众访问权限。Amazon只能将公有 IP 分配给使用单一网络接口启动的实例。对于这种情况,我们建议您使用NAT 网关提供对群集计算节点的公共访问权限。在这种情况下,设置AssignPublicIp
到false
。有关 IP 地址的更多信息,请参阅在实例启动期间分配公有 IPv4 地址在适用于 Linux 实例的亚马逊 EC2 用户指南。 SecurityGroups
(可选,[String]
)-
用于的安全组列表Slurm队列。如果未指定安全组,Amazon ParallelCluster为您创建安全组。
验证您的安全组配置是否正确SharedStorage系统。
警告
此警告适用于所有 3.
x
。y
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
。 Id
(可选,String
)-
现有集群置放群组的置放群组名称Slurm队列使用。请务必提供置放群组名称和不是身份证。
Name
(可选,String
)-
现有集群置放群组的置放群组名称Slurm队列使用。请务必提供置放群组名称和不是身份证。
注意
-
如果
PlacementGroup
/Enabled
设置为true
,没有Name
要么Id
已定义,则为每个计算资源分配自己的托管置放群组,除非ComputeResources/Networking/PlacementGroup被定义为覆盖此设置。 -
开始于Amazon ParallelCluster版本 3.3.0,SlurmQueues/Networking/PlacementGroup/Name已添加为首选替代方案SlurmQueues/Networking/PlacementGroup/Id。
PlacementGroup/Id和PlacementGroup/Name是等效的。你可以使用任何一个。
如果你同时包含两者PlacementGroup/Id和PlacementGroup/Name,Amazon ParallelCluster失败。您只能选择其中一个。
您无需更新集群即可使用PlacementGroup/Name。
Proxy
(可选)-
指定代理设置Slurm队列。
Proxy: HttpProxyAddress:
string
更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。
HttpProxyAddress
(可选,String
)-
为定义一个 HTTP 或 HTTPS 代理服务器Slurm队列。通常,它是
https://
。x.x.x.x:8080
没有默认值。
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 问题疑难解答。
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
注意
更新政策:对于此列表值设置,可以在更新期间添加新值,或者在删除现有值时必须停止计算队列。
InstanceType
(必填项,String
)-
要在此中使用的实例类型Slurm计算资源。集群中的所有实例类型都必须使用相同的处理器架构
x86_64
要么arm64
。中列出的实例类型Instances必须有:
-
相同数量的 vCPU,或者,如果DisableSimultaneousMultithreading设置为
true
,相同数量的内核。 -
相同制造商的加速器数量相同。
中列出的实例类型Instances可以有:
-
内存量不同。
在这种情况下,应将最小内存设置为消耗品Slurm资源。
-
不同的网卡。
在这种情况下,为计算资源配置的网络接口数量由网卡数量最少的实例类型定义。
-
不同的网络带宽。
-
不同的实例存储大小。
如果你定义了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
价值观第一。警告
有许多不同的用法
Weight
a 中的值Slurm分区(队列)可能会减慢队列中作业调度的速度。在Amazon ParallelCluster3.7.0 版之前的版本,静态节点和动态节点的默认权重均为
1
。在这种情况下,Slurm由于静态和动态节点的命名架构,可能会优先考虑空闲的动态节点而不是空闲的静态节点。当其他一切都相等时,Slurm按名称的字母顺序排列节点。注意
DynamicNodePriority
已添加到Amazon ParallelCluster版本 3.7.0。 StaticNodePriority
(可选,Integer
)-
队列计算资源中静态节点的优先级。优先级映射到Slurm节点
Weight
计算资源静态节点的配置参数。默认值为 1
。Slurm优先考虑最低的节点
Weight
价值观第一。警告
有许多不同的用法
Weight
a 中的值Slurm分区(队列)可能会减慢队列中作业调度的速度。注意
StaticNodePriority
已添加到Amazon ParallelCluster版本 3.7.0。 SpotPrice
(可选,Float
)-
在启动任何 EC2 竞价型实例之前为 EC2 竞价型实例支付的最高价格。默认值为按需价格。
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
。 HealthChecks
(可选)-
指定对计算资源的运行状况检查。
Gpu
(可选)-
为计算资源指定 GPU 运行状况检查。
Enabled
(可选,Boolean
)-
是否Amazon ParallelCluster对计算队列中的资源执行 GPU 运行状况检查。默认为
false
。注意
Amazon ParallelCluster不支持
HealthChecks
/Gpu
在使用的节点中alinux2
ARM 操作系统。这些平台不支持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
运行状况检查从节点开始:-
它会检测是否
nvidia-dcgm
和nvidia-fabricmanager
服务正在运行。 -
如果这些服务未运行,
Gpu
健康检查会启动他们。 -
它会检测是否启用了持久模式。
-
如果未启用持久模式,则
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 的实例是允许所有入站和出站流量进入自身的安全组的成员。
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
) 在特定的操作系统上 (Os是alinux2
,centos7
,ubuntu1804
,或ubuntu2004
)。默认值为 false。
CapacityReservationTarget
-
CapacityReservationTarget: CapacityReservationId:
string
CapacityReservationResourceGroupArn:string
指定用于计算资源的按需容量预留。有关更多信息,请参阅使用 ODCR(按需容量预留)启动实例:
CapacityReservationId
(可选,String
)-
表示要为计算资源预留的现有容量预留的 ID。有关更多信息,请参阅使用 ODCR(按需容量预留)启动实例:
CapacityReservationResourceGroupArn
(可选,String
)-
表示资源组的 Amazon 资源名称 (ARN),该资源组充当计算资源的服务关联容量预留组。Amazon ParallelCluster确定并使用该组中最合适的容量预留。对于为计算资源列出的每种实例类型,资源组必须至少有一个 ODCR。有关更多信息,请参阅使用 ODCR(按需容量预留)启动实例:
-
如果
PlacementGroup
已在中启用SlurmQueues/Networking要么SlurmQueues/ComputeResources/Networking,Amazon ParallelCluster选择以实例类型为目标的资源组,然后PlacementGroup
用于计算资源(如果存在)。的
PlacementGroup
必须以中定义的实例类型之一为目标ComputeResources。 -
如果
PlacementGroup
中未启用SlurmQueues/Networking要么SlurmQueues/ComputeResources/Networking,Amazon ParallelCluster选择一个资源组,该资源组仅针对计算资源的实例类型(如果存在)。
-
更新政策:必须停止计算队列或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
设置。
-
Name
(可选,String
)-
用于计算资源的现有集群置放群组的置放群组名称。
注意
-
如果两者都是
PlacementGroup
/Enabled
和Name
未设置,它们各自的值默认为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
)-
标签值。
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
。 Encrypted
(可选,Boolean
)-
如果
true
,中节点的根卷Slurm队列已加密。默认值为false
。 VolumeType
(可选,String
)-
指定亚马逊 EBS 卷类型中的节点Slurm队列。支持的值是
gp2
,gp3
,io1
,io2
,sc1
,st1
,以及standard
。默认值为gp3
。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Amazon EBS 卷类型。
Iops
(可选,Boolean
)-
定义 IOPS 的数量
io1
,io2
,以及gp3
键入卷。默认值、支持的值和
volume_iops
到volume_size
比率因以下因素而异VolumeType
和Size
。VolumeType
=io1
-
默认
Iops
= 100支持的值
Iops
= 100—64000 †最大值
volume_iops
到volume_size
比率 = 每 GiB 50 IOPS。5000 IOPS 需要volume_size
至少 100 GiB。 VolumeType
=io2
-
默认
Iops
= 100支持的值
Iops
= 100—64000(256000 代表io2
区块快递卷) †最大值
Iops
到Size
比率 = 每 GiB 500 IOPS。5000 IOPS 需要Size
至少 10 GiB。 VolumeType
=gp3
-
默认
Iops
= 3000支持的值
Iops
= 3000—16000 †最大值
Iops
到Size
对于 IOPS 大于 3000 的卷,比率 = 每 GiB 500 IOPS。
† 只有在以下情况下才能保证最大 IOPS在 Nitro 系统上构建的实例它们还配置了超过 32,000 个 IOPS。其他实例最多可以有 32,000 个 IOPS。早些时候
io1
除非您,否则卷可能无法达到最大性能修改音量。io2
区块快递卷支持volume_iops
值高达 256000R5b
实例类型。有关更多信息,请参阅io2
屏蔽快递卷在适用于 Linux 实例的亚马逊 EC2 用户指南。 Throughput
(可选,Integer
)-
定义吞吐量
gp3
卷类型,以 MiB/s 为单位。此设置仅在以下情况下有效VolumeType
是gp3
。默认值为125
。支持的值:125—1000 MiB/s的比例
Throughput
到Iops
可以不超过 0.25。1000 MiB/s 的最大吞吐量要求Iops
设置至少为 4000。
EphemeralVolume
(可选,Boolean
)-
指定临时音量的设置。临时卷是通过将所有实例存储卷合并成一个逻辑卷来创建的,其格式为
ext4
文件系统。默认为/scratch
。如果该实例类型没有任何实例存储卷,则不会创建临时卷。有关更多信息,请参阅实例存储卷在适用于 Linux 实例的亚马逊 EC2 用户指南。EphemeralVolume: MountDir:
string
更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。
MountDir
(可选,String
)-
中每个节点的临时卷的挂载目录Slurm队列。
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
用于相同的自定义操作。有关更多信息,请参阅自定义引导操作:Sequence
(可选)-
要运行的脚本列表。
更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。
Script
(必填项,String
)-
要使用的文件。文件路径可以以
https://
要么s3://
。 Args
(可选,[String]
)-
要传递给脚本的参数列表。
Script
(必填项,String
)-
用于单个脚本的文件。文件路径可以以
https://
要么s3://
。 Args
(可选,[String]
)-
要传递给单个脚本的参数列表。
OnNodeConfigured
(可选,String
)-
指定要在节点上运行的一系列脚本或单个脚本Slurm在所有节点引导操作完成后排队。Amazon ParallelCluster不支持同时包含单个脚本和
Sequence
用于相同的自定义操作。有关更多信息,请参阅自定义引导操作:Sequence
(可选)-
要运行的脚本列表。
更新政策:必须停止计算队列或QueueUpdateStrategy必须进行设置才能更改此设置才能进行更新。
Script
(必填项,String
)-
要使用的文件。文件路径可以以
https://
要么s3://
。 Args
(可选,[String]
)-
要传递给脚本的参数列表。
Script
(必填项,String
)-
用于单个脚本的文件。文件路径可以以
https://
要么s3://
。 Args
(可选,[String]
)-
要传递给单个脚本的参数列表。
更新政策:必须停止计算队列或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队列。不能同时指定两者
InstanceProfile
和InstanceRole
。格式为arn:${Partition}:iam::${Account}:instance-profile/${InstanceProfileName}
。如果指定了这一点,则
S3Access
和AdditionalIamPolicies
无法指定设置。我们建议您指定其中一个或两个
S3Access
和AdditionalIamPolicies
设置,因为添加了功能Amazon ParallelCluster通常需要新的权限。 InstanceRole
(可选,String
)-
指定实例角色以覆盖的默认实例角色或实例配置文件Slurm队列。不能同时指定两者
InstanceProfile
和InstanceRole
。格式为arn:${Partition}:iam::${Account}:role/${RoleName}
。如果指定了这一点,则
S3Access
和AdditionalIamPolicies
无法指定设置。我们建议您指定其中一个或两个
S3Access
和AdditionalIamPolicies
设置,因为添加了功能Amazon ParallelCluster通常需要新的权限。 S3Access
(可选)-
为指定存储桶Slurm队列。这用于生成策略,以授予对存储桶的指定访问权限Slurm队列。
如果指定了这一点,则
InstanceProfile
和InstanceRole
无法指定设置。我们建议您指定其中一个或两个
S3Access
和AdditionalIamPolicies
设置,因为添加了功能Amazon ParallelCluster通常需要新的权限。S3Access: - BucketName:
string
EnableWriteAccess:boolean
KeyName:string
BucketName
(必填项,String
)-
存储桶的名称。
KeyName
(可选,String
)-
存储桶的密钥。默认值为
*
。 EnableWriteAccess
(可选,Boolean
)-
表示是否已为存储桶启用写入权限。
AdditionalIamPolicies
(可选)-
指定亚马逊 EC2 的 IAM 策略的亚马逊资源名称 (ARN) 列表。此列表附在用于的根角色上Slurm除了所需的权限外,还要排队Amazon ParallelCluster。
IAM 策略名称及其 ARN 是不同的。不能使用名称。
如果指定了这一点,则
InstanceProfile
和InstanceRole
无法指定设置。我们建议您使用
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。注意
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要在数据库服务器上进行身份验证的记账。如果用户有权限DescribeSecret,
PasswordSecretArn
已验证。PasswordSecretArn
如果指定的密钥存在,则有效。如果用户 IAM 策略不包括DescribeSecret
,PasswordSecretArn
未通过验证并显示警告消息。有关更多信息,请参阅基地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,请设置UseEc2Hostnames
到true
。或者,配置您自己的 DNS 解析器,并确保在启动实例时注册节点名称。例如,你可以通过配置来做到这一点CustomActions/OnNodeStart。 HostedZoneId
(可选,String
)-
定义用于集群的 DNS 名称解析的自定义 Route 53 托管区域 ID。如果提供,Amazon ParallelCluster在指定的托管区域中注册集群节点,但不会创建托管托管区域。
UseEc2Hostnames
(可选,Boolean
)-
如果
true
,则使用默认 EC2 主机名配置集群计算节点。的SlurmNodeHostName
也使用此信息进行了更新。默认为false
。要了解如何使用此设置在没有 Internet 访问权限的子网中部署集群,请参阅Amazon ParallelCluster在无法访问互联网的单个子网中。
注意
此注释不相关,开头为Amazon ParallelCluster版本 3.3.0。
对于Amazon ParallelCluster3.3.0 之前支持的版本:
什么时候
UseEc2Hostnames
设置为true
,Slurm 配置文件设置为Amazon ParallelClusterprolog
和epilog
脚本:-
prolog
运行以向其添加节点信息/etc/hosts
分配每个作业时在计算节点上。 -
epilog
运行以清理写入的内容prolog
。
添加自定义
prolog
要么epilog
脚本,将它们添加到/opt/slurm/etc/pcluster/prolog.d/
要么/opt/slurm/etc/pcluster/epilog.d/
分别是文件夹。 -