Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N1)
specjalność: systemy komputerowe i oprogramowanie

Sylabus przedmiotu Programowanie komputerów wielordzeniowych:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów nauki techniczne, studia inżynierskie
Profil ogólnoakademicki
Moduł
Przedmiot Programowanie komputerów wielordzeniowych
Specjalność systemy komputerowe i oprogramowanie
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) 2,0 ECTS (formy) 2,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 8 Grupa obieralna 1

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL7 10 0,80,50zaliczenie
wykładyW7 10 1,20,50zaliczenie

Wymagania wstępne

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

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Uksztatowanie wiedzy i umiejtnoci niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
C-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie programowania współbieżnego

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.3
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 do mnożenie macierzy z wykorzystaniem pragm OpenMP, sprawdzenie przyspieszenia i efektywnosci napisanej aplikacji.1
T-L-6Napisanie aplikacji rwnoległej w OpenMP do wybranego algorytmu z dziedziny metod numerycznych.1
10
wykłady
T-W-1architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych podstawowe mierniki jakości aplikacji równoległych (lokalność, granulacja, determinizm, przyspieszenie i efektywność), prawa Amdahl’a i Gustaffson’a1
T-W-2podstawowe transformacje pętli: FAN, PAR, PIPE1
T-W-3pojęcie wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołaniei zakończenia 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-8Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: FORTRAN, OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB1
T-W-9Modele wydajnościowe do aplikacji rónoległych podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji1
T-W-10Pojęcie zaleznośći, rodzaje zależności w programach Metodologia PCAM tworzenia algorytmów równoległych1
10

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

KODForma aktywnościGodziny
laboratoria
A-L-1udział w laboratoriach10
A-L-2przygotowanie do laboratoriów17
27
wykłady
A-W-1Udział w wykładach i konsultacje12
A-W-2Przygotowanie do egzaminu23
35

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łceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_O1/09_W01
ma wiedzę w zakresie tworzenia algorytmów równoległych
I_1A_W05C-1T-L-5, T-L-4, T-L-1, T-L-3, T-L-2, T-L-6, T-W-3, T-W-2, T-W-8, T-W-5, T-W-9, T-W-6, T-W-1, T-W-4, T-W-10, T-W-7M-1S-2
I_1A_O1/09_W02
zna API i biblioteki do tworzenia aplikacji równoległych dla komputerów wielordzeniowych
I_1A_W06C-1M-1S-2
I_1A_O1/09_W03
zna podstawowe metody gromadzenia i przetwarzania danych i informacji w oparciu o komputery równoległe
I_1A_W17C-1T-L-1M-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łceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_O1/09_U01
potrafi w zakresie podstawowym projektować, implementować i testować oprogramowanie równoległe
I_1A_U01C-1M-2S-1
I_1A_O1/09_U02
Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego
I_1A_U02C-1T-L-5, T-L-4, T-L-1, T-L-3, T-L-2, T-L-6, T-W-3, T-W-2, T-W-8, T-W-5, T-W-9, T-W-6, T-W-1, T-W-4, T-W-10, T-W-7M-2S-1
I_1A_O1/09_U03
potrafi posługiwać się dokumentacją techniczną do API OpenMP
I_1A_U05C-1T-L-5, T-L-4, T-L-1, T-L-3, T-L-2, T-L-6, T-W-3, T-W-2, T-W-8, T-W-5, T-W-9, T-W-6, T-W-1, T-W-4, T-W-10, T-W-7M-2S-1
I_1A_O1/09_U04
ma umiejętność opracowania lub wyboru algorytmu i struktur danych do rozwiązania określonego zadania inżynierskiego za pomocą przetwarzania rónoległego
I_1A_U19C-1T-L-5, T-L-4, T-L-1, T-L-3, T-L-2, T-L-6, T-W-3, T-W-2, T-W-8, T-W-5, T-W-9, T-W-6, T-W-1, T-W-4, T-W-10, T-W-7M-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łceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_O1/09_K01
świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania współbieżnego
I_1A_K01C-2T-L-5, T-L-4, T-L-1, T-L-3, T-L-2, T-L-6, T-W-3, T-W-2, T-W-8, T-W-5, T-W-9, T-W-6, T-W-1, T-W-4, T-W-10, T-W-7M-2S-1
I_1A_O1/09_K02
ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia oprogramowania współbieżnego
I_1A_K03C-2M-2S-1

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_1A_O1/09_W01
ma wiedzę w zakresie tworzenia algorytmów równoległych
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_1A_O1/09_W02
zna API i biblioteki do tworzenia aplikacji równoległych dla komputerów wielordzeniowych
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
I_1A_O1/09_W03
zna podstawowe metody gromadzenia i przetwarzania danych i informacji w oparciu o komputery równoległe
2,0nie umie wyjaśnić taksonomi Flynna
3,0potrafi wyjaśnić taksonomię Flynna
3,5potrafi wyjaśnić taksonomię Flynna i podać przykładowe architektury
4,0ma wiedzę 3.5 i opisać rozwój architektur równoległych
4,5ma wiedzę 4.0 i potrafi opisać architektury ze względu na dostęp do pamięci
5,0ma wiedzę na 4.5 i umie opisać model PCAM

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_1A_O1/09_U01
potrafi w zakresie podstawowym projektować, implementować i testować oprogramowanie równoległe
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_1A_O1/09_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_1A_O1/09_U03
potrafi posługiwać się dokumentacją techniczną do API OpenMP
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
I_1A_O1/09_U04
ma umiejętność opracowania lub wyboru algorytmu i struktur danych do rozwiązania określonego zadania inżynierskiego za pomocą przetwarzania rónoległego
2,0nie zna podstawowych informacji z modelu PCAM
3,0zna podstawowe etapy modelu PCAM
3,5potrafi szczegółowo opisać etapy modelu PCAM
4,0potrafi szczegółowo opisać etapy modelu PCAM i opisać ich trudność do programowania sekwencyjnego
4,5potrafi szczegółowo opisać etapy modelu PCAM i opisać ich trudność do programowania sekwencyjnego oraz nawiązać do modelu w swoich programach
5,0potrafi szczegółowo opisać etapy modelu PCAM i opisać ich trudność do programowania sekwencyjnego oraz nawiązać do modelu w swoich programach, a także potrafi wyjaśnić wagę etapów PCAM w kontekście uzyskiwanych wyników

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt kształceniaOcenaKryterium oceny
I_1A_O1/09_K01
świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania współbieżnego
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_1A_O1/09_K02
ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia oprogramowania współbieżnego
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, Essentials of parallel and distributed computing, Politechnika Szczecińska, Szczecin, 2002
  2. W. Bielecki, Przetwarzanie równoległe i rozproszone. Szczecin, 2007, Politechnika Szczecińska, Szczecin, 2007
  3. Rohit Chandra et al., Parallel Programming in OpenMP, Academic Press, London, 2001
  4. Chapman, Jost, and Van Der Pas, Using OpenMP, The MIT Press, Cambridge, 2008

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.3
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 do mnożenie macierzy z wykorzystaniem pragm OpenMP, sprawdzenie przyspieszenia i efektywnosci napisanej aplikacji.1
T-L-6Napisanie aplikacji rwnoległej w OpenMP do wybranego algorytmu z dziedziny metod numerycznych.1
10

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych podstawowe mierniki jakości aplikacji równoległych (lokalność, granulacja, determinizm, przyspieszenie i efektywność), prawa Amdahl’a i Gustaffson’a1
T-W-2podstawowe transformacje pętli: FAN, PAR, PIPE1
T-W-3pojęcie wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołaniei zakończenia 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-8Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: FORTRAN, OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB1
T-W-9Modele wydajnościowe do aplikacji rónoległych podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji1
T-W-10Pojęcie zaleznośći, rodzaje zależności w programach Metodologia PCAM tworzenia algorytmów równoległych1
10

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1udział w laboratoriach10
A-L-2przygotowanie do laboratoriów17
27
(*) 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 egzaminu23
35
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O1/09_W01ma wiedzę w zakresie tworzenia algorytmów równoległych
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W05ma wiedzę w zakresie algorytmizacji i zasad tworzenia struktur danych
Cel przedmiotuC-1Uksztatowanie wiedzy i umiejtnoci niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-L-5Napisanie aplikacji w OpenMP do mnożenie macierzy z wykorzystaniem pragm OpenMP, sprawdzenie przyspieszenia i efektywnosci napisanej aplikacji.
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
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-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-6Napisanie aplikacji rwnoległej w OpenMP do wybranego algorytmu z dziedziny metod numerycznych.
T-W-3pojęcie wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołaniei zakończenia wątków, model obliczeń
T-W-2podstawowe transformacje pętli: FAN, PAR, PIPE
T-W-8Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: FORTRAN, OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB
T-W-5konstrukcje podziału pracy między wątki w OpenMP
T-W-9Modele wydajnościowe do aplikacji rónoległych podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
T-W-6Mechanizmy synchronizacji w OpenMP
T-W-1architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych podstawowe mierniki jakości aplikacji równoległych (lokalność, granulacja, determinizm, przyspieszenie i efektywność), prawa Amdahl’a i Gustaffson’a
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-10Pojęcie zaleznośći, rodzaje zależności w programach Metodologia PCAM tworzenia algorytmów równoległych
T-W-7Mechanizm zadań w OpenMP(tasking)
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_1A_O1/09_W02zna API i biblioteki do tworzenia aplikacji równoległych dla komputerów wielordzeniowych
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W06zna wybrane języki i techniki programowania, podstawowe techniki projektowania i wytwarzania aplikacji oraz systemów informatycznych
Cel przedmiotuC-1Uksztatowanie wiedzy i umiejtnoci niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
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_1A_O1/09_W03zna podstawowe metody gromadzenia i przetwarzania danych i informacji w oparciu o komputery równoległe
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W17zna podstawowe metody gromadzenia i przetwarzania danych i informacji
Cel przedmiotuC-1Uksztatowanie wiedzy i umiejtnoci niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
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 umie wyjaśnić taksonomi Flynna
3,0potrafi wyjaśnić taksonomię Flynna
3,5potrafi wyjaśnić taksonomię Flynna i podać przykładowe architektury
4,0ma wiedzę 3.5 i opisać rozwój architektur równoległych
4,5ma wiedzę 4.0 i potrafi opisać architektury ze względu na dostęp do pamięci
5,0ma wiedzę na 4.5 i umie opisać model PCAM
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O1/09_U01potrafi w zakresie podstawowym projektować, implementować i testować oprogramowanie równoległe
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U01potrafi w zakresie podstawowym projektować, implementować i testować oprogramowanie
Cel przedmiotuC-1Uksztatowanie wiedzy i umiejtnoci niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
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_1A_O1/09_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_1A_U02potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych
Cel przedmiotuC-1Uksztatowanie wiedzy i umiejtnoci niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-L-5Napisanie aplikacji w OpenMP do mnożenie macierzy z wykorzystaniem pragm OpenMP, sprawdzenie przyspieszenia i efektywnosci napisanej aplikacji.
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
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-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-6Napisanie aplikacji rwnoległej w OpenMP do wybranego algorytmu z dziedziny metod numerycznych.
T-W-3pojęcie wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołaniei zakończenia wątków, model obliczeń
T-W-2podstawowe transformacje pętli: FAN, PAR, PIPE
T-W-8Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: FORTRAN, OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB
T-W-5konstrukcje podziału pracy między wątki w OpenMP
T-W-9Modele wydajnościowe do aplikacji rónoległych podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
T-W-6Mechanizmy synchronizacji w OpenMP
T-W-1architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych podstawowe mierniki jakości aplikacji równoległych (lokalność, granulacja, determinizm, przyspieszenie i efektywność), prawa Amdahl’a i Gustaffson’a
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-10Pojęcie zaleznośći, rodzaje zależności w programach Metodologia PCAM tworzenia algorytmów równoległych
T-W-7Mechanizm zadań w OpenMP(tasking)
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_1A_O1/09_U03potrafi posługiwać się dokumentacją techniczną do API OpenMP
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U05potrafi tworzyć i posługiwać się dokumentacją techniczną
Cel przedmiotuC-1Uksztatowanie wiedzy i umiejtnoci niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-L-5Napisanie aplikacji w OpenMP do mnożenie macierzy z wykorzystaniem pragm OpenMP, sprawdzenie przyspieszenia i efektywnosci napisanej aplikacji.
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
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-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-6Napisanie aplikacji rwnoległej w OpenMP do wybranego algorytmu z dziedziny metod numerycznych.
T-W-3pojęcie wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołaniei zakończenia wątków, model obliczeń
T-W-2podstawowe transformacje pętli: FAN, PAR, PIPE
T-W-8Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: FORTRAN, OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB
T-W-5konstrukcje podziału pracy między wątki w OpenMP
T-W-9Modele wydajnościowe do aplikacji rónoległych podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
T-W-6Mechanizmy synchronizacji w OpenMP
T-W-1architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych podstawowe mierniki jakości aplikacji równoległych (lokalność, granulacja, determinizm, przyspieszenie i efektywność), prawa Amdahl’a i Gustaffson’a
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-10Pojęcie zaleznośći, rodzaje zależności w programach Metodologia PCAM tworzenia algorytmów równoległych
T-W-7Mechanizm zadań w OpenMP(tasking)
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_1A_O1/09_U04ma umiejętność opracowania lub wyboru algorytmu i struktur danych do rozwiązania określonego zadania inżynierskiego za pomocą przetwarzania rónoległego
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U19ma umiejętność wyboru algorytmu i struktur danych do rozwiązania określonego zadania inżynierskiego
Cel przedmiotuC-1Uksztatowanie wiedzy i umiejtnoci niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-L-5Napisanie aplikacji w OpenMP do mnożenie macierzy z wykorzystaniem pragm OpenMP, sprawdzenie przyspieszenia i efektywnosci napisanej aplikacji.
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
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-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-6Napisanie aplikacji rwnoległej w OpenMP do wybranego algorytmu z dziedziny metod numerycznych.
T-W-3pojęcie wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołaniei zakończenia wątków, model obliczeń
T-W-2podstawowe transformacje pętli: FAN, PAR, PIPE
T-W-8Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: FORTRAN, OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB
T-W-5konstrukcje podziału pracy między wątki w OpenMP
T-W-9Modele wydajnościowe do aplikacji rónoległych podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
T-W-6Mechanizmy synchronizacji w OpenMP
T-W-1architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych podstawowe mierniki jakości aplikacji równoległych (lokalność, granulacja, determinizm, przyspieszenie i efektywność), prawa Amdahl’a i Gustaffson’a
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-10Pojęcie zaleznośći, rodzaje zależności w programach Metodologia PCAM tworzenia algorytmów równoległych
T-W-7Mechanizm zadań w OpenMP(tasking)
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 zna podstawowych informacji z modelu PCAM
3,0zna podstawowe etapy modelu PCAM
3,5potrafi szczegółowo opisać etapy modelu PCAM
4,0potrafi szczegółowo opisać etapy modelu PCAM i opisać ich trudność do programowania sekwencyjnego
4,5potrafi szczegółowo opisać etapy modelu PCAM i opisać ich trudność do programowania sekwencyjnego oraz nawiązać do modelu w swoich programach
5,0potrafi szczegółowo opisać etapy modelu PCAM i opisać ich trudność do programowania sekwencyjnego oraz nawiązać do modelu w swoich programach, a także potrafi wyjaśnić wagę etapów PCAM w kontekście uzyskiwanych wyników
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O1/09_K01świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania współbieżnego
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_K01ś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 współbieżnego
Treści programoweT-L-5Napisanie aplikacji w OpenMP do mnożenie macierzy z wykorzystaniem pragm OpenMP, sprawdzenie przyspieszenia i efektywnosci napisanej aplikacji.
T-L-4Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności.
T-L-1Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel".
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-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-6Napisanie aplikacji rwnoległej w OpenMP do wybranego algorytmu z dziedziny metod numerycznych.
T-W-3pojęcie wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołaniei zakończenia wątków, model obliczeń
T-W-2podstawowe transformacje pętli: FAN, PAR, PIPE
T-W-8Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: FORTRAN, OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB
T-W-5konstrukcje podziału pracy między wątki w OpenMP
T-W-9Modele wydajnościowe do aplikacji rónoległych podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
T-W-6Mechanizmy synchronizacji w OpenMP
T-W-1architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych podstawowe mierniki jakości aplikacji równoległych (lokalność, granulacja, determinizm, przyspieszenie i efektywność), prawa Amdahl’a i Gustaffson’a
T-W-4Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-10Pojęcie zaleznośći, rodzaje zależności w programach Metodologia PCAM tworzenia algorytmów równoległych
T-W-7Mechanizm zadań w OpenMP(tasking)
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_1A_O1/09_K02ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia oprogramowania współbieżnego
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_K03ma świadomość odpowiedzialności za wspólnie realizowane zadania
Cel przedmiotuC-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie programowania współbieżnego
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)