hpc [at] brin.go.id

Submit Job at MAHAMERU DGX

Login to MAHAMERU DGX

Login ke MAHAMERU DGX dapat dilakukan dari dalam jaringan BRIN-net yang terdapat di seluruh area kantor BRIN. Jika sedang tidak terhubung di BRIN-net, Anda harus mengaktifkan koneksi VPN BRIN. Username yang digunakan sesuai dengan akun SSO BRIN. Login dengan menggunakan SSH dan otentikasi SSH-key. Jika Anda belum mendaftar, silakan kunjungi ELSA.
ssh user_anda@10.28.10.10
 

Submit Job at MAHAMERU DGX

Klaster MAHAMERU DGX menggunakan SLURM sebagai job scheduller. Terdapat dua mode submit job pada klaster MAHAMERU DGX, yaitu interactive dan non-interactive.

Interactive Job

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
  • `srun` perintah SLURM untuk request interactive job
  • `–nodelist=a1` pilihan node yang digunakan, opsi: a1, a100.
  • `–gres=gpu:1` request 1 buah GPU accelerator
  • `–time=1:00:00` lama waktu yang akan digunakan dengan format HH:MM:SS, maksimal 4 jam
  • `–pty bash` jalankan Bash

Non-interactive Job

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`. 

Menggunakan Singularity

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.

Menggunakan CONDA untuk menginstall aplikasi

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
Scroll to top