Programowanie równoległe 390-FG1-3PR
Profil studiów: ogólnoakademicki
Forma studiów: stacjonarne
Rodzaj przedmiotu: obowiązkowy
Dziedzina i dyscyplina nauki: Dziedzina nauk ścisłych i przyrodniczych, Dyscyplina nauki fizyczne
Poziom kształcenia: studia pierwszego stopnia
Rok studiów/semestr: 3. rok/6. semestr
Punkty ECTS: 3
Bilans nakładu pracy studenta:
- udział w wykładach (15 godz.),
- udział w laboratoriach (30 godz.),
- udział w konsultacjach (15 godz.),
- praca własna studenta w domu (15 godz.),
Wskaźniki ilościowe:
- nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela - 2.4 ECTS;
- nakład pracy studenta związany z samodzielna pracą - 0.6 ECTS.
Zasady użycia sztucznej inteligencji (SI):
Podczas zajęć dozwolone jest korzystanie z systemów SI w zakresie:
1. Tłumaczenia maszynowego tekstów źródłowych z języków obcych.
2. Wyszukiwania i organizowania źródeł naukowych.
Podczas egzaminu niedozwolone jest korzystanie z systemów SI.
W przypadku stwierdzenia naruszeń powyższych zasad, osoba kształcąca się może zostać pociągnięta do odpowiedzialności na podstawie odrębnych przepisów dyscyplinarnych.
Treści wykładu:
- Programowanie równoległe na maszyny z pamięcią współdzieloną
- Wprowadzenie do OpenMP
- Podstawowe klauzule
- Funkcje biblioteczne, zmienne środowiskowe, kontrolowanie uruchomienia i liczby wątków
- Zaawansowane klauzule
- Programowanie równoległe na maszyny z pamięcią rozproszoną
- Wprowadzenie i instalacja MPI
- Komunikacja punk-punkt
- Prosta komunikacja kolektywna
- Komunikacja kolektywna z redukcją
- Programowanie równoległe akceleratorów obliczeń
- Wprowadzenie do programowania CUDA
- Wprowadzenie do programowania OpenCL
Treści laboratorium:
Na laboratorium realizowane są zadania praktyczne odpowiadające treściom omawianym na wykładzie.
Rodzaj przedmiotu
Tryb prowadzenia przedmiotu
Wymagania (lista przedmiotów)
Założenia (lista przedmiotów)
Założenia (opisowo)
Koordynatorzy przedmiotu
W cyklu 2024: | W cyklu 2025: |
Efekty kształcenia
(K_W24) - ma podstawową wiedzę z zakresu algorytmiki i struktur danych
Ma podstawową wiedzę zna pojęcia z zakresu programowania równoległego
(K_U23) - umie napisać prosty program komputerowy w wybranym języku programowania, skompilować go i uruchomić
Umie napisać program komputerowy realizujący obliczenia równolegle na wybrane architektury sprzętowe
(K_U25) - umie wyszukiwać i wykorzystywać specjalistyczne oprogramowanie komputerowe w zasobach Internetu z poszanowaniem własności intelektualnej oraz zasad użytkowania
(K_K05) - potrafi samodzielnie wyszukiwać informacje w literaturze i zasobach Internetu, także w językach obcych
Kryteria oceniania
Zaliczenie laboratorium odbywa się na podstawie średniej z ocen uzyskanych na podstawie dwóch kolokwium realizowanych przy komputerze.
Podczas laboratorium niedozwolone jest korzystanie z systemów SI.
Podczas tworzenia prac domowych zabronione jest korzystanie z systemów SI do tworzenia kodu,
Zaliczenie wykładu odbywa się na podstawie egzaminu końcowego.
Podczas egzaminu niedozwolone jest korzystanie z systemów SI.
Literatura
Literatura podstawowa:
- Z. Czech. Wprowadzenie do obliczeń równoległych, PWN, Warszawa 2010.
- P. Stpiczyński, M. Brzuszek, Podstawy programowania obliczeń równoległych, UMCS, Lublin 2011.
- Sanders Jason, Kandrot Edward: Cuda w przykładach Wprowadzenie do ogólnego programowania procesów GPU, Wydawnictwo Helion, 2012.
Literatura uzupełniająca:
- OpenMP: https://www.openmp.org/
- Open MPI: https://www.open-mpi.org/
- CUDA: https://docs.nvidia.com/cuda/
- OpenCL: https://www.khronos.org/opencl/
- C++11 threads: https://en.cppreference.com/w/cpp/thread
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: