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
      echo $SLURM_ARRAY_TASK_ID
      

Ćwiczenia

  1. Proszę wysłać zadanie wypisujące "Hello world"
  2. Proszę wysłać zadanie, które wykonuje się dłużej, niż zadeklarowany czas (używać np.sleep) i sprawdzić, czy zadanie jest wstrzymywane
  3. 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.
  4. Użyć zadań parametrycznych do renderowania serii klatek animacji przy użyciu programu povray.

    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