Menjalankan pekerjaan kontainer dengan Pyxis - AWS ParallelCluster

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

Menjalankan pekerjaan kontainer dengan Pyxis

Pelajari cara membuat klaster yang dapat menjalankan tugas kontainer menggunakan Pyxis, yang merupakan plugin SPANK untuk mengelola pekerjaan kontainer di SLURM. Wadah di Pyxis dikelola oleh Enroot, yang merupakan alat untuk mengubah gambar kontainer/OS tradisional menjadi kotak pasir yang tidak memiliki hak istimewa. Untuk informasi lebih lanjut, lihat NVIDIA Pyxis dan NVIDIA Enroot.

catatan

Fitur ini tersedia dengan AWS ParallelCluster v3.11.1

Saat menggunakan AWS ParallelCluster, 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.

Prasyarat:

Buat cluster

Dimulai dengan AWS ParallelCluster 3.11.1, semua resmi AMIs dilengkapi dengan Pyxis dan Enroot yang sudah diinstal sebelumnya. Secara khusus, SLURM dikompilasi ulang dengan dukungan Pyxis dan Enroot diinstal sebagai biner dalam sistem. Namun, Anda harus mengonfigurasinya sesuai dengan kebutuhan spesifik Anda. Folder yang digunakan oleh Enroot dan Pyxis akan memiliki dampak kritis pada kinerja cluster. Untuk informasi selengkapnya, lihat dokumentasi Pyxis dan dokumentasi Enroot.

Untuk kenyamanan Anda, Anda dapat menemukan konfigurasi sampel untuk Pyxis, Enroot dan SPANK di dalamnya. /opt/parallelcluster/examples/

Untuk menyebarkan cluster menggunakan konfigurasi sampel yang telah kami sediakan, selesaikan tutorial berikut.

Untuk membuat cluster dengan konfigurasi sampel

Pyxis dan Enroot harus dikonfigurasi pada node kepala dengan terlebih dahulu membuat direktori persisten dan volatile untuk Enroot, kemudian membuat direktori runtime untuk Pyxis, dan akhirnya mengaktifkan Pyxis sebagai plugin SPANK di seluruh cluster.

  1. Jalankan skrip di bawah ini sebagai tindakan OnNodeConfiguredkhusus di node kepala untuk mengkonfigurasi Pyxis dan Enroot pada node kepala.

    #!/bin/bash set -e echo "Executing $0" # Configure Enroot ENROOT_PERSISTENT_DIR="/var/enroot" ENROOT_VOLATILE_DIR="/run/enroot" sudo mkdir -p $ENROOT_PERSISTENT_DIR sudo chmod 1777 $ENROOT_PERSISTENT_DIR sudo mkdir -p $ENROOT_VOLATILE_DIR sudo chmod 1777 $ENROOT_VOLATILE_DIR sudo mv /opt/parallelcluster/examples/enroot/enroot.conf /etc/enroot/enroot.conf sudo chmod 0644 /etc/enroot/enroot.conf # Configure Pyxis PYXIS_RUNTIME_DIR="/run/pyxis" sudo mkdir -p $PYXIS_RUNTIME_DIR sudo chmod 1777 $PYXIS_RUNTIME_DIR sudo mkdir -p /opt/slurm/etc/plugstack.conf.d/ sudo mv /opt/parallelcluster/examples/spank/plugstack.conf /opt/slurm/etc/ sudo mv /opt/parallelcluster/examples/pyxis/pyxis.conf /opt/slurm/etc/plugstack.conf.d/ sudo -i scontrol reconfigure
  2. Pyxis dan Enroot harus dikonfigurasi pada armada komputasi dengan membuat direktori persisten dan volatile untuk Enroot dan direktori runtime untuk Pyxis. Jalankan skrip di bawah ini sebagai tindakan OnNodeStartkustom di node komputasi untuk mengonfigurasi Pyxis dan Enroot pada armada komputasi.

    #!/bin/bash set -e echo "Executing $0" # Configure Enroot ENROOT_PERSISTENT_DIR="/var/enroot" ENROOT_VOLATILE_DIR="/run/enroot" sudo mkdir -p $ENROOT_PERSISTENT_DIR sudo chmod 1777 $ENROOT_PERSISTENT_DIR sudo mkdir -p $ENROOT_VOLATILE_DIR sudo chmod 1777 $ENROOT_VOLATILE_DIR sudo mv /opt/parallelcluster/examples/enroot/enroot.conf /etc/enroot/enroot.conf sudo chmod 0644 /etc/enroot/enroot.conf # Configure Pyxis PYXIS_RUNTIME_DIR="/run/pyxis" sudo mkdir -p $PYXIS_RUNTIME_DIR sudo chmod 1777 $PYXIS_RUNTIME_DIR

Kirim lowongan kerja

Sekarang Pyxis dikonfigurasi di cluster Anda, Anda dapat mengirimkan pekerjaan dalam kontainer menggunakan perintah sbatch dan srun, yang sekarang diperkaya dengan opsi khusus container.

# Submitting an interactive job srun -N 2 --container-image docker://ubuntu:22.04 hostname # Submitting a batch job sbatch -N 2 --wrap='srun --container-image docker://ubuntu:22.04 hostname'