Karta Przedmiotu

Politechnika Białostocka Wydział Informatyki
Kierunek studiów Data Science Poziom i forma
studiów
pierwszego stopnia
stacjonarne
Grupa przedmiotów /
specjalność
Profil kształcenia ogólnoakademicki
Nazwa przedmiotu Obliczenia równoległe Kod przedmiotu DS1S5OBR
Rodzaj zajęć obowiązkowy
Formy zajęć i liczba godzin W Ć L P Ps T S Semestr 5
30 30 Punkty ECTS 4
Program obowiązuje od 2025/2026
Przedmioty wprowadzające Język programowania - obieralny (-),   MLOps w technologiach AI (DS1S3MLO),   Programowanie obiektowe (DS1S2POB),   Uczenie maszynowe 2 (DS1S4UM2),  
Cele przedmiotu Przekazanie wiedzy z zakresu programowania równoległego .
Rozwój praktycznych umiejętności implementacji i optymalizacji rozwiązań równoległych.

Odniesienia do frameworka edukacyjnego mikrokompetencji SFIA
- Programming/Software Development (PROG) - poziom 4: projektowanie i implementacja wydajnych algorytmów równoległych
- Technical Specialism (TECH) - poziom 4: optymalizacja wydajności obliczeń na GPU i systemów wielowątkowych
- High Performance Computing (HPCC) - poziom 3: wykorzystanie klastrów obliczeniowych i systemów rozproszonych
Ramowe treści programowe Kompleksowe wprowadzenie do technik przetwarzania równoległego. Fundamenty architektur równoległych oraz modeli programowania. Programowanie systemów rozproszonych przy pomocy MPI oraz systemów wielordzeniowych przy pomocy OpenMP. Podstawowe algorytmy równoległe. Wstęp do programowania GPU w technologii CUDA.
Inne informacje o przedmiocie przedmiot ma związek z prowadzoną na Uczelni działalnością naukową
Wyliczenie: Nakład pracy studenta związany z: Godzin
ogółem
W tym
kontaktowych
W tym
praktycznych
udziałem w wykładach 30 30
udziałem w innych formach zajęć 30 30 30
indywidualnym wsparciem merytorycznym procesu uczenia się, udziałem w zaliczeniach organizowanych poza planem zajęć 4 4
przygotowaniem do zaliczenia wykładu 15
przygotowaniem do bieżących zajęć 21 21
Razem godzin: 100 64 51
Razem punktów ECTS: 4 2.6 2.0
Zakładane kierunkowe efekty uczenia się Wiedza Umiejętności Kompetencje
społeczne
DS1_W03 DS1_U04 DS1_K01
DS1_W04 DS1_U05 DS1_K05
DS1_W08 DS1_U06
DS1_W20 DS1_U16
DS1_W21 DS1_U21
Cele i treści ramowe sformułował(a) dr hab. inż. Wojciech Kwedlo, dr inż. Daniel Reska, dr inż. Paweł Tadejko Data: 29/05/2025
Realizacja w roku akademickim 2027/2028
 
Treści programowe
Wykład
1. Wprowadzenie
2. Architektury systemów równoległych
3. Komunikacja punkt do punktu w standardzie MPI
4. Nietrywialny przykład MPI - zbiór Mandelbrodta
5. Operacje kolektywane w MPI
6. Podsumowanie MPI
7. Nowe funkcje w MPI 3 i MPI 4
8. Wprowadzenie do OpenMP: zrównoleglanie pętli
9. Synchronizacja w OpenMP
10. Mechanizm zadań w OpenMP
11. Podstawowe algorytmy równoległe: sortowanie, obliczenia macierzowe
12. Metody projektowania i analizy skalowalności algorytmów równoległych
13. Wprowadzenie do CUDA. Organizacja wątków w gridy i bloki
14. Optymalizacja kerneli CUDA – pamięć wspólna
15. Zaliczenie wykładu
Pracownia specjalistyczna
1. Organizaja pracowni
2. Prosty przykład MPI - program typu pingpong
3. Prosty przykład MPI - program typu pingpong
4. Zaawansowany projekt z MPI
5. Zaawansowany projekt z MPI
6. Zaawansowany projekt z MPI
7. Zaawansowany projekt z MPI
8. Projekt z OpenMP
9. Projekt z OpenMP
10. Projekt z OpenMP
11. Projekt z OpenMP
12. Projekt z CUDA
13. Projekt z CUDA
14. Projekt z CUDA
15. Ocena projektów i zaliczenie przedmiotu
Metody dydaktyczne
(realizacja stacjonarna)
W wykład problemowy; wykład konwersatoryjny; wykład z prezentacją multimedialną
Ps zadania indywidualne; zadania projektowe w grupach; dyskusja rozwiązań
Metody dydaktyczne
(realizacja zdalna)
W wykład problemowy; wykład konwersatoryjny; wykład z prezentacją multimedialną
-
Forma zaliczenia
W zaliczenie pisemne z pytaniami otwartymi
Ps realizacja zadań indywidualnych; opracowanie zadań projektowych realizowanych w grupach
Warunki zaliczenia
W Uzyskanie min. 30% z każdego E1-E3, a po spełnieniu tego warunku ostateczna ocena wynika z sumy uzyskanych punktów.
Kryteria oceny:
[ 0 – 50]% punktów – 2.0
(50 – 60]% punktów – 3.0
(60 – 70]% punktów – 3.5
(70 – 80]% punktów – 4.0
(80 – 90]% punktów – 4.5
(90 – 100]% punktów – 5.0
Ps Uzyskanie min. 30% z każdego E4-E7, a po spełnieniu tego warunku ostateczna ocena wynika z sumy uzyskanych punktów.
Kryteria oceny:
[ 0 – 50]% punktów – 2.0
(50 – 60]% punktów – 3.0
(60 – 70]% punktów – 3.5
(70 – 80]% punktów – 4.0
(80 – 90]% punktów – 4.5
(90 – 100]% punktów – 5.0
Symbol efektu Zakładane efekty uczenia się Odniesienie do efektów uczenia się zdefiniowanych dla kierunku studiów
Wiedza Umiejętności Kompetencje
społeczne
Wiedza: student zna i rozumie
E1 metody i techniki programowania równoległego w kontekście ML/AI, w tym modele programowania równoległego oraz różnice między przetwarzaniem rozproszonym a wielowątkowym
E2 architekturę i specyfikę obliczeń GPU, w tym organizację wątków, pamięć współdzieloną oraz ich zastosowania w optymalizacji obliczeń AI
E3 metody optymalizacji systemów równoległych, obejmujące analizy wydajności, zarządzanie zasobami oraz strategie skalowania algorytmów
Umiejętności: student potrafi
E4 implementować równoległe systemy ML/AI, korzystając z technologii takich jak MPI, OpenMP i CUDA, oraz analizować ich wydajność
E5 optymalizować wydajność obliczeń równoległych, identyfikując wąskie gardła oraz stosując zaawansowane techniki równoległości
E6 projektować skalowalne systemy distributed ML, wykorzystując rozproszone frameworki oraz techniki model parallelism i data parallelism
E7 programować i optymalizować aplikacje działające na systemach wielordzeniowych oraz rozproszonych, dostosowując algorytmy do specyficznych architektur sprzętowych
Kompetencje społeczne: student jest gotów do
E8 świadomego i odpowiedzialnego stosowania metod obliczeń równoległych, uwzględniając ich wpływ na efektywność przetwarzania danych, bezpieczeństwo systemów oraz aspekty etyczne związane z wykorzystaniem AI
Symbol efektu Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
E1 zaliczenie opisowe i testowe W
E2 zaliczenie opisowe i testowe W
E3 zaliczenie opisowe i testowe W
E4 ocena rozwiązywanych zadań problemowych, ocena projektu Ps
E5 ocena rozwiązywanych zadań problemowych, ocena projektu Ps
E6 ocena rozwiązywanych zadań problemowych, ocena projektu Ps
E7 ocena rozwiązywanych zadań problemowych, ocena projektu Ps
E8 ocena rozwiązywanych zadań problemowych, ocena projektu Ps
Literatura podstawowa
1. Z. Czech, Wprowadzenie do obliczeń równoległych, Wydaw. Naukowe PWN, 2013
2. Y. Zamora, R. Robey, Parallel and High Performance Computing, Manning Publications, 2021
3. B. Schmidt, J. Álvaro Gonzalez-Martinez, C. Hundt, M. Schlarb, Parallel Programming, Morgan Kaufmann, 2017
4. N. Matloff, Parallel Computing for Data Science, CRC Press, 2015
Literatura uzupełniająca
1. J. Flux, GPU Mastery Series: Unlocking CUDA's Power using pyCUDA series,‎ Independently published, 2024
2. D. B. Kirk, W. W. Hwu, Programming massively parallel processors: a hands-on approach, 3rd edition, Elsevier/Morgan Kaufmann, 2017
Koordynator przedmiotu: dr inż. Krzysztof Jurczuk, dr hab. inż. Wojciech Kwedlo, dr inż. Daniel Reska Data: 02/06/2025