Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N2)

Sylabus przedmiotu Programowanie równoległe i rozproszone:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne Poziom drugiego stopnia
Tytuł zawodowy absolwenta magister
Obszary studiów nauki techniczne
Profil ogólnoakademicki
Moduł
Przedmiot Programowanie równoległe i rozproszone
Specjalność inżynieria oprogramowania
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Marek Pałkowski <Marek.Palkowski@zut.edu.pl>
Inni nauczyciele Marek Pałkowski <Marek.Palkowski@zut.edu.pl>, Krzysztof Siedlecki <Krzysztof.Siedlecki@zut.edu.pl>
ECTS (planowane) 3,0 ECTS (formy) 3,0
Forma zaliczenia egzamin Język polski
Blok obieralny Grupa obieralna

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW1 10 2,20,62egzamin
laboratoriaL1 10 0,80,38zaliczenie

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 i rozproszonych oraz oceny ich jakości
C-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie programowania równoległego i rozproszonego

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".2
T-L-2Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem podstawowych pragm OpenMP do przydziału zadań dla wątków, synchronizacji wątków, funckji bibliotecznech, zmiennych środowiskowych.2
T-L-3Zrównoleglanie pętli programowych w OpenMP przy pomocy pragmy "for". Przydział i podział przestrzeni iteracji pętli do wątków w regionie równoległym - schedule: static, dynami, guided.2
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.1
T-L-5Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.1
T-L-6Napisanie aplikacji rwnoległej za pomocą biblioteki TBB1
T-L-7Napisanie aplikacji rwnoległej w oparciu o dyrektywę Task1
10
wykłady
T-W-1architektura komputerów równoległych i systemów rozproszonych Pojęcie zaleznośći, rodzaje zależności w programach1
T-W-2Pojęcie zaleznośći, rodzaje zależności w programach podstawowe transformacje pętli: FAN, PAR, PIPE1
T-W-3pojęcie procesu i wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołanie i zakończenie wątków, model obliczeń1
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków1
T-W-5konstrukcje podziału pracy między wątki w OpenMP1
T-W-6Mechanizmy synchronizacji w OpenMP1
T-W-7Mechanizm zadań w OpenMP(tasking)1
T-W-8Biblioteka Intel TBB Biblioteki MPI i PVM1
T-W-9podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji1
T-W-10Metodologia PCAM tworzenia algorytmów równoległych i rozproszonych Modele wydajnościowe aplikacji rónoległych i rozproszonych1
10

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

KODForma aktywnościGodziny
laboratoria
A-L-1udział w laboratoriach10
A-L-2przygotowanie do laboratoriów20
30
wykłady
A-W-1Udział w wykładach i konsultacje12
A-W-2Przygotowanie do egzaminu48
60

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 formująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi

Zamierzone efekty kształcenia - wiedza

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D14/1_W01
ma wiedzę w zakresie tworzenia algorytmów równoległych i rozproszonych
I_2A_W01, I_2A_W04C-1, C-2T-W-2, T-W-7, T-W-8, T-W-3, T-W-1, T-W-4, T-W-6, T-W-5, T-W-9, T-W-10, T-L-4, T-L-7, T-L-1, T-L-6, T-L-2, T-L-3, T-L-5M-1S-2
I_2A_D14/1_W02
zna metodykę tworzenia aplikacji równoległych i rozproszonych oraz odpowiednie API i biblioteki
I_2A_W04C-1, C-2T-W-2, T-W-7, T-W-8, T-W-3, T-W-1, T-W-4, T-W-6, T-W-5, T-W-9, T-W-10, T-L-4, T-L-7, T-L-1, T-L-6, T-L-2, T-L-3, T-L-5M-1S-2

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D14/1_U01
potrafi rozwiązywać złożone problemy w oparciu o tworzenie aplikacji równoległych i rozproszonych
I_2A_U07, I_2A_U11, I_2A_U12C-2T-W-2, T-W-7, T-W-8, T-W-3, T-W-1, T-W-4, T-W-6, T-W-5, T-W-9, T-W-10, T-L-4, T-L-7, T-L-1, T-L-6, T-L-2, T-L-3, T-L-5M-2S-1
I_2A_D14/1_U02
Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego
I_2A_U03C-2T-W-2, T-W-7, T-W-8, T-W-3, T-W-1, T-W-4, T-W-6, T-W-5, T-W-9, T-W-10, T-L-4, T-L-7, T-L-1, T-L-6, T-L-2, T-L-3, T-L-5M-2S-1
I_2A_D14/1_U03
potrafi posługiwać się literaturą i dokumentacją techniczną do tworzenia aplikacji równoległych i rozproszonych
I_2A_U02C-2M-2S-1

Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D14/1_K01
świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania równoległego i rozproszonego
I_2A_K02C-2T-W-2, T-W-7, T-W-8, T-W-3, T-W-1, T-W-4, T-W-6, T-W-5, T-W-9, T-W-10, T-L-4, T-L-7, T-L-1, T-L-6, T-L-2, T-L-3, T-L-5M-2S-1
I_2A_D14/1_K02
ma świadomość współodpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia oprogramowania równoległego i rozproszonego
I_2A_K03, I_2A_K05C-2T-W-2, T-W-7, T-W-8, T-W-3, T-W-1, T-W-4, T-W-6, T-W-5, T-W-9, T-W-10, T-L-4, T-L-7, T-L-1, T-L-6, T-L-2, T-L-3, T-L-5M-2S-1

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_2A_D14/1_W01
ma wiedzę w zakresie tworzenia algorytmów równoległych i rozproszonych
2,0nie potrrafi zdefiniować programu współbieżnego, współbieżności oraz rozróżnić równoległość od współbieżności
3,0rozumie pojęcie współbieżności, potrafi wyjaśnić definicję programu równoległego i odróżnić go od współbieżnego
3,5ma więdze na 3.0 oraz umie zdefiniować trudności w tworzeniu oprogramowania współbieżnego i równoległego oraz algorytmów, potrafi przedstawić podstawowe mechanizmy synchronizacji
4,0ma wiedzę na 3.5 oraz umiejętnie określa trudności w tworzeniu programów współbieżnych z odpowiednim doborem metod synchronizacji
4,5ma wiedzę na 4.0 oraz potrafi zdefiniować zagrożenia w tworzeniu oprogramowania współbieżnego
5,0ma wiedzę na 4.5 i potrafi wyjaśnić trudności w testowaniu oprogramowania współbieżnego
I_2A_D14/1_W02
zna metodykę tworzenia aplikacji równoległych i rozproszonych oraz odpowiednie API i biblioteki
2,0nie potrafi opisać pragmy parallel i for
3,0potrafi w podstawowym zakresie określić pragmę parallel i for
3,5potrafi w podstawowym zakresie określić pragmę parallel, for i sections
4,0potrafi w podstawowym zakresie określić pragmę parallel, for i sections oraz zna pragmy barrier i atomic
4,5ma wiedzę na 4.0 i zna definicje funkcji openmp
5,0ma wiedzę na 4.5 i zna mechanizmy lock w openmp

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_2A_D14/1_U01
potrafi rozwiązywać złożone problemy w oparciu o tworzenie aplikacji równoległych i rozproszonych
2,0nie umie skompilować programu z openmp
3,0potrafi skompilować program z openmp z wybranymi pragmami
3,5potrafi skompilować program z openmp i skonfigurować pragmy parallel i for
4,0potrafi skompilować program z openmp i skonfigurować większość pragm
4,5potrafi na 4.0 i określić przyspieszenie programu
5,0potrafi na 4.0 i określić przyspieszenie programu oraz skalowalność i efektywność
I_2A_D14/1_U02
Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego
2,0brak przejawu chęci w pracach zespołowych i angażowanie się w projekt, brak sprawozdania
3,0potrafi zaangażować się w projekt
3,5potrafi zaangażować się w projekt i napisać program
4,0potrafi zaangażować się w projekt, napisać program i wykonać badania
4,5potrafi zaangażować się w projekt, napisać program i wykonać badania oraz sporządzić tabele i wykresy dla przyspieszenia oraz efektywności
5,0potrafi zaangażować się w projekt, napisać program i wykonać badania oraz sporządzić tabele i wykresy dla przyspieszenia oraz efektywności z opisem wniosków
I_2A_D14/1_U03
potrafi posługiwać się literaturą i dokumentacją techniczną do tworzenia aplikacji równoległych i rozproszonych
2,0nie potrafi opisać podstawowych pragm i znaleźć tych informacji w dokumentacji
3,0potrafi opisać podstawowych pragm i znaleźć tych informacji w dokumentacji
3,5potrafi znaleźć wszystkie dyrektywy dla wybranych pragm z dokumentacji
4,0potrafi znaleźć wszystkie dyrektywy dla wszystkich pragm z dokumentacji
4,5potrafi znaleźć wszystkie dyrektywy dla wszystkich pragm z dokumentacji i włączyć te informacji do swojego programu
5,0potrafi znaleźć wszystkie dyrektywy dla wszystkich pragm z dokumentacji, wybrać potrzebne i włączyć te informacji do swojego programu

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt kształceniaOcenaKryterium oceny
I_2A_D14/1_K01
świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania równoległego i rozproszonego
2,0nie rouzmie potrzeb programowania wspóbieżnego
3,0potrafi opisać problemy programowania współbieżnego i dziedzinę zastosowania
3,5potrafi opisać problemy programowania współbieżnego i dziedzinę zastosowania w kontekćie obecnie roziwjanego sprzętu wielordzeniowego
4,0potrafi opisać problemy programowania współbieżnego i dziedzinę zastosowania w kontekćie obecnie roziwjanego sprzętu wielordzeniowego oraz kart graficznych
4,5potrafi opisać problemy programowania współbieżnego i dziedzinę zastosowania w kontekćie obecnie roziwjanego sprzętu wielordzeniowego oraz kart graficznych i urządzeń mobilnych
5,0potrafi opisać problemy programowania współbieżnego i dziedzinę zastosowania w kontekćie obecnie roziwjanego sprzętu wielordzeniowego oraz kart graficznych i urządzeń mobilnych, rozwiązań klastrowych
I_2A_D14/1_K02
ma świadomość współodpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia oprogramowania równoległego i rozproszonego
2,0nie potrafi ocenić ryzyko projektu aplikacji współbieżnej na etapie projetkowania i kodowania
3,0potrafi ocenić ryzyko projektu aplikacji współbieżnej na etapie projetkowania i kodowania (wyjaśnić trudności w jego tworzeniu)
3,5potrafi ocenić ryzyko projektu aplikacji współbieżnej na etapie projetkowania i kodowania (wyjaśnić trudności w jego tworzeniu i testowaniu)
4,0ma wiedzę na 3.5 i umiejętnie określa różnice w programowaniu sekwencyjnego i współbieżnego
4,5ma wiedzę na 4.0 i zna obecne rozwiązania techniczne
5,0ma wiedzę na 4.0 i zna obecne rozwiązania techniczne dla większości środowisk (wielordzeniowe CPU, GPU i Embedded)

Literatura podstawowa

  1. W. Bielecki, Przetwarzanie równoległe i rozproszone, Politechnika Szczecińska, Szczecin, 2007
  2. Rohit Chandra et al., Parallel Programming in OpenMP, Morgan Kaufmann Publishers, London, 2001
  3. Chapman, Jost, and Van Der Pas, Using OpenMP, The MIT Press, Cambridge, 2007

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".2
T-L-2Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem podstawowych pragm OpenMP do przydziału zadań dla wątków, synchronizacji wątków, funckji bibliotecznech, zmiennych środowiskowych.2
T-L-3Zrównoleglanie pętli programowych w OpenMP przy pomocy pragmy "for". Przydział i podział przestrzeni iteracji pętli do wątków w regionie równoległym - schedule: static, dynami, guided.2
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.1
T-L-5Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.1
T-L-6Napisanie aplikacji rwnoległej za pomocą biblioteki TBB1
T-L-7Napisanie aplikacji rwnoległej w oparciu o dyrektywę Task1
10

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1architektura komputerów równoległych i systemów rozproszonych Pojęcie zaleznośći, rodzaje zależności w programach1
T-W-2Pojęcie zaleznośći, rodzaje zależności w programach podstawowe transformacje pętli: FAN, PAR, PIPE1
T-W-3pojęcie procesu i wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołanie i zakończenie wątków, model obliczeń1
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków1
T-W-5konstrukcje podziału pracy między wątki w OpenMP1
T-W-6Mechanizmy synchronizacji w OpenMP1
T-W-7Mechanizm zadań w OpenMP(tasking)1
T-W-8Biblioteka Intel TBB Biblioteki MPI i PVM1
T-W-9podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji1
T-W-10Metodologia PCAM tworzenia algorytmów równoległych i rozproszonych Modele wydajnościowe aplikacji rónoległych i rozproszonych1
10

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1udział w laboratoriach10
A-L-2przygotowanie do laboratoriów20
30
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Udział w wykładach i konsultacje12
A-W-2Przygotowanie do egzaminu48
60
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/1_W01ma wiedzę w zakresie tworzenia algorytmów równoległych i rozproszonych
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_W01Ma poszerzoną i pogłębioną wiedzę w zakresie wybranych działów matematyki teoretycznej oraz matematyki stosowanej
I_2A_W04Ma 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 i rozproszonych oraz oceny ich jakości
C-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie programowania równoległego i rozproszonego
Treści programoweT-W-2Pojęcie zaleznośći, rodzaje zależności w programach podstawowe transformacje pętli: FAN, PAR, PIPE
T-W-7Mechanizm zadań w OpenMP(tasking)
T-W-8Biblioteka Intel TBB Biblioteki MPI i PVM
T-W-3pojęcie procesu i wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołanie i zakończenie wątków, model obliczeń
T-W-1architektura komputerów równoległych i systemów rozproszonych Pojęcie zaleznośći, rodzaje zależności w programach
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-6Mechanizmy synchronizacji w OpenMP
T-W-5konstrukcje podziału pracy między wątki w OpenMP
T-W-9podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
T-W-10Metodologia PCAM tworzenia algorytmów równoległych i rozproszonych Modele wydajnościowe aplikacji rónoległych i rozproszonych
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
T-L-7Napisanie aplikacji rwnoległej w oparciu o dyrektywę Task
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
T-L-6Napisanie aplikacji rwnoległej za pomocą biblioteki TBB
T-L-2Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem podstawowych pragm OpenMP do przydziału zadań dla wątków, synchronizacji wątków, funckji bibliotecznech, zmiennych środowiskowych.
T-L-3Zrównoleglanie pętli programowych w OpenMP przy pomocy pragmy "for". Przydział i podział przestrzeni iteracji pętli do wątków w regionie równoległym - schedule: static, dynami, guided.
T-L-5Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
Metody nauczaniaM-1Wykad informacyjny/konwersatoryjny
Sposób ocenyS-2Ocena formująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi
Kryteria ocenyOcenaKryterium oceny
2,0nie potrrafi zdefiniować programu współbieżnego, współbieżności oraz rozróżnić równoległość od współbieżności
3,0rozumie pojęcie współbieżności, potrafi wyjaśnić definicję programu równoległego i odróżnić go od współbieżnego
3,5ma więdze na 3.0 oraz umie zdefiniować trudności w tworzeniu oprogramowania współbieżnego i równoległego oraz algorytmów, potrafi przedstawić podstawowe mechanizmy synchronizacji
4,0ma wiedzę na 3.5 oraz umiejętnie określa trudności w tworzeniu programów współbieżnych z odpowiednim doborem metod synchronizacji
4,5ma wiedzę na 4.0 oraz potrafi zdefiniować zagrożenia w tworzeniu oprogramowania współbieżnego
5,0ma wiedzę na 4.5 i potrafi wyjaśnić trudności w testowaniu oprogramowania współbieżnego
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/1_W02zna metodykę tworzenia aplikacji równoległych i rozproszonych oraz odpowiednie API i biblioteki
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_W04Ma 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 i rozproszonych oraz oceny ich jakości
C-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie programowania równoległego i rozproszonego
Treści programoweT-W-2Pojęcie zaleznośći, rodzaje zależności w programach podstawowe transformacje pętli: FAN, PAR, PIPE
T-W-7Mechanizm zadań w OpenMP(tasking)
T-W-8Biblioteka Intel TBB Biblioteki MPI i PVM
T-W-3pojęcie procesu i wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołanie i zakończenie wątków, model obliczeń
T-W-1architektura komputerów równoległych i systemów rozproszonych Pojęcie zaleznośći, rodzaje zależności w programach
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-6Mechanizmy synchronizacji w OpenMP
T-W-5konstrukcje podziału pracy między wątki w OpenMP
T-W-9podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
T-W-10Metodologia PCAM tworzenia algorytmów równoległych i rozproszonych Modele wydajnościowe aplikacji rónoległych i rozproszonych
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
T-L-7Napisanie aplikacji rwnoległej w oparciu o dyrektywę Task
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
T-L-6Napisanie aplikacji rwnoległej za pomocą biblioteki TBB
T-L-2Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem podstawowych pragm OpenMP do przydziału zadań dla wątków, synchronizacji wątków, funckji bibliotecznech, zmiennych środowiskowych.
T-L-3Zrównoleglanie pętli programowych w OpenMP przy pomocy pragmy "for". Przydział i podział przestrzeni iteracji pętli do wątków w regionie równoległym - schedule: static, dynami, guided.
T-L-5Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
Metody nauczaniaM-1Wykad informacyjny/konwersatoryjny
Sposób ocenyS-2Ocena formująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi
Kryteria ocenyOcenaKryterium oceny
2,0nie potrafi opisać pragmy parallel i for
3,0potrafi w podstawowym zakresie określić pragmę parallel i for
3,5potrafi w podstawowym zakresie określić pragmę parallel, for i sections
4,0potrafi w podstawowym zakresie określić pragmę parallel, for i sections oraz zna pragmy barrier i atomic
4,5ma wiedzę na 4.0 i zna definicje funkcji openmp
5,0ma wiedzę na 4.5 i zna mechanizmy lock w openmp
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/1_U01potrafi rozwiązywać złożone problemy w oparciu o tworzenie aplikacji równoległych i rozproszonych
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_U07Potrafi wykorzystywać poznane metody, techniki i modele do rozwiązywania złożonych problemów
I_2A_U11Potrafi dokonywać analizy i syntezy złożonych systemów
I_2A_U12Ma umiejętność stosowania zaawansowanych technik programowania i metodyki projektowania systemów informatycznych w wybranym obszarze zastosowań
Cel przedmiotuC-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie programowania równoległego i rozproszonego
Treści programoweT-W-2Pojęcie zaleznośći, rodzaje zależności w programach podstawowe transformacje pętli: FAN, PAR, PIPE
T-W-7Mechanizm zadań w OpenMP(tasking)
T-W-8Biblioteka Intel TBB Biblioteki MPI i PVM
T-W-3pojęcie procesu i wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołanie i zakończenie wątków, model obliczeń
T-W-1architektura komputerów równoległych i systemów rozproszonych Pojęcie zaleznośći, rodzaje zależności w programach
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-6Mechanizmy synchronizacji w OpenMP
T-W-5konstrukcje podziału pracy między wątki w OpenMP
T-W-9podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
T-W-10Metodologia PCAM tworzenia algorytmów równoległych i rozproszonych Modele wydajnościowe aplikacji rónoległych i rozproszonych
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
T-L-7Napisanie aplikacji rwnoległej w oparciu o dyrektywę Task
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
T-L-6Napisanie aplikacji rwnoległej za pomocą biblioteki TBB
T-L-2Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem podstawowych pragm OpenMP do przydziału zadań dla wątków, synchronizacji wątków, funckji bibliotecznech, zmiennych środowiskowych.
T-L-3Zrównoleglanie pętli programowych w OpenMP przy pomocy pragmy "for". Przydział i podział przestrzeni iteracji pętli do wątków w regionie równoległym - schedule: static, dynami, guided.
T-L-5Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
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,0nie umie skompilować programu z openmp
3,0potrafi skompilować program z openmp z wybranymi pragmami
3,5potrafi skompilować program z openmp i skonfigurować pragmy parallel i for
4,0potrafi skompilować program z openmp i skonfigurować większość pragm
4,5potrafi na 4.0 i określić przyspieszenie programu
5,0potrafi na 4.0 i określić przyspieszenie programu oraz skalowalność i efektywność
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/1_U02Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_U03Potrafi aktywnie uczestniczyć w pracach projektowych indywidualnych i zespołowych przyjmując w nich różne role
Cel przedmiotuC-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie programowania równoległego i rozproszonego
Treści programoweT-W-2Pojęcie zaleznośći, rodzaje zależności w programach podstawowe transformacje pętli: FAN, PAR, PIPE
T-W-7Mechanizm zadań w OpenMP(tasking)
T-W-8Biblioteka Intel TBB Biblioteki MPI i PVM
T-W-3pojęcie procesu i wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołanie i zakończenie wątków, model obliczeń
T-W-1architektura komputerów równoległych i systemów rozproszonych Pojęcie zaleznośći, rodzaje zależności w programach
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-6Mechanizmy synchronizacji w OpenMP
T-W-5konstrukcje podziału pracy między wątki w OpenMP
T-W-9podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
T-W-10Metodologia PCAM tworzenia algorytmów równoległych i rozproszonych Modele wydajnościowe aplikacji rónoległych i rozproszonych
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
T-L-7Napisanie aplikacji rwnoległej w oparciu o dyrektywę Task
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
T-L-6Napisanie aplikacji rwnoległej za pomocą biblioteki TBB
T-L-2Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem podstawowych pragm OpenMP do przydziału zadań dla wątków, synchronizacji wątków, funckji bibliotecznech, zmiennych środowiskowych.
T-L-3Zrównoleglanie pętli programowych w OpenMP przy pomocy pragmy "for". Przydział i podział przestrzeni iteracji pętli do wątków w regionie równoległym - schedule: static, dynami, guided.
T-L-5Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
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,0brak przejawu chęci w pracach zespołowych i angażowanie się w projekt, brak sprawozdania
3,0potrafi zaangażować się w projekt
3,5potrafi zaangażować się w projekt i napisać program
4,0potrafi zaangażować się w projekt, napisać program i wykonać badania
4,5potrafi zaangażować się w projekt, napisać program i wykonać badania oraz sporządzić tabele i wykresy dla przyspieszenia oraz efektywności
5,0potrafi zaangażować się w projekt, napisać program i wykonać badania oraz sporządzić tabele i wykresy dla przyspieszenia oraz efektywności z opisem wniosków
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/1_U03potrafi posługiwać się literaturą i dokumentacją techniczną do tworzenia aplikacji równoległych i rozproszonych
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_U02Potrafi pozyskiwać informacje z różnych źródeł (literatura, Internet, bazy danych, dokumentacja techniczna), dokonywać ich interpretacji i oceny
Cel przedmiotuC-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie programowania równoległego i rozproszonego
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,0nie potrafi opisać podstawowych pragm i znaleźć tych informacji w dokumentacji
3,0potrafi opisać podstawowych pragm i znaleźć tych informacji w dokumentacji
3,5potrafi znaleźć wszystkie dyrektywy dla wybranych pragm z dokumentacji
4,0potrafi znaleźć wszystkie dyrektywy dla wszystkich pragm z dokumentacji
4,5potrafi znaleźć wszystkie dyrektywy dla wszystkich pragm z dokumentacji i włączyć te informacji do swojego programu
5,0potrafi znaleźć wszystkie dyrektywy dla wszystkich pragm z dokumentacji, wybrać potrzebne i włączyć te informacji do swojego programu
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/1_K01świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania równoległego i rozproszonego
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_K02Świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą
Cel przedmiotuC-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie programowania równoległego i rozproszonego
Treści programoweT-W-2Pojęcie zaleznośći, rodzaje zależności w programach podstawowe transformacje pętli: FAN, PAR, PIPE
T-W-7Mechanizm zadań w OpenMP(tasking)
T-W-8Biblioteka Intel TBB Biblioteki MPI i PVM
T-W-3pojęcie procesu i wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołanie i zakończenie wątków, model obliczeń
T-W-1architektura komputerów równoległych i systemów rozproszonych Pojęcie zaleznośći, rodzaje zależności w programach
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-6Mechanizmy synchronizacji w OpenMP
T-W-5konstrukcje podziału pracy między wątki w OpenMP
T-W-9podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
T-W-10Metodologia PCAM tworzenia algorytmów równoległych i rozproszonych Modele wydajnościowe aplikacji rónoległych i rozproszonych
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
T-L-7Napisanie aplikacji rwnoległej w oparciu o dyrektywę Task
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
T-L-6Napisanie aplikacji rwnoległej za pomocą biblioteki TBB
T-L-2Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem podstawowych pragm OpenMP do przydziału zadań dla wątków, synchronizacji wątków, funckji bibliotecznech, zmiennych środowiskowych.
T-L-3Zrównoleglanie pętli programowych w OpenMP przy pomocy pragmy "for". Przydział i podział przestrzeni iteracji pętli do wątków w regionie równoległym - schedule: static, dynami, guided.
T-L-5Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
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,0nie rouzmie potrzeb programowania wspóbieżnego
3,0potrafi opisać problemy programowania współbieżnego i dziedzinę zastosowania
3,5potrafi opisać problemy programowania współbieżnego i dziedzinę zastosowania w kontekćie obecnie roziwjanego sprzętu wielordzeniowego
4,0potrafi opisać problemy programowania współbieżnego i dziedzinę zastosowania w kontekćie obecnie roziwjanego sprzętu wielordzeniowego oraz kart graficznych
4,5potrafi opisać problemy programowania współbieżnego i dziedzinę zastosowania w kontekćie obecnie roziwjanego sprzętu wielordzeniowego oraz kart graficznych i urządzeń mobilnych
5,0potrafi opisać problemy programowania współbieżnego i dziedzinę zastosowania w kontekćie obecnie roziwjanego sprzętu wielordzeniowego oraz kart graficznych i urządzeń mobilnych, rozwiązań klastrowych
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/1_K02ma świadomość współodpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia oprogramowania równoległego i rozproszonego
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_K03Rozumie potrzebę przekazywania społeczeństwu informacji o rozwoju i osiągnięciach nauki w zakresie informatyki
I_2A_K05Ma świadomość odpowiedzialności za kierowany zespół ludzi i za zadania realizowane wspólnie z tym zespołem
Cel przedmiotuC-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie programowania równoległego i rozproszonego
Treści programoweT-W-2Pojęcie zaleznośći, rodzaje zależności w programach podstawowe transformacje pętli: FAN, PAR, PIPE
T-W-7Mechanizm zadań w OpenMP(tasking)
T-W-8Biblioteka Intel TBB Biblioteki MPI i PVM
T-W-3pojęcie procesu i wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołanie i zakończenie wątków, model obliczeń
T-W-1architektura komputerów równoległych i systemów rozproszonych Pojęcie zaleznośći, rodzaje zależności w programach
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-6Mechanizmy synchronizacji w OpenMP
T-W-5konstrukcje podziału pracy między wątki w OpenMP
T-W-9podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
T-W-10Metodologia PCAM tworzenia algorytmów równoległych i rozproszonych Modele wydajnościowe aplikacji rónoległych i rozproszonych
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
T-L-7Napisanie aplikacji rwnoległej w oparciu o dyrektywę Task
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
T-L-6Napisanie aplikacji rwnoległej za pomocą biblioteki TBB
T-L-2Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem podstawowych pragm OpenMP do przydziału zadań dla wątków, synchronizacji wątków, funckji bibliotecznech, zmiennych środowiskowych.
T-L-3Zrównoleglanie pętli programowych w OpenMP przy pomocy pragmy "for". Przydział i podział przestrzeni iteracji pętli do wątków w regionie równoległym - schedule: static, dynami, guided.
T-L-5Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
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,0nie potrafi ocenić ryzyko projektu aplikacji współbieżnej na etapie projetkowania i kodowania
3,0potrafi ocenić ryzyko projektu aplikacji współbieżnej na etapie projetkowania i kodowania (wyjaśnić trudności w jego tworzeniu)
3,5potrafi ocenić ryzyko projektu aplikacji współbieżnej na etapie projetkowania i kodowania (wyjaśnić trudności w jego tworzeniu i testowaniu)
4,0ma wiedzę na 3.5 i umiejętnie określa różnice w programowaniu sekwencyjnego i współbieżnego
4,5ma wiedzę na 4.0 i zna obecne rozwiązania techniczne
5,0ma wiedzę na 4.0 i zna obecne rozwiązania techniczne dla większości środowisk (wielordzeniowe CPU, GPU i Embedded)