執行您的第一份工作 AWS ParallelCluster - AWS ParallelCluster

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

執行您的第一份工作 AWS ParallelCluster

本教程將引導您完成運行您的第一個 Hello World 工作 AWS ParallelCluster

使用命 AWS ParallelCluster 令列介面 (CLI) 或 API 時,您只需為建立或更新 AWS ParallelCluster 映像和叢集時建立的 AWS 資源付費。如需詳細資訊,請參閱 AWS 使用的服務 AWS ParallelCluster

AWS ParallelCluster UI 建立在無伺服器架構上,在大多數情況下,您可以在 AWS 免費方案類別中使用它。如需詳細資訊,請參閱 AWS ParallelClusterUI 成本

必要條件

確認安裝

首先,我們驗證 AWS ParallelCluster 是否正確,包括 Node.js 依賴項,已安裝和配置。

$ node --version v16.8.0 $ pcluster version { "version": "3.7.0" }

這會傳回的執行版本 AWS ParallelCluster。

建立您的第一個叢集

現在要建立您的第一個叢集。由於本教學課程的工作負載不是效能密集的工作負載,我們可以使用 t2.micro 的預設執行個體大小。(對於生產工作負載,您可以選擇最適合您需求的執行個體大小。) 讓我們呼叫您的叢集hello-world

$ pcluster create-cluster \ --cluster-name hello-world \ --cluster-configuration hello-world.yaml
注意

必須為大多數指pcluster令指定 AWS 區域 要使用的。如果未在AWS_DEFAULT_REGION環境變數或~/.aws/config檔案[default]區段中指定region設定,則必須在指pcluster令行上提供--region參數。

如果輸出提供有關配置的消息,則需要運行以下命令來配置 AWS ParallelCluster:

$ pcluster configure --config hello-world.yaml

如果命pcluster create-cluster令成功,您會看到類似下列內容的輸出:

{ "cluster": { "clusterName": "hello-world", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:xxx:stack/xxx", "region": "...", "version": "...", "clusterStatus": "CREATE_IN_PROGRESS" } }

您可以使用下列方式監視叢集的建立:

$ pcluster describe-cluster --cluster-name hello-world

建立叢集時的clusterStatus報告 CREATE_IN_PROGRESS ""。成功建立叢集時clusterStatus轉換為 CREATE_COMPLETE ""。輸出還為我們提供了publicIpAddress和我們privateIpAddress的頭節點。

登錄到您的頭節點

使用您的 OpenSSH PEM 文件登錄到您的頭節點。

$ pcluster ssh --cluster-name hello-world -i /path/to/keyfile.pem

登入之後,執行命令 sinfo 來驗證您的運算節點是否已設置和設定。

$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 10 idle~ queue1-dy-queue1t2micro-[1-10]

輸出顯示,我們有一個隊列在我們的集群,最多十個節點。

使用思盧姆運行你的第一份工作

接著,我們建立一個任務,它會休眠一會兒,然後輸出其自己的主機名稱。建立稱為 hellojob.sh 的檔案,其中具有以下內容。

#!/bin/bash sleep 30 echo "Hello World from $(hostname)"

接著,使用 sbatch 來提交任務,並驗證它是否執行。

$ sbatch hellojob.sh Submitted batch job 2

現在,您可以檢視佇列並檢查此任務的狀態。新 Amazon EC2 執行個體的佈建會在背景啟動。您可以使用sinfo指令監視叢集執行個體的狀態。

$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 2 queue1 hellojob ec2-user CF 3:30 1 queue1-dy-queue1t2micro-1

輸出顯示工作已提交至queue1。等待 30 秒讓任務完成,然後再次執行 squeue

$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)

現在佇列中沒有任何任務,我們可以在目前的目錄中檢查輸出。

$ ls -l total 8 -rw-rw-r-- 1 ec2-user ec2-user 57 Sep 1 14:25 hellojob.sh -rw-rw-r-- 1 ec2-user ec2-user 43 Sep 1 14:30 slurm-2.out

在輸出中,我們看到一個 "out" 文件。我們可以從我們的工作中看到輸出:

$ cat slurm-2.out Hello World from queue1-dy-queue1t2micro-1

輸出也會顯示我們的任務已在執行個體 queue1-dy-queue1t2micro-1 上成功執行。

在您剛剛建立的叢集中,叢集的所有節點之間只會共用主目錄。

若要進一步瞭解如何建立和使用叢集,請參閱最佳實務

如果您的應用程式需要共用軟體、程式庫或資料,請考慮下列選項: