本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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).
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 EC2 Linux 執行個體使用者指南中的競價型執行個體請求的服務連結角色。
Networking
(必要) 定義 AWS Batch 佇列的網路組態。
Networking: SubnetIds: -
string
AssignPublicIp:boolean
SecurityGroups: -string
AdditionalSecurityGroups: -string
Networking
屬性
SubnetIds
(必填,[String]
)-
指定要佈建 AWS Batch 佇列的現有子網路識別碼。目前只支援一個子網路。
AssignPublicIp
(可選,String
)-
建立或指派公用 IP 位址給 AWS Batch 佇列中的節點。支援的值為
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 計算環境可以使用的 vCPU 數目下限。
DesiredVcpus
(可選,Integer
)-
AWS Batch 運算環境中所需的 vCPU 數目。 AWS Batch
MaxvCpus
根據工作佇列中的需求,在MinvCpus
和之間調整此值。 MaxvCpus
(可選,Integer
)-
AWS Batch 運算環境中的 vCPU 數目上限。您無法將此值設定為低於
DesiredVcpus
。 SpotBidPercentage
(可選,Float
)-
Amazon EC2 Spot 執行個體價格在執行個體啟動之前可達到的執行個體類型隨需價格的最高百分比。預設值為
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
與 AWS ParallelCluster 版本 3.3.0 一起添加。CapacityReservationTarget: CapacityReservationId:
string
CapacityReservationResourceGroupArn:string
指定佇列計算資源的隨需容量保留。
CapacityReservationId
(可選,String
)-
要針對佇列計算資源作為目標的現有容量保留區識別碼。識別碼可以參考 OCR 或 ML 的容量區塊。
保留項目必須使用執行個體使用的相同平台。例如,如果您的執行個體在上執行
rhel8
,您的容量保留必須在 RHEL 平台上執行。如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的支援平台。注意
如果您包含Instances在叢集配置中,則必須從組態中排除此佇列層級
CapacityReservationId
設定。 CapacityReservationResourceGroupArn
(可選,String
)-
資源群組的 Amazon 資源名稱 (ARN),用作佇列運算資源的服務連結容量保留群組。 AWS ParallelCluster 根據下列條件,識別並使用資源群組中最適當的產能保留:
-
如果
PlacementGroup
在 SlurmQueues/Networking或 SlurmQueuesComputeResources/中啟用 Networking,則 AWS ParallelCluster 選取以執行個體類型PlacementGroup
為目標的資源群組,如果計算資源存在,則選取計算資源的資源群組。PlacementGroup
必須以中定義的其中一個執行個體類型為目標ComputeResources。 -
如果
PlacementGroup
未在 SlurmQueues/Networking或 SlurmQueuesComputeResources/中啟用 Networking,則 AWS ParallelCluster 選取僅針對計算資源執行個體類型的資源群組 (如果計算資源存在)。
資源群組必須在佇列的所有計算資源和可用區域中保留在可用區域中的每個執行個體類型至少一個 ODCR。如需詳細資訊,請參閱 使用隨需容量保留 (ODCR) 啟動執行個體。
如需有關多個子網路組態需求的詳細資訊,請參閱 Networking/SubnetIds。
注意
在 AWS ParallelCluster 版本 3.4.0 中添加了多個可用區域。
-
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 EC2 Linux 執行個體使用者指南中的競價型執行個體請求的服務連結角色。
AllocationStrategy
(可選,String
)-
為中定義的所有計算資源指定配置策略Instances。
有效值:
lowest-price
|capacity-optimized
|price-capacity-optimized
預設:
lowest-price
lowest-price
-
-
如果您使用
CapacityType = ONDEMAND
,Amazon EC2 叢集會使用價格決定訂單,並先啟動最低價格的執行個體。 -
如果您使用
CapacityType = SPOT
,Amazon EC2 叢集會從具有可用容量的最低價格競價型執行個體集區啟動執行個體。如果集區在滿足所需容量之前耗盡容量,Amazon EC2 Fleet 會為您啟動執行個體來滿足您的請求。特別是,Amazon EC2 叢集會從具有可用容量的最低價格競價型執行個體集區啟動執行個體。Amazon EC2 叢集可能會從數個不同的集區啟動競價型執行個體。 -
如果您設定
CapacityType = CAPACITY_BLOCK
,則沒有配置策略,因此無法配置AllocationStrategy
參數。
-
capacity-optimized
-
-
如果您已設定
CapacityType = ONDEMAND
,則capacity-optimized
無法使用。 -
如果您已設定
CapacityType = SPOT
,Amazon EC2 叢集會從競價型執行個體集區啟動執行個體,並具有最佳容量以供啟動的執行個體數量使用。
-
price-capacity-optimized
-
-
如果您已設定
CapacityType = ONDEMAND
,則capacity-optimized
無法使用。 -
如果您設定
CapacityType = SPOT
,Amazon EC2 叢集會針對正在啟動的執行個體數量識別具有最高容量可用性的集區。這表示我們將從我們認為在短期內中斷機會最低的集區請求 Spot 執行個體。然後,Amazon EC2 叢集會從這些集區中最低價格請求競價型執行個體。
-
更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。
注意
AllocationStrategy
從 AWS ParallelCluster 版本 3.3.0 開始支援。 JobExclusiveAllocation
(可選,String
)-
如果設定為
true
,則Slurm分割區OverSubscribe
旗標會設定為EXCLUSIVE
。當OverSubscribe
= 時EXCLUSIVE
,分割區中的作業對所有配置的節點具有獨佔存取權。如需詳細資訊,請參閱Slurm文件中的 EXCLUSIVE。有效值:
true
|false
預設:
false
注意
JobExclusiveAllocation
從 AWS ParallelCluster 版本 3.7.0 開始受到支援。 CustomSlurmSettings
(可選,Dict
)-
定義自訂Slurm分割區 (佇列) 組態設定。
指定套用至佇列 (分割區) 之自訂Slurm組態參數索引鍵值配對的字典。
每個單獨的索引鍵值對 (例如
Param1: Value1
) 會以格式Param1=Value1
分別新增至Slurm分割區組態行的末端。您只能指Slurm定未在中拒絕列出的組態參數。
CustomSlurmSettings
如需有關拒絕列出的Slurm組態參數的資訊,請參閱。拒絕列出Slurm組態參數CustomSlurmSettingsAWS ParallelCluster 僅檢查參數是否在拒絕清單中。 AWS ParallelCluster 不會驗證您的自訂Slurm組態參數語法或語意。您必須負責驗證您的自訂Slurm組態參數。無效的自訂Slurm組態參數可能會造成Slurm協助程式失敗,進而導致叢集建立和更新失敗。
如需如何使用指定自訂Slurm組態參數的詳細資訊 AWS ParallelCluster,請參閱Slurm組態自訂。
如需有關Slurm組態參數的詳細資訊,請參閱說明文件中的 slurm.conf
。Slurm 注意
CustomSlurmSettings
從 AWS ParallelCluster 版本 3.6.0 開始支援。 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
健康檢查行為-
如果設定
Enabled
為Gpu
/true
,則會對佇列中的計算資源 AWS 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
錄。該文件在 Amazon 中可用 CloudWatch,在集群 CloudWatch 日誌組中,您可以在其中找到:-
Gpu
健全狀況檢查所執行動作的詳細資訊,包括啟用和停用服務和持續性模式。 -
GPU 識別碼、序列識別碼和 UUID。
-
健康狀態檢查輸出。
-
注意
HealthChecks
從 AWS 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]
)-
佈建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 (EFA)。
使用多個可用區域可能會導致儲存網路延遲增加,並增加 AZ 間資料傳輸成本。例如,當執行個體存取位於不同 AZ 中的檔案儲存時,就可能會發生這種情況。有關詳情,請參閱相同內容的資料傳輸 AWS 區域
。 叢集更新以從使用單一子網路變更為多個子網路:
-
假設叢集的子網路定義是使用單一子網路和 Lustre 檔案系統的 AWS ParallelCluster 受管理 FSx 來定義。然後,您無法直接使用更新的子網路 ID 定義來更新此叢集。若要進行叢集更新,您必須先將受管理的檔案系統變更為外部檔案系統。如需詳細資訊,請參閱 將 AWS ParallelCluster 受管儲存轉換為外部儲存。
-
假設叢集的子網路定義是以單一子網路和外部 Amazon EFS 檔案系統定義的,如果要新增的多個子網路的所有 AZ 都不存在 EFS 掛載目標。然後,您無法直接使用更新的子網路 ID 定義來更新此叢集。若要更新叢集或建立叢集,您必須先為已定義的多個子網路的所有 AZ 建立所有裝載目標。
可用區域和叢集容量保留定義於 CapacityReservationResourceGroupArn:
-
如果已定義的容量保留資源群組所涵蓋的執行個體類型集與可用區域集與為佇列定義的執行個體類型和可用區域集之間沒有重疊,則無法建立叢集。
-
如果已定義的容量保留資源群組所涵蓋的執行個體類型集與可用區域之間存在部分重疊,以及為佇列定義的執行個體類型和可用區域集,您可以建立叢集。 AWS ParallelCluster 針對此情況傳送有關部分重疊的警告訊息。
-
如需詳細資訊,請參閱 使用隨需容量保留 (ODCR) 啟動執行個體。
注意
在 AWS ParallelCluster 版本 3.4.0 中添加了多個可用區域。
警告
此警告適用於 3.3.1 版之前的所有 3.x.y AWS ParallelCluster 版本。 AWS ParallelCluster 如果變更此參數,版本 3.3.1 不會受到影響。
對於 3.3.1 版之前的 AWS ParallelCluster 3 個版本:
變更此參數並更新叢集會為 Lustre 檔案系統建立新的受管理 FSx,並刪除 Lustre 檔案系統的現有受管理 FSx,而不保留現有資料。這會導致數據丟失。在繼續之前,如果您要保留資料,請確定已備份來自現有 FSx for Lustre 檔案系統的資料。如需詳細資訊,請參閱《FSx for Lustre 使用者指南》中的〈使用備份〉。
如果新增子網路值,更新原則:您可以在更新期間變更此設定。
如果子網路值已移除,更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。
-
AssignPublicIp
(可選,String
)-
建立或指派公用 IP 位址給Slurm佇列中的節點。支援的值為
true
和false
。您指定的子網路會決定預設值。具有公用 IP 的子網路預設為指派公用 IP 位址。如果您定義p4d或hpc6id執行個體類型,或其他具有多個網路介面或網路介面卡的執行個體類型,則必須將 HeadNode/Networking/設定ElasticIp
true
為提供公用存取權。 AWS 只能將公有 IP 指派給透過單一網路介面啟動的執行個體。在此情況下,建議您使用 NAT 閘道來提供叢集運算節點的公用存取權。在此情況下,AssignPublicIp
請將設定為false
。如需 IP 地址的詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的執行個體啟動期間指派公有 IPv4 地址。 SecurityGroups
(可選,[String]
)-
要用於Slurm佇列的安全性群組清單。如果未指定安全性群組,請為您 AWS ParallelCluster 建立安全性群組。
確認您的SharedStorage系統已正確設定安全群組。
警告
此警告適用於所有 3。
x
.y
AWS ParallelCluster 版本 3.3.0 之前的版本。 AWS ParallelCluster 如果更改此參數,3.3.0 版本不會受到影響。對於版本 3.3.0 之前的 AWS ParallelCluster 3 個版本:
變更此參數並更新叢集會為 Lustre 檔案系統建立新的受管理 FSx,並刪除 Lustre 檔案系統的現有受管理 FSx,而不保留現有資料。這會導致數據丟失。如果您要保留資料,請務必備份 Lustre 檔案系統的現有 FSx 中的資料。如需詳細資訊,請參閱《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佇列使用之現有叢集置放群組的放置群組名稱。請務必提供放置群組名稱,而非 ID。
Name
(可選,String
)-
Slurm佇列使用之現有叢集置放群組的放置群組名稱。請務必提供放置群組名稱,而非 ID。
注意
-
如果將
PlacementGroup
true
/設定Enabled
為 (未Id
定義Name
或),則會為每個計算資源指派自己的受管理放置群組,除非PlacementGroup已定義 ComputeResourcesNetworking//來覆寫此設定。 -
從 AWS ParallelCluster 版本 3.3.0 開始,SlurmQueues/NetworkingPlacementGroup/Name被添加為//SlurmQueues/Networking的首選替代方案。PlacementGroupId
PlacementGroup/Id和 PlacementGroup/Name是等價的。您可以使用任何一種。
如果您同時包含 PlacementGroup/Id和 PlacementGroup/Name,則 AWS ParallelCluster 失敗。您只能選擇一個或另一個。
您不需要更新叢集即可使用 PlacementGroup/Name。
Proxy
(選擇性)-
指定Slurm佇列的代理伺服器設定。
Proxy: HttpProxyAddress:
string
更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。
HttpProxyAddress
(可選,String
)-
定義Slurm佇列的 HTTP 或 HTTPS 代理伺服器。通常情況下,它是
https://
。x.x.x.x:8080
沒有預設值。
Image
(選擇性) 指定要用於Slurm佇列的影像。若要對所有節點使用相同的 AMI,請使用Image區段中的CustomAmi設定。
Image: CustomAmi:
string
更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。
Image
性質
CustomAmi
(可選,String
)-
用於Slurm佇列而非預設 AMI 的 AMI。您可以使用 pcluster CLI 命令來檢視預設 AMI 的清單。
注意
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
(必要) 定義Slurm佇列的ComputeResources
組態。
注意
叢集大小可能會在更新期間變更。如需詳細資訊,請參閱叢集容量大小和更新
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 只能將公有 IP 指派給透過單一網路介面啟動的執行個體。如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的執行個體啟動期間指派公用 IPv4 地址。
Instances
(必填)-
指定計算資源的執行個體類型清單。若要指定執行個體類型清單的配置策略,請參閱AllocationStrategy。
叢集配置必須定義InstanceType或Instances。如果兩者都已定義,則 AWS ParallelCluster 失敗。
如需詳細資訊,請參閱 使用 Slurm 進行多個實例類型分配。
Instances: - InstanceType:
string
注意
更新原則:對於此清單值設定,可以在更新期間新增新值,或者在移除現有值時必須停止運算叢集。
InstanceType
(必填,String
)-
要在此Slurm計算資源中使用的執行個體類型。叢集中的所有執行個體類型都必須使用相同的處理器架構 (
x86_64
或)arm64
。中列出的執行個體類型Instances必須具有:
-
相同數量的 vCPUs,或者,如果設定DisableSimultaneousMultithreading為
true
,則相同數量的核心。 -
相同數量的同一製造商的加速器。
中列出的執行個體類型Instances可以具有:
-
不同的記憶體容量。
在這種情況下,最小內存將被設置為可消耗Slurm資源。
-
不同的網卡。
在這種情況下,為計算資源設定的網路介面數目是由具有最少網路卡數目的執行個體類型所定義。
-
不同的網絡帶寬。
-
不同的實例存儲大小。
如果您定義p4d或hpc6id執行個體類型,或其他具有多個網路介面或網路介面卡的執行個體類型,則必須在私有子網路中啟動運算執行個體,如中所述AWS ParallelCluster 使用兩個子網。 AWS 只能將公有 IP 指派給透過單一網路介面啟動的執行個體。如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的執行個體啟動期間指派公用 IPv4 地址。
-
注意
Instances
從 AWS ParallelCluster 版本 3.3.0 開始支援。 MinCount
(可選,Integer
)-
Slurm運算資源使用的執行個體數目下限。預設值為 0。
注意
叢集大小可能會在更新期間變更。如需詳細資訊,請參閱叢集容量大小和更新
MaxCount
(可選,Integer
)-
Slurm運算資源使用的執行個體數目上限。預設為 10。
使用時
CapacityType = CAPACITY_BLOCK
,MaxCount
必須等於或大於 0,因為容量區塊保留區的所有執行個體部分都會作為靜態節點進行管理。MinCount
在叢集建立時,頭節點會等待所有靜態節點準備就緒,然後才能成功建立叢集。但是,使用時
CapacityType = CAPACITY_BLOCK
,此檢查不會考慮與容量區塊相關聯之計算資源的節點部分。即使並非所有已設定的容量區塊都處於作用中狀態,仍會建立叢集。注意
叢集大小可能會在更新期間變更。如需詳細資訊,請參閱叢集容量大小和更新
DynamicNodePriority
(可選,Integer
)-
佇列計算資源中動態節點的優先順序。優先順序會Slurm對應至計算資源動態節點的節點
Weight
組態參數。預設值為 1000
。Slurm優先排列具有最低
Weight
值的節點。警告
在Slurm分割區 (佇列) 中使用許多不同的
Weight
值可能會降低佇列中工作排程的速率。在 AWS ParallelCluster 版本 3.7.0 之前的版本中,靜態和動態節點都被指派相同的
1
預設權重。在這種情況下,由於靜態和動態節點的命名結構描述,Slurm可能會將閒置動態節點優先於閒置的靜態節點。當所有其他方式相等時,會依名稱的字母順序排Slurm程節點。注意
DynamicNodePriority
已在 AWS ParallelCluster 版本 3.7.0 中新增。 StaticNodePriority
(可選,Integer
)-
佇列計算資源中靜態節點的優先順序。優先順序會Slurm對應至計算資源靜態節點的節點
Weight
組態參數。預設值為 1
。Slurm優先排列具有最低
Weight
值的節點。警告
在Slurm分割區 (佇列) 中使用許多不同的
Weight
值可能會降低佇列中工作排程的速率。注意
StaticNodePriority
已在 AWS ParallelCluster 版本 3.7.0 中新增。 SpotPrice
(可選,Float
)-
任何執行個體啟動前,Amazon EC2 競價型執行個體支付的最高價格。預設值為隨需價格。
DisableSimultaneousMultithreading
(可選,Boolean
)-
如果
true
,停用Slurm佇列中節點上的多執行緒。預設值為false
。並非所有執行個體類型都能停用多執行緒。如需支援停用多執行緒的執行個體類型清單,請參閱 Amazon EC2 使用者指南中每個執行個體類型每個 CPU 核心的 CPU 核心和執行緒。
SchedulableMemory
(可選,Integer
)-
在計算資源的運算節點Slurm參數
RealMemory
中設定的 MiB 記憶體容量。這個值是啟用 SlurmSettings/EnableMemoryBasedScheduling時,工作可用的節點記憶體上限。預設值是 Amazon EC2 執行個體類型中列出且由 Amazon EC2API 傳回的記憶體的 95% DescribeInstanceTypes。確保將 GiB 中給出的值轉換為 MiB。 支援的值:
1-EC2Memory
EC2Memory
是列在 Amazon EC2 執行個體類型中並由 Amazon EC2API DescribeInstanceTypes傳回的記憶體 (以 MiB 為單位)。確保將 GiB 中給出的值轉換為 MiB。 啟用 SlurmSettings/EnableMemoryBasedScheduling時,此選項最相關。如需詳細資訊,請參閱 Slurm記憶體式排程。
注意
SchedulableMemory
從 AWS ParallelCluster 版本 3.2.0 開始支援。依預設,從版本 3.2.0 開始,會將Slurm運算節點設 AWS ParallelCluster 定
RealMemory
為 Amazon EC2 API 傳回的 95% 記憶體。DescribeInstanceTypes
此組態與的值無關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
健全狀況檢查的持續時間取決於選取的執行個體類型、執行個體中的 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
錄。您可以在 Amazon CloudWatch 的叢集 CloudWatch 日誌群組中找到此檔案:-
Gpu
健全狀況檢查所執行動作的詳細資訊,包括啟用和停用服務和持續性模式。 -
GPU 識別碼、序列識別碼和 UUID。
-
健康狀態檢查輸出。
-
注意
HealthChecks
從 AWS ParallelCluster 版本 3.6.0 開始支援。 Efa
(選擇性)-
指定Slurm佇列中節點的 Elastic Fabric Adapter (EFA) 設定。
Efa: Enabled:
boolean
GdrSupport:boolean
更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。
Enabled
(可選,Boolean
)-
指定啟用 Elastic Fabric Adapter (EFA)。若要檢視支援 EFA 的 Amazon EC2 執行個體清單,請參閱 Amazon EC2 執行個體使用者指南中支援的執行個體類型。如需詳細資訊,請參閱 Elastic Fabric Adapter。建議您使用叢集 SlurmQueues/Networking/,將執行個體之間的延遲降PlacementGroup到最低。
預設值為
false
。注意
不同的可用區域不支援 Elastic Fabric Adapter (EFA)。如需詳細資訊,請參閱SubnetIds。
警告
如果您要在中定義自訂安全性群組 SecurityGroups,請確定已啟用 EFA 的執行個體是允許所有輸入和輸出流量傳輸到本身的安全性群組的成員。
GdrSupport
(可選,Boolean
)-
(選擇性) 從 AWS ParallelCluster 版本 3.0.2 開始,此設定沒有任何作用。如果Slurm運算資源和作業系統的執行個體類型支援,GPUDirect RDMA (遠端直接記憶體存取) 的彈性網狀架構介面卡 (EFA) 支援一律會啟用。
注意
AWS ParallelCluster 版本 3.0.0 到 3.0.1:已 Support 對運算資源啟用 GPU 直接 RDMA 的支援。Slurm特定作業系統 (是
alinux2
、centos7
、或) 上的特定執行個體類型 (p4d.24xlarge
) Support 援 GPUDirect RDMA Os的支援。ubuntu1804
ubuntu2004
預設值為 false。
CapacityReservationTarget
-
CapacityReservationTarget: CapacityReservationId:
string
CapacityReservationResourceGroupArn:string
指定用於計算資源的隨需容量保留。
CapacityReservationId
(可選,String
)-
要針對佇列計算資源作為目標的現有容量保留區識別碼。識別碼可以參考 OCR 或 ML 的容量區塊。
在計算資源層級指定此參數時, InstanceType為選擇性參數,系統會自動從保留區擷取該參數。
CapacityReservationResourceGroupArn
(可選,String
)-
指示資源群組的 Amazon 資源名稱 (ARN),該資源群組用作運算資源的服務連結容量保留群組。 AWS ParallelCluster 識別並使用群組中最適當的容量保留。針對計算資源列出的每個執行個體類型,資源群組必須至少有一個 ODCR。如需詳細資訊,請參閱 使用隨需容量保留 (ODCR) 啟動執行個體。
-
如果
PlacementGroup
在 SlurmQueues/Networking或 SlurmQueuesComputeResources/中啟用 Networking,則 AWS ParallelCluster 選取以執行個體類型PlacementGroup
為目標的資源群組,並選取計算資源 (如果存在)。PlacementGroup
必須以中定義的其中一個例證類型為目標ComputeResources。 -
如果
PlacementGroup
未在 SlurmQueues/Networking或 SlurmQueuesComputeResources/中啟用 Networking,則 AWS ParallelCluster 選取僅針對計算資源執行個體類型 (如果存在) 的資源群組。
-
更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。
注意
CapacityReservationTarget
與 AWS ParallelCluster 版本 3.3.0 一起添加。 Networking
-
Networking: PlacementGroup: Enabled:
boolean
Name:string
更新原則:必須停止所有運算節點,才能刪除受管理的置放群組。必須停止或設定計算叢集,QueueUpdateStrategy才能變更此設定以進行更新。
PlacementGroup
(選擇性)-
指定計算資源的放置群組設定。
Enabled
(可選,Boolean
)-
指出是否將置放群組用於計算資源。
-
如果設定為
true
(未Name
定義),則無論使用 SlurmQueues/Networking/PlacementGroup設定為何,都會為該計算資源指派自己的受管理放置群組。 -
如果設定為 (已定
Name
義),則會將true
該計算資源指派給具名的放置群組,而不考慮SlurmQueues
/Networking
/PlacementGroup
設定。
-
Name
(可選,String
)-
用於計算資源之現有叢集置放群組的置放群組名稱。
注意
-
如果兩者都
Name
沒有設置PlacementGroup
/Enabled
,則其各自的值默認為 SlurmQueues/Networking/PlacementGroup設置。 -
ComputeResources
/Networking
/PlacementGroup
添加了3.3.0 AWS ParallelCluster 版本。
CustomSlurmSettings
(可選,Dict
)-
(選擇性) 定義自訂Slurm節點 (計算資源) 組態設定。
指定套用至Slurm節點 (計算資源) 的自訂Slurm組態參數鍵值配對的字典。
每個單獨的索引鍵值對 (例如
Param1: Value1
) 會以格式Param1=Value1
分別新增至Slurm節點組態行的結尾。您只能指Slurm定未在中拒絕列出的組態參數。
CustomSlurmSettings
如需有關拒絕列出的Slurm組態參數的資訊,請參閱。拒絕列出Slurm組態參數CustomSlurmSettingsAWS ParallelCluster 僅檢查參數是否在拒絕清單中。 AWS ParallelCluster 不會驗證您的自訂Slurm組態參數語法或語意。您必須負責驗證您的自訂Slurm組態參數。無效的自訂Slurm組態參數可能會造成Slurm協助程式失敗,進而導致叢集建立和更新失敗。
如需如何使用指定自訂Slurm組態參數的詳細資訊 AWS ParallelCluster,請參閱Slurm組態自訂。
如需有關Slurm組態參數的詳細資訊,請參閱說明文件中的 slurm.conf
。Slurm 注意
CustomSlurmSettings
從 AWS ParallelCluster 版本 3.6.0 開始支援。 Tags
(可選,[字符串])-
標籤鍵值配對的清單。
ComputeResource
標籤會覆寫Tags 區段或 SlurmQueues/中指定的重複標籤Tags
。Key
(可選,String
)-
標籤金鑰。
Value
(可選,String
)-
標籤值。
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
)-
指定佇列中節點的根磁碟區大小 (以 GiB) 為單位。Slurm預設大小來自 AMI。使用不同的大小需要 AMI 支援
growroot
。 Encrypted
(可選,Boolean
)-
如果
true
,則會加密Slurm佇列中節點的根磁碟區。預設值為false
。 VolumeType
(可選,String
)-
指定Slurm佇列中節點的 Amazon EBS 磁碟區類型。支援的值為
gp2
gp3
、io1
、io2
、sc1
、st1
、和standard
。預設值為gp3
。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的 Amazon EBS 磁碟區類型。
Iops
(可選,Boolean
)-
定義
io1
、io2
和gp3
類型磁碟區的 IOPS 數目。預設值、支援的值和總成
volume_size
比例會volume_iops
隨和而有所VolumeType
不同Size
。VolumeType
=io1
-
預設值
Iops
=支援的值
Iops
=最大
volume_iops
比volume_size
率 = 每 GiB 50 IOPS。5000 IOPS 需要一volume_size
個至少 100 GiB。 VolumeType
=io2
-
預設值
Iops
=支援的值
Iops
= 100 至 64 萬 (對於io2
區塊快速磁碟區為 256000) †最大
Iops
比Size
率 = 每 GiB 500 IOPS。5000 IOPS 需要至少 10 GiB 博Size
的一個。 VolumeType
=gp3
-
預設
Iops
值支援的值
Iops
=對
Iops
於 IOPS 大於 3000 的磁碟區,最大對Size
比例 = 每 GiB 500 IOPS。
† 只有在 Nitro 系統上建置的執行個體 (也佈建了超過 32,000 IOPS) 上,才能保證最大 IOPS。其他執行個體最多可以有 32,000 IOPS。除非您修改
io1
磁碟區,否則舊版磁碟區可能無法達到完整效能。io2
區塊快速磁碟區在R5b
執行個體類型上支援高達 256000 的volume_iops
值。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的區io2
塊快速磁碟區。 Throughput
(可選,Integer
)-
定義
gp3
磁碟區類型的輸送量,以 MIB/s 為單位。此設定只有在為時VolumeType
才有效gp3
。預設值為125
。支援的值:每秒與的比率
Iops
可Throughput
以不超過 0.25。每秒 1000 MB 的最大輸送量需要Iops
設定至少為 4000。
EphemeralVolume
(可選,Boolean
)-
指定暫時體積塊的設定。暫時磁碟區是透過將所有執行個體儲存磁碟區合併為使用檔案系統格式化的單一邏輯磁碟區來建立。
ext4
預設值為/scratch
。如果執行個體類型沒有任何執行個體儲存磁碟區,則不會建立暫時磁碟區。如需詳細資訊,請參閱《Amazon 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佇列中的節點上執行的一系列指令碼或單一指令碼。 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
從 AWS ParallelCluster 版本 3.6.0 開始添加。當您指定時Sequence
,您可以列出自訂動作的多個指令碼。 AWS ParallelCluster 繼續支援使用單一指令碼設定自訂動作,但不包含Sequence
。AWS ParallelCluster 不支持包括單個腳本和相同
Sequence
的自定義操作。
Iam
(選擇性) 為Slurm佇列定義選用的 IAM 設定。
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}
。如果已指定,則無法指
AdditionalIamPolicies
定S3Access
和設定。建議您指定其中一個或兩個
S3Access
和AdditionalIamPolicies
設定,因為新增至的功能 AWS ParallelCluster 通常需要新的權限。 InstanceRole
(可選,String
)-
指定執行個體角色,以覆寫Slurm佇列的預設執行個體角色或執行個體設定檔。您無法同時指定
InstanceProfile
和InstanceRole
。格式是arn:${Partition}:iam::${Account}:role/${RoleName}
。如果已指定,則無法指
AdditionalIamPolicies
定S3Access
和設定。建議您指定其中一個或兩個
S3Access
和AdditionalIamPolicies
設定,因為新增至的功能 AWS ParallelCluster 通常需要新的權限。 S3Access
(選擇性)-
指定Slurm佇列的值區。這是用來產生政策,將指定存取權授與Slurm佇列中的值區。
如果已指定,則無法指
InstanceRole
定InstanceProfile
和設定。建議您指定其中一個或兩個
S3Access
和AdditionalIamPolicies
設定,因為新增至的功能 AWS ParallelCluster 通常需要新的權限。S3Access: - BucketName:
string
EnableWriteAccess:boolean
KeyName:string
BucketName
(必填,String
)-
儲存貯體的名稱。
KeyName
(可選,String
)-
存儲桶的關鍵。預設值為
*
。 EnableWriteAccess
(可選,Boolean
)-
指出是否已啟用值區的寫入存取權。
AdditionalIamPolicies
(選擇性)-
為 Amazon Amazon EC2 指定 IAM 政策的亞馬遜資源名稱 (ARN) 清單。除了需要的權限之外,此清單還會附加至用於Slurm佇列的根角色 AWS ParallelCluster。
IAM 政策名稱及其 ARN 不同。不能使用名稱。
如果已指定,則無法指
InstanceRole
定InstanceProfile
和設定。我們建議您使用,
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
)-
明文密碼 AWS Secrets Manager 碼的 Amazon 資源名稱 (ARN),其中包含要在叢集中使用的 base64 編碼的密鑰。Slurm這個 munge 金鑰將用來驗證用Slurm戶端命令和做為遠端伺服器的Slurm精靈之間的 RPC 呼叫。如果 MungeKeySecretArn 未提供, AWS ParallelCluster 將產生叢集的隨機 munge 金鑰。
注意
MungeKeySecretArn
從 AWS ParallelCluster 版本 3.8.0 開始支援。警告
如果 MungeKeySecretArn 是新增至現有叢集,則在復原或稍後移除時, ParallelCluster將不會還原先前的「 MungeKeySecretArn金鑰」。相反,將生成一個新的隨機 munge 密鑰。
如果使 AWS ParallelCluster 用者具有該特定秘密資源的權限, MungeKeySecretArn 則會驗證。 DescribeSecret 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 軟件一起分發的 mungekey 實用程序
,然後使用操作系統中普遍可用的 base64 實用程序對其進行編碼。或者,您可以使用 bash(請在 32 和 1024 之間設置 bs 參數) 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")
更新策略:已停止計算機群和登錄節點的新更新策略(錯誤地未在 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
-
在參數值變更的佇列中,執行中的工作會終止,並立即關閉節點的電源。
靜態節點會被取代,並終止動態節點。
其他佇列中沒有變更參數值的其他節點不會受到影響。
注意
QueueUpdateStrategy
從 AWS ParallelCluster 版本 3.2.0 開始支援。 EnableMemoryBasedScheduling
(可選,Boolean
)-
如果
true
在中Slurm啟用記憶體型排程。如需詳細資訊,請參閱 SlurmQueuesComputeResources//SchedulableMemory。預設值為
false
。警告
啟用記憶體型排程會影響排程Slurm器處理工作和節點配置的方式。
如需詳細資訊,請參閱 Slurm記憶體式排程。
注意
EnableMemoryBasedScheduling
從 AWS ParallelCluster 版本 3.2.0 開始支援。注意
CustomSlurmSettings
(可選,[Dict]
)-
Slurm定義套用至整個叢集的自訂設定。
指定要附加到 AWS ParallelCluster 產生的
slurm.conf
檔案結尾的鍵值對的Slurm組態字典清單。清單中的每個字典都會顯示為新增至Slurm組態檔案的單獨行。您可以指定簡單或複雜的參數。
簡單參數由單一 key pair 組成,如下列範例所示:
- 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組態參數的資訊,請參閱。拒絕列出Slurm組態參數CustomSlurmSettingsAWS ParallelCluster 僅檢查參數是否在拒絕清單中。 AWS ParallelCluster 不會驗證您的自訂Slurm組態參數語法或語意。您必須負責驗證您的自訂Slurm組態參數。無效的自訂Slurm組態參數可能會造成Slurm協助程式失敗,進而導致叢集建立和更新失敗。
如需如何使用指定自訂Slurm組態參數的詳細資訊 AWS ParallelCluster,請參閱Slurm組態自訂。
如需有關Slurm組態參數的詳細資訊,請參閱說明文件中的 slurm.conf
。Slurm 注意
CustomSlurmSettings
從 AWS ParallelCluster 版本 3.6.0 開始支援。 CustomSlurmSettingsIncludeFile
(可選,String
)-
Slurm定義套用至整個叢集的自訂設定。
指定自訂Slurm檔案,該檔案由要附加在產生的
slurm.conf
檔案結尾的自訂Slurm組態參數組 AWS ParallelCluster 成。您必須包含檔案的路徑。路徑可以以
https://
或開頭s3://
。如果您指定的自訂Slurm組態參數
CustomSlurmSettingsIncludeFile
,則不得指定的自訂Slurm組態參數CustomSlurmSettings
。注意
自訂Slurm節點的名稱中不得包含
-st-
或-dy-
模式。這些模式會保留給由管理的節點使用 AWS ParallelCluster。您只能指Slurm定未在中拒絕列出的組態參數。
CustomSlurmSettingsIncludeFile
如需有關拒絕列出的Slurm組態參數的資訊,請參閱。拒絕列出Slurm組態參數CustomSlurmSettingsAWS ParallelCluster 僅檢查參數是否在拒絕清單中。 AWS ParallelCluster 不會驗證您的自訂Slurm組態參數語法或語意。您必須負責驗證您的自訂Slurm組態參數。無效的自訂Slurm組態參數可能會造成Slurm協助程式失敗,進而導致叢集建立和更新失敗。
如需如何使用指定自訂Slurm組態參數的詳細資訊 AWS ParallelCluster,請參閱Slurm組態自訂。
如需有關Slurm組態參數的詳細資訊,請參閱說明文件中的 slurm.conf
。Slurm 注意
CustomSlurmSettings
從 AWS ParallelCluster 版本 3.6.0 開始支援。
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 將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
)-
要用於「Slurm會計」之資料庫伺服器 (由 Uri 參數定義) 上的資料庫名稱。
數據庫的名稱可以包含小寫字母,數字和下劃線。名稱不得超過 64 個字元。
此參數會對應至思
路密度 StorageLoc
bd.conf 的參數。如果
DatabaseName
未提供, ParallelCluster 將使用叢集名稱來定義的值StorageLoc
。允許更新,但考量如下:
DatabaseName
-
如果數據庫服務器上尚 DatabaseName 未存在具有名稱的數據庫,slurmdbd 將創建它。您有責任根據需要重新配置新的數據庫(例如,添加會計實體-集群,帳戶,用戶,關聯,QoS 等)。
-
如果數據庫服務器上 DatabaseName 已經存在名稱的數據庫,slurmdbd 將使用它的會計功能。Slurm
-
注意
Database
從 3.3.0 版開始新增。
ExternalSlurmdbd
(選擇性) 定義設定,以便透過外部 slurmdbd 伺服器啟用Slurm帳戶功能。如需詳細資訊,請參閱使用的Slurm帳戶 AWS ParallelCluster。
ExternalSlurmdbd: Host:
string
Port:integer
ExternalSlurmdbd
屬性
Host
(必填,String
)-
外部 slurmdbd 服務器的地址進行會計。Slurm主機可以是 IP 位址,也可以是可由頭節點解析的 DNS 名稱。
Port
(可選,Integer
)-
服務所接聽的連接埠。預設值為
6819
。
Dns
(選擇性) 定義套用至整個叢集的設定。Slurm
Dns: DisableManagedDns:
boolean
HostedZoneId:string
UseEc2Hostnames:boolean
Dns
屬性
DisableManagedDns
(可選,Boolean
)-
如果未建立叢集的 DNS 項目
true
,且無法解析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 託管區域識別碼。提供後,會在指定的託管區域中 AWS ParallelCluster 註冊叢集節點,而不會建立受管理的託管區域。
UseEc2Hostnames
(可選,Boolean
)-
如果
true
,叢集運算節點設定為使用預設 EC2 主機名稱。也SlurmNodeHostName
會使用此資訊更新。預設值為false
。若要瞭解如何使用此設定在沒有網際網路存取權的子網路中部署叢集,請參閱AWS ParallelCluster 在沒有互聯網訪問的單個子網中。
注意
此註釋與 AWS ParallelCluster 版本 3.3.0 開始無關。
對於 3.3.0 之前的 AWS ParallelCluster 支援版本:
當設定
UseEc2Hostnames
為時true
,Slurm 組態檔案會使用 AWS ParallelClusterprolog
和epilog
指令碼設定:-
prolog
執行以在分配每個作業時,將節點資訊新增至運算節點/etc/hosts
上。 -
epilog
運行以清除寫入的內容prolog
。
若要新增自訂
prolog
或epilog
指令碼,請將它們分別新增至/opt/slurm/etc/pcluster/prolog.d/
或/opt/slurm/etc/pcluster/epilog.d/
資料夾。 -