

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

# 在 AWS PCS 中執行單一節點任務
<a name="getting-started_run-job"></a>

 若要使用 Slurm 執行任務，請準備指定任務需求的提交指令碼，並使用 `sbatch`命令將其提交至佇列。通常，這是從共用目錄完成的，因此登入和運算節點具有存取檔案的共用空間。

 連線至叢集的登入節點，並在其 shell 提示下執行下列命令。
+ 成為預設使用者。變更為共用目錄。

  ```
  sudo su - ec2-user
  cd /shared
  ```
+ 使用下列命令來建立範例任務指令碼：

  ```
  cat << EOF > job.sh
  #!/bin/bash
  #SBATCH -J single
  #SBATCH -o single.%j.out
  #SBATCH -e single.%j.err
  
  echo "This is job \${SLURM_JOB_NAME} [\${SLURM_JOB_ID}] running on \${SLURMD_NODENAME}, submitted from \${SLURM_SUBMIT_HOST}" && sleep 60 && echo "Job complete"
  EOF
  ```
+ 將任務指令碼提交至 Slurm 排程器：

  ```
  sbatch -p demo job.sh
  ```
+  提交任務時，它會以數字形式傳回任務 ID。使用該 ID 來檢查任務狀態。將下列命令中的 {{job-id}} 取代為從 傳回的數字`sbatch`。

  ```
  squeue --job {{job-id}}
  ```  
**Example**  

  ```
  squeue --job 1
  ```

   `squeue` 命令會傳回類似下列的輸出：

  ```
  JOBID PARTITION NAME USER     ST TIME NODES NODELIST(REASON)
  1     demo      test ec2-user CF 0:47 1     compute-1
  ```
+  繼續檢查任務的狀態，直到達到 `R`（執行中） 狀態為止。當 `squeue`未傳回任何項目時，任務即完成。
+  檢查`/shared`目錄的內容。

  ```
  ls -alth /shared
  ```

  命令輸出類似於以下內容：

  ```
  -rw-rw-r- 1 ec2-user ec2-user 107 Mar 19 18:33 single.1.out
  -rw-rw-r- 1 ec2-user ec2-user 0 Mar 19 18:32 single.1.err
  -rw-rw-r- 1 ec2-user ec2-user 381 Mar 19 18:29 job.sh
  ```

   名為 `single.1.out`和 的檔案是由叢集的其中一個運算節點所`single.1.err`撰寫。由於任務是在共用目錄 (`/shared`) 中執行，因此它們也可用於您的登入節點。這就是您為此叢集設定 FSx for Lustre 檔案系統的原因。
+  檢查 `single.1.out` 檔案的內容。

  ```
  cat /shared/single.1.out
  ```

   輸出類似以下內容：

  ```
  This is job test [1] running on compute-1, submitted from ip-10-3-13-181
  Job complete
  ```