Scheduling 區段 - AWS ParallelCluster

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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

指定所使用的排程器類型。支援的值為 slurmawsbatch

更新原則:如果變更此設定,則不允許更新。

注意

awsbatch僅支持alinux2操作系統和x86_64平台。

ScalingStrategy可選String

允許您選擇動態 Slurm 節點如何擴展。支援的值為all-or-nothinggreedy-all-or-nothingbest-effort預設值為all-or-nothing

更新原則:您可以在更新期間變更此設定。

注意

擴展策略僅適用於 Slurm 要恢復的節點,而不適用於最終已在執行的節點。

  • all-or-nothing此策略嚴格遵循 all-or-nothing-approach,旨在避免在擴展過程結束時出現閒置實例。它運行的 all-or-nothing 基礎上,這意味著它要么完全擴展或根本沒有擴展。請注意,當工作需要 500 個以上的節點或跨越多個運算資源時,暫時啟動的執行個體可能會產生額外費用。在三種可能的擴展策略中,此策略的輸送量最低。縮放時間取決於每次 Slurm 恢復程序執行提交的作業數量。此外,您不能擴展到遠遠超過每次執行的預設 RunInstances 資源帳號限制,預設情況下為 1000 個執行個體。您可以在 AWS 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 佇列使用的計算資源類型。支援的值為ONDEMANDSPOTCAPACITY_BLOCK。預設值為 ONDEMAND

注意

如果設定CapacityTypeSPOT,您的帳戶必須包含AWSServiceRoleForEC2Spot服務連結角色。您可以使用以下 AWS CLI 命令創建此角色。

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

如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的 Spot 執行個體請求的服務連結角色

更新原則:必須停止運算叢集,才能變更此設定以進行更新。

Networking

(必要) 定義 AWS Batch 佇列的網路組態。

Networking: SubnetIds: - string AssignPublicIp: boolean SecurityGroups: - string AdditionalSecurityGroups: - string
Networking 屬性
SubnetIds必填[String]

指定要佈建 AWS Batch 佇列的現有子網路識別碼。目前只支援一個子網路。

更新原則:必須停止運算叢集,才能變更此設定以進行更新。

AssignPublicIp可選String

建立或指派公用 IP 位址給 AWS Batch 佇列中的節點。支援的值為 truefalse。預設值取決於您指定的子網路。

更新原則:如果變更此設定,則不允許更新。

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

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

要針對佇列計算資源作為目標的現有容量保留區識別碼。識別碼可以參考 OCRML 的容量區塊

保留項目必須使用執行個體使用的相同平台。例如,如果您的執行個體在上執行rhel8,您的容量保留必須在 RHEL 平台上執行。如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的支援平台

注意

如果您包含Instances在叢集配置中,則必須從組態中排除此佇列層級CapacityReservationId設定。

CapacityReservationResourceGroupArn可選String

資源群組的 Amazon 資源名稱 (ARN),用作佇列運算資源的服務連結容量保留群組。 AWS ParallelCluster 根據下列條件,識別並使用資源群組中最適當的產能保留:

資源群組必須在佇列的所有計算資源和可用區域中保留在可用區域中的每個執行個體類型至少一個 ODCR。如需詳細資訊,請參閱 使用 ODCR (隨需容量保留) 啟動執行個體

如需有關多個子網路組態需求的詳細資訊,請參閱 Networking/SubnetIds

注意

在 AWS ParallelCluster 版本 3.4.0 中添加了多個可用區域。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

CapacityType可選String

Slurm佇列使用的計算資源類型。支援的值為 ONDEMANDSPOT。預設值為 ONDEMAND

注意

如果將設定CapacityTypeSPOT,您的帳戶必須具有AWSServiceRoleForEC2Spot服務連結角色。您可以使用以下 AWS CLI 命令創建此角色。

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

如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的 Spot 執行個體請求的服務連結角色

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

AllocationStrategy可選String

為中定義的所有計算資源指定配置策略Instances

有效值:lowest-price | capacity-optimized

預設:lowest-price

lowest-price
  • 如果您使用CapacityType = ONDEMAND,EC2 叢集會使用價格決定訂單,並先啟動最低價格執行個體。

  • 如果您使用CapacityType = SPOT,EC2 叢集會從具有可用容量的最低價格競價型執行個體集區啟動執行個體。如果集區在滿足所需容量之前耗盡容量,EC2 Fleet 會為您啟動執行個體來滿足您的請求。特別是,EC2 叢集會從具有可用容量的最低價格競價型執行個體集區啟動執行個體。EC2 叢集可能會從數個不同的集區啟動 Spot 執行個體。

  • 如果您設定CapacityType = CAPACITY_BLOCK,則沒有配置策略,因此無法配置AllocationStrategy參數。

capacity-optimized
  • 如果您已設定CapacityType = ONDEMAND,則capacity-optimized無法使用。

  • 如果已設定CapacityType = SPOT,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組態參數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

標籤值。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

HealthChecks(選擇性)

針對佇列中的所有計算資源指定計算節點健康狀態檢查。

Gpu(選擇性)

指定佇列中所有運算資源的 GPU 健康狀態檢查。

注意

AWS ParallelCluster 在使用 alinux2 ARM 作業系統Gpu的節點中不支援HealthChecks/。這些平台不支援 NVIDIA 資料中心 GPU 管理員 (DCGM)

Enabled可選Boolean

是否在運算節點上 AWS ParallelCluster 執行 GPU 健康狀態檢查。預設值為 false

Gpu健康檢查行為
  • 如果設定EnabledGpu/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健康狀態檢查時:

    1. 它會偵測nvidia-dcgmnvidia-fabricmanager服務是否正在執行。

    2. 如果這些服務未執行,則Gpu健康狀態檢查會啟動它們。

    3. 它檢測持久性模式是否已啟用。

    4. 如果未啟用持續性模式,則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 中。

如果您只設定一個執行個體類型,而且想要使用多個子網路,請在中定義您的執行個體類型,InstancesInstanceType不是。

例如,定義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佇列中的節點。支援的值為 truefalse。您指定的子網路會決定預設值。具有公用 IP 的子網路預設為指派公用 IP 位址。

如果您定義p4d或hpc6id執行個體類型,或其他具有多個網路介面卡或網路介面卡的執行個體類型,則必須將 HeadNode/Networking/設定ElasticIptrue為提供公用存取權。 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

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Id可選String

Slurm佇列使用之現有叢集置放群組的放置群組名稱。請務必提供放置群組名稱,而非 ID

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Name可選String

Slurm佇列使用之現有叢集置放群組的放置群組名稱。請務必提供放置群組名稱,而非 ID

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

注意
Proxy(選擇性)

指定Slurm佇列的代理伺服器設定。

Proxy: HttpProxyAddress: string

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

HttpProxyAddress可選String

定義Slurm佇列的 HTTP 或 HTTPS 代理伺服器。通常情況下,它是https://x.x.x.x:8080

沒有預設值。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

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 問題

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

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_64arm64架構。

叢集配置必須定義InstanceType執行個體。如果兩者都已定義,則 AWS ParallelCluster 失敗。

定義時InstanceType,您無法定義多個子網路。如果您只設定一個執行個體類型,而且想要使用多個子網路,請在中定義您的執行個體類型,Instances而不是在中InstanceType定義。如需詳細資訊,請參閱 Networking/SubnetIds

如果您定義p4d或hpc6id執行個體類型,或其他具有多個網路介面或網路介面卡的執行個體類型,則必須在私有子網路中啟動運算執行個體,如中所述使用兩個子網路的 AWS ParallelCluster。 AWS 只能將公有 IP 指派給透過單一網路介面啟動的執行個體。如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的執行個體啟動期間指派公用 IPv4 地址

更新原則:必須停止運算叢集,才能變更此設定以進行更新。

Instances(必填)

指定計算資源的執行個體類型清單。若要指定執行個體類型清單的配置策略,請參閱AllocationStrategy

叢集配置必須定義InstanceTypeInstances。如果兩者都已定義,則 AWS ParallelCluster 失敗。

如需詳細資訊,請參閱 使用 Slurm 進行多個實例類型分配

Instances: - InstanceType: string
注意

從 AWS ParallelCluster 版本 3.7.0 開始,如果您在執行個體中設定多個執行個體類型,則EnableMemoryBasedScheduling可以啟用此功能。

適用於 AWS ParallelCluster 版本 3.2.0 至 3.6 版本。 xEnableMemoryBasedScheduling如果您在執行個體中設定多個執行個體類型,則無法啟用。

更新原則:對於此清單值設定,可以在更新期間新增新值,或者在移除現有值時必須停止運算叢集。

InstanceType必填String

要在此Slurm計算資源中使用的執行個體類型。叢集中的所有執行個體類型都必須使用相同的處理器架構 (x86_64或) arm64

中列出的執行個體類型Instances必須具有:

中列出的執行個體類型Instances可以具有:

  • 不同的記憶體容量。

    在這種情況下,最小內存將被設置為可消耗Slurm資源。

    注意

    從 AWS ParallelCluster 版本 3.7.0 開始,如果您在執行個體中設定多個執行個體類型,則EnableMemoryBasedScheduling可以啟用此功能。

    適用於 AWS ParallelCluster 版本 3.2.0 至 3.6 版本。 xEnableMemoryBasedScheduling如果您在執行個體中設定多個執行個體類型,則無法啟用。

  • 不同的網卡。

    在這種情況下,為計算資源設定的網路介面數目是由具有最少網路卡數目的執行個體類型所定義。

  • 不同的網絡帶寬。

  • 不同的實例存儲大小。

如果您定義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_BLOCKMaxCount必須等於或大於 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

任何執行個體啟動前,EC2 Spot 執行個體支付的最高價格。預設值為隨需價格。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

DisableSimultaneousMultithreading可選Boolean

如果true,停用Slurm佇列中節點上的多執行緒。預設值為 false

並非所有執行個體類型都能停用多執行緒。如需支援停用多執行緒的執行個體類型清單,請參閱 Amazon EC2 Linux 執行個體使用者指南中每個執行個體類型每個 CPU 核心的 CPU 核心和執行緒。

更新原則:必須停止運算叢集,才能變更此設定以進行更新。

SchedulableMemory可選Integer

在計算資源的運算節點Slurm參數RealMemory中設定的 MiB 記憶體容量。這個值是啟用 SlurmSettings/EnableMemoryBasedScheduling時,工作可用的節點記憶體上限。預設值是 Amazon EC2 執行個體類型中列出且由 Amazon EC2 API 傳回的記憶體的 95% DescribeInstanceTypes。確保將 GiB 中給出的值轉換為 MiB。

支援的值:1-EC2Memory

EC2Memory是列在 Amazon EC2 執行個體類型中並由 Amazon EC2 API 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

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

HealthChecks(選擇性)

指定計算資源的健康狀態檢查。

Gpu(選擇性)

針對計算資源指定 GPU 健康狀態檢查。

Enabled可選Boolean

是否 AWS ParallelCluster 對佇列中的資源執行 GPU 健康狀態檢查。預設值為 false

注意

AWS ParallelCluster 在使用 alinux2 ARM 作業系統Gpu的節點中不支援HealthChecks/。這些平台不支援 NVIDIA 資料中心 GPU 管理員 (DCGM)

Gpu健康檢查行為
  • 如果將Gpu/設定Enabledtrue,則會對運算資源 AWS ParallelCluster 執行健全狀況 GPU 健康狀態檢查。

  • Gpu健康狀態檢查會對運算資源執行健康狀態檢查,以防止在具有降級 GPU 的節點上提交工作。

  • 如果計算節點未通過Gpu健康狀態檢查,則計算節點狀態會變更為DRAIN。新工作不會在此節點上啟動。現有工作會執行至完成。所有執行中的作業完成後,如果計算節點是動態節點,則會終止運算節點,如果它是靜態節點,則會被取代。

  • Gpu健全狀況檢查的持續時間取決於選取的執行個體類型、執行個體中的 GPU 數目,以及Gpu健全狀況檢查目標的數目 (相當於工作 GPU 目標的數目)。對於具有 8 個 GPU 的執行個體,一般持續時間不到 3 分鐘。

  • 如果Gpu健康狀態檢查在不受支援的執行個體上執行,則會結束並在計算節點上執行工作。例如,如果執行個體沒有 GPU,或者執行個體具有 GPU,但它不是 NVIDIA GPU,則運作狀態檢查就會結束,而工作會在運算節點上執行。僅支援 NVIDIA 顯示卡。

  • Gpu健全狀況檢查會使用此dcgmi工具對節點執行健全狀況檢查,並執行下列步驟:

    在節點中開始Gpu健康狀態檢查時:

    1. 它會偵測nvidia-dcgmnvidia-fabricmanager服務是否正在執行。

    2. 如果這些服務未執行,則Gpu健康狀態檢查會啟動它們。

    3. 它檢測持久性模式是否已啟用。

    4. 如果未啟用持續性模式,則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 的 EC2 執行個體清單,請參閱 Amazon EC2 Linux 執行個體使用者指南中支援的執行個體類型。如需詳細資訊,請參閱 Elastic Fabric Adapter。建議您使用叢集 SlurmQueues/Networking/PlacementGroup來減少執行個體之間的延遲。

預設值為 false

注意

不同的可用區域不支援 Elastic Fabric Adapter (EFA)。如需詳細資訊,請參閱SubnetIds

警告

如果您要在中定義自訂安全性群組 SecurityGroups,請確定已啟用 EFA 的執行個體是允許所有輸入和輸出流量傳輸到本身的安全性群組的成員。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

GdrSupport可選Boolean

(選擇性) 從 AWS ParallelCluster 版本 3.0.2 開始,此設定沒有任何作用。如果Slurm運算資源和作業系統的執行個體類型支援,GPUDirect RDMA (遠端直接記憶體存取) 的彈性網狀架構介面卡 (EFA) 支援一律會啟用。

注意

AWS ParallelCluster 版本 3.0.0 到 3.0.1:已 Support 對運算資源啟用對 GPU 直接 RDMA 的支援。Slurm特定作業系統 (是alinux2centos7、或) 上的特定執行個體類型 (p4d.24xlarge) Support 援 GPUDirect RDMA Os的支援。ubuntu1804 ubuntu2004預設值為 false。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

CapacityReservationTarget
CapacityReservationTarget: CapacityReservationId: string CapacityReservationResourceGroupArn: string

指定用於計算資源的隨需容量保留。

CapacityReservationId可選String

要針對佇列計算資源作為目標的現有容量保留區識別碼。識別碼可以參考 OCRML 的容量區塊

在計算資源層級指定此參數時, InstanceType為選擇性參數,系統會自動從保留區擷取該參數。

CapacityReservationResourceGroupArn可選String

指示資源群組的 Amazon 資源名稱 (ARN),該資源群組用作運算資源的服務連結容量保留群組。 AWS ParallelCluster 識別並使用群組中最適當的容量保留。針對計算資源列出的每個執行個體類型,資源群組必須至少有一個 ODCR。如需詳細資訊,請參閱 使用 ODCR (隨需容量保留) 啟動執行個體

更新原則:必須停止運算叢集,或者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設定。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Name可選String

用於計算資源之現有叢集置放群組的置放群組名稱。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

注意
  • 如果兩者都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組態參數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

標籤值。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

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

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Encrypted可選Boolean

如果true,則會加密Slurm佇列中節點的根磁碟區。預設值為 false

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

VolumeType可選String

指定Slurm佇列中節點的 Amazon EBS 磁碟區類型。支援的值為gp2gp3io1io2sc1st1、和standard。預設值為 gp3

如需詳細資訊,請參閱《Linux 執行個體的 Amazon EC2 使用者指南》中的 Amazon EBS 磁碟區類型

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Iops可選Boolean

定義io1io2gp3類型磁碟區的 IOPS 數目。

預設值、支援的值和總成volume_size比例會volume_iops隨和而有所VolumeType不同Size

VolumeType = io1

預設值 Iops =

支援的值 Iops =

最大volume_iopsvolume_size率 = 每 GiB 50 IOPS。5000 IOPS 需要一volume_size個至少 100 GiB。

VolumeType = io2

預設值 Iops =

支援的值 Iops = 100 至 64 萬 (對於io2區塊快速磁碟區為 256000) †

最大IopsSize率 = 每 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 Linux 執行個體使用者指南中的io2塊快速磁碟區

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Throughput可選Integer

定義gp3磁碟區類型的輸送量,以 MIB/s 為單位。此設定只有在為時VolumeType才有效gp3。預設值為 125。支援的值:每秒

與的比率IopsThroughput以不超過 0.25。每秒 1000 MB 的最大輸送量需要Iops設定至少為 4000。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

EphemeralVolume可選Boolean

指定暫時體積塊的設定。暫時磁碟區是透過將所有執行個體儲存磁碟區合併為使用檔案系統格式化的單一邏輯磁碟區來建立。ext4預設值為 /scratch。如果執行個體類型沒有任何執行個體儲存磁碟區,則不會建立暫時磁碟區。如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的執行個體存放磁碟區。

EphemeralVolume: MountDir: string

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

MountDir可選String

佇列中每個節點之暫時磁碟區的掛載目錄。Slurm

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

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://

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Args可選[String]

要傳遞給指令碼的引數清單。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Script必填String

要用於單一指令碼的檔案。檔案路徑可以以https://或開頭s3://

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Args可選[String]

要傳遞給單一指令碼的引數清單。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

OnNodeConfigured可選String

指定所有節點啟動程序動作完成後,要在Slurm佇列中的節點上執行的指令碼序列或單一指令碼。 AWS ParallelCluster 不支持包括單個腳本和相同Sequence的自定義操作。如需詳細資訊,請參閱 自定義引導操作

Sequence(選擇性)

要執行的指令碼清單。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Script必填String

要使用的檔案。檔案路徑可以以https://或開頭s3://

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Args可選[String]

要傳遞給指令碼的引數清單。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Script必填String

要用於單一指令碼的檔案。檔案路徑可以以https://或開頭s3://

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

Args可選[String]

要傳遞給單一指令碼的引數清單。

更新原則:必須停止運算叢集,或者QueueUpdateStrategy必須設定,才能變更此設定以進行更新。

更新原則:必須停止運算叢集,或者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佇列的預設執行個體角色或執行個體設定檔。您無法同時指定InstanceProfileInstanceRole。格式是 arn:${Partition}:iam::${Account}:instance-profile/${InstanceProfileName}

如果已指定,則無法指AdditionalIamPoliciesS3Access和設定。

建議您指定其中一個或兩個S3AccessAdditionalIamPolicies設定,因為新增至的功能 AWS ParallelCluster 通常需要新的權限。

更新原則:必須停止運算叢集,才能變更此設定以進行更新。

InstanceRole可選String

指定執行個體角色,以覆寫Slurm佇列的預設執行個體角色或執行個體設定檔。您無法同時指定InstanceProfileInstanceRole。格式是 arn:${Partition}:iam::${Account}:role/${RoleName}

如果已指定,則無法指AdditionalIamPoliciesS3Access和設定。

建議您指定其中一個或兩個S3AccessAdditionalIamPolicies設定,因為新增至的功能 AWS ParallelCluster 通常需要新的權限。

更新原則:您可以在更新期間變更此設定。

S3Access(選擇性)

指定Slurm佇列的值區。這是用來產生政策,將指定存取權授與Slurm佇列中的值區。

如果已指定,則無法指InstanceRoleInstanceProfile和設定。

建議您指定其中一個或兩個S3AccessAdditionalIamPolicies設定,因為新增至的功能 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 不同。名稱不能使用。

如果已指定,則無法指InstanceRoleInstanceProfile和設定。

我們建議您使用,AdditionalIamPoliciesAdditionalIamPolicies為已新增至 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 Dns: DisableManagedDns: boolean HostedZoneId: string UseEc2Hostnames: boolean

SlurmSettings性質

ScaledownIdletime可選Integer

定義沒有工作且Slurm節點終止的時間 (以分鐘為單位)。

預設值為 10

更新原則:必須停止運算叢集,才能變更此設定以進行更新。

MungeKeySecretArn可選String

包含要在 Slurm 叢集中使用的 base64 編碼的 AWS Secrets Manager 鑰的明文秘密的 Amazon 資源名稱 (ARN)。這個 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 開始支援。

注意

從 AWS ParallelCluster 版本 3.7.0 開始,如果您在執行個體中設定多個執行個體類型,則EnableMemoryBasedScheduling可以啟用此功能。

適用於 AWS ParallelCluster 版本 3.2.0 至 3.6 版本。 xEnableMemoryBasedScheduling如果您在執行個體中設定多個執行個體類型,則無法啟用。

更新原則:必須停止運算叢集,才能變更此設定以進行更新。

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組態參數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.conf檔案結尾的自訂Slurm組態參數組 AWS ParallelCluster 成。

您必須包含檔案的路徑。路徑可以以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 資源名稱(ARN)。此密碼與UserName和Slurm帳戶一起使用,以便在資料庫伺服器上進行驗證。

注意

使用 AWS Secrets Manager 控制台創建密碼時,請務必選擇「其他類型的密碼」,選擇純文本,並且僅在密碼中包含密碼文本。

如需如何使用建立密碼 AWS Secrets Manager 的詳細資訊,請參閱建立 AWS Secrets Manager 密碼

如果使用者具有的權限 DescribeSecretPasswordSecretArn則會驗證。 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 版開始新增。

Dns

(選擇性) 定義套用至整個叢集的設定。Slurm

Dns: DisableManagedDns: boolean HostedZoneId: string UseEc2Hostnames: boolean

Dns性質

DisableManagedDns可選Boolean

如果未建立叢集的 DNS 項目true,且無法解析Slurm節點名稱。

依預設, AWS ParallelCluster 會建立 Route 53 託管區域,其中啟動時會註冊節點。預設值為 false。如果設定DisableManagedDnstrue,則不會由建立託管區域 AWS ParallelCluster。

若要瞭解如何使用此設定在沒有網際網路存取權的子網路中部署叢集,請參閱AWS ParallelCluster在無法存取網際網路的單一子網路中

警告

叢集必須使用名稱解析系統才能正常運作。如果設定DisableManagedDnstrue,您必須提供名稱解析系統。若要使用 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,Slurm 組態檔案會使用 AWS ParallelCluster prologepilog指令碼設定:

  • prolog執行以在分配每個工作時,將節點資訊新增至運算節點/etc/hosts上。

  • epilog運行以清除寫入的內容prolog

若要新增自訂prologepilog指令碼,請將它們分別新增至/opt/slurm/etc/pcluster/prolog.d//opt/slurm/etc/pcluster/epilog.d/資料夾。

更新原則:如果變更此設定,則不允許更新。