ssh user_anda@10.28.10.10
Klaster MAHAMERU DGX menggunakan SLURM sebagai job scheduller. Terdapat dua mode submit job pada klaster MAHAMERU DGX, yaitu interactive dan non-interactive.
Interactive job memungkinkan Anda bekerja secara interaktif tanpa menuliskan script, layaknya seperti bekerja di depan terminal Anda sendiri. Biasanya, mode ini digunakan untuk memastikan apakah workflow yang akan dikerjakan sudah sesuai dengan ekspektasi atau sekedar melakukan testing script. Untuk komputasi yang lebih lama dari 4 jam, gunakan mode non-interactive. Berikut adalah contoh melakukan interactive job submission:
srun --nodelist=a1 --gres=gpu:1 --time=1:00:00 --pty bash
Bekerja dengan mode non interactive adalah best practice untuk menjalankan job dengan waktu komputasi yang lama, seperti saat melakukan training data. Siapkan script python Anda (contoh: fancy_hello.py) dan script SLURM Anda (contoh: job_1.sh) seperti contoh berikut ini.
Python script: fancy_hello.py
import time import sys def fancy_hello(): message = "Hello, World!" ascii_art = r""" _ _ _ _ __ __ _ _ _ | | | | | | | \ \ / / | | | | | | |__| | ___| | | ___ \ \ /\ / /__ _ __ | | __| | | | __ |/ _ \ | |/ _ \ \ V V / _ \| '_ \| |/ _` | | | | | | __/ | | (_) | \_/\_/ (_) | | | | | (_| |_| |_| |_|\___|_|_|\___( ) |_| |_|\__,_(_) |/ """ for line in ascii_art.splitlines(): print(line) time.sleep(0.05) print("\n", end="") for char in message: sys.stdout.write(char) sys.stdout.flush() time.sleep(0.1) print() # Newline at the end if __name__ == "__main__": fancy_hello()
SLURM script: job_1.sh
#!/bin/bash #SBATCH --job-name=fancy-hello #SBATCH --nodelist=a1 #SBATCH --partition=short #SBATCH --gres=gpu:1 # Your script goes here date;
python fancy_hello.py date;
Gunakan perintah `sbatch` untuk mengirim job, sebagai berikut
sbatch job_1.sh
Untuk melihat status job Anda, gunakan perintah `squeue -u username_anda`. Secara default, SLURM akan menuliskan output hasil komputasi di dalam berkas berakhiran .out degan format `slurm-JOBID.out`.
Singularity is an open source container platform designed to be simple, fast, and secure. Unlike Docker containers which requires root privileges to run containers, Singularity is designed for ease-of-use on shared multiuser systems and in high performance computing (HPC)
Di dalam MAHAMERU DGX telah terpasang Singularity yang bisa langsung digunakan tanpa melakukan instalasi terlebih dahulu. Anda hanya perlu menyiapkan image sesuai kebutuhan Anda.
Conda is an open-source package and environment management system that’s used to install, update, and remove packages for any programming language.
Anda dapat menginstall conda di home direktori Anda dengan metode best practice sbb:
mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3 rm ~/miniconda3/miniconda.sh source ~/miniconda3/bin/activate
conda init
Setelah muncul promt (base) di laman login Anda, berarti conda sudah siap digunakan. Selanjutnya, anda dapat melakukan instalasi software sesuai kebutuhan Anda dengan perintah `conda install`. Sebagai contoh, berikut adalah cara menginstall paket `pytorch`.
conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia