從 AWS ParallelCluster 2.x 移動到 3.x - AWS ParallelCluster

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

從 AWS ParallelCluster 2.x 移動到 3.x

自訂引導操作

使用 AWS ParallelCluster 3 時,您可以使用和 Scheduling/SlurmQueues區段中的參數 (在版本 2 中) 和 OnNodeStart (pre_install在 AWS ParallelCluster 版本 2 中),為頭節點和OnNodeConfigured計算節點指定不同的自訂啟動程序動作指令碼。post_install AWS ParallelCluster HeadNode如需詳細資訊,請參閱 自訂引導動作

為 AWS ParallelCluster 2 開發的自定義引導操作腳本必須適應在 AWS ParallelCluster 3 中使用:

  • 我們不建議使用/etc/parallelcluster/cfnconfigcfn_node_type區分主節點和計算節點。相反地,我們建議您在HeadNodeScheduling/中指定兩個不同的指令碼SlurmQueues

  • 如果您想要繼續載入/etc/parallelcluster/cfnconfig以在啟動程序動作指令碼中使用,請注意的值cfn_node_type已從 "MasterServer" 變更為 "HeadNode" (請參閱:包容性語言)。

  • 在 AWS ParallelCluster 2 上,引導動作指令碼的第一個輸入引數是指令碼的 S3 URL 並保留。在 AWS ParallelCluster 3 中,只有在配置中配置的參數傳遞給腳本。

警告

不支持使用通過/etc/parallelcluster/cfnconfig文件提供的內部變量。此檔案可能會在 future 版本中移除。

AWS ParallelCluster 2.x 和 3.x 使用不同的配置文件語法

AWS ParallelCluster 3.x 配置使用 YAML 語法。您可以在以下位置找到完整參考資料組態檔案

除了需要 YAML 檔案格式之外,已在 AWS ParallelCluster 3.x 中更新了許多組態區段、設定和參數值。在本節中,我們會注意到 AWS ParallelCluster 組態的主要變更,以及說明每個版本之間的差異的 side-by-side AWS ParallelCluster範例。

啟用和停用超執行緒的多重排程器佇列組態範例

AWS ParallelCluster 2:

[cluster default] queue_settings = ht-enabled, ht-disabled ... [queue ht-enabled] compute_resource_settings = ht-enabled-i1 disable_hyperthreading = false [queue ht-disabled] compute_resource_settings = ht-disabled-i1 disable_hyperthreading = true [compute_resource ht-enabled-i1] instance_type = c5n.18xlarge [compute_resource ht-disabled-i1] instance_type = c5.xlarge

AWS ParallelCluster 3:

... Scheduling: Scheduler: slurm SlurmQueues: - Name: ht-enabled Networking: SubnetIds: - compute_subnet_id ComputeResources: - Name: ht-enabled-i1 DisableSimultaneousMultithreading: true InstanceType: c5n.18xlarge - Name: ht-disabled Networking: SubnetIds: - compute_subnet_id ComputeResources: - Name: ht-disabled-i1 DisableSimultaneousMultithreading: false InstanceType: c5.xlarge

Lustre 檔案系統組態的新 FSx 範例

AWS ParallelCluster 2:

[cluster default] fsx_settings = fsx ... [fsx fsx] shared_dir = /shared-fsx storage_capacity = 1200 imported_file_chunk_size = 1024 import_path = s3://bucket export_path = s3://bucket/export_dir weekly_maintenance_start_time = 3:02:30 deployment_type = PERSISTENT_1 data_compression_type = LZ4

AWS ParallelCluster 3:

... SharedStorage: - Name: fsx MountDir: /shared-fsx StorageType: FsxLustre FsxLustreSettings: StorageCapacity: 1200 ImportedFileChunkSize: 1024 ImportPath: s3://bucket ExportPath: s3://bucket/export_dir WeeklyMaintenanceStartTime: "3:02:30" DeploymentType: PERSISTENT_1 DataCompressionType: LZ4

為 Lustre 檔案系統掛載現有 FSx 的叢集配置範例

AWS ParallelCluster 2:

[cluster default] fsx_settings = fsx ... [fsx fsx] shared_dir = /shared-fsx fsx_fs_id = fsx_fs_id

AWS ParallelCluster 3:

... SharedStorage: - Name: fsx MountDir: /shared-fsx StorageType: FsxLustre FsxLustreSettings: FileSystemId: fsx_fs_id

含有 Intel HPC 作業平台規格軟體堆疊的叢集範例

AWS ParallelCluster 2:

[cluster default] enable_intel_hpc_platform = true ...

AWS ParallelCluster 3:

... AdditionalPackages: IntelSoftware: IntelHpcPlatform: true

備註:

自訂 IAM 組態範例,包括:執行個體設定檔、執行個體角色、執行個體的其他政策,以及與叢集相關聯之 lambda 函數的角色

AWS ParallelCluster 2:

[cluster default] additional_iam_policies = arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess,arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess ec2_iam_role = ec2_iam_role iam_lambda_role = lambda_iam_role ...

AWS ParallelCluster 3:

... Iam: Roles: CustomLambdaResources: lambda_iam_role HeadNode: ... Iam: InstanceRole: ec2_iam_role Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ... Iam: InstanceProfile: iam_instance_profile - Name: queue2 ... Iam: AdditionalIamPolicies: - Policy: arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess - Policy: arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess

備註:

  • 對於 AWS ParallelCluster 2,IAM 設定會套用至叢集的所有執行個體,且additional_iam_policies無法搭配使用ec2_iam_role

  • 對於 AWS ParallelCluster 3,您可以為頭節點和運算節點設定不同的 IAM 設定,甚至可以為每個運算佇列指定不同的 IAM 設定。

  • 對於 AWS ParallelCluster 3,您可以使用 IAM 執行個體設定檔做為 IAM 角色的替代方案。 InstanceProfileInstanceRole或不AdditionalIamPolicies能一起配置。

自訂啟動程序動作範例

AWS ParallelCluster 2:

[cluster default] s3_read_resource = arn:aws:s3:::bucket_name/* pre_install = s3://bucket_name/scripts/pre_install.sh pre_install_args = 'R curl wget' post_install = s3://bucket_name/scripts/post_install.sh post_install_args = "R curl wget" ...

AWS ParallelCluster 3:

... HeadNode: ... CustomActions: OnNodeStart: Script: s3://bucket_name/scripts/pre_install.sh Args: - R - curl - wget OnNodeConfigured: Script: s3://bucket_name/scripts/post_install.sh Args: ['R', 'curl', 'wget'] Iam: S3Access: - BucketName: bucket_name Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ... CustomActions: OnNodeStart: Script: s3://bucket_name/scripts/pre_install.sh Args: ['R', 'curl', 'wget'] OnNodeConfigured: Script: s3://bucket_name/scripts/post_install.sh Args: ['R', 'curl', 'wget'] Iam: S3Access: - BucketName: bucket_name

具有 S3 儲存貯體資源讀取和寫入存取權的叢集範例

AWS ParallelCluster 2:

[cluster default] s3_read_resource = arn:aws:s3:::bucket/read_only/* s3_read_write_resource = arn:aws:s3:::bucket/read_and_write/* ...

AWS ParallelCluster 3:

... HeadNode: ... Iam: S3Access: - BucketName: bucket_name KeyName: read_only/ EnableWriteAccess: False - BucketName: bucket_name KeyName: read_and_write/ EnableWriteAccess: True Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ... Iam: S3Access: - BucketName: bucket_name KeyName: read_only/ EnableWriteAccess: False - BucketName: bucket_name KeyName: read_and_write/ EnableWriteAccess: True

包容性語言

AWS ParallelCluster 3 在 AWS ParallelCluster 2 中使用「主節點」的地方使用「頭節點」一詞。這包含下列項目:

  • 在 AWS Batch 工作環境中匯出的變數已變更:從變更MASTER_IPPCLUSTER_HEAD_NODE_IP

  • 所有 AWS CloudFormation 輸出都從變更Master*HeadNode*

  • 全部 NodeType 和標籤從變更MasterHeadNode

排程器 Support

AWS ParallelCluster 3.x 不支持網格引擎(SGE)和扭矩調度器的兒子。

awsbsub這些指 AWS Batch 令awsbhostsawsbkillawsboutawsbqueuesawsbstat、和作為單獨的 aws-parallelcluster-awsbatch-cli PyPI 套件散佈。此套件是由 AWS ParallelCluster 在頭節點上安裝的。您仍然可以從叢集的頭節點使用這些 AWS Batch 指令。但是,如果您希望從頭節點以外的位置使用 AWS Batch 命令,則必須先安裝 aws-parallelcluster-awsbatch-cli PyPI 套件。

AWS ParallelCluster CLI

命 AWS ParallelCluster 令列介面 (CLI) 已變更。有關新語法的說明,請參閱AWS ParallelCluster CLI 命令。CLI 的輸出格式為 JSON 字串。

配置新叢集

與 AWS ParallelCluster 2 相比,該pcluster configure命令在 AWS ParallelCluster 3 中包含不同的參數。如需詳細資訊,請參閱 pcluster configure

另請注意,配置文件語法已從 AWS ParallelCluster 2 更改。如需叢集配置設定的完整參考資料,請參閱叢集配置檔

建立新叢集

AWS ParallelCluster 2 的pcluster create命令已被pcluster create-cluster命令替換。

請注意 AWS ParallelCluster 2.x 中的默認行為(沒有選-nw項)是等待集群創建事件,而 AWS ParallelCluster 3.x 命令立即返回。您可以使用來監視叢集建立進度pcluster describe-cluster

AWS ParallelCluster 3 配置文件包含單個集群定義,因此不再需要該-t參數。

以下是範例組態檔案。

# AWS ParallelCluster v2 $ pcluster create \ -r REGION \ -c V2_CONFIG_FILE \ -nw \ -t CLUSTER_TEMPLATE \ CLUSTER_NAME # AWS ParallelCluster v3 $ pcluster create-cluster \ --region REGION \ --cluster-configuration V3_CONFIG_FILE \ --cluster-name CLUSTER_NAME

列出叢集

pcluster list AWS ParallelCluster 2.x 指令必須以指pcluster list-clusters令取代。

備註:您需要 AWS ParallelCluster v2 CLI 列出以. x 版本建立的 AWS ParallelCluster叢集。如AWS ParallelCluster 在虛擬環境中安裝 (建議使用)需如何安裝使 AWS ParallelCluster 用虛擬環境的多個版本,請參閱。

# AWS ParallelCluster v2 $ pcluster list -r REGION # AWS ParallelCluster v3 $ pcluster list-clusters --region REGION

啟動和停止叢集

pcluster startpcluster stop AWS ParallelCluster 2.x 指令必須以指pcluster update-compute-fleet令取代。

啟動運算叢集:

# AWS ParallelCluster v2 $ pcluster start \ -r REGION \ CLUSTER_NAME # AWS ParallelCluster v3 - Slurm fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status START_REQUESTED # AWS ParallelCluster v3 - AWS Batch fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status ENABLED

停止運算叢集:

# AWS ParallelCluster v2 $ pcluster stop \ -r REGION \ CLUSTER_NAME # AWS ParallelCluster v3 - Slurm fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status STOP_REQUESTED # AWS ParallelCluster v3 - AWS Batch fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status DISABLED

連線至叢集

pcluster ssh AWS ParallelCluster 2.x 指令在 AWS ParallelCluster 3.x 中有不同的參數名稱。請參閱pcluster ssh

連線至叢集:

# AWS ParallelCluster v2 $ pcluster ssh \ -r REGION \ CLUSTER_NAME \ -i ~/.ssh/id_rsa # AWS ParallelCluster v3 $ pcluster ssh \ --region REGION \ --cluster-name CLUSTER_NAME \ -i ~/.ssh/id_rsa

IMDS 組態設定更新

從 3.0.0 版開始,依預 AWS ParallelCluster 設,支援將頭節點的 IMDS (以及執行個體設定檔認證) 存取權限制為超級使用者子集。如需更多詳細資訊,請參閱 Imds 屬性