SLURM


Pierwszym krokiem do uruchamiania programów jest przydzielenie zasobów obliczeniowych. Użytkownik z poziomu Trytona Plus może zadeklarować ilość i rodzaj zasobów jakie są potrzebne do wykonania zadania. Więcej na temat systemu kolejkowego można znaleźć w dokumentacji Aplikacji narzędziowych i systemowych. Należy mieć na uwadze, że dostępność i ilość zasobów na Trytonie jest ograniczona, więcej na ten temat w wątku Zasoby sprzętowe. W celu przydzielenia zasobów potrzebnych do wykonania uczenia maszynowego na klastrze obliczeniowym należy przydzielić zadanie do kolejki w SLURM. Można to zrobić na kilka sposobów.

  • Alokacja interaktywnych węzłów i pracy bezpośrednio na nich.
    salloc --partition=gpu-a100-80gb --gres=gpu:a100_80gb:liczba_kart --nodes=<liczba-węzłów> --time=czas
  • Skrypt powłoki przydzielający zasoby do zadania a następnie wykonanie operacji na węzłach obliczeniowych za pomocą komend z dalszej części skryptu.
    #!/bin/bash
    #SBATCH --partition=gpu-a100-80gb
    #SBATCH --gres=gpu:a100_80gb:1
    #SBATCH --time=00:10:00
    #SBATCH --nodes=1
    
    <dalsza-część-skryptu>
    
    

Uwaga: W SLURM określamy tylko zasoby, które muszą być dostępne aby wykonać naszą pracę. Jeśli określimy dwie karty graficzne w zadaniu sbatch, nie oznacza to, że proces będzie działał na dwóch GPU, tylko są one dostępne dla użytku. Oznacza to między innymi, że wszelkie procesy rozpraszania i zrównoleglania obliczeń należy przygotować we własnym zakresie.

Uwaga: W skrypcie sbatch komendy w dalszej części programu są uruchamiane domyślnie tylko na jednym węźle obliczeniowym, tym z najmniejszą cyfrą przy nazwie akiv.