Programowanie równoległe
Informacje ogólne
Kod przedmiotu: | 390-FG1-3PR |
Kod Erasmus / ISCED: | (brak danych) / (brak danych) |
Nazwa przedmiotu: | Programowanie równoległe |
Jednostka: | Wydział Fizyki |
Grupy: |
fizyka gier komputerowych i robotów 3 rok I stopień sem. letni 2024/2025 |
Punkty ECTS i inne: |
3.00
|
Język prowadzenia: | polski |
Rodzaj przedmiotu: | obowiązkowe |
Wymagania (lista przedmiotów): | Programowanie strukturalne 0900-FG1-1PS |
Założenia (opisowo): | Przedmiotem zajęć jest programowanie równoległe. Zostanie omówione programowanie równoległe na maszyny o pamięci współdzielonej, o pamięci rozproszonej, programowanie akceleratorów obliczeń bazujących na kartach graficznych i tworzenie aplikacji wielowątkowych. |
Skrócony opis: |
Założenia i cele przedmiotu: Ogólna charakterystyka środowiska i programowania równoległego oraz rozproszonego. Współbieżność procesów w systemach operacyjnych i poprawność programu współbieżnego. Wybrane problemy programowania współbieżnego: wzajemnego wykluczania, producenta i konsumenta, ucztujących filozofów. Podstawowe modele obliczeń równoległych, model z pamięcią wspólną, model sieciowy. Elementarne algorytmy równoległe, ocena algorytmów, prawo Amdahla, prawo Gustafsona i Barsisa. Algorytmy dla modelu z pamięcią wspólną i dla modelu sieciowego. Architektura komputerów równoległych, klasyfikacja Flynna, komputery wieloprocesorowe, klastry, sieci połączeń. Programowanie równoległe z użyciem pamięci wspólnej, model obliczeń OpenMP. Programowanie równoległe z przesyłaniem wiadomości, model obliczeń MPI. Wprowadzenie do programowania równoległego wykorzystującego karty graficzne GPU. |
Pełny opis: |
Profil studiów: ogólnoakademicki Forma studiów: stacjonarne Rodzaj przedmiotu: obowiązkowy Dziedzina i dyscyplina nauki: nauki ścisłe i przyrodnicze, nauki fizyczne, informatyka Rok studiów, semestr: rok 3, semestr 6 Moduł: narzędzia informatyki Liczba godzin zajęć dydaktycznych: wykład 15h, laboratorium 30h Punkty ECTS: 3 Bilans nakładu pracy studenta: wykład (15 godzin), laboratorium (30 godzin), przygotowanie do zajęć (14 godzin), udział w konsultacjach przedmiotowych (3 godziny), przygotowanie do egzaminu końcowego i udział w egzaminie (10+3 godziny). Wskaźniki ilościowe: wykład (0.6 punktów ECTS), konwersatorium (1.2 punktów ECTS), przygotowanie do zajęć (0.56 punktów ECTS), udział w konsultacjach przedmiotowych (0.12 punktów ECTS), przygotowanie do egzaminu końcowego i udział w egzaminie (0.52 punkty ECTS). 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ą praktycznie treści odpowiadające wykładowi. |
Literatura: |
Źródła internetowe: 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 |
Efekty uczenia się: |
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ć złożony program komputerowy w wybranym języku programowania, skompilować go i uruchomić Umie napisać program komputerowy ralizują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 |
Metody i kryteria oceniania: |
Zaliczenie laboratorium odbywa się na podstawie oceny, która uwzględnia: 1. znajomości pojęć i mechanizmów programowania równoległego; 2. umiejętność zastosowania mechanizmów programowania równoległego do konkretnych problemów; 4. umiejętność korzystania z zasobów Internetu; 5. kreatywność w podejściu do rozwiązywanych problemów; 6. prace domowe. Podstawą zaliczenia laboratorium jest obecność na zajęciach. Dopuszcza się opuszczenie trzech zajęć. Zaliczenie wykładu odbywa się na podstawie egzaminu końcowego. |
Zajęcia w cyklu "Rok akademicki 2023/24" (zakończony)
Okres: | 2023-10-01 - 2024-06-30 |
Przejdź do planu
PN WT LAB
WYK
ŚR CZ PT |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 15 godzin
|
|
Koordynatorzy: | Marian Uba | |
Prowadzący grup: | Marian Uba | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - Zaliczenie na ocenę Wykład - Egzamin |
Zajęcia w cyklu "Rok akademicki 2024/25" (w trakcie)
Okres: | 2024-10-01 - 2025-06-30 |
Przejdź do planu
PN WT ŚR LAB
WYK
CZ PT |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 15 godzin
|
|
Koordynatorzy: | Marian Uba | |
Prowadzący grup: | Marian Uba | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Egzamin
Laboratorium - Zaliczenie na ocenę Wykład - Egzamin |
Właścicielem praw autorskich jest Uniwersytet w Białymstoku.