Użytkowanie systemów obliczeniowych PCSS 13.01.2016 Artur Trojanowski
Plan prezentacji Architektura maszyn Zwiedzanie serwerowni Opis systemów kolejkowych Dostęp do maszyn Prowadzenie obliczeń Narzędzia programistyczne Zakończenie
Klaster, SMP Zasoby obliczeniowe PCSS składają się z 2 rodzajów maszyn : maszyny SMP (Symmetric Multiprocessing) klaster maszyn obliczeniowych PC VS
Maszyna SMP SGI UV 1000 : chimera.man.poznan.pl 256 x Intel Xeon E7-8837, x86 64 2048 rdzeni 16 TB RAM 1,2 TB local storage system kolejkowy: Slurm
Klaster obliczeniowy : budowa
Klaster obliczeniowy : orzeł/eagle Klaster obliczeniowy: eagle.man.poznan.pl 1178 węzły (Intel Xeon E5-2697 2 procesory po 14 rdzeni) łącznie 32984 rdzeni 64, 128 lub 256 GB RAM/węzeł Moc obliczeniowa 1372,13 TFLOPS Infiniband FDR interconnect 1 Gbit Ethernet interconnect system kolejkowy: Slurm LUSTRE kolejki : standard, multi, fast
Klaster obliczeniowy : inula Klaster obliczeniowy hybrydowy x86 64 + GPU: inula.man.poznan.pl 680 węzły Intel Xeon E5-2697 2 procesory po 14 rdzeni (2 x AMD 12 core Opteron), x86 64 210 kart GPGPU NVIDIA Tesla M2050 48, 64 lub 128 GB RAM/węzeł Moc obliczeniowa 303,4 TFLOPS Infiniband 1 Gbit Ethernet interconnect system kolejkowy: Torque ( PBS ) LUSTRE kolejki : standard, multi, fast
Klaster obliczeniowy : cane Klaster obliczeniowy hybrydowy x86 64 + GPU : cane.man.poznan.pl 150 + węzły (2 x AMD 1 core Opteron), x86 64 1 lub 2 karty GPGPU (NVIDIA Tesla M2050) 48 lub 64 GB RAM/węzeł Infiniband 1 Gbit Ethernet interconnect system kolejkowy: Slurm
Zwiedzanie Zapraszamy do zwiedzania serwerowni
Systemy kolejkowe : Podstawy System kolejkowy : zarządza zasobami sytemu obliczeniowego: CPU, pamięć, przestrzeń dyskowa, licencje do aplikacji oraz same aplikacje, interfejsami sieciowymi, zasilaniem podsystemów, zarządza zadaniami użytkowników Zarządza polityką grup użytkowników zapewnia jednakowe środowisko pozwala rozliczyć użytkownika (Accounting) W dziale KDM PCSS używamy: TORQUE (PBS) Slurm
Systemy kolejkowe : kolejki Nazwa Kolejki Limit czasu zadania Domyślny limit czasu zadania Standardowa ilość pamięci RAM Uwagi multi 7 dni 1 dzień 2 GB Kolejka multi przeznaczona jest dla zadań wykonujących się jednocześnie na kilku węzłach (np. aplikacje korzystające z biblioteki MPI) standard 7 dni 1 dzień 2 GB Kolejka ta przeznaczona jest dla zadań wykonujących się na jednym węźle maksymalna wartość parametru ppn=8 fast 1 godzina 10 minut - wysoki priorytet; maksymalna ilość węzłów 1
Systemy kolejkowe : Slurm System kolejkowy komendy: sbatch mój skrypt.sh : zleca zadanie squeue, squeue -u mój login : sprawdza status zadań scancel ID ZADANIA : usuwa zadanie z kolejki sinfo, scontrol show jobs/nodes : informacje dodatkowe srun -u bash -l -i: tryb interaktywny
Systemy kolejkowe : Torque/PBS System ten powstał na wzór OpenPBS-a, i jest z nim kompatybilny qsub mój skrypt.sh : zleca zadanie qstat -n1, qstat -n1 -u mój login : sprawdza status zadań qdel ID ZADANIA : usuwa zadanie z kolejki
Systemy kolejkowe PBS i Slurm qsub qstat qdel pbsnodes PBS O WORKDIR PBS JOBID PBS NODEFILE #PBS -N JobName #PBS -q kolejka #PBS -l nodes=1:ppn=4 #PBS -l mem=4gb #PBS -l procs=128 #PBS -l walltime=24:00:00 sbatch squeue scancel scontrol show nodes ; sinfo SLURM SUBMITDIR SLURM JOBID SLURM JOB NODELIST #SBATCH --job-name=jobname #SBATCH -p partycja #SBATCH --nodes=1 #SBATCH --ntasks-per-node=4 #SBATCH --mem=4gb #SBATCH --ntasks=128 #SBATCH --time=24:00:00
Zasoby dyskowe katalog domowy: NFS (dane) nie wykonujemy obliczeń $HOME Scratch: LUSTRE (tymczasowe dane) $TMPDIR archiwizacja danych: Corylus/Mentha Platon U4
Dostęp do maszyny obliczeniowej : SSH tylko i wyłącznie za pomocą protokołu SSH (secure shell) to nie jest ograniczenie!... bo ssh ma bardzo duże możliwości: przekierowanie interfejsu okienkowego ( ssh -X ) kopiowanie plików (scp/sftp) logowanie po kluczach ssh i wiele innych...
Dostęp do maszyny obliczeniowej : linux - ssh Klient SSH dla linux-a/unix-a : ssh
Dostęp do maszyny obliczeniowej : Windows - putty Klient SSH dla Windows : putty http://www.putty.org
Dostęp do maszyny obliczeniowej : pliki FileZilla : uniwersalny klient transferu plików http://filezilla-project.org
Prowadzenie obliczeń: podstawowe polecenia cd ; pwd ls ; ls -alh ; ls -alhtr; cp plik nowy_plik; mv nazwa nowa_nazwa ; rm plik ; rm -r plik/katalog mkdir ; chmod wget tar -cvf nazwa.tar plik; tar -xvf nazwa.tar mc : Midnight Commander ;
Prowadzenie obliczeń: skrypt obliczeniowy : Slurm #!/bin/bash #SBATCH --nodes=1 #SBATCH --cpus-per-task=1 #SBATCH --mem=4gb #SBATCH --time=00:05:00 pwd echo $SLURM_JOBID
Prowadzenie obliczeń: skrypt obliczeniowy : PBS #!/bin/bash #PBS -l nodes=1:ppn=1 #PBS -l mem=4gb #PBS l walltime=00:05:00 pwd cd $PBS_O_WORKDIR echo $PBS_JOBID
Prowadzenie obliczeń: skrypt obliczeniowy : zlecamy zadanie SLURM: sbatch skrypt.sh, sbatch -p fast skrypt.sh PBS: qsub skrypt.sh, qsub -q fast skrypt.sh
Prowadzenie obliczeń: skrypt obliczeniowy : sprawdzamy zadanie SLURM: squeue, squeue -u login PBS: qstat, qstat -u login
Prowadzenie obliczeń: skrypt obliczeniowy : usuwamy zadanie SLURM: scancel ID Zadania PBS: qdel ID Zadania
Prowadzenie obliczeń: skrypt obliczeniowy : Slurm hello.c #include <stdlib.h> #include <stdio.h> int main ( void ) { printf("hello! \n"); }
Prowadzenie obliczeń: skrypt obliczeniowy : Slurm Slurm.sh #!/bin/bash #SBATCH --jobname=example_sbatch #SBATCH -- output=example_sbatch.out #SBATCH --time=00:05:00 #SBATCH --nodes=1 #SBATCH --ntasks-per-node=1 # informacja na temat węzła roboczego echo "Zadanie wykonuje sie na wezle " /bin/hostname echo "" # tworzymy katalog TMPDIR : TMPDIR=/tmp/$USER/$SLURM_JOBID mkdir -p $TMPDIR # przechodzimy do katalogu $TMPDIR cd $TMPDIR echo "Katalog TMPDIR to :" pwd echo "" # kopiujemy pliki potrzebne do obliczeń do katalogu $TMPDIR cp $SLURM_SUBMIT_DIR/hello.c $TMPDIR gcc -o hello hello.c./hello > wynik.txt # kończymy obliczenia, katalog $TMPDIR kopiujemy do katalogu z którego zakolejkowano zadanie cp -r $TMPDIR $SLURM_SUBMIT_DIR/ # sprzątamy po sobie rm -rf $TMPDIR # koniec skryptu # Wykonujemy obliczenia
Prowadzenie obliczeń: sprawdzanie parametrów zadnia: Slurm squeue -u nazwa_użytkownika - wyświetlanie listy wszystkich zleconych przez użytkownika zadań sinfo - ogólne informacje o kolejkach scontrol show partition nazwa_kolejki szczegółowe informacje o kolejce scontrol show jobs JOBID : szczegółowe informacje o zadań scontrol show node nazwa_węzła - szczegółowe informacje o węźle
Aplikacje naukowe : moduły Listę aplikacji można uzyskać wydając polecenie modules avail Aplikacje/biblioteki używamy za pomocą polecenia module load openmpi/current
Aplikacje naukowe dostępne na maszynach obliczeniowych abaqus 6.12 amber 14 gaussian G09d matlab namd quantum espresso 5.2.0 ścieżka dostępu: /opt/exp soft/
Narzędzia programistyczne dostępne na maszynach obliczeniowych kompilatory GNU (C/C++/Fortran) kompilatory Intel kompilatory Open64 biblioteki MPI biblioteki BLAS/ATLAS biblioteki OpenCL, CUDA profilowanie : Intel Cluster Toolkit i AMD CODEXL
Materiały WIKI: http://wiki.man.poznan.pl/kdm/ Portal HPC na stronach PCSS : http://hpc.man.poznan.pl dokumentacja Slurm-a : http://slurm.schedmd.com/documentation.html ściąga poleceń różnych systemów kolejkowych : http://slurm.schedmd.com/rosetta.html dokumentacja PBS : http://www.adaptivecomputing.com/resources/docs/torque/usersmanual.php
Gdzie szukać pomocy? Pytania dotyczące maszyn obliczeniowych KDM PCSS należy wysyłać poczta elektroniczna na adres support-hpc@man.poznan.pl
Poznańskie Centrum Superkomputerowo - Sieciowe afiliowane przy Instytucie Chemii Bioorganicznej PAN, ul. Jana Pawła II 10, 61-139 Poznań, tel : (+48 61) 858-20-01, fax: (+48 61) 850-25-01, e-mail: office@man.poznan.pl, http://www.pcss.pl