Wprowadzenie do obliczeń na komputerach ICM



Podobne dokumenty
Wprowadzenie do obliczeń na komputerach ICM

Efektywne wykorzystanie klastra Zeus w obliczeniach naukowych

Wprowadzenie do obsługi systemów obliczeniowych PCSS

Wprowadzenie do obliczeń na komputerach ICM

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

BASH - WPROWADZENIE Bioinformatyka 4

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Podstawy systemu kolejkowego SLURM

Pracownia Komputerowa wykład II

Pracownia Komputerowa wyk ad II

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Wykorzystanie klastra Wydziału Informatyki PB do prowadzenia własnych obliczeń. Wojciech Kwedlo Wydział Informatyki PB

Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 4

1 Przygotował: mgr inż. Maciej Lasota

Znaki globalne w Linuxie

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

Konsola Linux. autor: Mariusz Barnaś

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Bartosz Bosak Piotr Kopta Tomasz Piontek

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Pracownia komputerowa. Dariusz wardecki, wyk II

Pracownia Komputerowa wykład III

Pracownia Technik Obliczeniowych

Linux: System Plików

Skrócony Poradnik Użytkownika

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:

Użytkowanie systemów obliczeniowych PCSS Artur Trojanowski

Migracja obliczeń na system Hydra

Wstęp do informatyki Shell podstawy

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Efektywne wykorzystanie klastra Zeus w obliczeniach wykonywanych pakietem Blender. Maciej Czuchry, Klemens Noga

Wstęp do obsługi Linux a

Wstęp do obsługi Linux a

Chemiateoretyczna. Monika Musiał. Ćwiczenia

tworzenie katalogów Aby utworzyć nowy katalog wpisz: mkdir katalog1 Ta komenda utworzy katalog o nazwie katalog1.

Pracownia Komputerowa wykład III

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Podstawy używania konsoli tekstowej w systemie Linux. Andrzej Zbrzezny

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

Podstawy Informatyki. Wykład 4 Komendy UNIXa, cd

Technologie Informacyjne - Linux 2

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

MODELOWANIE MATERIAŁÓW I PROCESÓW

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

Wstęp do systemu Linux

trainxx tramxx

ZAJĘCIA Komendy Linux WB -> w konsoli tty2 finger exit man pwd pwd finger ls man ls. -> po 2 minusach interpretacja słowa

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Wstęp do systemów wielozadaniowych laboratorium 02 Praca w systemie plików

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

WST P DO PROGRAMOWANIA RÓWNOLEGŠEGO 1. KLASTER

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

System operacyjny Linux wybrane zagadnienia. Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Zakład Systemów Rozproszonych

Uruchamianie zadań w środowisku CLUSTERIX z wykorzystaniem klienta tekstowego systemu GRMS

Dodatek nr 1: Niektóre polecenia systemu Linux (shell tcsh) A) Informacje wstępne

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Podstawy informatyki

Architektura, oprogramowanie i uytkowanie klastra PCSS. Marek Zawadzki <mzawadzk@man.poznan.pl>

host name: protokół SSH System plików - wprowadzenie Ścieżki dostępu

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

Instalacja środowiska MPI w systemie operacyjnym Linux

Proces instalacji systemu operacyjnego Linux Red Hat 7.3 (1)

Zakład Systemów Rozproszonych

Informatyka III : Instrukcja 1

Komendy Ubuntu MARCEL GAŃCZARCZYK 2T I 1

Podstawy użytkowania Linux a

Pracownia Komputerowa wyk ad III

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

"Klasyczna" struktura systemu operacyjnego:

Powłoka interpreter poleceń systemu UNIX

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Tryb konsolowy ćwiczenie b

Stosowanie poleceń związanych z zarządzaniem plikami oraz katalogami: nazwa_polecenia -argumenty ścieżka/ścieżki do katalogu/pliku

System plików - wprowadzenie. Ścieżki dostępu. Informatyka ćw 1

Ćwiczenie 1. Podstawowe wiadomości

Linux cz.3: polecenia systemowe, ćwiczenia

Wstęp do systemów wielozadaniowych laboratorium 03 Praca w powłoce UNIX-owej

Ćwiczenie 9 Linux - operacje systemu plików

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

Wstęp do systemów wielozadaniowych laboratorium 14 Środowisko i aliasy

Prawa dostępu do plików

UŻYTKOWNIK. APLIKACJE UŻYTKOWE (wszelkie programy zawarte domyślnie w systemie operacyjnym jak i samodzielnie zainstalowane przez użytkownika systemu)

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

Konsola i interpreter poleceń

Podstawy pracy w ICM

Logowanie z zewnątrz. Np. Program PUTTY, SSH

Ćwiczenie nr 14: System Linux

Uruchamianie i optymalizacja kodów na architekturze Blue Gene/P

System operacyjny Linux

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Współczesne systemy komputerowe

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Tryb konsolowy - ćwiczenia. 012a

Narzędzia informatyczne w językoznawstwie

Systemy operacyjne na platformach mobilnych 2 Podstawy obsługi powłoki Bash

Linux. Wprowadzenie do systemu.

Ćwiczenia Linux konsola

Transkrypt:

2013-02-20 Dobre praktyki obliczeń wielkoskalowych 1 Wprowadzenie do obliczeń na komputerach ICM Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego Uniwersytet Warszawski http://www.icm.edu.pl Maciej E. Marchwiany m.marchwiany@icm.edu.pl Szymon Jaranowski s.jaranowski@icm.edu.pl

www.wielkiewyzwania.pl 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 2

2013-02-20 Dobre praktyki obliczeń wielkoskalowych 3

Plan Sieć i zasoby komputerowe ICM Dostęp do zasobów ICM Podstawy pracy z systemem Linux/UNIX Środowisko użytkownika Uruchamianie zadań Ćwiczenia 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 4

Sieć i zasoby komputerowe ICM 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 5

ICM sieć ssh halo2 ssh login@gw.icm.edu.pl ssh notos gw / delta ssh boreasz 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 6

Komputery w ICM KOMPUTER węzeł maks. rozmiar zadania równoległego CPU / czas pamięć CPU / czas pamięć halo2 16 rdzeni 16 GB Linux x86_64 16 rdzeni 32 GB 512 rdzeni 1 TB Sun Constellation 64 rdzenie / 168 h 512 GB notos Linux ppc32 IBM Blue Gene/P 4 rdzenie / 32 h 4 GB 2048 rdzeni / 1 min (kolejka do testów skalowalności) 2 TB boreasz AIX ppc64 IBM Power 775 32 rdzenie / 24 h 128 GB 2432 rdzenie / 5 h 512 rdzeni / 24 h 9,7 TB 2 TB grom Obliczenia na kartach graficznych (Nvidia GeForce 480 GTX). Niestadardowy dostęp! 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 7

Dostęp do zasobów ICM 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 8

ICM sieć ssh halo2 ssh login@gw.icm.edu.pl ssh notos gw / delta ssh boreasz 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 9

ICM logowanie WIN 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 10

ICM logowanie WIN login@atol.icm.edu.pl login@gw.icm.edu.pl 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 11

ICM logowanie WIN 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 12

ICM logowanie Linux Zdalne logowanie ma maszyny: ssh login@gw.icm.edu.pl ssh login@atol.icm.edu.pl Otwieranie sesje X-Window na zdalnych maszynach: ssh YC login@gw.icm.edu.pl Logujemy się na węzeł dostępowy gw/delta, a z niego na maszyne obliczeniową przez: ssh nazwa_maszyny Np: ssh halo2 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 13

Podstawy pracy z systemami Linux/UNIX 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 14

terminal 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 15

Logowanie Na każdej z maszyn obliczeniowych odseparowany katalog domowy Logowanie tylko przez ssh Niektóre komputery wymagają wcześniejszego zgłoszenia w celu dostępu pomoc@icm.edu.pl Powłoka użytkownika Domyślna powłoka użytkownika (shell) tcsh Wyjątek Blue Gene/P notos bash Zmiana domyślnej powłoki nie jest możliwa Użytkownik ma swoje konto (login) Na wszystkich komputerach (i na poczcie) ten sam login i hasło jak na delcie Korzystamy tylko ze swojego konta (regulamin ICM) 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 16

ls Wyświetlanie zawartości katalogów ls wyświetla zawartość bieżącego katalogu ls sciezka_dostepu wyświetla zawartość wskazanego katalogu ls *.roz wyświetla wszystkie pliki z rozszerzeniem.roz przydatne opcje: -a wyświetla ukryte pliki -t sortowanie według czasu modyfikacji -r odwraca kolejność sortowania -l - wyświetla pełną informacje 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 17

System plików Korzeń drzewa root / Pliki systemowe urządzenia Katalogi domowe Katalogi użytkownika /var /etc /bin /lib... /mnt... /doc /photo /outy /test... lfs quota /home - wyświetla limity dyskowe 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 18

Poruszanie się pwd wyświetla aktualną ścieżkę dostępu Wejście do katalogu: cd sciezka_dostepu Przydatne katalogi:./ bieżący katalog../ katalog o poziom wyżej ~/ katalog domowy / root Np: cd../ przejście o poziom wyżej Ścieżki dostępu ścieżka bezwzględna: /home/users/mfroncz/docs/readme.txt ścieżka względna: docs/readme.txt 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 19

Tworzenie i niszczenie Tworzenie nowego katalogu mkdir katalog Kasowanie pliku: rm plik Kasowanie pustego katalogu: rmdir katalog Kasowanie katalogu wraz z zawartością: rm -rf katalog UWAGA! Nieodwracalne. 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 20

Kopiowanie Kopiowanie plików: cp plik_zrodlo plik_cel Np: cp a.out spline.exe cp sciezka_do_kat/plik_zrodlo sciezka_do_kat/plik_cel Np.: cp./test/out.out../testy/test1.out Jeśli nie chcemy zmieniać nazwy pliku wystarczy podać katalog docelowy: cp./test/test1.out../testy/ Kopiowanie katalogów opcja -r: cp -r kat_zrodlo kat_cel mv zamiast kopiowania zastępuje (kopiuje i usuwa źródło) 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 21

Pliki Oznaczenia plików: * wszystkie pliki plik.* pliki o nazwie plik i dowolnym rozszerzeniu *.roz wszystkie pliki o rozszerzeniu.roz a* wszystkie pliki zaczynające się od a Rozszerzenia plików Rozszerzenia plików są dowolne. Powinny jednak sugerować użytkownikowi rodzaj zawartość pliku. Niektóre programy wymagają określonej nazwy pliku i/lub rozszerzenia. 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 22

Podgląd plików Podgląd plików: file plik opisuje typ pliku cat plik wyświetla zawartość pliku na ekranie (wyjście std.) more plik wyświetla zawartość pliku z opcją przewijania less plik wyświetla zawartość pliku z opcją przewijania wstecz Podstawowe komendy (przeglądanie plików): q wyjście, /wzorzec szukanie wzorca Przeszukiwanie plików: grep wzorzec pliki Np: grep H2 prot.pdb 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 23

nano nano plik otwiera plik do edycji nano w plik otwiera plik do edycji bez zawijania wierszy Podstawowe komendy: Ctrl + x wyjście Ctrl + c zapisanie Ctrl + w szukanie F2 wyjście z zapisaniem 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 24

vim vim plik.txt otwiera plik Podstawowe komendy: :w zapisywanie :q wyjście :wq zapisanie i wyjście :cq wyjście bez zapisywania i wejście w tryp edycji o przejście do nowej lini i trybu edycji dd usunięcie całej lini /wzorzec znajdowanie wzorzec Esc wyjście z trybu edycji 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 25

Prawa dostępu do plików i katalogów Użytkownicy podzieleni są na: właściciel pliku (user) grupa, do której należy właściciel (group) pozostali użytkownicy (others) Prawa do operacji na pliku: prawo do odczytu (read) prawo do zapisu (write) prawo do wykonywania (execute) 263:spj@halo2:/home/staff/spj/szkolenie# ls abc plik1 plik2 264:spj@halo2:/home/staff/spj/szkolenie# ls -l total 12 drwxr-xr-x 2 spj users 4096 Feb 19 16:46 abc -rw-r--r-- 1 spj users 23 Feb 19 16:45 plik1 -rw-r--r-- 1 spj users 37 Feb 19 17:56 plik2 Wszystkie pliki domyślnie mogą być czytane przez wszystkich. 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 26

Zmiana praw dostępu chmod zmienia prawa dostępu Kombinacja: 1) litera: u (user), g (group), o (others), a (all) 2) operator: = (ustawienie na podane prawa) + (dodanie praw) - (odjęcie praw) 3) prawo dostępu: r (read), w (write), x (execute) Np: chmod g-w,o-rw test.exe chmod g-r szkolenie/plik2 chmod a-w plik1 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 27

Praca w systemie Linux Uruchamianie programów./test.exe Uruchamianie z parametrami./test2.exe input.xyz Przekierowanie wyjścia do pliku:./test.exe >> plik.out Przydatne skróty Tab dokańcza ścieżkę/nazwę pliku/komendę (jeśli jest jednoznaczna) Ctrl + d pokazuje możliwe dokończenia / kończy sesję Ctrl + c przerywa działanie programu Ctrl + l czyści terminal up/down poruszanie się po historii używanych komend 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 28

tar Pakowanie pliku z wyświetleniem pakowanych plików/katalogu: tar -cvf plik.tar plik_do_pakowania tar -zcvf plik.tar.gz plik_do_spakowania tar jcvf plik.tar.bz2 plik_do_spakowania tar Jcvf plik.tar.xz plik_do_spakowania Rozpakowanie pliku: tar -xvf plik.tar tar -zxvf plik tar.gz tar -jxvf plik.tar.bz2 tar -Jxvf plik.tar.xz Na Boreaszu: /opt/freeware/bin/tar Otwierać spakowane pliki można także przez mc 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 29

mc 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 30

man Wyświetlenie manuala dla polecenia: man polecenie Np: man man Pozwala znaleźć: nazwy poleceń podobnych i stowarzyszonych. składnia krótki opis szczegółowy opis opcji 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 31

WIN a UNIX Znak końca linii: DOS: ^M^R UNIX: ^R Konwertowanie plików z WIN do UNIX: dos2unix plik 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 32

Ćwiczenie 1 1. Utworzyć katalog cw (mkdir). 2. Wejść do niego (cd). 3. Skopiować (cp) do niego plik /workspace/spj/romeoandjuliet.tar.gz 4. Rozpakować (tar). 5. Znaleźć błąd: JULIA zamiast JULIET (grep). 6. Poprawić ten błąd (nano). 7. Usunąć cały katalog cw (rm).

Środowisko użytkownika 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 34

Języki i kompilatory C/C++ (GNU, PGI, IBM [XL]) ze wsparciem MPI Fortran (77, 90, 95, 2003, 2008 - GNU, PGI, IBM [XL]) + MPI Python (2.x, 3.x) Java (implementacje Sun, Oracle, GNU, IBM) Debuggery (PDB oparte na DBX, w niedalekiej przyszłości TotalView) Biblioteki numeryczne BLAS, LAPACK (w tym zoptymalizowane wersje, takie jak ATLAS, ACML [AMD], ESSL [IBM]) FFTW PETSc, Hypre Inne na życzenie: pomoc@icm.edu.pl 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 35

module Wyświetlenie listy dostępnych modułów: module avail Wyświetlenie listy załadowanych modułów: module list Załadowanie moduł nazwa_modulu: module load nazwa_modulu Usunięcie załadowanego moduł nazwa_modulu: module rm nazwa_modułu module unload nazwa_modułu Np: module load pgi/11.10 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 36

Podstawy powłok systemowych Powłoka systemowa to program wykonujący polecenia, które wydajemy w terminalu Istnieją różne powłoki (sh, csh, tcsh, ksh, bash, zsh, inne) Najpopularniejszy w Linuxie bash, w ICM domyślnie - tcsh Różnice w działaniu są niewidoczne na pierwszy rzut oka, ale: Operacja Bash tcsh Ustawienie zmiennej środowiskowej Przekierowanie strumienia stdout do pliku Przekierowanie strumienia stderr export ZMIENNA=WARTOSC setenv ZMIENNA WARTOSC program > plik program > plik program 2> plik - Przekierowanie stdout i stderr ze zlepieniem program > plik 2>&1 program >& plik Pętla for for i in `` do done foreach i () end Najwięcej różnic w składni skryptów 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 37

Zmienne środowiskowe Zmienne środowiskowe to specjalne zmienne używane i predefiniowane przez system operacyjny Przykładowe: $HOME $SHELL $USER $PWD $JAVA_HOME $PYTHONPATH Ustawienie wartości zmiennej Tcsh: setenv setenv PWD /opt/goto Bash: export export PWD= /opt/goto 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 38

scp Kopiowanie plików do ICMu: scp -C -p plik login@gw.icm.edu.pl:~/ Kopiowanie plików z ICMu: scp -C -p login@gw.icm.edu.pl:~/plik./ -C włącza kompresje -p zachowuje oryginalną datę stworzenia -r kopiowanie podkatalogu Kopiowanie katalogów: scp -r -C -p katalog login@gw.icm.edu.pl: scp -r -C -p login@gw.icm.edu.pl:~katalog./ 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 39

WinSCP gw.icm.edu.pl login hasło 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 41

WinSCP praca 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 42

Dostęp do poczty Użytkownik powinien regularnie sprawdzać pocztę! Wszystkie informacje ważne dla użytkownika będą wysyłane drogą mailową. Nazwa skrzynki: login@icm.edu.pl Dostęp do poczty: webmail mutt alpine przekierowanie poczty (plik.forward) programy pocztowe (np. Thunderbird) 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 43

webmail Adres: webmail.icm.edu.pl 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 44

Sprawdzanie poczty w terminalu Sprawdzanie poczby w terminalu: mutt alpine 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 45

mutt komendy Podstawowe komendy: q wyście d usunięcie maila u cofnięcie usunięcia maila s zapisanie m nowy mail r odpowiedz na maila g odpowiedz do wszystkich? wyświetla wszystkie możliwe komendy Tworzenie wiadomości: 1) Ustalenie adresata 2) Wpisanie tytułu 3) Edycja treści (jak w vim-ie) 4) Wysłanie Komendy przy wysyłaniu: y wysłanie, t zmiana adresata, c dodanie kopii, a dołączenie pliku, q wyjście 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 46

Uruchamianie zadań 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 47

Podstawowy systemu kolejkowego System kolejkowy pośredniczy między użytkownikiem, a procesorami dedykowanymi do obliczeń Nie uruchamiamy programów samodzielnie System kolejkowy decyduje o przydziale zasobów i uruchamia kolejno zadania użytkowników Rodzaje systemów kolejkowych w ICM (2013) PBS/Torque klastry x86 (halo2) LoadLeveler Blue Gene/P, Power 775, Blue Gene/Q 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 48

System kolejkowy PBS/Torque (klastry) Podstawowe polecenia (halo2): qsub wstawianie zadania do kolejki qstat sprawdzanie statusu zadania wstawionego do kolejki qdel usuwanie zadania z kolejki qalter zmiana parametrów zadania w kolejce 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 49

System kolejkowy LoadLeveler (BlueGene) Podstawowe polecenia (notos, boreasz, nostromo): llsubmit wstawianie zadania do kolejki llq sprawdzanie statusu zadania wstawionego do kolejki llcancel usuwanie zadania z kolejki llmodify zmiana parametrów zadania w kolejce 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 50

Podstawy systemu kolejkowego W każdym systemie kolejkowym: Tworzymy zadanie, czyli: opis wymaganych zasobów instrukcje uruchamiające program lub programy W postaci tzw. skryptu kolejkowego pliku tekstowego o określonej składni Skrypt kolejkowy jest argumentem dla poleceń qsub, llsubmit 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 51

Tworzenie skryptów Skrypt to plik tekstowy zawierający kolejne komendy do wykonania przez powłokę systemową Pierwsza linia to zawsze: #!/bin/sh Oznacza sposób wywołania powłoki, która będzie interpretować skrypt (interpreter) Kolejne linie zawierają polecenia systemowe i polecenia (tej) powłoki Znak # na początku linii oznacza komentarz #!/bin/sh echo Hello world! #koniec 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 52

System PBS Na przykładzie klastra Halo2 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 54

Halo2 - Skrypty PBS #!/bin/tcsh #PBS -N przyklad #PBS -q halo2 #PBS -A G01-77 #PBS -l nodes=1:ppn=16 #PBS -l mem=14gb #PBS -l walltime=02:00:00 #PBS -m abe #PBS -M XYZ@icm.edu.pl # ustaw srodowisko cd $PBS_O_WORKDIR/ module load mpi echo Job started at `date` # wykonaj obliczenia mpirun./cpi Blok dyrektyw PBS Użycie zmiennej środowiskowej Załadowanie modułu Uruchomienie programu echo Job finished at `date` 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 55

Halo2 - Skrypty PBS #!/bin/tcsh #PBS -N przyklad #PBS -q halo2 #PBS -A G01-77 #PBS -l nodes=1:ppn=16 #PBS -l mem=14gb #PBS -l walltime=02:00:00 #PBS -m abe #PBS -M XYZ@icm.edu.pl Pierwsza linia skryptu zawiera ścieżkę do interpretera (shell), który ma wykonać skrypt na przydzielonym węźle obliczeniowym Nazwa zadania (widziana w kolejce) Nazwa kolejki Projekt Liczna używanych węzłów oraz procesorów Całkowita pamięć przydzielona na zadanie Maksymalny czas wykonywania skryptu Opcje wysyłania maila Adresat maila 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 56

Halo2 - #PBS -q Rodzaje kolejek halo2 duże zadania obliczeniowe, normalna praca test zadania testowe, bardzo krótkie zadania bigmem dedykowana dla zadań wymagających wiele pamięci interactive dedykowana dla zadań interaktywnych Nazwa kolejki Dyrektywa #PBS Limit czasowy dla zadania Limit węzłów dla zadania Test -q test 1:00:00 2 halo2 -q halo2 336:00:00 32 bigmem -q bigmem 168:00:00 5 interactive -q interactive 12:00:00 1 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 57

Halo2 - #PBS -A #PBS -A projekt projekt nazwa grantu realizowanego w ICM przez użytkownika groups wypisuje akceptowane nazwy grantów Dla użytkowników należących do wielu grantów obliczeniowych wymagane jest podanie właściwego grantu w skrypcie kolejkowym 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 58

Halo2 - #PBS -l #PBS -l nodes=1:ppn=16 #PBS -l nodes=2:ppn=16 Zadanie jest wykonywane na jednym węźle i szesnastu rdzeniach Zadanie jest wykonywane na dwóch węźle i po szesnaście rdzeni na każdym (w sumie 32 rdzenie) #PBS -l nodes=2:ppn=16+1:ppn=8 Zadanie jest wykonywane na trzech węzłach: dwa węzły po szesnaście rdzeni i jeden z ośmioma (w sumie 40 rdzeni) #PBS -l mem=15gb #PBS -l walltime=02:00:00 Całkowita pamięć przydzielona do zadania wynosi 15 GB Na węźle jest 16/32GB, ale część zajmuje system. Należy używać: na mniejszych węzłach: mem=<15gb na większych węzłach: mem=<30gb aby użyć więcej pamięci: -q bigmem Maksymalny czas wykonywania zadania Format: hhh:mm:ss 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 59

Halo2 - #PBS M/m #PBS -M mail[@host][,mail2[@host2]] Skrypt wysyła maila na wskazany adres Obsługiwane są tylko maile ICM'owe #PBS -m abe Opcje wysłania maila a mail jest wysyłany po zatrzymaniu skryptu b mail jest wysyłany po starcie skryptu e mail jest wysyłany po zakończeniu skryptu n mail nie jest wysyłany 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 60

Halo2 - Zmienne środowiskowe PBS PBS_O_WORKDIR ścieżka absolutna do katalogu z którego uruchamiane jest zadanie PBS_JOBID identyfikator zadania w systemie PBS PBS_NODEFILE ścieżka absolutna do pliku zawierającego nazwy węzłów obliczeniowych odpowiadające przydzielonym procesorom PBS_TASKNUM liczba dostępnych procesorów w ramach zadania Zmienne mogą być używane wyłącznie wewnątrz skryptu lub zadania interaktywnego. 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 61

Halo2 - Uruchamianie zadań System PBS qsub skrypt.pbs Wstawia skrypt.pbs do kolejki qsub może przyjmować jako argument komendy PBS qsub -q test skrypt.pbs Tryb interaktywny Pozwala na bezpośrednie uruchamianie obliczeń qsub -I -l nodes=2:ppn=16 -l mem=128mb -l walltime=1:00:00 \ -A G01-77 -q test Dostępny tylko na klastrach (PBS) 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 62

Halo2 - qstat qstat Wyświetla wszystkie zadania w kolejce -f wszystkie informacje o zadaniach -a cała informacja o zadaniach -i wyświetla niedziałające zadania -r wyświetla działające zadania -n wyświetla informacje o węzłach -G wyświetla informacje o zużyciu pamięci -u user wyświetla zadanie usera -q wyświetla informacje o zadaniach w kolejkach qstat -f job_id 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 63

Halo2 - qstat Job id Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 66043.halo2 quickstart krzywojc 0 Q halo2 74066.halo2 hmcn14b11.0 gabrielw 4902:17: R halo2 74069.halo2 hmcn14b14.0 gabrielw 1312:07: R halo2 74070.halo2 hmcn14b15.0 gabrielw 1195:46: R halo2 74268.halo2 jg5 kulcz 4433:42: R halo2 74402.halo2 run_3br1c taye 4367:30: R halo2 74403.halo2 run_3br2c taye 4355:00: R halo2 74600.halo2 hmcn14b10.0 gabrielw 1134:16: R halo2 74641.halo2 run_g09 lesiuk 4073:37: R halo2 74642.halo2 run_g09_2 lesiuk 4074:56: R halo2 74867.halo2 energie39_acct_ alimalek 492:07:0 R halo2 75031.halo2...4_SLAB12_asym lju 3704:45: R halo2 75628.halo2 1TMG maria 10826:25 R halo2 75634.halo2 hmcn12b16.0 magiersk 2636:42: C halo2 75680.halo2 cfourtest januszc 68:48:53 R halo2 75689.halo2 go1 broy 2499:40: R halo2 76223.halo2 DOH_Zn1_A1_6 hyperion 1952:25: R halo2 76253.halo2 adrian1.obl rbalawen 953:37:3 R halo2 76277.halo2 MgbCAccsd.sh mpgro 406:08:0 R halo2 76365.halo2 HMgC3Nccsd.sh mpgro 155:15:0 R halo2 76382.halo2 gamess wojbur 830:59:5 R halo2 76383.halo2 gamess wojbur 831:26:5 R halo2 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 64

Halo2 - qdel/qalder qdel Job_id Usuwa zadanie Job_id z kolejki qalter Job_id [-opcja wartosc] Zmiena parametry skryptu W qalter opcje są takie same jak w qsub. Podaje się tylko zmieniane wartości. qalter 3215 -N test2 Zmienia nazwę zadania 3215 na test2 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 65

System LoadLeveler Na przykładzie Notos i Boreasz 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 66

Uruchamianie zadań IBM LoadLeveler Zasoby obliczeniowe komputera Notos zarządzane są przez system kolejkowy IBM LoadLeveler Zadania wstawiamy do kolejki z katalogu domowego, tam trzymamy również input i output obliczeń Wstaw zadanie do kolejki Zadania LoadLeveler Znajdź zasoby dla zadań i zdefiniuj partycje obliczeniowe Uruchom zadanie Pobierz informację o zasobach i zadaniach Blue Gene mpirun Blue Gene Bridge API 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 67

Uruchamianie zadań IBM LoadLeveler Podstawowe komendy: Komenda llsubmit llq llq s <job_id> llcancel <job_id> llclass Krótki opis Wstawia do kolejki zadanie LoadLeveler. Pokazuje zadania w kolejce (te uruchomione i te czekające na zasoby) wraz z dodatkową informacją. Pokazuje więcej informacji o zadaniu, np. dlaczego wciąż stoi w kolejce, ile dokładnie zasobów zadeklarowaliśmy,.. Usuwa zadanie z kolejki. Pokazuje informację o aktualnie zdefiniowanych klasach. Wstawianie zadania do kolejki: llsubmit <jobfile name> 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 68

Przykładowe wywołanie: llq sheed@notos:~> llq Step Id Owner Account Job Name Class Size ST ------------------------ ----------- -------- -------------------- ---------- ------ -- notos.1904.0 panecka G31-4 R53A_v3_b_P kdm-large I notos.1903.0 panecka G31-4 R53A_3_b_nP kdm-large I notos.1902.0 panecka G31-4 f_3_b_p kdm-large I notos.1901.0 panecka G31-4 K42A_3_b_nP kdm-large I notos.1900.0 panecka G31-4 full_v3_b_np kdm-large I notos.1899.0 panecka icm-staf f_v3_99_np kdm-large I notos.1898.0 panecka G31-4 K42A_v3_b_P kdm-large I notos.1897.0 panecka G31-4 K43Q_v3_b_P kdm-large I notos.1896.0 panecka G31-4 K43Q_3_b_nP kdm-large I notos.1890.0 memar icm-staf nwchem1 workshop 32 R notos.1863.0 fleon G31-4 namd_ab kdm-large 512 R 11 job step(s) in queue, 9 waiting, 0 pending, 2 running, 0 held, 0 preempted 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 69

Przykładowe wywołanie: llq -s sheed@notos:~> llq -s 1863 =============== Job Step notos.icm.edu.pl.1863.0 =============== Job Step Id: notos.icm.edu.pl.1863.0 Job Name: namd_ab Owner: fleon Queue Date: Fri 03 Jun 2011 11:05:13 AM CEST Status: Running Dispatch Time: Tue 07 Jun 2011 07:00:47 PM CEST Size Requested: 512 Size Allocated: 512 Partition Allocated: LL11060703200913 Base Partition List: R00-M0 IONodes Per BP: N00-J00,N01-J00,N02-J00,N03-J00,N04-J00,N05-J00,N06-J00,N07-J00,N08-J00,N09-J00,N10- J00,N11-J00,N12-J00,N13-J00,N14-J00,N15-J00 Notify User: fleon@icm.edu.pl LoadLeveler Group: G31-4 Class: kdm-large Wall Clk Hard Limit: 8+08:00:00 (720000 seconds) Wall Clk Soft Limit: 8+08:00:00 (720000 seconds) Account: G31-4 ==================== EVALUATIONS FOR JOB STEP notos.icm.edu.pl.1863.0 ==================== The status of job step is : Running Since job step status is not Idle, Not Queued, or Deferred, no attempt has been made to determine why this job step has not been started. 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 70

Notos - przykładowy skrypt # @ job_name = Ping_pong # @ account_no = grupa # @ class = kdm # @ error = ping_pong.err # @ output = ping_pong.out # @ environment = COPY_ALL # @ wall_clock_limit = 00:20:00 # @ notification = error # @ notify_user = $(user)@icm.edu.pl # @ job_type = bluegene # @ bg_size = 32 # @ queue (Przykłady w /opt/examples/loadleveler) Blok dyrektyw LoadLeveler mpirun -exe ping_pong -mode SMP -np 32 Uruchomienie programu 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 71

Notos budowa skryptu kolejkowego Pola wymagane: Opcja Znaczenie # @ job_type = bluegene Ustawia typ zadania. Powinno być zawsze ustawione na bluegene. # @ bg_size = N Liczba węzłów obliczeniowych Blue Gene/P do rezerwacji, rozmiar partycji. # @ account_no = nr grantu # @ wall_clock_limit = HH:MM:SS Numer grantu obliczeniowego użytkownika. Używane w celach sprawozdawczych. Maksymalna długość działania zadania od momentu jego uruchomienia. # @ class = klasa Wybranie klasy zadania. Dostępne klasy: llclass. Nie wszyscy użytkownicy mają dostęp do wszystkich klas. # @ output = plik Nazwa pliku, do którego trafi przekierowanie standardowego strumienia wyjścia. Domyślnie /dev/null. # @ error = plik Nazwa pliku, do którego trafi przekierowanie standardowego strumienia błędu. Domyślnie /dev/null. 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 72

Notos budowa skryptu kolejkowego Pola opcjonalne: Opcja # @ bg_connection = MESH/TORUS/PREFER_TOR US # @ environment = env1; env2;.. Znaczenie Określa sposób połączenia sieciowego pomiędzy węzłami. Domyślnie: MESH. Określa sposób kopiowania zmiennych środowiskowych użytkownika do środowiska obliczeniowego. Możliwe ustawienia: COPY_ALL - wszystkie zmienne ze środowiska będą kopiowane, $var - zmienna var ma być kopiowana do środowiska obliczeniowego,!var - zmienna var nie ma być kopiowana do środowiska obliczeniowego, var=value - zmienna var ma przyjąć wartość value w środowisku obliczeniowym. # @ job_name = nazwa zadania Ustawia nazwę zadania. Pod taką nazwą będzie widziane zadanie w systemie. # @ initialdir = dir Ścieżka roboczego katalogu obliczeń. 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 73

Notos budowa skryptu kolejkowego Pola opcjonalne: Opcja Znaczenie # @ notification = typ Definiuje, w jakich przypadkach wysyłany jest mail do właściciela zadania. Możliwe argumenty: error - gdy zadanie zakończyło się błędem, start - gdy zadanie zaczęło się liczyć, complete - gdy zadanie się zakończyło, always - we wszystkich powyższych przypadkach, never - nigdy. # @ notify_user = email Email użytkownika, do którego ewentualne maile będą wysyłane. Format argumentu: user[@host][,user[@host],...]. # @ bg_shape = <X>x<Y>x<Z> # @ bg_rotate = <true false> Definiuje ilość podstawowych partycji (midplane) w trzech kierunkach X, Y oraz Z. Określa, czy scheduler LoadLeveler-a powinien rozpatrywać wszystkie możliwe obroty zadanego kształtu. Domyślnie true. 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 74

Podstawowe opcje mpirun (mpirun h) Opcja -np ranks -exe <executable> -args program args -cwd <path> -mode <SMP,DUAL,VN> Znaczenie Ilość ranków MPI. Nazwa pliku wykonywalnego zadania. Argumenty pliku wykonywalnego zadania. Ścieżka katalogu roboczego zadania. Specyfikuje tryb pracy węzłów. SMP 1 rank, 4 threads DUAL 2 ranks, 2 threads each VN 4 ranks, 1 thread each Zależność pomiędzy trybem pracy węzłów, rozmiarem partycji oraz ilością ranków MPI Tryb VN: ilość ranków MPI = 4 x rozmiar partycji Tryb DUAL: ilość ranków MPI = 2 x rozmiar partycji Tryb SMP: ilość ranków MPI = rozmiar partycji 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 75

Zmienne środowiskowe Załóżmy, że chcemy przekazać środowisku obliczeniowemu ustawienia poprzez zmienne środowiskowe Ustawianie zmiennych środowiskowych w skrypcie LoadLeveler-a nie wystarczy Musimy wykonać to przy użyciu argumentu mpirun: -env <nazwa zmiennej>=<wartość zmiennej> (zmienne podawane pojedynczo) -exp_env <nazwa zmiennej> 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 76

Notos - aktualna konfiguracja LoadLeveler-a Klasa KDM bez ograniczenia na ilość węzłów, wallclock 1h, cputime 32h, priorytet 10 Przeznaczenie: podstawowe testy oprogramowania, kompilacja, uruchomienie, testy skalowalności do 512 węzłów Klasa KDM-LONG bez ograniczenia na ilość węzłów, wallclock 360h, priorytet 85 Przeznaczenie: rozszerzone testy skalowalności, obliczenia Klasa POWIEW bez ograniczeń na ilość węzłów, wallclock 360h, priorytet 90 Przeznaczenie: obliczenia 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 77

Boreasz- przykładowy skrypt #@ job_name = Calculations #@ output = $(job_name)_$(jobid) #@ error = $(job_name)_$(jobid) #@ account_no = G33-19 #@ class = kdm #@ node = 16 #@ tasks_per_node = 32 #@ wall_clock_limit = 08:00:00 #@ network.mpi = sn_all,not_shared,us,high #@ notification = never #@ environment = COPY_ALL #@ job_type = parallel #@ queue mpiexec -n 512./executable Blok dyrektyw LoadLeveler Uruchomienie programu 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 78

Boreasz budowa skryptu kolejkowego Pola wymagane: Opcja Znaczenie # @ job_type = parallel Ustawia typ zadania. Powinno być zawsze ustawione na parallel. # @ node = N Liczba węzłów obliczeniowych do rezerwacji, rozmiar partycji. # @ tasks_per_node = K Ilość tasków MPI przypadających na jeden węzeł # @ account_no = nr grantu # @ wall_clock_limit = HH:MM:SS Numer grantu obliczeniowego użytkownika. Używane w celach sprawozdawczych. Maksymalna długość działania zadania od momentu jego uruchomienia. # @ class = klasa Wybranie klasy zadania. Dostępne klasy: llclass. Nie wszyscy użytkownicy mają dostęp do wszystkich klas. # @ output = plik Nazwa pliku, do którego trafi przekierowanie standardowego strumienia wyjścia. Domyślnie /dev/null. # @ error = plik Nazwa pliku, do którego trafi przekierowanie standardowego strumienia błędu. Domyślnie /dev/null. # @ network.mpi = mode Ustawienia sieci komunikacji (powinno być: sn_all,not_shared,us,high) 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 79

Boreasz budowa skryptu kolejkowego Pola opcjonalne: Opcja Znaczenie # @ notification = typ Definiuje, w jakich przypadkach wysyłany jest mail do właściciela zadania. Możliwe argumenty: error - gdy zadanie zakończyło się błędem, start - gdy zadanie zaczęło się liczyć, complete - gdy zadanie się zakończyło, always - we wszystkich powyższych przypadkach, never - nigdy. # @ notify_user = email Email użytkownika, do którego ewentualne maile będą wysyłane. Format argumentu: user[@host][,user[@host],...]. # @ environment = env1; env2;.. Określa sposób kopiowania zmiennych środowiskowych użytkownika do środowiska obliczeniowego. Możliwe ustawienia: COPY_ALL - wszystkie zmienne ze środowiska będą kopiowane, $var - zmienna var ma być kopiowana do środowiska obliczeniowego,!var - zmienna var nie ma być kopiowana do środowiska obliczeniowego, var=value - zmienna var ma przyjąć wartość value w środowisku obliczeniowym. # @ job_name = nazwa zadania Ustawia nazwę zadania. Pod taką nazwą będzie widziane zadanie w systemie. 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 80

Boreasz - aktualna konfiguracja LoadLeveler-a Klasa KDM dostępna dla wszystkich użytkowników, przeznaczona do zadań krótkich, bez ograniczeń na ilość węzłów (max. 76), ograniczony czas CPU (12 288h), ograniczony czas walltime (24h), ograniczenie na ilość zadań (32), priorytet 70 Klasa KDM-LONG dostępna dla wszystkich użytkowników, przeznaczona do zadań długich, ograniczona ilość węzłów na zadanie (16), ograniczony czas walltime (168h), ograniczenie na ilość zadań (6), priorytet 60 Klasa POWIEW dostępna dla naukowców z POWIEW Klasa METEO dostępna dla modelu prognozy pogody Uwaga: ustawienia systemu kolejkowego zmieniają się (informacje wyświetlane przy logowaniu oraz /opt/info/queuing_system) 2013-02-20 Dobre praktyki obliczeń wielkoskalowych 81