Metody i Systemy Obliczeń Wielkiej Skali

Informatyka


Czynności przygotowywujące do następnych laboratoriów:

  • Zalogować się do portalu.
  • Zaaplikować o usługę Rimrock
  • Zaplikować o usługę PLG-Data
  • Sprawdzić, czy poprawnie utworzy się certyfikat proxy na klastrze Zeus poleceniem
    voms-proxy-init --voms vo.plgrid.pl
    Należy podać hasło takie, jak do portalu.

    Powinniśmy otrzymać wynik podobny do poniższego:
    [plgrycerz@zeus ~]$ voms-proxy-init --voms vo.plgrid.pl
    Enter GRID pass phrase for this identity:
    Contacting voms.cyf-kr.edu.pl:15004
    [/C=PL/O=GRID/O=Cyfronet/CN=voms.cyf-kr.edu.pl] "vo.plgrid.pl"...
    Remote VOMS server contacted succesfully.

    Created proxy in /tmp/x509up_u20351.

    Your proxy is valid until Fri Oct 07 03:15:09 CEST 2017

System kolejkowy SLURM

Przydatne materiały

Wstęp

  1. Architektura

  2. Komendy
    • sinfo - dostępne węzły
    • squeue - status kolejki

    • sbatch - wysłanie zadania do serwera
      • sbatch [options] script_filename

    • scancel - kasowanie zadania

  3. Specyfikacja zasobów
    • sbatch - specyfikacja zasobów, które są wymagane przez zadanie, a zarazem limit na zużycie zasobów.
    • sbatch -N 8 - liczba węzłów
    • sbatch -N 8 --ntasks-per-node=12 - liczba podzadań (rdzeni) na każdym węźle
    • sbatch -N 8 --ntasks-per-node=12 -t 20:00 - czas zadania (HH:MM:SS)

  4. Skrypty specyfikacji zadania

      #!/bin/bash
      #SBATCH -p plgrid
      #SBATCH -N 1
      #SBATCH --ntasks-per-node=12
      komenda
    
  5. Zlecanie zadań interaktywnych
    • Uruchomienie shella poprzez SLURM:
      srun -N 1 --ntasks-per-node=1 -p plgrid-testing -t 20:00 --pty /bin/bash 
      

  6. Zmienne środowiskowe
    • Zdefiniowane przez SLURM
      • $SLURM_SUBMIT_HOST - host, gdzie uruchomiono komendę sbatch
      • $SLURM_SUBMIT_DIRR - katalog roboczy z hosta, skąd uruchomiono sbatch
  7. Zadania parametryczne
    • Przy pomocy opcji --array możemy zdefiniować grupę zadań, np komenda:
      sbatch -N 1 --ntasks-per-node=1 -p plgrid-testing --array=1-4 test.sh
      
      wyśle 4 zadania o numerach 1 do 4.
    • W skrypcie wykonywanym na węźle robocznym możemy odczytać numer zadania w grupie przy pomocy zmiennej SLURM_ARRAY_TASK_ID, oraz liczbe wszystkich zadan: SLURM_ARRAY_TASK_COUNT.

Ćwiczenia

  1. Proszę wysłać zadanie, które wykonuje się dłużej, niż zadeklarowany czas (używać np.sleep) i sprawdzić, czy zadanie jest wstrzymywane
  2. Proszę wysłać serię zadań używając zadań parametrycznych, z których każde wypisze jedną linijkę z pliku tekstowego. Należy użyć poleceń cat, head i tail.
  3. Użyć zadań parametrycznych do renderowania serii klatek animacji przy użyciu programu povray. Parametrem skryptu powinna byc calkowita liczba klatek do wyrenderowania, ktore nastepnie dzielone sa na porcje na podstawie calkowitej liczby zadan (SLURM_ARRAY_TASK_COUNT).

    Wskazówki

    • Należy użyć polecenia module add plgrid/apps/povray.
    • Należy skorzystać z przykładowej animacji z tutorialu.
    • Każde podzadanie powinno renderować podzbiór klatek.
    • Polecenie do renderowania wybranego zakresu klatek: povray Subset_Start_Frame=1 Subset_End_Frame=2 animation_a_.ini
    • Proszę zmodyfikować parametry sceny (rozdzielczość, jakość, więcej obiektów) aby zadanie wykonywało się dłużej


Bartosz Baliś, balis at agh.edu.pl
Katarzyna Rycerz, kzajac at agh.edu.pl
Maciej Malawski, malawski at agh.edu.pl