Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N2)
specjalność: Systemy komputerowe zorientowane na człowieka

Sylabus przedmiotu Równoległe programowanie inkrementacyjne:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne 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
ECTS (planowane) 4,0 ECTS (formy) 4,0
Forma zaliczenia egzamin Język polski
Blok obieralny Grupa obieralna

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL2 20 2,00,50zaliczenie
wykładyW2 20 2,00,50egzamin

Wymagania wstępne

KODWymaganie wstępne
W-1Zaliczone przedmioty: Programowanie w językach C, C++, Architektura komputerów, Systemy operacyjne, Inżynieria oprogramowania

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Przyswojenie 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ęć

KODTreść programowaGodziny
laboratoria
T-L-1Zależności obecne w programie oraz dobór odpowiednich transformacji kodu1
T-L-2Tworzenie 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łym1
T-L-3Tworzenie aplikacji drobno-ziarnistych, zastosowanie redukcji obliczeń2
T-L-4Tworzenie aplikacji drobno-ziarnistych, zastosowanie różnych sposobów szeregowania iteracji pętli2
T-L-5Tworzenie grubo-ziarnistych aplikacji, zastosowanie redukcji obliczeń2
T-L-6Tworzenie aplikacji równoległych wymagających zastosowania synchronizacji wątków2
T-L-7Obliczenie przyspieszenia i efektywności aplikacji równoległych2
T-L-8Obliczenie górnej granicy przyspieszenia aplikacji równoległych w oparciu o prawo Amdahla1
T-L-9Zastosowanie bazowych technik optymalizacji wydajności aplikacji równoległych 21
T-L-10Zastosowanie bazowych technik zwiększenia lokalności aplikacji równoległych2
T-L-11Tworzenie aplikacji równoległych z zastosowaniem dyrektywy task2
T-L-12Synchronizacja zadań utworzonych za pomocą dyrektywy task1
T-L-13Programowanie akceleratorów za pomocą możliwości OpenMP 4.0 oraz OpenMP 4.51
20
wykłady
T-W-1Organizacja 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), podstawowe transformacje (FAN, PAR, PIPE)2
T-W-2Programowanie inkrementacyjne, jego zalety, zastosowanie API OpenMP do implementacji programowania inkrementacyjnego, historia, obecne wersje i specyfikacje, kompilatory wspierające OpenMP1
T-W-3Podstawowe pojęcia związane z API OpenMP ( zależności, 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)2
T-W-4Wydajność aplikacji równoległych , zasady i sposoby zwiększenia wydajności1
T-W-5Lokalność aplikacji, sposoby zwiększania lokalności za pomocą API OpenMP1
T-W-6Wytwarzanie aplikacji drobno-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.03
T-W-7Wytwarzanie aplikacji grubo-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0, 22
T-W-8Programowanie algorytmów nieregularnych i dynamicznych za pomocą API OpenMP, wersja 3.12
T-W-9Synchronizacja zadań dynamicznych za pomocą API OpenMP, wersja 4.5 2 10 Programowanie akceleratorów za pomocą API OpenMP, programowanie 14 Biblioteki programów równoległych w OpenMP, zakresy ich stosowalności, przyszłe wersje OpenMP 22
T-W-10Programowanie akceleratorów za pomocą API OpenMP, programowanie komputerów masywnie równoległych za pomocą wersji 4.51
T-W-11Programowanie komputerów SIMD za pomocą OpenMP, wersja 4.51
T-W-12Nowe możliwości programowania równoległego dostarczane przez API OpenMP 5.01
T-W-13Opracowanie modeli matematycznych i statystycznych do oszacowania czasu wykonania aplikacji równoległych1
20

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1uczestnictwo w zajęciach20
A-L-2opracowanie sprawozdań30
50
wykłady
A-W-1uczestnictwo w zajęciach20
A-W-2Przygotowanie do egzaminu30
50

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykad informacyjny/konwersatoryjny
M-2Ćwiczenia laboratoryjne

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
S-2Ocena podsumowują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ówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D02.02_W01
ma wiedzę w zakresie inkremntacyjnego tworzenia oprogramowania równoległyego
I_2A_W02C-1T-W-1, T-W-7, T-W-5, T-W-2, T-W-9, T-W-3, T-W-10, T-W-6, T-W-13, T-W-12, T-W-8, T-W-4, T-W-11M-1S-2

Zamierzone efekty uczenia się - umiejętności

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D02.02_U01
Potrafi wytwarzać oprogramowanie rónoległe z zastosowaniem API OpenMP i
I_2A_U01C-1T-L-10, T-L-6, T-L-9, T-L-1, T-L-2, T-L-12, T-L-11, T-L-13, T-L-7, T-L-4, T-L-8, T-L-3, T-L-5M-2S-1

Zamierzone efekty uczenia się - inne kompetencje społeczne i personalne

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D02.02_K01
Potrafi wytwarzać oprogramowanie w zespole
I_2A_K04C-1T-W-3, T-L-5, T-W-4, T-W-9, T-L-13, T-L-10, T-L-9, T-W-13, T-W-1, T-L-1, T-L-2, T-L-3, T-L-7, T-W-7, T-L-8, T-W-10, T-W-8, T-L-6, T-W-12, T-L-11, T-W-2, T-L-4, T-W-5, T-W-6, T-W-11, T-L-12M-2S-1

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium oceny
I_2A_D02.02_W01
ma wiedzę w zakresie inkremntacyjnego tworzenia oprogramowania równoległyego
2,0
3,0ma 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ęOcenaKryterium oceny
I_2A_D02.02_U01
Potrafi wytwarzać oprogramowanie rónoległe z zastosowaniem API OpenMP i
2,0
3,0Potrafi 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ęOcenaKryterium oceny
I_2A_D02.02_K01
Potrafi wytwarzać oprogramowanie w zespole
2,0
3,0udział w wytwarzaniu oprogramowania w zespole
3,5
4,0
4,5
5,0

Literatura podstawowa

  1. W. Bielecki, Przetwarzanie równoległe i rozproszone, Politechnika Szczecińska, Szczecin, 2007
  2. Chapman, Jost, and Van Der Pas, Using OpenMP M, MIT Press Cambridge, Cambridge, 2007
  3. Ruud van der Pas, Christian Terboven, Eric Stotzer, Using OpenMP—The Next Step: Affinity, Accelerators, Tasking, and SIMD, MIT Press, Cambridge, 2017

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Zależności obecne w programie oraz dobór odpowiednich transformacji kodu1
T-L-2Tworzenie 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łym1
T-L-3Tworzenie aplikacji drobno-ziarnistych, zastosowanie redukcji obliczeń2
T-L-4Tworzenie aplikacji drobno-ziarnistych, zastosowanie różnych sposobów szeregowania iteracji pętli2
T-L-5Tworzenie grubo-ziarnistych aplikacji, zastosowanie redukcji obliczeń2
T-L-6Tworzenie aplikacji równoległych wymagających zastosowania synchronizacji wątków2
T-L-7Obliczenie przyspieszenia i efektywności aplikacji równoległych2
T-L-8Obliczenie górnej granicy przyspieszenia aplikacji równoległych w oparciu o prawo Amdahla1
T-L-9Zastosowanie bazowych technik optymalizacji wydajności aplikacji równoległych 21
T-L-10Zastosowanie bazowych technik zwiększenia lokalności aplikacji równoległych2
T-L-11Tworzenie aplikacji równoległych z zastosowaniem dyrektywy task2
T-L-12Synchronizacja zadań utworzonych za pomocą dyrektywy task1
T-L-13Programowanie akceleratorów za pomocą możliwości OpenMP 4.0 oraz OpenMP 4.51
20

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Organizacja 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), podstawowe transformacje (FAN, PAR, PIPE)2
T-W-2Programowanie inkrementacyjne, jego zalety, zastosowanie API OpenMP do implementacji programowania inkrementacyjnego, historia, obecne wersje i specyfikacje, kompilatory wspierające OpenMP1
T-W-3Podstawowe pojęcia związane z API OpenMP ( zależności, 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)2
T-W-4Wydajność aplikacji równoległych , zasady i sposoby zwiększenia wydajności1
T-W-5Lokalność aplikacji, sposoby zwiększania lokalności za pomocą API OpenMP1
T-W-6Wytwarzanie aplikacji drobno-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.03
T-W-7Wytwarzanie aplikacji grubo-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0, 22
T-W-8Programowanie algorytmów nieregularnych i dynamicznych za pomocą API OpenMP, wersja 3.12
T-W-9Synchronizacja zadań dynamicznych za pomocą API OpenMP, wersja 4.5 2 10 Programowanie akceleratorów za pomocą API OpenMP, programowanie 14 Biblioteki programów równoległych w OpenMP, zakresy ich stosowalności, przyszłe wersje OpenMP 22
T-W-10Programowanie akceleratorów za pomocą API OpenMP, programowanie komputerów masywnie równoległych za pomocą wersji 4.51
T-W-11Programowanie komputerów SIMD za pomocą OpenMP, wersja 4.51
T-W-12Nowe możliwości programowania równoległego dostarczane przez API OpenMP 5.01
T-W-13Opracowanie modeli matematycznych i statystycznych do oszacowania czasu wykonania aplikacji równoległych1
20

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1uczestnictwo w zajęciach20
A-L-2opracowanie sprawozdań30
50
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1uczestnictwo w zajęciach20
A-W-2Przygotowanie do egzaminu30
50
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.02_W01ma wiedzę w zakresie inkremntacyjnego tworzenia oprogramowania równoległyego
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_W02Ma wiedzę z zakresu zaawansowanych technik programowania systemów informatycznych w wybranym obszarze zastosowań
Cel przedmiotuC-1Przyswojenie wiedzy i umiejętności niezbędnych do projektowania aplikacji równolegych oraz oceny ich jakości
Treści programoweT-W-1Organizacja 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), podstawowe transformacje (FAN, PAR, PIPE)
T-W-7Wytwarzanie aplikacji grubo-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0, 2
T-W-5Lokalność aplikacji, sposoby zwiększania lokalności za pomocą API OpenMP
T-W-2Programowanie inkrementacyjne, jego zalety, zastosowanie API OpenMP do implementacji programowania inkrementacyjnego, historia, obecne wersje i specyfikacje, kompilatory wspierające OpenMP
T-W-9Synchronizacja zadań dynamicznych za pomocą API OpenMP, wersja 4.5 2 10 Programowanie akceleratorów za pomocą API OpenMP, programowanie 14 Biblioteki programów równoległych w OpenMP, zakresy ich stosowalności, przyszłe wersje OpenMP 2
T-W-3Podstawowe pojęcia związane z API OpenMP ( zależności, 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)
T-W-10Programowanie akceleratorów za pomocą API OpenMP, programowanie komputerów masywnie równoległych za pomocą wersji 4.5
T-W-6Wytwarzanie aplikacji drobno-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0
T-W-13Opracowanie modeli matematycznych i statystycznych do oszacowania czasu wykonania aplikacji równoległych
T-W-12Nowe możliwości programowania równoległego dostarczane przez API OpenMP 5.0
T-W-8Programowanie algorytmów nieregularnych i dynamicznych za pomocą API OpenMP, wersja 3.1
T-W-4Wydajność aplikacji równoległych , zasady i sposoby zwiększenia wydajności
T-W-11Programowanie komputerów SIMD za pomocą OpenMP, wersja 4.5
Metody nauczaniaM-1Wykad informacyjny/konwersatoryjny
Sposób ocenyS-2Ocena podsumowująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi
Kryteria ocenyOcenaKryterium oceny
2,0
3,0ma podstawowe wiedzę w zakresie inkremntacyjnego tworzenia oprogramowania równoległyego
3,5
4,0
4,5
5,0
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.02_U01Potrafi wytwarzać oprogramowanie rónoległe z zastosowaniem API OpenMP i
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_U01Potrafi prawidłowo zaplanować, przeprowadzić eksperyment badawczy, dokonać analizy i prezentacji uzyskanych wyników
Cel przedmiotuC-1Przyswojenie wiedzy i umiejętności niezbędnych do projektowania aplikacji równolegych oraz oceny ich jakości
Treści programoweT-L-10Zastosowanie bazowych technik zwiększenia lokalności aplikacji równoległych
T-L-6Tworzenie aplikacji równoległych wymagających zastosowania synchronizacji wątków
T-L-9Zastosowanie bazowych technik optymalizacji wydajności aplikacji równoległych 2
T-L-1Zależności obecne w programie oraz dobór odpowiednich transformacji kodu
T-L-2Tworzenie 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
T-L-12Synchronizacja zadań utworzonych za pomocą dyrektywy task
T-L-11Tworzenie aplikacji równoległych z zastosowaniem dyrektywy task
T-L-13Programowanie akceleratorów za pomocą możliwości OpenMP 4.0 oraz OpenMP 4.5
T-L-7Obliczenie przyspieszenia i efektywności aplikacji równoległych
T-L-4Tworzenie aplikacji drobno-ziarnistych, zastosowanie różnych sposobów szeregowania iteracji pętli
T-L-8Obliczenie górnej granicy przyspieszenia aplikacji równoległych w oparciu o prawo Amdahla
T-L-3Tworzenie aplikacji drobno-ziarnistych, zastosowanie redukcji obliczeń
T-L-5Tworzenie grubo-ziarnistych aplikacji, zastosowanie redukcji obliczeń
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Potrafi wytwarzać oprogramowanie równoległe za pomocą API OpenMP implementujące proste algorytmy
3,5
4,0
4,5
5,0
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.02_K01Potrafi wytwarzać oprogramowanie w zespole
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_K04Potrafi myśleć i działać w sposób kreatywny i przedsiębiorczy
Cel przedmiotuC-1Przyswojenie wiedzy i umiejętności niezbędnych do projektowania aplikacji równolegych oraz oceny ich jakości
Treści programoweT-W-3Podstawowe pojęcia związane z API OpenMP ( zależności, 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)
T-L-5Tworzenie grubo-ziarnistych aplikacji, zastosowanie redukcji obliczeń
T-W-4Wydajność aplikacji równoległych , zasady i sposoby zwiększenia wydajności
T-W-9Synchronizacja zadań dynamicznych za pomocą API OpenMP, wersja 4.5 2 10 Programowanie akceleratorów za pomocą API OpenMP, programowanie 14 Biblioteki programów równoległych w OpenMP, zakresy ich stosowalności, przyszłe wersje OpenMP 2
T-L-13Programowanie akceleratorów za pomocą możliwości OpenMP 4.0 oraz OpenMP 4.5
T-L-10Zastosowanie bazowych technik zwiększenia lokalności aplikacji równoległych
T-L-9Zastosowanie bazowych technik optymalizacji wydajności aplikacji równoległych 2
T-W-13Opracowanie modeli matematycznych i statystycznych do oszacowania czasu wykonania aplikacji równoległych
T-W-1Organizacja 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), podstawowe transformacje (FAN, PAR, PIPE)
T-L-1Zależności obecne w programie oraz dobór odpowiednich transformacji kodu
T-L-2Tworzenie 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
T-L-3Tworzenie aplikacji drobno-ziarnistych, zastosowanie redukcji obliczeń
T-L-7Obliczenie przyspieszenia i efektywności aplikacji równoległych
T-W-7Wytwarzanie aplikacji grubo-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0, 2
T-L-8Obliczenie górnej granicy przyspieszenia aplikacji równoległych w oparciu o prawo Amdahla
T-W-10Programowanie akceleratorów za pomocą API OpenMP, programowanie komputerów masywnie równoległych za pomocą wersji 4.5
T-W-8Programowanie algorytmów nieregularnych i dynamicznych za pomocą API OpenMP, wersja 3.1
T-L-6Tworzenie aplikacji równoległych wymagających zastosowania synchronizacji wątków
T-W-12Nowe możliwości programowania równoległego dostarczane przez API OpenMP 5.0
T-L-11Tworzenie aplikacji równoległych z zastosowaniem dyrektywy task
T-W-2Programowanie inkrementacyjne, jego zalety, zastosowanie API OpenMP do implementacji programowania inkrementacyjnego, historia, obecne wersje i specyfikacje, kompilatory wspierające OpenMP
T-L-4Tworzenie aplikacji drobno-ziarnistych, zastosowanie różnych sposobów szeregowania iteracji pętli
T-W-5Lokalność aplikacji, sposoby zwiększania lokalności za pomocą API OpenMP
T-W-6Wytwarzanie aplikacji drobno-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0
T-W-11Programowanie komputerów SIMD za pomocą OpenMP, wersja 4.5
T-L-12Synchronizacja zadań utworzonych za pomocą dyrektywy task
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0
3,0udział w wytwarzaniu oprogramowania w zespole
3,5
4,0
4,5
5,0