本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 執行個體使用者指南 中的 Spot 執行個體請求的服務連結角色。
Networking
(必要) 定義 AWS Batch 佇列的網路組態。
Networking: SubnetIds: -
string
AssignPublicIp:boolean
SecurityGroups: -string
AdditionalSecurityGroups: -string
Networking
屬性
SubnetIds
(必要 、[String]
)-
指定要佈建 AWS Batch 佇列的現有子網路 ID。目前僅支援一個子網路。
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 運算環境可使用VCPUs的最小數量。
DesiredVcpus
(選用 、Integer
)-
在VCPUs AWS Batch 運算環境中所需的 數目。 AWS Batch
MaxvCpus
會根據任務佇列中的需求,在MinvCpus
和 之間調整此值。 MaxvCpus
(選用 、Integer
)-
AWS Batch 運算環境VCPUs的 數目上限。您無法將此設定為低於 的值
DesiredVcpus
。 SpotBidPercentage
(選用 、Float
)-
在執行個體啟動之前,Amazon EC2 Spot 執行個體價格可以達到的執行個體類型隨需價格百分比上限。預設值為
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或 ML 的容量區塊。
保留必須使用與執行個體相同的平台。例如,如果您的執行個體在 上執行
rhel8
,您的容量保留必須在 Red Hat Enterprise Linux 平台上執行。如需詳細資訊,請參閱 Amazon Linux 執行個體EC2使用者指南 中的支援平台。注意
如果您在叢集組態Instances中包含 ,則必須從組態中排除此佇列層級
CapacityReservationId
設定。 CapacityReservationResourceGroupArn
(選用 、String
)-
作為佇列運算資源之服務連結容量保留群組的資源群組的 Amazon Resource Name (ARN)。 AWS ParallelCluster 會根據下列條件,從資源群組識別並使用最適當的容量保留:
-
如果在 SlurmQueues / Networking或 SlurmQueues / ComputeResources / 中
PlacementGroup
啟用 Networking,則選取以執行個體類型為目標 AWS ParallelCluster 的資源群組,如果存在運算資源,則PlacementGroup
選取運算資源的資源群組。PlacementGroup
必須以 中定義的其中一個執行個體類型為目標ComputeResources。 -
如果在 SlurmQueues / Networking或 SlurmQueues / ComputeResources / 中
PlacementGroup
未啟用 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執行個體使用者指南 中的 Spot 執行個體請求的服務連結角色。
AllocationStrategy
(選用 、String
)-
為 中定義的所有運算資源指定配置策略Instances。
有效值:
lowest-price
|capacity-optimized
|price-capacity-optimized
預設:
lowest-price
lowest-price
-
-
如果您使用
CapacityType = ONDEMAND
,Amazon EC2 Fleet 會使用價格來決定訂單,並先啟動最低價格執行個體。 -
如果您使用
CapacityType = SPOT
,Amazon EC2 Fleet 會從具有可用容量的最低價格 Spot 執行個體集區啟動執行個體。如果集區在履行所需容量之前容量不足,Amazon EC2 Fleet 會為您啟動執行個體來滿足您的請求。特別是,Amazon EC2 Fleet 會從價格最低且具有可用容量的 Spot 執行個體集區啟動執行個體。Amazon EC2 Fleet 可能會從數個不同的集區啟動 Spot 執行個體。 -
如果您設定
CapacityType = CAPACITY_BLOCK
,則沒有配置策略,因此無法設定AllocationStrategy
參數。
-
capacity-optimized
-
-
如果您設定
CapacityType = ONDEMAND
,capacity-optimized
則無法使用 。 -
如果您設定
CapacityType = SPOT
,Amazon EC2 Fleet 會從 Spot 執行個體集區啟動執行個體,並為要啟動的執行個體數量提供最佳容量。
-
price-capacity-optimized
-
-
如果您設定
CapacityType = ONDEMAND
,capacity-optimized
則無法使用 。 -
如果您設定
CapacityType = SPOT
,Amazon EC2 Fleet 會識別正在啟動的執行個體數量具有最高容量可用性的集區。這表示我們將從我們認為在短期內中斷機會最低的集區請求 Spot 執行個體。然後,Amazon EC2 Fleet 會從這些集區的最低價格請求 Spot 執行個體。
-
更新政策:必須停止運算機群,或QueueUpdateStrategy必須設定此設定才能變更更新。
注意
AllocationStrategy
從 AWS ParallelCluster 3.3.0 版開始支援 。 JobExclusiveAllocation
(選用 、String
)-
如果設定為
true
,則 Slurm 分割區OverSubscribe
旗標設定為EXCLUSIVE
。當OverSubscribe
= 時EXCLUSIVE
,分割區中的任務具有所有配置節點的專屬存取權。如需詳細資訊,請參閱EXCLUSIVE中的 Slurm 文件中)。 有效值:
true
|false
預設:
false
注意
JobExclusiveAllocation
從 AWS ParallelCluster 3.7.0 版開始支援 。 CustomSlurmSettings
(選用 、Dict
)-
定義自訂 Slurm 分割區 (佇列) 組態設定。
指定自訂的字典 Slurm 套用至佇列 (分割區) 的組態參數鍵值對。
每個單獨的鍵值對,例如
Param1: Value1
,都會分別新增至 的結尾 Slurm 分割區組態列,格式為Param1=Value1
。您只能指定 Slurm 中未拒絕列出的組態參數
CustomSlurmSettings
。如需拒絕列出的相關資訊 Slurm 組態參數,請參閱 拒絕列出Slurm組態參數CustomSlurmSettings。AWS 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
運作狀態檢查行為-
如果
Gpu
/Enabled
設定為true
, 會對佇列中的運算資源 AWS ParallelCluster 執行GPU運作狀態檢查。 -
Gpu
運作狀態檢查會對運算資源執行GPU運作狀態檢查,以防止在降級的 節點上提交任務GPU。 -
如果運算節點未通過
Gpu
運作狀態檢查,則運算節點狀態會變更為DRAIN
。新任務不會在此節點上啟動。現有任務會執行至完成。在所有執行中的任務完成後,如果運算節點是動態節點,則運算節點會終止,如果是靜態節點,則會將其取代。 -
Gpu
運作狀態檢查的持續時間取決於選取的執行個體類型、執行個體GPUs中的 數目,以及Gpu
運作狀態檢查目標數目 (相當於任務GPU目標數目)。對於具有 8 的執行個體GPUs,一般持續時間少於 3 分鐘。 -
如果
Gpu
運作狀態檢查在不支援的執行個體上執行,則會結束,並在運算節點上執行任務。例如,如果執行個體沒有 GPU,或者如果執行個體有 GPU,但不是 NVIDIA GPU,則運作狀態檢查會結束,而且任務會在運算節點上執行。僅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
檔案中提供了特定運算節點的運作狀態檢查日誌。檔案可在叢集 CloudWatch 日誌群組 CloudWatch的 Amazon 中取得,您可以在其中找到:-
運作
Gpu
狀態檢查所執行動作的詳細資訊,包括啟用和停用服務和持續性模式。 -
GPU 識別碼、序列 ID 和 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)。
例如,假設您為佇列定義子網路 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 的檔案儲存時,可能會發生這種情況。如需詳細資訊,請參閱相同 中的資料傳輸 AWS 區域
。 從使用單一子網路變更為多個子網路的叢集更新:
-
假設叢集的子網路定義是使用單一子網路定義,以及 受 AWS ParallelCluster 管FSx的 Lustre 檔案系統。然後,您無法直接使用更新的子網路 ID 定義更新此叢集。若要進行叢集更新,您必須先將受管檔案系統變更為外部檔案系統。如需詳細資訊,請參閱將 AWS ParallelCluster 受管儲存體轉換為外部儲存體。
-
假設叢集的子網路定義是以單一子網路和外部 Amazon EFS 檔案系統定義,如果要新增的AZs多個子網路中沒有所有 的EFS掛載目標。然後,您無法直接使用更新的子網路 ID 定義更新此叢集。若要進行叢集更新或建立叢集,您必須先為AZs定義之多個子網路的所有 建立所有掛載目標。
中定義的可用區域和叢集容量保留CapacityReservationResourceGroupArn:
-
如果已定義容量保留資源群組涵蓋的執行個體類型集和可用區域,以及為佇列定義的執行個體類型集和可用區域集之間沒有重疊,則無法建立叢集。
-
如果已定義容量保留資源群組涵蓋的執行個體類型和可用區域組與佇列定義的執行個體類型和可用區域組之間有部分重疊,您可以建立叢集。 AWS ParallelCluster 會傳送有關此案例部分重疊的警告訊息。
-
如需詳細資訊,請參閱使用隨需容量預留啟動執行個體 (ODCR)。
注意
3.4.0 AWS ParallelCluster 版中新增了多個可用區域。
警告
此警告適用於 3.3 AWS ParallelCluster .1. 版本 3.3.1 之前的所有 3.x.y AWS ParallelCluster 版本,如果變更此參數,則不會受到影響。
對於 AWS ParallelCluster 3.3.1 版之前的 3 個版本:
變更此參數和更新叢集會建立新的受管 FSx Lustre 檔案系統,並刪除現有的受管 FSx Lustre 檔案系統,而不會保留現有的資料。這會導致資料遺失。如果想要保留資料,請務必在繼續之前備份現有 FSx for Lustre 檔案系統的資料。如需詳細資訊,請參閱 中的使用備份 FSx for Lustre 使用者指南 。
如果新增了新的子網路值, 更新政策:此設定可以在更新期間變更。
-
AssignPublicIp
(選用 、String
)-
建立或指派公有 IP 地址給 中的節點 Slurm queue. 支援的值為
true
和false
。您指定的子網路會決定預設值。具有公有IPs預設值的子網路,用於指派公有 IP 地址。如果您定義 p4d 或 hpc6id 執行個體類型,或具有多個網路介面或網路介面卡的其他執行個體類型,您必須將 HeadNode / Networking / 設定為 ElasticIp
true
,以提供公有存取。 AWS 公有 IPs 只能指派給使用單一網路介面啟動的執行個體。在此情況下,我們建議您使用NAT閘道來提供叢集運算節點的公有存取權。在此情況下,請將AssignPublicIp
設為false
。如需 IP 地址的詳細資訊,請參閱 Amazon Linux 執行個體EC2使用者指南 中的在執行個體啟動期間指派公有IPv4地址。 SecurityGroups
(選用 、[String]
)-
要用於 的安全群組清單 Slurm queue. 如果未指定安全群組, 會為您 AWS ParallelCluster 建立安全群組。
確認安全群組已針對您的SharedStorage系統正確設定。
警告
此警告適用於所有 3。
x
.y
AWS ParallelCluster 如果變更此參數,3.3.0.3.0 AWS ParallelCluster 版之前的版本不會受到影響。對於 AWS ParallelCluster 3.3.0 版之前的 3 個版本:
變更此參數和更新叢集會建立新的受管 FSx Lustre 檔案系統,並刪除現有的受管 FSx Lustre 檔案系統,而不會保留現有的資料。這會導致資料遺失。如果您想要保留資料,請務必備份現有 FSx for Lustre 檔案系統的資料。如需詳細資訊,請參閱 中的使用備份 FSx for Lustre 使用者指南 。
警告
如果您為運算執行個體啟用 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
,但未Id
定義Name
或 ,則除非 / Networking / ComputeResources PlacementGroup被定義來覆寫此設定,否則每個運算資源都會指派自己的受管置放群組。 -
從 3.3.0 SlurmQueues AWS ParallelCluster 版開始, / Networking / PlacementGroup / Name已新增為 SlurmQueues/ Networking / PlacementGroup / 的偏好替代方案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 public 中所述在私有子網路中啟動運算執行個體AWS ParallelCluster 使用兩個子網路,IPs才能指派給使用單一網路介面啟動的執行個體。如需詳細資訊,請參閱 Amazon Linux EC2執行個體使用者指南 中的在執行個體啟動期間指派公有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 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
值最低的節點排定優先順序。警告
在 中使用許多不同的
Weight
值 Slurm 分割區 (佇列) 可能會降低佇列中任務排程的速度。在 3.7.0 版之前的 AWS ParallelCluster 版本中,靜態和動態節點都指派了相同的預設權重
1
。在這種情況下,Slurm 由於靜態和動態節點的命名結構描述, 可能會優先考慮閒置動態節點而非閒置靜態節點。當所有其他項目相等時,Slurm 依名稱字母順序排程節點。注意
DynamicNodePriority
已新增至 3.7.0 AWS ParallelCluster 版。 StaticNodePriority
(選用 、Integer
)-
佇列運算資源中靜態節點的優先順序。優先順序對應至 Slurm 運算資源靜態節點的節點
Weight
組態參數。預設值為 1
。Slurm 會先將
Weight
值最低的節點排定優先順序。警告
在 中使用許多不同的
Weight
值 Slurm 分割區 (佇列) 可能會降低佇列中任務排程的速度。注意
StaticNodePriority
已新增至 3.7.0 AWS ParallelCluster 版。 SpotPrice
(選用 、Float
)-
在任何執行個體啟動之前為 Amazon EC2 Spot 執行個體支付的最高價格。預設值為隨需價格。
DisableSimultaneousMultithreading
(選用 、Boolean
)-
如果
true
,則 中節點上的多執行緒 Slurm 佇列已停用。預設值為false
。並非所有執行個體類型都可以停用多執行緒。如需支援停用多執行緒的執行個體類型清單,請參閱 Amazon EC2使用者指南 中的CPU每個執行個體類型的CPU核心和執行緒。
SchedulableMemory
(選用 、Integer
)-
在 中設定的 MiB 記憶體量 Slurm 運算資源的運算節點
RealMemory
參數。此值是EnableMemoryBasedScheduling啟用 / SlurmSettings 時可用於任務的節點記憶體上限。預設值為 Amazon EC2 Instance Types中列出並由 Amazon EC2 API 傳回的記憶體的 95%DescribeInstanceTypes。請務必將 GiB 中提供的值轉換為 MiB 。 支援的值:
1-EC2Memory
EC2Memory
是 Amazon EC2 Instance Types中列出並由 Amazon 傳回的記憶體 (以 MiB EC2 API 為單位)DescribeInstanceTypes。請務必將 GiB 中提供的值轉換為 MiB 。 EnableMemoryBasedScheduling 啟用 / SlurmSettings 時,此選項最相關。如需詳細資訊,請參閱Slurm記憶體式排程。
注意
SchedulableMemory
從 AWS ParallelCluster 3.2.0 版開始支援 。從 3.2.0 版開始,預設情況下, AWS ParallelCluster 的設定
RealMemory
Slurm 會將節點計算為 Amazon 所傳回記憶體的 95%EC2APIDescribeInstanceTypes
。此組態與 的值無關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,但不是 NVIDIA GPU,則運作狀態檢查會結束,而且任務會在運算節點上執行。僅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
檔案中提供了特定運算節點的運作狀態檢查日誌。此檔案可在叢集 CloudWatch 日誌群組 CloudWatch中的 Amazon 中取得,您可以在其中找到:-
運作
Gpu
狀態檢查所執行動作的詳細資訊,包括啟用和停用服務和持續性模式。 -
GPU 識別碼、序列 ID 和 UUID。
-
運作狀態檢查輸出。
-
注意
HealthChecks
從 3.6.0 AWS ParallelCluster 版開始支援 。 Efa
(選用 )-
指定 中節點的 Elastic Fabric Adapter (EFA) 設定 Slurm queue.
Efa: Enabled:
boolean
GdrSupport:boolean
更新政策:必須停止運算機群,或QueueUpdateStrategy必須設定此設定才能變更更新。
Enabled
(選用 、Boolean
)-
指定已啟用 Elastic Fabric Adapter (EFA)。若要檢視支援 的 Amazon EC2執行個體清單EFA,請參閱 Amazon EC2 適用於 Linux 執行個體的使用者指南 中的支援執行個體類型。如需詳細資訊,請參閱Elastic Fabric Adapter。我們建議您使用叢集 SlurmQueues / Networking / PlacementGroup將執行個體之間的延遲降至最低。
預設值為
false
。注意
不同可用區域不支援 Elastic Fabric Adapter (EFA)。如需詳細資訊,請參閱 SubnetIds。
警告
如果您要在 中定義自訂安全群組SecurityGroups,請確定EFA已啟用 的執行個體是安全群組的成員,該群組允許所有傳入和傳出流量流向自身。
GdrSupport
(選用 、Boolean
)-
(選用) 從 3.0.2 AWS ParallelCluster 版開始,此設定沒有效果。如果 的執行個體類型支援 GPUDirectRDMA(遠端直接記憶體存取EFA),則一律會啟用 Elastic Fabric Adapter () 支援 Slurm 運算資源和作業系統。
注意
AWS ParallelCluster 3.0.0 至 3.0.1 版: 的 支援GPUDirectRDMA已啟用 Slurm 運算資源。特定作業系統 ( 為
alinux2
、ubuntu1804
或p4d.24xlarge
) 上的特定執行個體類型 (Os) GPUDirectRDMA支援ubuntu2004
。預設值為 false。
CapacityReservationTarget
-
CapacityReservationTarget: CapacityReservationId:
string
CapacityReservationResourceGroupArn:string
指定用於運算資源的隨需容量保留。
CapacityReservationId
(選用 、String
)-
佇列運算資源目標的現有容量保留 ID。ID 可以參考 ODCR或 ML 的容量區塊。
在運算資源層級指定此參數時, InstanceType 是選用的,它會自動從保留中擷取。
CapacityReservationResourceGroupArn
(選用 、String
)-
指示作為運算資源容量保留服務連結群組的資源群組的 Amazon Resource Name (ARN)。 從群組 AWS ParallelCluster 識別並使用最適當的容量保留。資源群組必須ODCR針對運算資源列出的每個執行個體類型至少有一個 。如需詳細資訊,請參閱使用隨需容量預留啟動執行個體 (ODCR)。
-
如果在 SlurmQueues / Networking或 SlurmQueues / ComputeResources / 中啟用
PlacementGroup
Networking, AWS ParallelCluster 則選取目標為執行個體類型的資源群組,如果存在,則PlacementGroup
選取運算資源的資源群組。PlacementGroup
必須以 中定義的其中一個執行個體類型為目標ComputeResources。 -
如果
PlacementGroup
/ SlurmQueues Networking或 SlurmQueues / ComputeResources / 中未啟用 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設定為何,都會指派該運算資源至自己的受管置放群組。 -
如果設定為
true
,且已Name
定義 ,則無論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
,都會分別新增至 的結尾 Slurm 節點組態列,格式為Param1=Value1
。您只能指定 Slurm 中未拒絕列出的組態參數
CustomSlurmSettings
。如需拒絕列出的相關資訊 Slurm 組態參數,請參閱 拒絕列出Slurm組態參數CustomSlurmSettings。AWS ParallelCluster 只會檢查參數是否在拒絕清單中。 AWS ParallelCluster 不會驗證您的自訂 Slurm 組態參數語法或語義。您有責任驗證您的自訂 Slurm 組態參數。無效的自訂 Slurm 組態參數可能會導致 Slurm 可能導致叢集建立和更新失敗的常駐程式失敗。
如需如何指定自訂的詳細資訊 Slurm 組態參數 AWS ParallelCluster,請參閱 Slurm組態自訂。
如需關於 Slurm 組態參數,請參閱 中的 slurm.conf
Slurm 文件中)。 注意
CustomSlurmSettings
從 3.6.0 AWS ParallelCluster 版開始支援 。 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
)-
指定 中節點的根磁碟區大小,以 GB (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
。如需詳細資訊,請參閱 Amazon 使用者指南 中的 Amazon EBS磁碟區類型。 EC2
Iops
(選用 、Boolean
)-
定義 IOPS
io1
、io2
和gp3
類型磁碟區的 數目。預設值、支援的值和
volume_iops
volume_size
比率會因VolumeType
和 而異Size
。VolumeType
=io1
-
預設值
Iops
= 100支援的值
Iops
= 100–64000 †最大
volume_iops
volume_size
比率 = IOPS每 GiB 50。5000 至少IOPS需要 100 GiBvolume_size
的 。 GiB VolumeType
=io2
-
預設值
Iops
= 100支援的值
Iops
= 100–64000 (io2
區塊快速磁碟區為 256000) †最大
Iops
Size
比率 = IOPS每 GiB 500。5000 至少IOPS需要 10 GiBSize
的 。 GiB VolumeType
=gp3
-
預設值
Iops
= 3000支援的值
Iops
= 3000–16000 †對於IOPS大於 3000 的磁碟區,最大
Iops
Size
比率 = IOPS每 GiB 500。
† 只有在建立在 Nitro 系統上且佈建超過 32,000 的執行個體上,IOPS才能保證最大值IOPS。其他執行個體最多可以有 32,000 個 IOPS。除非您修改
io1
磁碟區 ,否則先前的磁碟區可能無法達到完整效能。 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modify-volume.htmlio2
Block Express 磁碟區支援R5b
執行個體類型的volume_iops
值上限為 256000。如需詳細資訊,請參閱 Amazon EC2使用者指南 中的io2
Block Express 磁碟區。 Throughput
(選用 、Integer
)-
在 MiB /s 中定義
gp3
磁碟區類型的輸送量。此設定僅在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
(選用 )-
指定 Amazon IAM政策的 Amazon Resource Names (ARNs) 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
)-
純文字 AWS Secrets Manager 秘密的 Amazon Resource Name (ARN),其中包含要在 中使用的 base64 編碼 Munge 金鑰 Slurm 叢集。此 munge 金鑰將用於驗證 RPC Slurm 用戶端命令和 Slurm 作為遠端伺服器的精靈。如果 MungeKeySecretArn 未提供 , AWS ParallelCluster 將產生叢集的隨機 munge 金鑰。
注意
MungeKeySecretArn
從 AWS ParallelCluster 3.8.0 版開始支援 。警告
如果 MungeKeySecretArn 新新增至現有叢集, ParallelCluster在復原或稍後移除 時, 將不會還原先前的 munge Key MungeKeySecretArn。相反地,將產生新的隨機 munge 金鑰。
如果 AWS ParallelCluster 使用者在該特定秘密資源 DescribeSecret上具有 的許可,則 MungeKeySecretArn 已驗證。 MungeKeySecretArn 如果:
-
指定的秘密存在,且
-
秘密為純文字,並包含有效的 base64 編碼字串,以及
-
解碼的二進位 munge 金鑰的大小介於 256 到 8192 位元之間。
如果叢集使用者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")
更新政策: NEW UPDATE POLICY WITH COMPUTE FLEET AND LOGIN NODES STOPPED (錯誤地未在 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。 如需詳細資訊,請參閱 SlurmQueues / ComputeResources / SchedulableMemory。預設值為
false
。警告
啟用記憶體型排程會影響 Slurm 排程器處理任務和節點配置。
如需詳細資訊,請參閱Slurm記憶體式排程。
注意
EnableMemoryBasedScheduling
從 3.2.0 AWS ParallelCluster 版開始支援 。注意
CustomSlurmSettings
(選用 、[Dict]
)-
定義自訂 Slurm 適用於整個叢集的設定。
指定 的清單 Slurm 要附加到所 AWS ParallelCluster 產生
slurm.conf
檔案結尾的鍵值對組態字典。清單中的每個字典都會顯示為新增至 的個別行 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 組態參數,請參閱 拒絕列出Slurm組態參數CustomSlurmSettings。AWS 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 要附加在 AWS ParallelCluster 產生之
slurm.conf
檔案結尾的組態參數。您必須包含 檔案的路徑。路徑開頭可以是
https://
或s3://
。如果您指定自訂 Slurm 的組態參數
CustomSlurmSettingsIncludeFile
,您不得指定自訂 Slurm 的組態參數CustomSlurmSettings
。注意
自訂 Slurm 節點的名稱中不得包含
-st-
或-dy-
模式。這些模式會保留給 管理的節點 AWS ParallelCluster。您只能指定 Slurm 中未拒絕列出的組態參數
CustomSlurmSettingsIncludeFile
。如需拒絕列出的相關資訊 Slurm 組態參數,請參閱 拒絕列出Slurm組態參數CustomSlurmSettings。AWS 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 Resource Name (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 個字元。
此參數會對應至 slurmdbd.conf
的 StorageLoc
參數。如果
DatabaseName
未提供 , ParallelCluster 將使用叢集的名稱來定義 的值StorageLoc
。DatabaseName
允許更新 ,但需要考量下列因素:-
如果資料庫伺服器上尚 DatabaseName 不存在名稱為 的資料庫,slurmdbd 會建立該資料庫。您有責任視需要重新設定新資料庫 (例如新增會計實體:叢集、帳戶、使用者、關聯QOSs等)。
-
如果資料庫伺服器上 DatabaseName 已存在名稱為 的資料庫,slurmdbd 會將其用於 Slurm 會計功能。
-
注意
Database
從 3.3.0 版開始新增 。
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 在單一子網路中,沒有網際網路存取。
注意
從 3.3.0 版開始, AWS ParallelCluster 此備註不相關。
對於 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/
資料夾。 -