Korzystanie z zasobów Komputerów Dużej Mocy
CI TASK
Bartosz Pliszka
Centrum Informatyczne TASK, dział KDM
Plan szkolenia:
- Zasoby KDM
- Dostęp do zasobów
- System modules
- System kolejkowy
- Kompilacja i zrównoleglanie
Wstęp - CI TASK, zasoby KDM
- TASK i inne pojęcia
- Zasoby obliczeniowe - Tryton
- Oprogramowanie
- Zasoby storage - dmv
- Zasoby dostępowe - kdm-ap
- pojęcia KDM - Komputery Dużej Mocy
CI TASK, zasoby KDM
- Centrum Informatyczne Trójmiejskiej Akademickiej Sieci
Komputerowej
- Powołane w 1994 w ramach porozumien ia między uczelniami
T-miasta
- Cele:
- budowa, rozwój i utrzymanie sieci komputerowej
- prowadzenie Centrum superkomputerowego dla nauki - KDM - Komputery Dużej Mocy
Zasoby działu KDM
- Superkomputery
- Oprogramowanie
- Składowanie danych
- ..
Granty i sprawozdania
Procedura dostępu do zasobów:
Ważne: Trzeba składać sprawozdanie raz do roku
w styczniu i na zakończenie projektu
Oprogramowanie i składowanie danych
- Matlab, Mathematica
- Abaqus, MSC Marc, Nastan, Dytran..., Ansys Fluent, LS-Dyna,
Hyperworks
- Gaussian, GAMESS, Gromacs, Amber, NAMD, CP2K
- Intel Compilers, MKL, MPI, PGI Compilers
- w sumie ok. 40 pakietów
Składowanie danych
- w sumie ok. 12 PB surowej przestrzeni składowania danych, w tym:
- ~1.3 PB w wydajnym systemie Lustre
- ~2.5 PB przestrzeni archiwizacyjnej na taśmach
Superkomputer Tryton
- Superkomputer o architekturze klastrowej
- HP Apollo 6000/XL230a, procesory Intel Xeon (Haswell)
- Zbudowany w 2014, uruchomiony 2015
- Dostępny w trzech "smakach": KDM, PL-Grid, NIWA
- ~36 tys core, ~1600 nodów, po 128 GB RAM na nod,
InfiniBand
- w pierwszej setce na świecie
Tryton - węzeł obliczeniowy
2 CPU Intel Xeon, 24 core, 128 GB RAM, InfiniBand 56 Gb/s
Tryton - schemat klastra, sieć
Tryton/KDM - 1280 nodów gv
DMV.task.gda.pl i KDM.task.gda.pl
SSH i putty
- do KDM dostajemy sie, logujemy się przez SSH
- darmowy klient SSH pod Windows to Putty,
do pobrania stąd
Składowanie danych
- /users/kdm - katalog domowy, tu zaczynamy (10TB)
- /users/work - katalog roboczy, tu pracujemy (576 TB)
- /users/magazyn - katalog archiwizacyjny, tu magazynujemy (>2000 TB)
- /vol01/scratch - katalog ulotny, tu zapisujemy na krótko (64 TB)
Limity dyskowe (quota)
- /users/kdm - 20 GB
- /users/work - 20 TB
- lfs quota -h -u $USER /users/work
- quota -s
Środowisko powłoki i system Environment Modules
- środowisko: zmienne środowiskowe
- modules: ładowanie, usuwanie, zapis w .bashrc
Środowisko powłoki
- powłoka bash
- środowisko to m.in lista zmiennnych środowiskowych - par nazwa=wartość
- env - wyświetla zmienne środowiskowe
- zmienna $PATH - lista katalogów przeszukiwania plików wykonywalnych;echo $PATH
- aplikacje wymagają ustawienia różnych zmiennych: ścieżki do bin. bibliotek i
danych, licencji
- LM_LICENSE_FILE=1711@licencje.task.gda.pl
- export LM_LICENSE_FILE
- export LM_LICENSE_FILE=1711@licencje.task.gda.pl
Environment Modules (EM)
Pakiet Environment Modules daje możliwość modyfikacji
środowiska użytkownika i przystosowania go do wymagań aplikacji,
Na superkomputerze Tryton moduły aplikacji umieszczone są w
katalogach:
tryton/<nazwa_aplikacji>/<nr_wersji>
- tryton/amber/14 - moduł dla aplikacji Amber w wersji 14.
EM - Najczęściej używane polecenia i przykłady zastosowań
- module avail - wyświetla listę dostępnych modułów,
czyli listę aplikacji wraz z numerami zainstalowanych wersji.
- module avail <nazwa> - wyświetla moduły dla
różnych wersji aplikacji,
- module add <nazwa> lub module load
<nazwa> - ładuje moduł danej aplikacji oraz aplikacji
zależnych, lub ładuje moduł konkretnej wersji aplikacji: np.: module load tryton/compiler/gcc/5.2.0
- module rm <nazwa> lub module unload
<nazwa> - usuwa moduł danej aplikacji,
- module list - wyświetla listę aktualnie
załadowanych modułów, np:
- module show <nazwa_modułu> - wyświetla
informację o danym module,
- module purge - usuwa z powłoki wszystkie aktualnie
załadowane moduły.
Środowisko na stałe
- nano ~/.bashrc
- module -s load tryton/gromacs
System kolejkowy
... batch system, workload manager, loadbalancer.
Funkcje
- zarządzanie zasobami obliczeniowymi
- obsługa zleceń użytkowników
- przydział zasobów
- uruchamianie obliczeń
- nadzorowanie obliczeń
- przekazywanie informacji o stanie obliczeń
- rejestrowanie i rozliczenia
Przykłady systemów kolejkowych to LSF, Slurm, Moab, PBS Pro...
System kolejkowy
Slurm - komendy użytkownika
-
squeue - wyświetla informacje o zadaniach, które obecnie znajdują się w systemie kolejkowym
-
sbatch <nazwa_skryptu> - wstawia zadanie obliczeniowe do
kolejki
-
srun <program> - uruchamia program i/lub wstawia zadanie obliczeniowe do
kolejki
-
scancel <numer_zadania> - usuwa zadanie z kolejki,
-
sinfo - wyświetla informacje o rodzajach kolejek (PARTITION), węzłach itp.
-
scontrol - więcej informacji i modyfikowanie zadań,
-
sacct - wyświetla rozliczeniowe i historyczne,
Slurm - komendy: sinfo
-
sinfo -p batch
- sinfo -o "%R %.5a %.16F " -p batch - dostępność i stan nodów
- Limity czasu w kolejkach"
sinfo -o "%10P %l"
Slurm - komendy: squeue
-
squeue - wyświetla informacje o zadaniach, które obecnie znajdują się w systemie kolejkowym
- squeue -u $USER
- squeue -j JOBID
- squeue -t PENDING
- Status zadań
Slurm - komendy: srun
-
srun <program> - uruchamia program i/lub wstawia zadanie obliczeniowe do
kolejki
-
srun -N 1 hostname
-
srun -N 1 -n 24 -l hostname
-
interaktywnie
srun -N 1 --pty bash
Slurm - komendy: scontrol
-
scontrol show job JOBID
-
scontrol update job=JOBID name=value
-
scontrol show reservation
-
scontrol show partition
Slurm - sbatch i skrypty
-
katalog: /apl/tryton/example
np.:
/apl/tryton/example/gromacs/gromacs_submit_slurm_example
#!/bin/bash
name=case1
nnodes=2
nproc_node=24
ncpu=$(( $nnodes * $nproc_node ))
# tworzymy w locie skrypt dla qsub'a
cat << EOF | sbatch
#!/bin/bash -l
#
# skrypt tworzony w locie przez $0
#
# Uwaga sbatch interpretuje dyrektywy "#SBATCH" i pobiera opcje
# kolejka, partycja np. batch, test
#SBATCH --partition batch
#SBATCH --output="$name-%j.batch-out"
#SBATCH --error="$name-%j.batch-err"
#SBATCH --mail-type=BEGIN,END,FAIL,REQUEUE
# nazwa zadania
#SBATCH --job-name=$name
#
#
# liczba rdzeni=nodes * ppn (dla Trytona ppn=24)
#SBATCH --ntasks-per-node $nproc_node
#
#SBATCH -N $nnodes
#SBATCH --mem 100G
# walltime
#SBATCH --time=24:00:00
module --silent load tryton/gromacs
#ls -l \$SLURM_JOB_NODELIST
#cat \$SLURM_JOB_NODELIST
export OMP_NUM_THREADS=1
inb=topol.tpr
mpirun -np $ncpu --host \$(scontrol show hostname \$SLURM_JOB_NODELIST | paste -d, -s) gmx_mpi mdrun -s \$inp -deffnm $name > $name.mdrun.out 2>&1
EOF
Slurm - komendy: sacct
-
sacct - wyświetla rozliczeniowe i historyczne,
Slurm - przykłady
Przykład - sprawdzenie dostępnego okna czasowego:
date
Tue Nov 15 11:27:36 CET 2016
srun -N4 --test-only -t 3-00:00:00 hostname
allocation failure: Requested node configuration is not available
srun -N4 --test-only -t 2-14:00:00 hostname
srun: Job 1886321 to start at 2016-11-15T11:33:53 using 96 processors on gv[2101-2104]
Slurm - kolejki w TASKu
sinfo -o "%10P %12l %6I %6p %6a %s"
PARTITION TIMELIMIT PRIO_J PRIO_T AVAIL JOB_SIZE
interact 8:00:00 40000 40000 up 1
test* 15:00 40000 40000 up 1-infinite
batch 3-00:00:00 30000 30000 up 1-infinite
sys 3-00:00:00 1 1 down 1-infinite
serial 3-00:00:00 20000 20000 up 1
special 60-00:00:00 20000 1 up 1-infinite
noib 7-00:00:00 20000 1 up 1-infinite
Dziękuję za uwagę
e-mail: kdm@task.gda.pl
Przegląd