Wydział Informatyki
Kierunek studiów Informatyka Poziom i forma studiów drugiego stopnia stacjonarne
Specjalność / Ścieżka dyplomowania Inżynieria Oprogramowania Profil kształcenia ogólnoakademicki
Nazwa przedmiotu Obliczenia równoległe Kod przedmiotu INF2OBR
Rodzaj przedmiotu obowiązkowy
Forma zajęć i liczba godzin W Ć L P Ps T S Semestr 2
30 30 Punkty ECTS 4
Przedmioty wprowadzające
Cele przedmiotu

Umiejętność budowy aplikacji równoległych dla systemów ze wspólną pamięcią w standardzie OpenMP.
Umiejętność budowy aplikacji równoległych dla systemów z przesyłaniem komunikatów w standardzie MPI.
Umiejętność zrównoleglania wybranych algorytmów z wykorzystaniem procesorów graficznych GPU.

Treści programowe

Wykład:
1. Wprowadzenie do problematyki systemów równoległych.
2. Architektury maszyn równoległych.
3. Wprowadzenie do standardu MPI: operacje punkt-do-punktu.
4. Przykład nietrywialnej aplikacji MPI: zbiór Mandelbrota.
5. Operacje kolektywne MPI.
6. Pozostałe funkcje MPI.
7. Omówienie standardu OpenMP. Cześć I.
8. Omówienie standardu OpenMP. Cześć II.
9. Mechanizm zadań w OpenMP.
10. Podstawy programowania akceleratorów GPU. Wątki i bloki wątków.
11. Hierarchiczna organizacja pamięci GPU. Optymalne wykorzystanie pamięci podręcznych.
12. Wykorzystanie wielu akceleratorów. Łączenie akceleracji GPU z MPI/OpenMP.
13. Modelowanie skalowalności programów równoległych.
14. Równoległe algorytmy sortowania.
15. Równoległe algorytmy numeryczne.

Pracownia specjalistyczna:
1. Projekt i implementacja prostego programu typu "ping-pong", w którym para procesów wymienia dane.
2. Projekt i implementacja jednego wybranego nietrywialnego algorytmu równoległego w standardach MPI/OpenMP.
2. Zrównoleglenie jednego wybranego nietrywialnego algorytmu równoległego dla akceleratorów GPU.
3. Badania symulacyjne skalowalności i wydajności algorytmów na klastrze obliczeniowym z akceleratorami GPU.

Metody dydaktyczne

wykład problemowy,   programowanie z użyciem komputera,  

Forma zaliczenia

Wykład - test zaliczający.
Pracownia specjalistyczna - jedno zadanie wprowadzające, przygotowanie i obrona dwóch projektów.

Symbol efektu uczenia się Zakładane efekty uczenia się Odniesienie do kierunkowych efektów uczenia się
EU1 zna i stosuje zasady programowania przy pomocy standardu MPI INF2_W03
INF2_W06
EU2 zna i wykorzystuje zasady programowania przy pomocy standardu OpenMP INF2_W03
INF2_W06
EU3 posiada umiejętność zrównoleglania algorytmów sekwencyjnych i analizy algorytmów równoległych INF2_U04
EU4 posiada umiejętność zrównoleglania algorytmów dla akceleratorów GPU INF2_U04
Symbol efektu uczenia się Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
EU1 test zaliczający wykład, prezentacja i obrona projektu programistycznego W, Ps
EU2 test zaliczający wykład, prezentacja i obrona projektu programistycznego W, Ps
EU3 prezentacja i obrona projektu programistycznego Ps
EU4 prezentacja i obrona projektu programistycznego Ps
Bilans nakładu pracy studenta (w godzinach) Liczba godz.
Wyliczenie
1 - Udział w wykładach - 15x2h 30
2 - Udział w pracowni specjalistycznej - 15x2h 30
3 - Praca nad projektami w domu/laboratorium (w tym przygotowanie sprawozdania z projektów) 30
4 - Przygotowanie do testu zaliczającego wykład 5
5 - Udział w konsultacjach związany z przygotowaniem projektów 5
RAZEM: 100
Wskaźniki ilościowe GODZINY ECTS
Nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela 65
(5)+(2)+(1)
2.6
Nakład pracy studenta związany z zajęciami o charakterze praktycznym 60
(2)+(3)
2.4
Literatura podstawowa

1. Z. Czech, Wprowadzenie do obliczeń równoległych, Wydaw. Naukowe PWN, 2013.
2. D. B. Kirk, W. W. Hwu, Programming massively parallel processors: a hands-on approach, 3rd edition, Elsevier/Morgan Kaufmann, 2017.

Literatura uzupełniająca

1 W. Gropp, E. Lusk, A. Skjellum, Using MPI, 2nd edition, Mit Press, 1999.
2. B. Chapman, G. Jost, A. R. van Der Pas, D. J. Kuck, Using OpenMP: Portable Shared Memory Parallel Programming, MIT Press, 2007.
3. A. Grama, A. Gupta, G. Karypis, V. Kumar, Introduction to Parallel Computing, Addison - Wesley, 2003.
4. B. Wilkinson, M. Allen, Parallel programming: Techniques and Applications Using Networked Workstations and Parallel Computers, Prentice Hall, 1999.

Jednostka realizująca Katedra Oprogramowania Data opracowania programu
Program opracował(a) 2020.05.22