Wydział Informatyki - Informatyka (S2)
specjalność: Inteligencja obliczeniowa
Sylabus przedmiotu Równoległe programowanie inkrementacyjne:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | drugiego stopnia |
Tytuł zawodowy absolwenta | magister inżynier | ||
Obszary studiów | charakterystyki PRK, kompetencje inżynierskie PRK | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Równoległe programowanie inkrementacyjne | ||
Specjalność | Projektowanie oprogramowania | ||
Jednostka prowadząca | Katedra Inżynierii Oprogramowania | ||
Nauczyciel odpowiedzialny | Włodzimierz Bielecki <Wlodzimierz.Bielecki@zut.edu.pl> | ||
Inni nauczyciele | Marek Pałkowski <Marek.Palkowski@zut.edu.pl>, Maciej Poliwoda <Maciej.Poliwoda@zut.edu.pl> | ||
ECTS (planowane) | 4,0 | ECTS (formy) | 4,0 |
Forma zaliczenia | egzamin | Język | polski |
Blok obieralny | — | Grupa obieralna | — |
Formy dydaktyczne
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Zaliczone przedmioty: Programowanie w językach C, C++, Architektura komputerów, Systemy operacyjne, Inżynieria oprogramowania |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Przyswojenie wiedzy i umiejętności niezbędnych do projektowania aplikacji równolegych oraz oceny ich jakości |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Zależności obecne w programie oraz dobór odpowiednich transformacji kodu | 4 |
T-L-2 | Tworzenie regionu równoległego, określenie liczby wątków w regionie równoległym, określenie zakresu zmiennych w regionie równoległym, zastosowanie redukcji obliczeń w regionie równoległym | 4 |
T-L-3 | Tworzenie aplikacji drobno-ziarnistych z zastosowaniem redukcji obliczeń oraz różnych sposobów szeregowania pętli | 4 |
T-L-4 | Tworzenie grubo-ziarnistych aplikacji z zastosowaniem dyrektywy sections | 2 |
T-L-5 | Tworzenie aplikacji równoległych wymagających zastosowania synchronizacji wątków | 2 |
T-L-6 | Obliczenie górnej granicy przyspieszenia aplikacji równoległych w oparciu o prawo Amdahla | 2 |
T-L-7 | Wytwarzanie aplikacji z zastosowaniem klauzuli "reduction" zdefiniowanej przez użytkownika | 2 |
T-L-8 | Tworzenie aplikacji równoległych z zastosowaniem dyrektywy task | 2 |
T-L-9 | Synchronizacja zadań utworzonych za pomocą dyrektywy task | 2 |
T-L-10 | Zrównoleglenie pętli doacross | 2 |
T-L-11 | Programowanie akceleratorów za pomocą możliwości OpenMP 4.0 oraz OpenMP 4.5 | 4 |
30 | ||
wykłady | ||
T-W-1 | Organizacja komputerów o dużej mocy obliczeniowej, podstawowe pojęcia związane z programowaniem równoległym ( zależności, procesy, watki, wielowątkowość, model fork-join). | 2 |
T-W-2 | Podstawowe pojęcia związane z przetwarzaniem rónoległym ( zależności, podstawowe transformacje: FAN, PAR, PIPE), programowanie inkrementacyjne, model obliczeń, region równoległy, tworzenie wątków, automatyczny podział pracy pomiędzy wątki, szeregowanie iteracji pętli, synchronizacja obliczeń, biblioteka czasu rzeczywistego, zmienne środowiskowe) | 4 |
T-W-3 | Programowanie inkrementacyjne, jego zalety, zastosowanie API OpenMP do implementacji programowania inkrementacyjnego, historia, obecne wersje i specyfikacje, kompilatory wspierające OpenMP, model obliczeń, region równoległy, tworzenie wątków, automatyczny podział pracy pomiędzy wątki, szeregowanie iteracji pętli, synchronizacja obliczeń, biblioteka czasu rzeczywistego, zmienne środowiskowe) | 2 |
T-W-4 | Wydajność aplikacji równoległych , zasady i sposoby zwiększenia wydajności | 2 |
T-W-5 | Lokalność aplikacji, sposoby zwiększania lokalności za pomocą API OpenMP | 2 |
T-W-6 | Wytwarzanie aplikacji drobno-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0 | 4 |
T-W-7 | Wytwarzanie aplikacji grubo-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0, 2 | 2 |
T-W-8 | Programowanie algorytmów nieregularnych i dynamicznych za pomocą API OpenMP, wersja 3.1 | 4 |
T-W-9 | Synchronizacja zadań staycznych oraz dynamicznych za pomocą API OpenMP, wersja 4.5 | 2 |
T-W-10 | Programowanie akceleratorów za pomocą API OpenMP, programowanie komputerów masywnie równoległych za pomocą wersji 4.5 | 2 |
T-W-11 | Programowanie komputerów SIMD za pomocą OpenMP, wersja 4.5 | 2 |
T-W-12 | Nowe możliwości programowania równoległego dostarczane przez API OpenMP 4.x i 5.x | 2 |
30 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | uczestnictwo w zajęciach | 30 |
A-L-2 | opracowanie sprawozdań | 18 |
A-L-3 | udzał w konsultacjach | 2 |
50 | ||
wykłady | ||
A-W-1 | uczestnictwo w zajęciach | 30 |
A-W-2 | Przygotowanie do egzaminu | 18 |
A-W-3 | Udział w konsultacjach | 2 |
50 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykad informacyjny/konwersatoryjny |
M-2 | Ćwiczenia laboratoryjne |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów |
S-2 | Ocena formująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi |
Zamierzone efekty uczenia się - wiedza
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_2A_D02.02_W01 ma wiedzę w zakresie inkremntacyjnego tworzenia oprogramowania równoległyego | I_2A_W02 | — | — | C-1 | T-W-1, T-W-3, T-W-2, T-W-4, T-W-5, T-W-6, T-W-8, T-W-9, T-W-10, T-W-11, T-W-12, T-W-7 | M-1 | S-2 |
Zamierzone efekty uczenia się - umiejętności
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_2A_D02.02_U01 Potrafi wytwarzać oprogramowanie rónoległe z zastosowaniem API OpenMP i | I_2A_U01 | — | — | C-1 | T-L-1, T-L-2, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7, T-L-8, T-L-9, T-L-10, T-L-11 | M-2 | S-1 |
Zamierzone efekty uczenia się - inne kompetencje społeczne i personalne
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_2A_D02.02_K01 Potrafi wytwarzać oprogramowanie w zespole | I_2A_K04 | — | — | C-1 | T-W-1, T-W-3, T-W-2, T-W-4, T-W-5, T-W-6, T-W-8, T-W-9, T-W-10, T-W-11, T-W-12, T-W-7, T-L-1, T-L-2, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7, T-L-8, T-L-9, T-L-10, T-L-11 | M-2 | S-1 |
Kryterium oceny - wiedza
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_2A_D02.02_W01 ma wiedzę w zakresie inkremntacyjnego tworzenia oprogramowania równoległyego | 2,0 | |
3,0 | ma podstawowe wiedzę w zakresie inkremntacyjnego tworzenia oprogramowania równoległyego | |
3,5 | ||
4,0 | ||
4,5 | ||
5,0 |
Kryterium oceny - umiejętności
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_2A_D02.02_U01 Potrafi wytwarzać oprogramowanie rónoległe z zastosowaniem API OpenMP i | 2,0 | |
3,0 | Potrafi wytwarzać oprogramowanie równoległe za pomocą API OpenMP implementujące proste algorytmy | |
3,5 | ||
4,0 | ||
4,5 | ||
5,0 |
Kryterium oceny - inne kompetencje społeczne i personalne
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_2A_D02.02_K01 Potrafi wytwarzać oprogramowanie w zespole | 2,0 | |
3,0 | udział w wytwarzaniu oprogramowania w zespole | |
3,5 | ||
4,0 | ||
4,5 | ||
5,0 |
Literatura podstawowa
- W. Bielecki, Przetwarzanie równoległe i rozproszone, Politechnika Szczecińska S, Szczecin, 2007
- Chapman, Jost, and Van Der Pas, Using OpenMP, MIT Press C, ambridge, 2007
- Ruud van der Pas, Christian Terboven, Eric Stotzer, Using OpenMP—The Next Step: Affinity, Accelerators, Tasking, and SIMD, MIT Press, 2017