

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menjalankan pekerjaan dalam klaster mode antrian ganda
<a name="multi-queue-tutorial-v3"></a>

Tutorial ini mencakup cara menjalankan pekerjaan "Hello World" pertama Anda AWS ParallelCluster dengan [beberapa mode antrian](configuration-of-multiple-queues-v3.md).

Saat menggunakan antarmuka baris AWS ParallelCluster perintah (CLI) atau API, Anda hanya membayar AWS sumber daya yang dibuat saat Anda membuat atau memperbarui AWS ParallelCluster gambar dan cluster. Untuk informasi selengkapnya, lihat [AWS layanan yang digunakan oleh AWS ParallelCluster](aws-services-v3.md).

**Prasyarat**
+ AWS ParallelCluster [diinstal](install-v3-parallelcluster.md).
+  AWS CLI [Itu diinstal dan dikonfigurasi.](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
+ Anda memiliki [key pair Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html).
+ Anda memiliki peran IAM dengan [izin](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-example-user-policies) yang diperlukan untuk menjalankan CLI[`pcluster`](pcluster-v3.md).

## Konfigurasikan klaster Anda
<a name="multi-queue-tutorial-v3-configure-cluster"></a>

Pertama, verifikasi AWS ParallelCluster yang diinstal dengan benar dengan menjalankan perintah berikut.

```
$ pcluster version
```

Untuk informasi selengkapnya tentang `pcluster version`, lihat [`pcluster version`](pcluster.version-v3.md).

Perintah ini mengembalikan versi yang sedang berjalan dari AWS ParallelCluster.

Selanjutnya, jalankan `pcluster configure` untuk menghasilkan file konfigurasi dasar. Ikuti semua petunjuk yang mengikuti perintah ini.

```
$ pcluster configure --config multi-queue-mode.yaml
```

Untuk informasi selengkapnya tentang `pcluster configure` perintah, lihat[`pcluster configure`](pcluster.configure-v3.md).

Setelah Anda menyelesaikan langkah ini, file konfigurasi dasar bernama `multi-queue-mode.yaml` muncul. File ini berisi konfigurasi cluster dasar.

Pada langkah berikutnya, Anda memodifikasi file konfigurasi baru Anda dan meluncurkan cluster dengan beberapa antrian.

**catatan**  
Beberapa contoh yang digunakan tutorial ini tidak memenuhi syarat tingkat gratis.

Untuk tutorial ini, ubah file konfigurasi Anda agar sesuai dengan konfigurasi berikut. Item yang disorot dengan warna merah mewakili nilai file konfigurasi Anda. Pertahankan nilai-nilai Anda sendiri.

```
Region: region-id
Image:
 Os: alinux2
HeadNode:
 InstanceType: c5.xlarge
 Networking:
   SubnetId: subnet-abcdef01234567890
 Ssh:
   KeyName: yourkeypair
Scheduling:
 Scheduler: slurm
 SlurmQueues:
 - Name: spot
   ComputeResources:
   - Name: c5xlarge
     InstanceType: c5.xlarge
     MinCount: 1
     MaxCount: 10
   - Name: t2micro
     InstanceType: t2.micro
     MinCount: 1
     MaxCount: 10
   Networking:
     SubnetIds:
     - subnet-abcdef01234567890
 - Name: ondemand
   ComputeResources:
   - Name: c52xlarge
     InstanceType: c5.2xlarge
     MinCount: 0
     MaxCount: 10
   Networking:
     SubnetIds:
     - subnet-021345abcdef6789
```

## Buat klaster Anda
<a name="multi-queue-tutorial-v3-create-cluster"></a>

Buat cluster yang diberi nama `multi-queue-cluster` berdasarkan file konfigurasi Anda.

```
$ pcluster create-cluster --cluster-name multi-queue-cluster --cluster-configuration multi-queue-mode.yaml
{
 "cluster": {
   "clusterName": "multi-queue-cluster",
   "cloudformationStackStatus": "CREATE_IN_PROGRESS",
   "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:123456789012:stack/multi-queue-cluster/1234567-abcd-0123-def0-abcdef0123456",
   "region": "eu-west-1",
   "version": "3.15.0",
   "clusterStatus": "CREATE_IN_PROGRESS"
 }
}
```

Untuk informasi selengkapnya tentang `pcluster create-cluster` perintah, lihat[`pcluster create-cluster`](pcluster.create-cluster-v3.md).

Untuk memeriksa status cluster, jalankan perintah berikut.

```
$ pcluster list-clusters
{
 "cluster": {
   "clusterName": "multi-queue-cluster",
   "cloudformationStackStatus": "CREATE_IN_PROGRESS",
   "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:123456789012:stack/multi-queue-cluster/1234567-abcd-0123-def0-abcdef0123456",
   "region": "eu-west-1",
   "version": "3.15.0",
   "clusterStatus": "CREATE_IN_PROGRESS"
 }
}
```

Ketika cluster dibuat, `clusterStatus` bidang menunjukkan`CREATE_COMPLETE`.

## Masuk ke node kepala
<a name="multi-queue-tutorial-v3-log-into-head-node"></a>

Gunakan file kunci SSH pribadi Anda untuk masuk ke node kepala.

```
$ pcluster ssh --cluster-name multi-queue-cluster -i ~/path/to/yourkeyfile.pem
```

Untuk informasi selengkapnya tentang `pcluster ssh`, lihat [`pcluster ssh`](pcluster.ssh-v3.md).

Setelah masuk, jalankan `sinfo` perintah untuk memverifikasi bahwa antrian penjadwal Anda sudah diatur dan dikonfigurasi.

Untuk informasi lebih lanjut tentang`sinfo`, lihat [sinfo](https://slurm.schedmd.com/sinfo.html) dalam *Slurmdokumentasi*.

```
$ sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
spot*        up   infinite     18  idle~ spot-dy-c5xlarge-[1-9],spot-dy-t2micro-[1-9]
spot*        up   infinite      2  idle  spot-st-c5xlarge-1,spot-st-t2micro-1
ondemand     up   infinite     10  idle~ ondemand-dy-c52xlarge-[1-10]
```

Output menunjukkan bahwa Anda memiliki satu `t2.micro` dan satu node `c5.xlarge` komputasi dalam `idle` keadaan yang tersedia di cluster Anda.

Node lain semuanya dalam status hemat daya, ditunjukkan oleh `~` sufiks dalam status node, tanpa instans Amazon EC2 yang mendukungnya. Antrian default ditunjukkan oleh `*` akhiran setelah nama antreannya. `spot`adalah antrian pekerjaan default Anda.

## Jalankan pekerjaan dalam beberapa mode antrian
<a name="multi-queue-tutorial-v3-running-job-mqm"></a>

Selanjutnya, cobalah untuk menjalankan pekerjaan untuk tidur sebentar. Pekerjaan itu kemudian mengeluarkan nama hostnya sendiri. Pastikan skrip ini dapat dijalankan oleh pengguna saat ini.

```
$ tee <<EOF hellojob.sh
#!/bin/bash
sleep 30
echo "Hello World from \$(hostname)"
EOF

$ chmod +x hellojob.sh
$ ls -l hellojob.sh
-rwxrwxr-x 1 ec2-user ec2-user 57 Sep 23 21:57 hellojob.sh
```

Kirim pekerjaan menggunakan `sbatch` perintah. Minta dua node untuk pekerjaan ini dengan `-N 2` opsi, dan verifikasi bahwa pekerjaan berhasil dikirim. Untuk informasi selengkapnya`sbatch`, lihat [https://slurm.schedmd.com/sbatch.html](https://slurm.schedmd.com/sbatch.html)di dokumentasi *Slurm*.

```
$ sbatch -N 2 --wrap "srun hellojob.sh"
Submitted batch job 1
```

Anda dapat melihat antrian Anda dan memeriksa status pekerjaan dengan `squeue` perintah. Karena Anda tidak menentukan antrian tertentu, antrian default (`spot`) digunakan. Untuk informasi selengkapnya`squeue`, lihat [https://slurm.schedmd.com/squeue.html](https://slurm.schedmd.com/squeue.html)di *Slurmdokumentasi*.

```
$ squeue
JOBID PARTITION     NAME     USER  ST      TIME  NODES NODELIST(REASON)
   1      spot     wrap ec2-user  R       0:10      2 spot-st-c5xlarge-1,spot-st-t2micro-1
```

Output menunjukkan bahwa pekerjaan saat ini dalam keadaan berjalan. Tunggu sampai pekerjaan selesai. Ini membutuhkan waktu sekitar 30 detik. Kemudian, lari `squeue` lagi.

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

Sekarang pekerjaan dalam antrian telah selesai, cari file output yang diberi nama `slurm-1.out` di direktori Anda saat ini.

```
$ cat slurm-1.out
Hello World from spot-st-t2micro-1
Hello World from spot-st-c5xlarge-1
```

Output menunjukkan bahwa pekerjaan berjalan dengan sukses pada `spot-st-c5xlarge-1` node `spot-st-t2micro-1` dan.

Sekarang kirimkan pekerjaan yang sama dengan menentukan batasan untuk instance tertentu dengan perintah berikut.

```
$ sbatch -N 3 -p spot -C "[c5.xlarge*1&t2.micro*2]" --wrap "srun hellojob.sh"
Submitted batch job 2
```

Anda menggunakan parameter ini untuk`sbatch`:
+ `-N 3`— meminta tiga node.
+ `-p spot`— mengirimkan pekerjaan ke `spot` antrian. Anda juga dapat mengirimkan pekerjaan ke `ondemand` antrian dengan menentukan`-p ondemand`.
+ `-C "[c5.xlarge*1&t2.micro*2]"`— menentukan kendala node tertentu untuk pekerjaan ini. Ini meminta satu `c5.xlarge` node dan dua `t2.micro` node untuk digunakan untuk pekerjaan ini.

Jalankan `sinfo` perintah untuk melihat node dan antrian. Antrian dalam AWS ParallelCluster disebut partisi di. Slurm

```
$ sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
spot*        up   infinite      1  alloc# spot-dy-t2micro-1
spot*        up   infinite     17  idle~ spot-dy-c5xlarge-[2-10],spot-dy-t2micro-[2-9]
spot*        up   infinite      1  mix   spot-st-c5xlarge-1
spot*        up   infinite      1  alloc spot-st-t2micro-1
ondemand     up   infinite     10  idle~ ondemand-dy-c52xlarge-[1-10]
```

Node menyala. Ini ditunjukkan oleh `#` sufiks pada status node. Jalankan squeue perintah untuk melihat informasi tentang pekerjaan di cluster.

```
$ squeue
JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
   2      spot     wrap ec2-user CF       0:04      3 spot-dy-c5xlarge-1,spot-dy-t2micro-1,spot-st-t2micro-1
```

Pekerjaan Anda dalam status `CF` (CONFIGURING), menunggu instans ditingkatkan dan bergabung dengan cluster.

Setelah sekitar tiga menit, node tersedia dan pekerjaan memasuki status `R` (RUNNING).

```
$ squeue
JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
   2      spot     wrap ec2-user  R       0:07      3 spot-dy-t2micro-1,spot-st-c5xlarge-1,spot-st-t2micro-1
```

Pekerjaan selesai, dan ketiga node berada dalam `idle` keadaan.

```
$ squeue
JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
$ sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
spot*        up   infinite     17  idle~ spot-dy-c5xlarge-[1-9],spot-dy-t2micro-[2-9]
spot*        up   infinite      3  idle  spot-dy-t2micro-1,spot-st-c5xlarge-1,spot-st-t2micro-1
ondemand     up   infinite     10  idle~ ondemand-dy-c52xlarge-[1-10]
```

Kemudian, setelah tidak ada pekerjaan yang tersisa dalam antrian, periksa `slurm-2.out` di direktori lokal Anda.

```
$ cat slurm-2.out 
Hello World from spot-st-t2micro-1
Hello World from spot-dy-t2micro-1
Hello World from spot-st-c5xlarge-1
```

Ini adalah keadaan akhir dari cluster.

```
$ sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
spot*        up   infinite     17  idle~ spot-dy-c5xlarge-[1-9],spot-dy-t2micro-[2-9]
spot*        up   infinite      3  idle  spot-dy-t2micro-1,spot-st-c5xlarge-1,spot-st-t2micro-1
ondemand     up   infinite     10  idle~ ondemand-dy-c52xlarge-[1-10]
```

Setelah log off dari cluster, Anda dapat membersihkan dengan menjalankan`pcluster delete-cluster`. Lihat informasi yang lebih lengkap di [`pcluster list-clusters`](pcluster.list-clusters-v3.md) dan [`pcluster delete-cluster`](pcluster.delete-cluster-v3.md).

```
$ pcluster list-clusters
{
 "clusters": [
   {
     "clusterName": "multi-queue-cluster",
     "cloudformationStackStatus": "CREATE_COMPLETE",
     "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:123456789012:stack/multi-queue-cluster/1234567-abcd-0123-def0-abcdef0123456",
     "region": "eu-west-1",
     "version": "3.1.4",
     "clusterStatus": "CREATE_COMPLETE"
   }
 ]
}
$ pcluster delete-cluster -n multi-queue-cluster
{
 "cluster": {
   "clusterName": "multi-queue-cluster",
   "cloudformationStackStatus": "DELETE_IN_PROGRESS",
   "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:123456789012:stack/multi-queue-cluster/1234567-abcd-0123-def0-abcdef0123456",
   "region": "eu-west-1",
   "version": "3.1.4",
   "clusterStatus": "DELETE_IN_PROGRESS"
 }
}
```