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 kodu2
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łym2
T-L-3Tworzenie aplikacji drobno-ziarnistych z zastosowaniem redukcji obliczeń oraz różnych sposobów szeregowania pętli2
T-L-4Tworzenie grubo-ziarnistych aplikacji z zastosowaniem dyrektywy sections2
T-L-5Tworzenie aplikacji równoległych wymagających zastosowania synchronizacji wątków1
T-L-6Obliczenie górnej granicy przyspieszenia aplikacji równoległych w oparciu o prawo Amdahla1
T-L-7Zrównoleglenie pętli doacross2
T-L-8Tworzenie aplikacji równoległych z zastosowaniem dyrektywy task2
T-L-9Synchronizacja zadań utworzonych za pomocą dyrektywy task2
T-L-10Wytwarzanie aplikacji z zastosowaniem klauzuli "reduction" zdefiniowanej przez użytkownika2
T-L-11Programowanie akceleratorów za pomocą możliwości OpenMP 4.0 oraz OpenMP 4.52
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ń statycznych oraz dynamicznych za pomocą API OpenMP2
T-W-10Programowanie akceleratorów za pomocą API OpenMP, programowanie komputerów masywnie równoległych za pomocą wersji 4.52
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 4.x i 5.x1
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-4, T-W-5, T-W-7, T-W-1, T-W-2, T-W-3, T-W-9, T-W-10, T-W-11, T-W-12, T-W-6, T-W-8M-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-2, T-L-1, T-L-3, T-L-4, T-L-5, T-L-6, T-L-10, T-L-8, T-L-9, T-L-7, T-L-11M-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-L-2, T-L-1, T-L-3, T-L-4, T-L-5, T-L-6, T-L-10, T-L-8, T-L-9, T-L-7, T-L-11, T-W-4, T-W-5, T-W-7, T-W-1, T-W-2, T-W-3, T-W-9, T-W-10, T-W-11, T-W-12, T-W-6, T-W-8M-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 kodu2
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łym2
T-L-3Tworzenie aplikacji drobno-ziarnistych z zastosowaniem redukcji obliczeń oraz różnych sposobów szeregowania pętli2
T-L-4Tworzenie grubo-ziarnistych aplikacji z zastosowaniem dyrektywy sections2
T-L-5Tworzenie aplikacji równoległych wymagających zastosowania synchronizacji wątków1
T-L-6Obliczenie górnej granicy przyspieszenia aplikacji równoległych w oparciu o prawo Amdahla1
T-L-7Zrównoleglenie pętli doacross2
T-L-8Tworzenie aplikacji równoległych z zastosowaniem dyrektywy task2
T-L-9Synchronizacja zadań utworzonych za pomocą dyrektywy task2
T-L-10Wytwarzanie aplikacji z zastosowaniem klauzuli "reduction" zdefiniowanej przez użytkownika2
T-L-11Programowanie akceleratorów za pomocą możliwości OpenMP 4.0 oraz OpenMP 4.52
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ń statycznych oraz dynamicznych za pomocą API OpenMP2
T-W-10Programowanie akceleratorów za pomocą API OpenMP, programowanie komputerów masywnie równoległych za pomocą wersji 4.52
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 4.x i 5.x1
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-4Wydajność aplikacji równoległych , zasady i sposoby zwiększenia wydajności
T-W-5Lokalność aplikacji, sposoby zwiększania lokalności za pomocą API OpenMP
T-W-7Wytwarzanie aplikacji grubo-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0, 2
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-W-2Programowanie inkrementacyjne, jego zalety, zastosowanie API OpenMP do implementacji programowania inkrementacyjnego, historia, obecne wersje i specyfikacje, kompilatory wspierające OpenMP
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-9Synchronizacja zadań statycznych oraz dynamicznych za pomocą API OpenMP
T-W-10Programowanie akceleratorów za pomocą API OpenMP, programowanie komputerów masywnie równoległych za pomocą wersji 4.5
T-W-11Programowanie komputerów SIMD za pomocą OpenMP, wersja 4.5
T-W-12Nowe możliwości programowania równoległego dostarczane przez API OpenMP 4.x i 5.x
T-W-6Wytwarzanie aplikacji drobno-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0
T-W-8Programowanie algorytmów nieregularnych i dynamicznych za pomocą API OpenMP, wersja 3.1
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-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-1Zależności obecne w programie oraz dobór odpowiednich transformacji kodu
T-L-3Tworzenie aplikacji drobno-ziarnistych z zastosowaniem redukcji obliczeń oraz różnych sposobów szeregowania pętli
T-L-4Tworzenie grubo-ziarnistych aplikacji z zastosowaniem dyrektywy sections
T-L-5Tworzenie aplikacji równoległych wymagających zastosowania synchronizacji wątków
T-L-6Obliczenie górnej granicy przyspieszenia aplikacji równoległych w oparciu o prawo Amdahla
T-L-10Wytwarzanie aplikacji z zastosowaniem klauzuli "reduction" zdefiniowanej przez użytkownika
T-L-8Tworzenie aplikacji równoległych z zastosowaniem dyrektywy task
T-L-9Synchronizacja zadań utworzonych za pomocą dyrektywy task
T-L-7Zrównoleglenie pętli doacross
T-L-11Programowanie akceleratorów za pomocą możliwości OpenMP 4.0 oraz OpenMP 4.5
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-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-1Zależności obecne w programie oraz dobór odpowiednich transformacji kodu
T-L-3Tworzenie aplikacji drobno-ziarnistych z zastosowaniem redukcji obliczeń oraz różnych sposobów szeregowania pętli
T-L-4Tworzenie grubo-ziarnistych aplikacji z zastosowaniem dyrektywy sections
T-L-5Tworzenie aplikacji równoległych wymagających zastosowania synchronizacji wątków
T-L-6Obliczenie górnej granicy przyspieszenia aplikacji równoległych w oparciu o prawo Amdahla
T-L-10Wytwarzanie aplikacji z zastosowaniem klauzuli "reduction" zdefiniowanej przez użytkownika
T-L-8Tworzenie aplikacji równoległych z zastosowaniem dyrektywy task
T-L-9Synchronizacja zadań utworzonych za pomocą dyrektywy task
T-L-7Zrównoleglenie pętli doacross
T-L-11Programowanie akceleratorów za pomocą możliwości OpenMP 4.0 oraz OpenMP 4.5
T-W-4Wydajność aplikacji równoległych , zasady i sposoby zwiększenia wydajności
T-W-5Lokalność aplikacji, sposoby zwiększania lokalności za pomocą API OpenMP
T-W-7Wytwarzanie aplikacji grubo-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0, 2
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-W-2Programowanie inkrementacyjne, jego zalety, zastosowanie API OpenMP do implementacji programowania inkrementacyjnego, historia, obecne wersje i specyfikacje, kompilatory wspierające OpenMP
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-9Synchronizacja zadań statycznych oraz dynamicznych za pomocą API OpenMP
T-W-10Programowanie akceleratorów za pomocą API OpenMP, programowanie komputerów masywnie równoległych za pomocą wersji 4.5
T-W-11Programowanie komputerów SIMD za pomocą OpenMP, wersja 4.5
T-W-12Nowe możliwości programowania równoległego dostarczane przez API OpenMP 4.x i 5.x
T-W-6Wytwarzanie aplikacji drobno-ziarnistych za pomocą API OpenMP, wersje 2.5, 3.1,4.6, 5.0
T-W-8Programowanie algorytmów nieregularnych i dynamicznych za pomocą API OpenMP, wersja 3.1
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