本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Scheduling
部分
(必需)定义集群中使用的作业调度器以及该作业调度器管理的计算实例。你可以使用 Slurm 或 AWS Batch 调度程序。每个调度器支持一组不同的设置和属性。
Scheduling: Scheduler: slurm ScalingStrategy:
string
SlurmSettings: MungeKeySecretArn:string
ScaledownIdletime:integer
QueueUpdateStrategy:string
EnableMemoryBasedScheduling:boolean
CustomSlurmSettings:[dict]
CustomSlurmSettingsIncludeFile:string
Database: Uri:string
UserName:string
PasswordSecretArn:string
DatabaseName:string
ExternalSlurmdbd:boolean
Host:string
Port:integer
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
平台。 ScalingStrategy
(可选,String
)-
允许你选择动态程度 Slurm 节点向上扩展。支持的值为
all-or-nothing
greedy-all-or-nothing
best-effort
,默认值为all-or-nothing
。注意
扩展策略仅适用于 Slurm 要恢复的节点,不适用于最终已经运行的节点。
-
all-or-nothing
此策略严格遵循 all-or-nothing-approach,旨在避免在扩展过程结束时出现空闲实例。它是在 all-or-nothing基础上运行的,这意味着它要么完全扩展,要么根本不扩展。请注意,当任务需要超过 500 个节点或跨多个计算资源时,临时启动的实例可能会产生额外成本。在三种可能的扩展策略中,该策略的吞吐量最低。扩展时间取决于每人提交的任务数量 Slurm 恢复程序执行。此外,您的扩展不能远远超过每次执行的默认 RunInstances 资源帐户限制,默认情况下为 1000 个实例。更多详情可在 Amazon EC2 API 限制文档中找到 -
greedy-all-or-nothing
与该 all-or-nothing策略类似,它旨在避免缩放后的空闲实例。此策略允许在扩展过程中临时超额扩展,以实现比该 all-or-nothing方法更高的吞吐量,但也具有与 RunInstances 资源账户限制相同的扩展限制,即 1000 个实例。 -
best-effort
此策略优先考虑高吞吐量,即使这意味着某些实例在扩展过程结束时可能处于空闲状态。它会尝试根据任务的要求分配任意数量的节点,但有可能无法满足整个请求。与其他策略不同,尽力而为的方法可以积累比标准 RunInstances限制更多的实例,但代价是在执行多个扩展过程时会有闲置资源。
-
每种策略都旨在满足不同的扩展需求,允许您选择满足特定要求和限制的策略。
AwsBatchQueues
(可选) AWS Batch 队列设置。仅支持一个队列。如果 Scheduler 设置为 awsbatch
,则此部分是必需的。有关 awsbatch
调度器的更多信息,请参阅联网设置和 将 AWS Batch (awsbatch) 调度器与 AWS ParallelCluster。
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
)-
AWS Batch 队列的名称。
CapacityType
(可选,String
)-
AWS Batch 队列使用的计算资源的类型。支持的值为
ONDEMAND
、SPOT
或CAPACITY_BLOCK
。默认值为ONDEMAND
。注意
如果将
CapacityType
设置为SPOT
,则您的账户必须包含AWSServiceRoleForEC2Spot
服务相关角色。您可以使用以下 AWS CLI 命令创建此角色。$
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com有关更多信息,请参阅 Amazon Amazon Linux 实例EC2用户指南中的竞价型实例请求的服务相关角色。
Networking
(必需)定义 AWS Batch 队列的网络配置。
Networking: SubnetIds: -
string
AssignPublicIp:boolean
SecurityGroups: -string
AdditionalSecurityGroups: -string
Networking
属性
SubnetIds
(必需,[String]
)-
指定要在其中配置 AWS Batch 队列的现有子网的 ID。目前仅支持一个子网。
AssignPublicIp
(可选,String
)-
为 AWS Batch 队列中的节点创建或分配公有 IP 地址。支持的值为
true
和false
。默认值取决于您指定的子网。 SecurityGroups
(可选,[String]
)-
AWS Batch 队列使用的安全组列表。如果您未指定安全组,则 AWS ParallelCluster 会创建新的安全组。
AdditionalSecurityGroups
(可选,[String]
)-
AWS Batch 队列使用的安全组列表。
ComputeResources
(必需)定义 AWS 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
)-
AWS Batch 队列计算环境的名称。
InstanceTypes
(必需,[String]
)-
实例类型的 AWS Batch 计算环境数组。所有实例类型都必须使用
x86_64
架构。 MinvCpus
(可选,Integer
)-
AWS Batch 计算环境可以使用的最小数量。VCPUs
DesiredVcpus
(可选,Integer
)-
AWS Batch 计算环境VCPUs中所需的数量。 AWS Batch
MaxvCpus
根据任务队列中的需求在MinvCpus
和之间调整此值。 MaxvCpus
(可选,Integer
)-
AWS Batch 计算环境的最大数量。VCPUs不能将此值设置为低于
DesiredVcpus
。 SpotBidPercentage
(可选,Float
)-
实例启动前,Amazon EC2 竞价型实例价格可以达到的实例类型按需价格的最大百分比。默认值为
100
(100%)。支持的范围是1
-100
。
SlurmQueues
(可选)的设置 Slurm queue. 如果 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 queue.
注意
更新期间,集群大小可能会发生变化。有关更多信息,请参阅集群容量大小和更新
CapacityReservationTarget
-
注意
CapacityReservationTarget
已在 3.3.0 AWS ParallelCluster 版本中添加。CapacityReservationTarget: CapacityReservationId:
string
CapacityReservationResourceGroupArn:string
指定队列计算资源的按需容量预留。
CapacityReservationId
(可选,String
)-
要用于队列计算资源的现有容量预留的 ID。ID 可以指机器学习ODCR的容量块。
预留必须使用与实例相同的平台。例如,如果您的实例在
rhel8
上运行,则您的容量预留必须在 Red Hat Enterprise Linux 平台上运行。有关更多信息,请参阅《Amazon Linux 实例EC2用户指南》中的支持的平台。注意
如果在集群配置中包含 Instances,则必须从配置中排除此队列级别
CapacityReservationId
设置。 CapacityReservationResourceGroupArn
(可选,String
)-
资源组的 Amazon 资源名称 (ARN),用作队列计算资源的服务相关容量预留组。 AWS ParallelCluster 根据以下条件确定并使用资源组中最合适的容量预留:
-
如果在 SlurmQueues/Networking或 SlurmQueues//中启用 Networking,
PlacementGroup
则 AWS ParallelCluster 选择以实例类型为目标的资源组,如果计算资源存在,则PlacementGroup
为计算资源选择资源组。ComputeResourcesPlacementGroup
必须以 ComputeResources 中定义的实例类型之一为目标。 -
如果
PlacementGroup
未在 SlurmQueues/Networking或 SlurmQueuesComputeResources/中启用 Networking,则 AWS ParallelCluster 选择仅针对计算资源的实例类型的资源组(如果存在计算资源)。
资源组必须ODCR为队列的所有计算资源和可用区的可用区中的每种实例类型至少预留一个。有关更多信息,请参阅 使用按需容量预留启动实例 (ODCR)。
有关多子网配置要求的更多信息,请参阅 Networking/SubnetIds。
注意
3.4.0 AWS ParallelCluster 版本中添加了多个可用区。
-
CapacityType
(可选,String
)-
计算资源的类型 Slurm 队列使用。支持的值为
ONDEMAND
、SPOT
或CAPACITY_BLOCK
。默认值为ONDEMAND
。注意
如果将
CapacityType
设置为SPOT
,则您的账户必须具有AWSServiceRoleForEC2Spot
服务相关角色。您可以使用以下 AWS CLI 命令创建此角色。$
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com有关更多信息,请参阅 Amazon Amazon Linux 实例EC2用户指南中的竞价型实例请求的服务相关角色。
AllocationStrategy
(可选,String
)-
为 Instances 中定义的所有计算资源指定分配策略。
有效值:
lowest-price
|capacity-optimized
|price-capacity-optimized
默认:
lowest-price
lowest-price
-
-
如果您使用
CapacityType = ONDEMAND
,Amazon EC2 Fleet 会使用价格来确定订单,并首先启动价格最低的实例。 -
如果您使用
CapacityType = SPOT
,Amazon EC2 Fleet 会从具有可用容量的最低价格竞价型实例池中启动实例。如果池在满足您的所需容量之前已用完容量,Amazon F EC2 leet 会通过为您启动实例来满足您的请求。特别是,Amazon EC2 Fleet 会从具有可用容量的最低价格竞价型实例池中启动实例。Amazon EC2 Fleet 可能会从多个不同的池中启动竞价型实例。 -
如果设置了
CapacityType = CAPACITY_BLOCK
,则没有分配策略,因此无法配置AllocationStrategy
参数。
-
capacity-optimized
-
-
如果设置
CapacityType = ONDEMAND
,则capacity-optimized
不可用。 -
如果您进行了设置
CapacityType = SPOT
,Amazon EC2 Fleet 将从竞价型实例池中启动具有最佳容量的实例,以适应要启动的实例数量。
-
price-capacity-optimized
-
-
如果设置
CapacityType = ONDEMAND
,则capacity-optimized
不可用。 -
如果您进行了设置
CapacityType = SPOT
,Amazon EC2 Fleet 会根据正在启动的实例数量确定容量可用性最高的池。这意味着我们将从我们认为短期内中断概率最低的池中请求竞价型实例。然后,Amazon EC2 Fleet 请求这些池中价格最低的竞价型实例。
-
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
注意
从 AWS ParallelCluster 版本 3.3.0 开始支持
AllocationStrategy
。 JobExclusiveAllocation
(可选,String
)-
如果设置为
true
,Slurm 分区OverSubscribe
标志设置为EXCLUSIVE
。当OverSubscribe
=EXCLUSIVE
时,分区中的作业将对分配的所有节点具有独占访问权限。有关更多信息,请参阅EXCLUSIVE中的 Slurm 文档中)。 有效值:
true
|false
默认值:
false
注意
从 AWS ParallelCluster 版本 3.7.0 开始支持
JobExclusiveAllocation
。 CustomSlurmSettings
(可选,Dict
)-
定义自定义 Slurm 分区(队列)配置设置。
指定自定义词典 Slurm 适用于队列(分区)的配置参数键值对。
每个单独的键值对(例如
Param1: Value1
)都单独添加到末尾 Slurm 格式为分区配置行Param1=Value1
。你只能指定 Slurm 中未被拒绝列出的配置参数。
CustomSlurmSettings
有关被拒绝名单的信息 Slurm 配置参数,请参阅CustomSlurmSettings 的列入拒绝列表的 Slurm 配置参数。AWS ParallelCluster 仅检查参数是否在拒绝列表中。 AWS ParallelCluster 无法验证您的自定义 Slurm 配置参数语法或语义。您有责任验证您的自定义 Slurm 配置参数。无效的自定义 Slurm 配置参数可能导致 Slurm 守护程序失败可能导致集群创建和更新失败。
有关如何指定自定义的更多信息 Slurm 带的配置参数 AWS ParallelCluster,请参阅Slurm 配置自定义。
有关 Slurm 配置参数,请参阅 slurm.
conf 中的 Slurm 文档中)。 注意
从 AWS ParallelCluster 版本 3.6.0 开始支持
CustomSlurmSettings
。 Tags
(可选,[字符串])-
标签键值对的列表。ComputeResource 标签覆盖 Tags 部分或
SlurmQueues
/Tags
中指定的重复标签。Key
(可选,String
)-
标签键。
Value
(可选,String
)-
标签值。
HealthChecks
(可选)-
指定队列中所有计算资源上的计算节点运行状况检查。
Gpu
(可选)-
指定对队列中所有计算资源的运行GPU状况检查。
注意
AWS ParallelCluster 在使用
alinux2
ARM操作系统的节点Gpu
中不支持HealthChecks
/。这些平台不支持NVIDIA数据中心GPU管理器 (DCGM)。 Enabled
(可选,Boolean
)-
是否 AWS ParallelCluster 对计算节点执行运行GPU状况检查。默认为
false
。
Gpu
运行状况检查行为-
如果
Gpu
/设置Enabled
为true
,则对队列中的计算资源 AWS ParallelCluster 执行运行GPU状况检查。 -
Gpu
运行状况检查会对计算资源执行运行GPU状况检查,以防止在已降级GPU的节点上提交作业。 -
如果某个计算节点未通过
Gpu
运行状况检查,则该计算节点的状态将更改为DRAIN
。新作业不会在此节点上启动。现有作业将运行至完成。所有正在运行的作业完成后,如果该计算节点是动态节点,则会终止;如果是静态节点,则会被替换。 -
Gpu
运行状况检查的持续时间取决于所选的实例类型、实例GPUs中的数量和Gpu
运行状况检查目标的数量(等同于任务GPU目标的数量)。对于具有 8 的实例GPUs,典型持续时间小于 3 分钟。 -
如果
Gpu
运行状况检查在不受支持的实例上运行,它将退出,作业将在计算节点上运行。例如,如果一个实例没有GPU,或者,如果一个实例有GPU,但它不是 NVIDIAGPU,则运行状况检查将退出,作业将在计算节点上运行。NVIDIAGPUs仅支持。 -
Gpu
运行状况检查使用dcgmi
工具对节点执行运行状况检查,并采取以下步骤:当在节点中开始
Gpu
运行状况检查时:-
它会检测
nvidia-dcgm
和nvidia-fabricmanager
服务是否正在运行。 -
如果这些服务未运行,则
Gpu
运行状况检查将会启动这些服务。 -
它会检测是否启用了持久性模式。
-
如果未启用持久性模式,则
Gpu
运行状况检查将会启用该模式。
在运行状况检查结束时,
Gpu
运行状况检查会将这些服务和资源还原到其初始状态。 -
-
如果任务分配给一组特定的节点GPUs,则运行
Gpu
状况检查仅在该特定节点上运行。否则,运行Gpu
状况检查将在节点GPUs中的所有节点上运行。 -
如果计算节点同时收到 2 个或更多个
Gpu
运行状况检查请求,则仅运行第一个运行状况检查,并跳过其他运行状况检查。针对节点的运行状况检查也是如此GPUs。您可以查看日志文件以获取有关此情况的更多信息。 -
/var/log/parallelcluster/slurm_health_check.log
文件中提供了特定计算节点的运行状况检查日志。该文件可在 Amazon CloudWatch 的集群 CloudWatch 日志组中找到,您可以在其中找到:-
有关
Gpu
运行状况检查运行的操作的详细信息,包括启用和禁用服务以及持久性模式。 -
标GPU识符、序列号和UUID.
-
运行状况检查输出。
-
注意
HealthChecks
从 3.6.0 AWS ParallelCluster 版开始受支持。
Networking
(必需)定义的网络配置 Slurm queue.
Networking: SubnetIds: -
string
AssignPublicIp:boolean
SecurityGroups: -string
AdditionalSecurityGroups: -string
PlacementGroup: Enabled:boolean
Id:string
Name:string
Proxy: HttpProxyAddress:string
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
Networking
属性
SubnetIds
(必需,[String]
)-
您预置IDs的现有子网 Slurm 排队。
如果您在 SlurmQueues/ComputeResources/InstanceType 中配置实例类型,则只能定义一个子网。
如果您在 SlurmQueues/ComputeResources/Instances 中配置实例类型,则可以定义单个子网或多个子网。
如果您使用多个子网,则为队列定义的所有子网都必须相同VPC,每个子网都位于单独的可用区 (AZ) 中。
例如,假设您为队列定义了 subnet-1 和 subnet-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)。
使用多个可用区可能会导致存储网络延迟增加,并提高可用区间的数据传输成本。例如,当实例访问位于不同 AZ 的文件存储时,可能会发生这种情况。有关更多信息,请参阅同一 AWS 区域内的数据传输
。 集群更新为从使用单个子网改为使用多个子网:
-
假设集群的子网定义是用单个子网和一个 Lustre AWS ParallelCluster 托管FSx文件系统定义的。则您无法使用更新的子网 ID 定义直接更新此集群。要更新该集群,必须先将托管文件系统更改为外部文件系统。有关更多信息,请参阅 将 AWS ParallelCluster 托管存储转换为外部存储。
-
假设集群的子网定义是用单个子网和一个外部 Amazon EFS 文件系统定义的,前提是定义为要添加的多个子网的所有子网都不存在EFS挂载目标。AZs则您无法使用更新的子网 ID 定义直接更新此集群。要更新集群或创建集群,必须先为已定义的多个子网的所有创建所有挂载目标。AZs
可用区和集群容量预留定义于 CapacityReservationResourceGroupArn:
-
如果定义的容量预留资源组所涵盖的实例类型和可用区集合与为队列定义的实例类型和可用区集合之间没有重叠,则无法创建集群。
-
如果定义的容量预留资源组所涵盖的实例类型和可用区集与为队列定义的一组实例类型和可用区之间存在部分重叠,则可以创建集群。 AWS ParallelCluster 会发送一条警告消息,说明这种情况存在部分重叠。
-
有关更多信息,请参阅 使用按需容量预留启动实例 (ODCR)。
注意
3.4.0 AWS ParallelCluster 版本中添加了多个可用区。
警告
此警告适用于 3.3.1 之前的所有 3.x.y AWS ParallelCluster 版本。 AWS ParallelCluster 如果更改此参数,版本 3.3.1 不会受到影响。
对于 3.3.1 版之前的 AWS ParallelCluster 3 个版本:
更改此参数并更新群集会创建一个新的 Lustre 托管FSx文件系统,并在不保留现有数据的情况下删除现有FSx的 Lustre 托管文件系统。这会导致数据丢失。在继续操作之前,如果要保留数据,请务必备份现有 FSx Lustre 文件系统的数据。有关更多信息,请参阅 fo r Lustre 用户指南中的使用备份。FSx
如果添加了新子网值,更新策略:可以在更新期间更改此设置。
如果删除了子网值,更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
-
AssignPublicIp
(可选,String
)-
为中的节点创建或分配公有 IP 地址 Slurm queue. 支持的值为
true
和false
。您指定的子网决定默认值。具有公共IPs默认值的子网,用于分配公有 IP 地址。如果你定义了 p4d 或者 hpc6id 实例类型或其他具有多个网络接口或网络接口卡的实例类型,必须将 HeadNode/Networking/设置为ElasticIp
true
以提供公共访问权限。 AWS public IPs 只能分配给使用单个网络接口启动的实例。对于这种情况,我们建议您使用NAT网关来提供对集群计算节点的公共访问权限。在这种情况下,请将AssignPublicIp
设置为false
。有关 IP 地址的更多信息,请参阅 Amazon Linux 实例EC2用户指南中的在实例启动期间分配公有IPv4地址。 SecurityGroups
(可选,[String]
)-
用于的安全组列表 Slurm queue. 如果未指定安全组,则会为您 AWS ParallelCluster 创建安全组。
验证您的SharedStorage系统是否正确配置了安全组。
警告
此警告适用于所有 3.
x
.y
AWS ParallelCluster 3.3.0 之前的版本。 AWS ParallelCluster 如果更改此参数,版本 3.3.0 不会受到影响。对于 3.3.0 之前的 AWS ParallelCluster 3 个版本:
更改此参数并更新群集会创建一个新的 Lustre 托管FSx文件系统,并在不保留现有数据的情况下删除现有FSx的 Lustre 托管文件系统。这会导致数据丢失。如果要保留数据,请务必备份现有 F FSx or Lustre 文件系统的数据。有关更多信息,请参阅 fo r Lustre 用户指南中的使用备份。FSx
警告
如果您为计算实例启用 Efa,请确保EFA已启用的实例是允许所有入站和出站流量进入自身的安全组的成员。
AdditionalSecurityGroups
(可选,[String]
)-
用于的其他安全组的列表 Slurm queue.
PlacementGroup
(可选)-
指定置放群组设置 Slurm queue.
PlacementGroup: Enabled:
boolean
Id:string
Name:string
更新策略:必须停止所有计算节点才能删除托管置放群组。必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
Enabled
(可选,Boolean
)-
指明置放群组是否用于 Slurm queue. 默认为
false
。 Id
(可选,String
)-
现有集群置放群组的置放群组名称 Slurm 队列使用。确保提供置放群组名称 而不是 ID。
Name
(可选,String
)-
现有集群置放群组的置放群组名称 Slurm 队列使用。确保提供置放群组名称 而不是 ID。
注意
-
如果
PlacementGroup
/Enabled
设置为true
而未定义Name
或Id
,则会为每个计算资源分配自己的托管置放群组,除非将 ComputeResources/Networking/PlacementGroup 定义为覆盖此设置。 -
从 AWS ParallelCluster 版本3.3.0开始,添加Name了 SlurmQueuesNetworkingPlacementGroup///作为/ SlurmQueuesNetworkingPlacementGroup/Id的首选替代方案。
PlacementGroup/Id 和 PlacementGroup/Name 是等效的。您可以使用任何一个。
如果同时包含 PlacementGroup/Id和 PlacementGroup/Name, AWS ParallelCluster 则失败。您只能选择其中一项。
您无需更新集群即可使用 PlacementGroup/Name。
Proxy
(可选)-
指定代理设置 Slurm queue.
Proxy: HttpProxyAddress:
string
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
HttpProxyAddress
(可选,String
)-
为定义HTTP或HTTPS代理服务器 Slurm queue. 通常为
https://
。x.x.x.x:8080
没有默认值。
Image
(可选)指定要用于 Slurm queue. 要AMI对所有节点使用相同的设置,请使用该Image部分中的CustomAmi设置。
Image: CustomAmi:
string
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
Image
属性
CustomAmi
(可选,String
)-
AMI要用于 Slurm 队列而不是默认队列AMIs。您可以使用 pcluster CLI命令查看默认值列表AMIs。
注意
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问题疑难解答。
ComputeResources
(必需)定义的ComputeResources
配置 Slurm queue.
注意
更新期间,集群大小可能会发生变化。有关更多信息,请参阅集群容量大小和更新
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或实例。如果两者都被定义, AWS ParallelCluster 则失败。
定义
InstanceType
时,不能定义多个子网。如果您只配置一种实例类型并想要使用多个子网,请在Instances
而不是InstanceType
中定义您的实例类型。有关更多信息,请参阅 Networking/SubnetIds。如果你定义了 p4d 或者 hpc6id 实例类型或其他具有多个网络接口或网络接口卡的实例类型,您必须按照中所述在私有子网中启动计算实例AWS ParallelCluster 使用两个子网。 AWS public IPs 只能分配给使用单个网络接口启动的实例。有关更多信息,请参阅 Amazon Linux 实例EC2用户指南中的在实例启动期间分配公有IPv4地址。
Instances
(必需)-
指定计算资源的实例类型列表。要为实例类型列表指定分配策略,请参阅 AllocationStrategy。
集群配置必须定义 InstanceType 或 Instances。如果同时定义了两者,则 AWS ParallelCluster 将会失败。
有关更多信息,请参阅 Slurm 的多实例类型分配。
Instances: - InstanceType:
string
注意
从 3.7.0 AWS ParallelCluster 版开始,如果您在实例中配置了多个实例类型,则EnableMemoryBasedScheduling可以启用。
适用于 3.2.0 到 3.6 AWS ParallelCluster 版本。
x
,如果您在实例中配置了多个实例类型,则EnableMemoryBasedScheduling无法启用。更新策略:对于此列表值设置,可以在更新期间添加新值,或者在删除现有值时必须停止计算实例集。
InstanceType
(必需,String
)-
要在此中使用的实例类型 Slurm 计算资源。集群中的所有实例类型都必须使用相同的处理器架构,即
x86_64
或arm64
。Instances 中列出的实例类型必须:
-
相同数量的内核vCPUs,或者,如果设置DisableSimultaneousMultithreading为
true
,则为相同数量的内核。 -
具有相同制造商的相同数量的加速器。
Instances 中列出的实例类型可以具有:
-
不同的内存量。
在这种情况下,应将最小内存设置为消耗品 Slurm 资源。
注意
从 3.7.0 AWS ParallelCluster 版开始,如果您在实例中配置了多个实例类型,则EnableMemoryBasedScheduling可以启用。
适用于 3.2.0 到 3.6 AWS ParallelCluster 版本。
x
,如果您在实例中配置了多个实例类型,则EnableMemoryBasedScheduling无法启用。 -
不同的网卡。
在这种情况下,为计算资源配置的网络接口数量由网卡数量最少的实例类型定义。
-
不同的网络带宽。
-
不同的实例存储大小。
如果你定义了 p4d 或者 hpc6id 实例类型或其他具有多个网络接口或网络接口卡的实例类型,您必须按照中所述在私有子网中启动计算实例AWS ParallelCluster 使用两个子网。 AWS public IPs 只能分配给使用单个网络接口启动的实例。有关更多信息,请参阅 Amazon Linux 实例EC2用户指南中的在实例启动期间分配公有IPv4地址。
-
注意
Instances
从 3.3.0 AWS ParallelCluster 版开始受支持。 MinCount
(可选,Integer
)-
最小实例数 Slurm 计算资源使用情况。默认值是 0。
注意
更新期间,集群大小可能会发生变化。有关更多信息,请参阅集群容量大小和更新
MaxCount
(可选,Integer
)-
最大实例数 Slurm 计算资源使用情况。默认值为 10。
使用时
CapacityType = CAPACITY_BLOCK
,MaxCount
必须等于MinCount
和大于 0,因为容量块预留的所有实例部分都作为静态节点进行管理。在创建集群时,头节点会等待所有静态节点准备就绪,然后再发出集群创建成功的信号。但是,在使用时
CapacityType = CAPACITY_BLOCK
,与容量块关联的计算资源的节点部分将不考虑用于此检查。即使并非所有已配置的容量块都处于活动状态,也会创建集群。注意
更新期间,集群大小可能会发生变化。有关更多信息,请参阅集群容量大小和更新
DynamicNodePriority
(可选,Integer
)-
队列计算资源中动态节点的优先级。优先级映射到 Slurm 计算资源动态节点的节点
Weight
配置参数。默认值为 1000
。Slurm 优先考虑
Weight
值最低的节点。警告
在 a 中使用许多不同的
Weight
值 Slurm 分区(队列)可能会减慢队列中作业调度的速度。在 AWS ParallelCluster 3.7.0 之前的版本中,静态节点和动态节点的默认权重相同。
1
在这种情况下,Slurm 由于静态和动态节点的命名架构,可能会优先考虑空闲的动态节点而不是空闲的静态节点。当其他一切都相等时,Slurm 按名称的字母顺序排列节点。注意
DynamicNodePriority
已在 3.7.0 AWS ParallelCluster 版本中添加。 StaticNodePriority
(可选,Integer
)-
队列计算资源中静态节点的优先级。优先级映射到 Slurm 计算资源静态节点的节点
Weight
配置参数。默认值为 1
。Slurm 优先考虑
Weight
值最低的节点。警告
在 a 中使用许多不同的
Weight
值 Slurm 分区(队列)可能会减慢队列中作业调度的速度。注意
StaticNodePriority
已在 3.7.0 AWS ParallelCluster 版本中添加。 SpotPrice
(可选,Float
)-
在启动任何实例之前为 Amazon EC2 竞价型实例支付的最高价格。默认值为按需价格。
DisableSimultaneousMultithreading
(可选,Boolean
)-
如果
true
,在节点上进行多线程 Slurm 队列已禁用。默认值为false
。并非所有实例类型都可禁用多线程。有关支持禁用多线程的实例类型列表,请参阅 A mazon EC2 用户指南中每种实例类型的CPU内CPU核和线程。
SchedulableMemory
(可选,Integer
)-
中配置的内存量(以 MiB 为单位) Slurm 计算资源计算节点的参数
RealMemory
。如果启用了 SlurmSettings/EnableMemoryBasedScheduling,则此值为可供作业使用的节点内存的上限。默认值是亚马逊EC2实例类型中列出并由亚马逊返回的内存的 95% EC2 API DescribeInstanceTypes。确保将以 GiB 为单位给出的值转换为 MiB 单位。 支持的值:
1-EC2Memory
EC2Memory
是在亚马逊EC2实例类型中列出并由亚马逊返回的内存(以 MiB 为单位)。EC2 API DescribeInstanceTypes确保将以 GiB 为单位给出的值转换为 MiB 单位。 当启用了 SlurmSettings/EnableMemoryBasedScheduling 时,此选项最相关。有关更多信息,请参阅 Slurm 基于内存的调度。
注意
从 AWS ParallelCluster 版本 3.2.0 开始支持
SchedulableMemory
。从版本 3.2.0 开始,默认情况下, AWS ParallelCluster 配置
RealMemory
为 Slurm 将节点计算到 Amazon 返回的内存的 95% EC2 APIDescribeInstanceTypes
。此配置与EnableMemoryBasedScheduling
的值无关。 HealthChecks
(可选)-
指定计算资源上的运行状况检查。
Gpu
(可选)-
指定对计算资源的运行GPU状况检查。
Enabled
(可选,Boolean
)-
是否 AWS ParallelCluster 对队列中的计算资源执行运行GPU状况检查。默认为
false
。注意
AWS ParallelCluster 在使用
alinux2
ARM操作系统的节点Gpu
中不支持HealthChecks
/。这些平台不支持NVIDIA数据中心GPU管理器 (DCGM)。
Gpu
运行状况检查行为-
如果
Gpu
/设置Enabled
为true
,则对计算资源 AWS ParallelCluster 执行运行GPU状况检查。 -
运行
Gpu
状况检查会对计算资源执行运行状况检查,以防止在已降级GPU的节点上提交作业。 -
如果某个计算节点未通过
Gpu
运行状况检查,则该计算节点的状态将更改为DRAIN
。新作业不会在此节点上启动。现有作业将运行至完成。所有正在运行的作业完成后,如果该计算节点是动态节点,则会终止;如果是静态节点,则会被替换。 -
Gpu
运行状况检查的持续时间取决于所选的实例类型、实例GPUs中的数量和Gpu
运行状况检查目标的数量(等同于任务GPU目标的数量)。对于具有 8 的实例GPUs,典型持续时间小于 3 分钟。 -
如果
Gpu
运行状况检查在不受支持的实例上运行,它将退出,作业将在计算节点上运行。例如,如果一个实例没有GPU,或者,如果一个实例有GPU,但它不是 NVIDIAGPU,则运行状况检查将退出,作业将在计算节点上运行。NVIDIAGPUs仅支持。 -
Gpu
运行状况检查使用dcgmi
工具对节点执行运行状况检查,并采取以下步骤:当在节点中开始
Gpu
运行状况检查时:-
它会检测
nvidia-dcgm
和nvidia-fabricmanager
服务是否正在运行。 -
如果这些服务未运行,则
Gpu
运行状况检查将会启动这些服务。 -
它会检测是否启用了持久性模式。
-
如果未启用持久性模式,则
Gpu
运行状况检查将会启用该模式。
在运行状况检查结束时,
Gpu
运行状况检查会将这些服务和资源还原到其初始状态。 -
-
如果任务分配给一组特定的节点GPUs,则运行
Gpu
状况检查仅在该特定节点上运行。否则,运行Gpu
状况检查将在节点GPUs中的所有节点上运行。 -
如果计算节点同时收到 2 个或更多个
Gpu
运行状况检查请求,则仅运行第一个运行状况检查,并跳过其他运行状况检查。针对节点的运行状况检查也是如此GPUs。您可以查看日志文件以获取有关此情况的更多信息。 -
/var/log/parallelcluster/slurm_health_check.log
文件中提供了特定计算节点的运行状况检查日志。此文件可在 Amazon CloudWatch 的集群 CloudWatch 日志组中找到,您可以在其中找到:-
有关
Gpu
运行状况检查运行的操作的详细信息,包括启用和禁用服务以及持久性模式。 -
标GPU识符、序列号和UUID.
-
运行状况检查输出。
-
注意
HealthChecks
从 3.6.0 AWS ParallelCluster 版开始受支持。 Efa
(可选)-
为中的节点指定弹性结构适配器 (EFA) 设置 Slurm queue.
Efa: Enabled:
boolean
GdrSupport:boolean
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
Enabled
(可选,Boolean
)-
指定启用弹性结构适配器 (EFA)。要查看支持的亚马逊EC2实例列表EFA,请参阅亚马逊 Linux 实例EC2用户指南中的支持的实例类型。有关更多信息,请参阅 Elastic Fabric Adapter。我们建议您使用集群 SlurmQueues/Networking/PlacementGroup 最大限度地缩短实例之间的延迟。
默认值为
false
。注意
不同的可用区域不支持弹性结构适配器 (EFA)。有关更多信息,请参阅SubnetIds。
警告
如果您要在中定义自定义安全组 SecurityGroups,请确保EFA已启用的实例是允许所有入站和出站流量进入自身的安全组的成员。
GdrSupport
(可选,Boolean
)-
(可选)从 AWS ParallelCluster 版本 3.0.2 开始,此设置无效。如果实例类型支持 Elastic Fabric Adapter GPUDirect RDMA () 支持(远程直接内存访问),则始终启用该支持 EFA Slurm 计算资源和操作系统。
注意
AWS ParallelCluster 版本 3.0.0 到 3.0.1:启用了 Support GPUDirect RDMA Slurm 计算资源。特定操作系统(GPUDirectRDMA是
alinux2
、ubuntu1804
或p4d.24xlarge
)上的特定实例类型 (Osubuntu2004
) 支持对。默认值为 False。
CapacityReservationTarget
-
CapacityReservationTarget: CapacityReservationId:
string
CapacityReservationResourceGroupArn:string
指定要用于计算资源的按需容量预留。
CapacityReservationId
(可选,String
)-
要用于队列计算资源的现有容量预留的 ID。该 id 可以ODCR指机器学习的容量块。
如果在计算资源级别指定此参数 InstanceType是可选的,则将自动从预留中检索该参数。
CapacityReservationResourceGroupArn
(可选,String
)-
表示资源组的 Amazon 资源名称 (ARN),该资源组充当计算资源的服务关联容量预留组。 AWS ParallelCluster 确定并使用该组中最合适的容量预留。ODCR对于为计算资源列出的每种实例类型,资源组必须至少有一个。有关更多信息,请参阅 使用按需容量预留启动实例 (ODCR)。
-
如果
PlacementGroup
在 SlurmQueues/Networking或 SlurmQueues//中启用 Networking,则 AWS ParallelCluster 选择以实例类型PlacementGroup
为目标的资源组和计算资源(如果存在)。ComputeResourcesPlacementGroup
必须以 ComputeResources 中定义的实例类型之一为目标。 -
如果
PlacementGroup
未在 SlurmQueues/Networking或 SlurmQueuesComputeResources/中启用 Networking,则 AWS ParallelCluster 选择仅针对计算资源的实例类型(如果存在)的资源组。
-
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
注意
从 AWS ParallelCluster 版本 3.3.0 开始添加了
CapacityReservationTarget
。 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
在 3.3.0 AWS ParallelCluster 版本中添加。
CustomSlurmSettings
(可选,Dict
)-
(可选)定义自定义 Slurm 节点(计算资源)配置设置。
指定自定义词典 Slurm 适用于的配置参数键值对 Slurm 节点(计算资源)。
每个单独的键值对(例如
Param1: Value1
)都单独添加到末尾 Slurm 格式为节点配置行Param1=Value1
。你只能指定 Slurm 中未被拒绝列出的配置参数。
CustomSlurmSettings
有关被拒绝名单的信息 Slurm 配置参数,请参阅CustomSlurmSettings 的列入拒绝列表的 Slurm 配置参数。AWS ParallelCluster 仅检查参数是否在拒绝列表中。 AWS ParallelCluster 无法验证您的自定义 Slurm 配置参数语法或语义。您有责任验证您的自定义 Slurm 配置参数。无效的自定义 Slurm 配置参数可能导致 Slurm 守护程序失败可能导致集群创建和更新失败。
有关如何指定自定义的更多信息 Slurm 带的配置参数 AWS ParallelCluster,请参阅Slurm 配置自定义。
有关 Slurm 配置参数,请参阅 slurm.
conf 中的 Slurm 文档中)。 注意
从 AWS ParallelCluster 版本 3.6.0 开始支持
CustomSlurmSettings
。 Tags
(可选,[字符串])-
标签键值对的列表。
ComputeResource
标签覆盖 Tags 部分或 SlurmQueues/Tags
中指定的重复标签。Key
(可选,String
)-
标签键。
Value
(可选,String
)-
标签值。
ComputeSettings
(必需)定义的ComputeSettings
配置 Slurm queue.
ComputeSettings
属性
指定中节点ComputeSettings
的属性 Slurm queue.
ComputeSettings: LocalStorage: RootVolume: Size:
integer
Encrypted:boolean
VolumeType:string
Iops:integer
Throughput:integer
EphemeralVolume: MountDir:string
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
LocalStorage
(可选)-
指定中节点
LocalStorage
的属性 Slurm queue.LocalStorage: RootVolume: Size:
integer
Encrypted:boolean
VolumeType:string
Iops:integer
Throughput:integer
EphemeralVolume: MountDir:string
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
RootVolume
(可选)-
指定中节点根卷的详细信息 Slurm queue.
RootVolume: Size:
integer
Encrypted:boolean
VolumeType:string
Iops:integer
Throughput:integer
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
Size
(可选,Integer
)-
指定中节点的根卷大小(以 GiB 为单位) Slurm queue. 默认大小来自AMI。使用不同的尺寸需要支AMI撑
growroot
。 Encrypted
(可选,Boolean
)-
如果
true
,则是节点的根卷 Slurm 队列已加密。默认值为false
。 VolumeType
(可选,String
)-
指定中节点的 Amazon EBS 卷类型 Slurm queue. 支持的值为
gp2
、gp3
、io1
、io2
、sc1
、st1
和standard
。默认值为gp3
。有关更多信息,请参阅《亚马逊EC2用户指南》中的 Amazon EBS 卷类型。
Iops
(可选,Boolean
)-
定义
io1
、io2
和 tgp3
ype 卷的数量。IOPS默认值、支持的值以及
volume_size
/volume_iops
比率因VolumeType
和Size
而异。VolumeType
=io1
-
默认值:
Iops
= 100支持的值:
Iops
= 100–64000 †最大
volume_iops
与volume_size
比 = IOPS 每 GiB 50。5000 IOPS 需要至少 100 GiBvolume_size
的容量。 VolumeType
=io2
-
默认值:
Iops
= 100支持的值:
Iops
= 100–64000(io2
Block Express 卷为 256000)†最大
Iops
与Size
比 = IOPS 每 GiB 500。5000 IOPS 需要至少 10 GiB 的。Size
VolumeType
=gp3
-
默认值:
Iops
= 3000支持的值:
Iops
= 3000–16000 †对于IOPS大
Iops
于 3000 的卷,最大与Size
比 = IOPS 每 GiB 500。
† 只有在 Nitro 系统上构建且配置量超过 32,000 的实例才能保证最大值IOPS。IOPS其他实例最多可以有 32,000 个IOPS。除非您修改卷,否则较早的
io1
卷可能无法实现完全性能。io2
Block Express 卷在R5b
实例类型上支持高达 256000 的volume_iops
值。有关更多信息,请参阅《亚马逊EC2用户指南》中的 “io2
屏蔽 Express 卷”。 Throughput
(可选,Integer
)-
定义
gp3
卷类型的吞吐量,以 MiB/s 为单位。此设置仅在VolumeType
为gp3
时有效。默认值为125
。支持的值:125–1000 MiB/sThroughput
与Iops
的比率不能超过 0.25。1000 MiB/s 的最大吞吐量要求Iops
设置至少为 4000。
EphemeralVolume
(可选,Boolean
)-
指定临时卷的设置。临时卷是通过将所有实例存储卷合并到
ext4
文件系统格式的单个逻辑卷而创建的。默认为/scratch
。如果实例类型没有任何实例存储卷,则不会创建临时卷。有关更多信息,请参阅 Amazon EC2 用户指南中的实例存储卷。EphemeralVolume: MountDir:
string
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
MountDir
(可选,String
)-
中每个节点的临时卷的挂载目录 Slurm queue.
CustomActions
(可选)指定要在节点上运行的自定义脚本 Slurm queue.
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 在启动任何节点部署引导操作之前排队。 AWS ParallelCluster 不支持同时包含单个脚本和
Sequence
同一个自定义操作。有关更多信息,请参阅 自定义引导操作。Sequence
(可选)-
要运行的脚本的列表。
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
Script
(必需,String
)-
要使用的文件。文件路径可以
https://
或s3://
开头。 Args
(可选,[String]
)-
要传递到脚本的参数的列表。
Script
(必需,String
)-
用于单个脚本的文件。文件路径可以
https://
或s3://
开头。 Args
(可选,[String]
)-
要传递到单个脚本的参数的列表。
OnNodeConfigured
(可选,String
)-
指定要在节点上运行的一系列脚本或单个脚本 Slurm 在所有节点引导操作完成后排队。 AWS ParallelCluster 不支持同时包含单个脚本和
Sequence
同一个自定义操作。有关更多信息,请参阅 自定义引导操作。Sequence
(可选)-
要运行的脚本的列表。
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
Script
(必需,String
)-
要使用的文件。文件路径可以
https://
或s3://
开头。 Args
(可选,[String]
)-
要传递到脚本的参数的列表。
Script
(必需,String
)-
用于单个脚本的文件。文件路径可以
https://
或s3://
开头。 Args
(可选,[String]
)-
要传递到单个脚本的参数的列表。
更新策略:必须停止计算实例集或必须设置 QueueUpdateStrategy 才能更改此设置以进行更新。
注意
Sequence
是从 3.6.0 AWS ParallelCluster 版本开始添加的。指定后Sequence
,您可以列出一个自定义操作的多个脚本。 AWS ParallelCluster 继续支持使用单个脚本配置自定义操作,不包括脚本Sequence
。AWS ParallelCluster 不支持同时包含单个脚本和
Sequence
同一个自定义操作。
Iam
(可选)定义可选IAM设置 Slurm queue.
Iam: S3Access: - BucketName:
string
EnableWriteAccess:boolean
KeyName:string
AdditionalIamPolicies: - Policy:string
InstanceProfile:string
InstanceRole:string
Iam
属性
InstanceProfile
(可选,String
)-
指定实例配置文件以覆盖的默认实例角色或实例配置文件 Slurm queue. 您不能同时指定
InstanceProfile
和InstanceRole
。格式为arn:${Partition}:iam::${Account}:instance-profile/${InstanceProfileName}
。如果指定此设置,则不能指定
S3Access
和AdditionalIamPolicies
设置。我们建议您指定
S3Access
和AdditionalIamPolicies
设置中的一个或两个,因为添加到 AWS ParallelCluster 中的功能通常需要新权限。 InstanceRole
(可选,String
)-
指定实例角色以覆盖的默认实例角色或实例配置文件 Slurm queue. 您不能同时指定
InstanceProfile
和InstanceRole
。格式为arn:${Partition}:iam::${Account}:role/${RoleName}
。如果指定此设置,则不能指定
S3Access
和AdditionalIamPolicies
设置。我们建议您指定
S3Access
和AdditionalIamPolicies
设置中的一个或两个,因为添加到 AWS ParallelCluster 中的功能通常需要新权限。 S3Access
(可选)-
为指定存储桶 Slurm queue. 这用于生成策略,以授予对存储桶的指定访问权限 Slurm queue.
如果指定此设置,则不能指定
InstanceProfile
和InstanceRole
设置。我们建议您指定
S3Access
和AdditionalIamPolicies
设置中的一个或两个,因为添加到 AWS ParallelCluster 中的功能通常需要新权限。S3Access: - BucketName:
string
EnableWriteAccess:boolean
KeyName:string
BucketName
(必需,String
)-
存储桶的名称。
KeyName
(可选,String
)-
存储桶的密钥。默认值为
*
。 EnableWriteAccess
(可选,Boolean
)-
指示是否为存储桶启用写入权限。
AdditionalIamPolicies
(可选)-
指定亚马逊资源名称 (ARNs) 的亚马逊IAM政策列表EC2。此列表附在用于的根角色上 Slurm 除了所需的权限外,还要排队 AWS ParallelCluster。
IAM策略名称和策略名称ARN是不同的。不能使用名称。
如果指定此设置,则不能指定
InstanceProfile
和InstanceRole
设置。我们建议您使用
AdditionalIamPolicies
,因为AdditionalIamPolicies
已经添加到 AWS 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
ExternalSlurmdbd: Host:string
Port:integer
Dns: DisableManagedDns:boolean
HostedZoneId:string
UseEc2Hostnames:boolean
SlurmSettings
属性
ScaledownIdletime
(可选,Integer
)-
定义没有作业的时间长度(以分钟为单位)以及 Slurm 节点终止。
默认值为
10
。 MungeKeySecretArn
(可选,String
)-
纯文本 S AWS ecrets Manager 密钥的亚马逊资源名称 (ARN),该密钥包含要用于 base64 编码的 munge 密钥 Slurm 集群。此 munge 密钥将用于对两者之间的呼叫进行身份验证 RPC Slurm 客户端命令和 Slurm 守护程序充当远程服务器。如果未提供, AWS ParallelCluster 将 MungeKeySecretArn 为集群生成一个随机 munge 密钥。
注意
MungeKeySecretArn
从 3.8.0 AWS ParallelCluster 版开始受支持。警告
如果 MungeKeySecretArn 是新添加到现有集群中,则在回滚或稍后移除时 ParallelCluster不会恢复之前的 munge Key。 MungeKeySecretArn取而代之的是,将生成一个新的随机 munge 密钥。
如果 AWS ParallelCluster 用户有权 DescribeSecret访问该特定机密资源, MungeKeySecretArn 则会进行验证。 MungeKeySecretArn 在以下情况下有效:
-
指定的密钥存在,并且
-
密钥为纯文本,包含有效的 base64 编码字符串,并且
-
解码后的二进制 munge 密钥的大小介于 256 到 8192 位之间。
如果 pcluster 用户IAM策略不包括 DescribeSecret, MungeKeySecretArn则不进行验证并显示警告消息。有关更多信息,请参阅 基本 AWS ParallelCluster pcluster 用户策略。
更新时 MungeKeySecretArn,必须停止计算队列和所有登录节点。
如果修改了密钥中的密钥值,同时保持不ARN变,ARN则集群将不会使用新的 munge 密钥自动更新。要使用密钥ARN的新 munge 密钥,您必须停止计算队列并登录节点,然后从头节点运行以下命令。
sudo /opt/parallelcluster/scripts/slurm/update_munge_key.sh
运行命令后,您可以恢复计算队列和登录节点:新配置的计算和登录节点将使用新的 munge 密钥自动启动。
要生成 base64 编码的自定义 munge 密钥,你可以使用 munge 软件中分发的 mungekey 实用程序
,然后使用操作系统中普遍可用的 base64 实用程序对其进行编码。或者,你可以使用 bash(请将 bs 参数设置在 32 和 1024 之间) dd if=/dev/random bs=128 count=1 2>/dev/null | base64 -w 0
或者 Python,如下所示:
import random import os import base64 # key length in bytes key_length=128 base64.b64encode(os.urandom(key_length)).decode("utf-8")
更新政策:NEWUPDATEPOLICYWITHCOMPUTEFLEETANDLOGINNODESSTOPPED(错误地未在 3.7.0 中添加)。
-
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
-
在更改了参数值的队列中,将会终止正在运行的作业并立即关闭节点。
静态节点将被替换,动态节点将被终止。
其他队列中未更改参数值的其他节点不受影响。
注意
从 AWS ParallelCluster 版本 3.2.0 开始支持
QueueUpdateStrategy
。 EnableMemoryBasedScheduling
(可选,Boolean
)-
如果
true
在中启用了基于内存的调度 Slurm。 有关更多信息,请参阅 SlurmQueues/ComputeResources/SchedulableMemory。默认值为
false
。警告
启用基于内存的调度会影响 Slurm 调度器处理任务和节点分配。
有关更多信息,请参阅 Slurm 基于内存的调度。
注意
从 AWS ParallelCluster 版本 3.2.0 开始支持
EnableMemoryBasedScheduling
。注意
从 3.7.0 AWS ParallelCluster 版开始,如果您在实例中配置了多个实例类型,则EnableMemoryBasedScheduling可以启用。
适用于 3.2.0 到 3.6 AWS ParallelCluster 版本。
x
,如果您在实例中配置了多个实例类型,则EnableMemoryBasedScheduling无法启用。 CustomSlurmSettings
(可选,[Dict]
)-
定义自定义 Slurm 适用于整个集群的设置。
指定列表 Slurm 要附加到生成的文件末尾的键值对的
slurm.conf
配置字典。 AWS 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-
模式。这些模式是为 AWS ParallelCluster托管的节点预留的。如果您指定自定义 Slurm 中的配置参数
CustomSlurmSettings
,不得指定自定义 Slurm 的配置参数CustomSlurmSettingsIncludeFile
。你只能指定 Slurm 中未被拒绝列出的配置参数。
CustomSlurmSettings
有关被拒绝名单的信息 Slurm 配置参数,请参阅CustomSlurmSettings 的列入拒绝列表的 Slurm 配置参数。AWS ParallelCluster 仅检查参数是否在拒绝列表中。 AWS ParallelCluster 无法验证您的自定义 Slurm 配置参数语法或语义。您有责任验证您的自定义 Slurm 配置参数。无效的自定义 Slurm 配置参数可能导致 Slurm 守护程序失败可能导致集群创建和更新失败。
有关如何指定自定义的更多信息 Slurm 带的配置参数 AWS ParallelCluster,请参阅Slurm 配置自定义。
有关 Slurm 配置参数,请参阅 slurm.
conf 中的 Slurm 文档中)。 注意
从 AWS ParallelCluster 版本 3.6.0 开始支持
CustomSlurmSettings
。 CustomSlurmSettingsIncludeFile
(可选,String
)-
定义自定义 Slurm 适用于整个集群的设置。
指定自定义 Slurm 由自定义组成的文件 Slurm 要在 AWS ParallelCluster 生成的
slurm.conf
文件末尾附加配置参数。必须包括该文件的路径。路径可以
https://
或s3://
开头。如果您指定自定义 Slurm 的配置参数
CustomSlurmSettingsIncludeFile
,不得指定自定义 Slurm 的配置参数CustomSlurmSettings
。注意
自定义 Slurm 节点的名称中不得包含
-st-
或-dy-
模式。这些模式是为 AWS ParallelCluster托管的节点预留的。你只能指定 Slurm 中未被拒绝列出的配置参数。
CustomSlurmSettingsIncludeFile
有关被拒绝名单的信息 Slurm 配置参数,请参阅CustomSlurmSettings 的列入拒绝列表的 Slurm 配置参数。AWS ParallelCluster 仅检查参数是否在拒绝列表中。 AWS ParallelCluster 无法验证您的自定义 Slurm 配置参数语法或语义。您有责任验证您的自定义 Slurm 配置参数。无效的自定义 Slurm 配置参数可能导致 Slurm 守护程序失败可能导致集群创建和更新失败。
有关如何指定自定义的更多信息 Slurm 带的配置参数 AWS ParallelCluster,请参阅Slurm 配置自定义。
有关 Slurm 配置参数,请参阅 slurm.
conf 中的 Slurm 文档中)。 注意
从 AWS ParallelCluster 版本 3.6.0 开始支持
CustomSlurmSettings
。
Database
(可选)定义要启用的设置 Slurm 对集群进行记账。有关更多信息,请参阅 Slurm 用会计 AWS ParallelCluster。
Database: Uri:
string
UserName:string
PasswordSecretArn:string
Database
属性
Uri
(必需,String
)-
用作后端的数据库服务器的地址 Slurm 会计。其格式URI必须为
host:port
且不得包含方案,例如mysql://
。主机可以是 IP 地址,也可以是头节点可以解析的DNS名称。如果未提供端口,则 AWS ParallelCluster 使用 MySQL 默认端口 3306。AWS ParallelCluster bootstraps Slurm 记账数据库到集群中,并且必须访问该数据库。
在执行以下操作之前,必须可以访问该数据库:
-
创建集群。
-
Slurm 通过群集更新启用记账。
-
UserName
(必需,String
)-
那个身份 Slurm 用于连接数据库、写入记账日志和执行查询。用户必须对数据库具有读取和写入权限。
PasswordSecretArn
(必需,String
)-
包含
UserName
纯文本密码的 AWS Secrets Manager 密钥的 Amazon 资源名称 (ARN)。此密码与UserName
和一起使用 Slurm 要在数据库服务器上进行身份验证的记账。注意
使用 AWS Secrets Manager 控制台创建密钥时,请务必选择 “其他类型的密钥”,选择纯文本,并且仅在密钥中包含密码文本。
有关如何使用 AWS Secrets Manager 创建密钥的更多信息,请参阅创建 AWS Secrets Manager 密钥
如果用户拥有权限 DescribeSecret,
PasswordSecretArn
则进行验证。PasswordSecretArn
如果指定的密钥存在,则有效。如果用户IAM策略不包括DescribeSecret
,则PasswordSecretArn
未经过验证并显示警告消息。有关更多信息,请参阅 基本 AWS ParallelCluster pcluster 用户策略。更新
PasswordSecretArn
时,必须停止计算实例集。如果密钥值发生更改,并且密钥ARN没有更改,则集群不会使用新的数据库密码自动更新。要针对新密钥值更新集群,您必须在停止计算实例集后从头节点内运行以下命令。$
sudo /opt/parallelcluster/scripts/slurm/update_slurm_database_password.sh警告
我们建议仅在已停止计算实例集的情况下更改数据库密码以避免会计数据丢失。
DatabaseName
(可选,String
)-
数据库服务器上要用于(由 Uri 参数定义)的数据库名称 Slurm 会计。
数据库的名称可以包含小写字母、数字和下划线。名称不能超过 64 个字符。
此参数映射到 s lurm
StorageLoc
dbd.conf的参数。 如果未提供,
DatabaseName
则 ParallelCluster 将使用集群的名称为定义值StorageLoc
。允许更新
DatabaseName
,但要考虑以下几点:-
如果数据库服务器上尚 DatabaseName 不存在具有名称的数据库,slurmdbd 将创建该数据库。您有责任根据需要重新配置新数据库(例如,添加会计实体 — 集群、账户、用户QOSs、关联等)。
-
如果数据库服务器上 DatabaseName 已经存在同名数据库,slurmdbd 会将其用于 Slurm 会计功能。
-
注意
从版本 3.3.0 开始添加了 Database
。
ExternalSlurmdbd
(可选)定义要启用的设置 Slurm 使用外部 slurmdbd 服务器进行记账。有关更多信息,请参阅 Slurm 会计 AWS ParallelCluster。
ExternalSlurmdbd: Host:
string
Port:integer
ExternalSlurmdbd
属性
Host
(必填,String
)-
的外部 slurmdbd 服务器的地址 Slurm 会计。主机可以是 IP 地址,也可以是头节点可以解析的DNS名称。
Port
(可选,Integer
)-
slurmdbd 服务监听的端口。默认值为
6819
。
Dns
(可选)定义以下各项的设置 Slurm 这适用于整个集群。
Dns: DisableManagedDns:
boolean
HostedZoneId:string
UseEc2Hostnames:boolean
Dns
属性
DisableManagedDns
(可选,Boolean
)-
如果
true
,则集群的DNS条目未创建,并且 Slurm 节点名称无法解析。默认情况下, AWS ParallelCluster 创建一个 Route 53 托管区域,启动时将在其中注册节点。默认值为
false
。如果设置DisableManagedDns
为true
,则托管区域不是由创建的 AWS ParallelCluster。要了解如何使用此设置在没有互联网访问权限的子网中部署集群,请参阅AWS ParallelCluster 在无法访问互联网的单个子网中。
警告
集群需要名称解析系统才能正常运行。如果
DisableManagedDns
设置为true
,则必须提供名称解析系统。要使用 Amazon 的EC2默认设置DNS,UseEc2Hostnames
请将设置为true
。或者,配置您自己的DNS解析器,并确保在启动实例时注册节点名称。例如,您可以通过配置 CustomActions/OnNodeStart 来实现这一目标。 HostedZoneId
(可选,String
)-
定义用于集群DNS名称解析的自定义 Route 53 托管区域 ID。如果提供,则在指定的托管区域中 AWS ParallelCluster 注册集群节点,并且不会创建托管托管区域。
UseEc2Hostnames
(可选,Boolean
)-
如果是
true
,则使用默认EC2主机名配置集群计算节点。这些区域有:SlurmNodeHostName
也使用此信息进行了更新。默认为false
。要了解如何使用此设置在没有互联网访问权限的子网中部署集群,请参阅AWS ParallelCluster 在无法访问互联网的单个子网中。
注意
从 AWS ParallelCluster 版本 3.3.0 开始,此备注不相关。
对于 3.3.0 之前的 AWS ParallelCluster 支持版本:
如果设置
UseEc2Hostnames
为true
,则使用 AWS ParallelClusterprolog
和epilog
脚本设置 Slurm 配置文件:-
分配了每个作业后,
prolog
用于向计算节点上的/etc/hosts
中添加节点信息。 -
epilog
用于清理prolog
写入的内容。
要添加自定义
epilog
或prolog
脚本,请分别将其添加到/opt/slurm/etc/pcluster/prolog.d/
或/opt/slurm/etc/pcluster/epilog.d/
文件夹。 -