Prowadzony w
cyklach:
2022/23Z, 2023/24Z, 2024/25Z
Kod ISCED: 0613
Punkty ECTS:
6
Język:
polski
Organizowany przez:
Wydział Matematyki i Informatyki
Programowanie równoległe i rozproszone 1000-I2PRR
- Podstawowe pojęcia.
- Modele komputerów równoległych: klasyfikacja komputerów wg Flynna, komputery z pamięcią współdzieloną i rozproszoną, wydajność komputerów.
- Podstawowe modele programowania równoległego : programowanie w modelu z pamięcią rozproszoną, programowanie w modelu z pamięcią współdzieloną.
- PRAM - model do definiowania algorytmów równoległych.
- Etapy projektowania programów równoległych.
- Przykłady algorytmów równoległych.
- Implementacja algorytmów z wykorzystaniem OpenMP.
- Implementacja algorytmów z wykorzystaniem Message Passing Interface (MPI).
- Implementacja algorytmów z wykorzystaniem PCJ.
- Wybrane miary złożoności algorytmów równoległych.
- Klasyczne problemy współbieżności i poprawność programów współbieżnych.
- Podstawy modelu programowania CUDA, elementy języka CUDA C
Całkowity nakład pracy studenta
| 30 godz. | - | wykład |
| 30 godz. | - | ćwiczenia laboratoryjne |
| 40 godz. | - | bieżące przygotowanie do zajęć, w tym rozwiązywanie zadań zleconych przez prowadzących, zapoznanie się z informacją zwrotną dotyczącą rozwiązanych zadań oraz konsultacje z prowadzącymi zajęcia, |
| 10 godz. | - | praca własna: studiowanie literatury |
| 20 godz. | - | praca własna: zapoznanie się z materiałami dodatkowymi, m.in. dokumentacją bibliotek |
| 20 godz. | - | praca własna: przygotowanie do egzaminu |
| Razem: 150 godz. | ||
| 6 pkt. ETCS | ||
Efekty uczenia się - wiedza
- W1: ma pogłębioną wiedzę na temat tworzenia algorytmów w zakresie algorytmów równoległych i oceniania ich jakości - K_W02, K_W03
Efekty uczenia się - umiejętności
- U1: opisuje problemy związane z wykonywaniem programów współbieżnych - K_U01
- U2: rozumie mechanizmy synchronizacji procesów - K_U01
- U3: implementuje algorytmy równoległe dla środowiska z pamięcią wspólną i rozproszoną (z wykorzystaniem MPI, OpenMP) - K_U01, K_U08, K_U13
- U4: uruchamia aplikacje w różnych środowiskach - K_U01
Efekty uczenia się - kompetencje społeczne
- K1: jest gotów do twórczego myślenia w celu stworzenia nowych rozwiązań - K_K02
- K2: potrafi samodzielnie wyszukiwać informacje w literaturze K_K03
- K3: pokonuje trudności stojące na drodze do realizacji założonego celu i systematycznej pracy nad projektami - K_K04.
Metody dydaktyczne eksponujące
- pokaz
Metody dydaktyczne podające
- wykład informacyjny (konwencjonalny)
- wykład problemowy
- wykład konwersatoryjny
- wykład problemowy
- wykład konwersatoryjny
Rodzaj przedmiotu
przedmiot obligatoryjny
Wymagania wstępne
znajomość języków C/C++ i Java oraz podstawowych algorytmów
Koordynatorzy przedmiotu
Kryteria oceniania
Zaliczenie laboratorium na ocenę - na podstawie programów wykonanych w ramach prac domowych (weryfikacja efektów uczenia: W1, U2, U3, U4, K1, K2, K3).
Podejście do egzaminu po zaliczeniu laboratorium.
Pozytywna ocena z egzaminu pisemnego z wykładu (weryfikacja efektów uczenia: W1, U1, U2, K1).
Literatura
Literatura podstawowa:
- M. Ben-Ari, Podstawy programowania współbieżnego i rozproszonego, WNT, Wydanie II, 2009
- Z. Czech, Wprowadzenie do obliczeń równoległych, WN PWN, Wydanie II, 2013
- Thomas, H. Cormen, Wprowadzenie do algorytmów, WN PWN
- Wyd. -2003 – rozdział: Algorytmy równoległe
- Wyd. 2009- – rozdział: Algorytmy wielowątkowe
Literatura uzupełniająca:
- I. Foster, Designing and Building Parallel Programs, Addison-Wesley Publ.Comp., 1995 (wersja online: http://www.mcs.anl.gov/~itf/dbpp/text/book.html)
- A. Grama, A. Gupta, G. Karypis, V. Kumar, Introduction to Parallel Computing, Pearson Education Limited 2003
- M.J. Quinn, Parallel Programming in C with MPI and OpenMP, Mc Graw Hill, 2004
- J.H. Reif (ed.), Synthesis of Parallel Algorithms, Morgan Kaufmann Pub., 1993
- CUDA w przykładach. Wprowadzenie do ogólnego programowania procesorów GPU, Jason Sanders, Edward Kandrot, Helion, 2012
- Strona domowa MPI http://www.mcs.anl.gov/research/projects/mpi
- Strona domowa OpenMP http://www.openmp.org/
- Strona domowa OpenMPI https://www.open-mpi.org/
- Strona domowa PCJ https://pcj.icm.edu.pl/
- Strona domowa NVIDIA: http://docs.nvidia.com
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: