本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 上執行您的第一個任務 AWS ParallelCluster
本教學課程會逐步引導您在 上執行第一個 Hello World 任務 AWS ParallelCluster
使用 AWS ParallelCluster 命令列界面 (CLI) 或 API 時,您只需為建立或更新 AWS ParallelCluster 映像和叢集時建立 AWS 的資源付費。如需詳細資訊,請參閱AWS 使用的 服務 AWS ParallelCluster。
先決條件
-
AWS ParallelCluster 已安裝 。
-
AWS CLI 已安裝並設定 。
-
您有 Amazon EC2 金鑰對。
確認安裝
首先,我們會驗證 AWS ParallelCluster 是否正確安裝和設定,包括 Node.js 相依性。
$node --versionv16.8.0$pcluster version{ "version": "3.14.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」。輸出也提供我們前端節點privateIpAddress的 publicIpAddress和 。
登入您的頭部節點
使用您的 OpenSSH pem 檔案登入您的頭部節點。
$pcluster ssh --cluster-name hello-world -i /path/to/keyfile.pem
登入之後,執行命令 sinfo 來驗證您的運算節點是否已設置和設定。
$sinfoPARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 10 idle~ queue1-dy-queue1t2micro-[1-10]
輸出顯示我們的叢集中有一個佇列,最多十個節點。
使用 Slurm 執行您的第一個任務
接著,我們建立一個任務,它會休眠一會兒,然後輸出其自己的主機名稱。建立稱為 hellojob.sh 的檔案,其中具有以下內容。
#!/bin/bash sleep 30 echo "Hello World from $(hostname)"
接著,使用 sbatch 來提交任務,並驗證它是否執行。
$sbatch hellojob.shSubmitted batch job 2
現在,您可以檢視佇列並檢查此任務的狀態。新 Amazon EC2 執行個體的佈建會在背景中啟動。您可以使用 sinfo命令監控叢集執行個體的狀態。
$squeueJOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 2 queue1 hellojob ec2-user CF 3:30 1 queue1-dy-queue1t2micro-1
輸出顯示任務已提交至 queue1。等待 30 秒讓任務完成,然後再次執行 squeue。
$squeueJOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
現在佇列中沒有任何任務,我們可以在目前的目錄中檢查輸出。
$ls -ltotal 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.outHello World from queue1-dy-queue1t2micro-1
輸出也會顯示我們的任務已在執行個體 queue1-dy-queue1t2micro-1 上成功執行。
在您剛建立的叢集中,叢集的所有節點之間只會共用主目錄。
若要進一步了解建立和使用叢集,請參閱 最佳實務。
如果您的應用程式需要共用軟體、程式庫或資料,請考慮下列選項:
-
建置 AWS ParallelCluster 已啟用的自訂 AMI,其中包含您的軟體,如中所述建置自訂 AWS ParallelCluster AMI。
-
使用 AWS ParallelCluster 組態檔案中的 StorageSettings 選項來指定共用檔案系統,並將已安裝的軟體存放在指定的掛載位置。
-
使用 自訂引導操作來自動化叢集中每個節點的引導程序。