本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
執行您的第一份工作 AWS ParallelCluster
本教程將引導您完成運行您的第一個 Hello World 工作 AWS ParallelCluster
使用命 AWS ParallelCluster 令列介面 (CLI) 或 API 時,您只需為建立或更新 AWS ParallelCluster 映像和叢集時建立的 AWS 資源付費。如需詳細資訊,請參閱 AWS 使用的服務 AWS ParallelCluster。
AWS ParallelCluster UI 建立在無伺服器架構上,在大多數情況下,您可以在 AWS 免費方案類別中使用它。如需詳細資訊,請參閱 AWS ParallelClusterUI 成本。
必要條件
-
AWS ParallelCluster 已安裝。
-
AWS CLI 已安裝並設定。
-
你有一個 Amazon EC2 key pair。
確認安裝
首先,我們驗證 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
上成功執行。
在您剛剛建立的叢集中,叢集的所有節點之間只會共用主目錄。
若要進一步瞭解如何建立和使用叢集,請參閱最佳實務。
如果您的應用程式需要共用軟體、程式庫或資料,請考慮下列選項:
-
如中所述,建立包含您軟體的 AWS ParallelCluster 已啟用自訂 AMI 構建自定義 AWS ParallelCluster AMI。
-
使用 AWS ParallelCluster 組態檔案中的StorageSettings選項來指定共用檔案系統,並將已安裝的軟體儲存在指定的掛載位置。
-
用自訂引導動作於自動執行叢集每個節點的啟動程序。