Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Zarządzanie i inżynieria produkcji (N1)

Sylabus przedmiotu Podstawy programowania równoległego i rozproszonego:

Informacje podstawowe

Kierunek studiów Zarządzanie i inżynieria produkcji
Forma studiów studia niestacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów nauk technicznych, studiów inżynierskich
Profil ogólnoakademicki
Moduł
Przedmiot Podstawy programowania równoległego i rozproszonego
Specjalność e- technologie w produkcji i zarządzaniu
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Marek Pałkowski <Marek.Palkowski@zut.edu.pl>
Inni nauczyciele
ECTS (planowane) 4,0 ECTS (formy) 4,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 5 Grupa obieralna 1

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW7 14 1,90,50zaliczenie
laboratoriaL7 16 2,10,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-1Ukształtowanie wiedzy i umięjtności 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-1Kompilacja programu w standardzie OpenMP /C++. Napisanie, kompilacja i sprawdzanie aplikacji z wykorzystaniem programu "parallel".1
T-L-2Napisanie aplikacji z wykorzystaniem pagm OpenMP do przydziału zadań dla wątków, synchronizacji wątków, funkcji bibliotecznych, zmiennych środowiskowych.1
T-L-3Zrównoleglenie 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.3
T-L-4Napisanie aplikacji w OpenMP do mnożenia macierzy z wykorzystaniem pragm OpenMP. Badanie przyspieszenia, efektywności i skalowalności opracowanych aplikacji.2
T-L-5Napisanie aplikacji równoległej w OpenMP dla wybranego algorytmu z zakresu metod numerycznych, grafiki lub kryptografii.1
T-L-6Napisanie programu równoległego za pomocą biblioteki Intel TBB dla mnożenia macierzy.2
T-L-7Napisanie aplikacji z wykorzystaniem Intel TBB do przydziału zadań dla wątków, synchronizacji wątków, funkcji bibliotecznych, zmiennych środowiskowych.1
T-L-8Porównanie aplikacji równoległych OpenMP i IntelTBB. Badanie przyspieszenia i skalowalności rozwiązań.1
T-L-9Poznanie podstaw programowania równoległego za pomocą kart graficznych i CUDA. Napisanie programu mnożenia macierzy.1
T-L-10Napisanie aplikacji z wykorzystaniem pagm CUDA do przydziału zadań dla wątków, synchronizacji wątków, funkcji bibliotecznych, zmiennych środowiskowych.1
T-L-11Napisanie programu dla wybranego problemu numerycznego z wykorzystaniem biblioteki CUDA.1
T-L-12Badanie przyspieszenia i skalowalności aplikacji równoległych dla kart graficznych.1
16
wykłady
T-W-1architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych1
T-W-2podstawowe mierniki jakości aplikacji równoległych (lokalność, granulacja, determinizm, przyspieszenie i efektywność), prawa Amdahl’a i Gustaffson’a1
T-W-3podstawowe transformacje pętli: FAN, PAR, PIPE1
T-W-4poję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-5Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków1
T-W-6konstrukcje podziału pracy między wątki w OpenMP1
T-W-7Mechanizmy synchronizacji w OpenMP1
T-W-8Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB 21
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łych1
T-W-11Modele wydajnościowe do aplikacji rónoległych1
T-W-12podstawy programowania w bibliotece CUDA; architektura kart graficznych3
14

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

KODForma aktywnościGodziny
laboratoria
A-L-1udział w laboratoriach16
A-L-2przygotowanie do laboratoriów; praca we własnym zakresie czasowym40
56
wykłady
A-W-1udział w wykładach14
A-W-2przygotowanie do egzaminu35
49

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: Kompilacja programu w standardzie OpenMP /C++. Napisanie, kompilacja i sprawdzanie aplikacji z wykorzystaniem programu "parallel".
S-2Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
S-3Ocena 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
ZIP_1A_null_W01
ma wiedzę na temat rozwoju współczesnych architektur
T-L-9, T-W-11, T-W-12S-3
ZIP_1A_null_W02
ma wiedzę z prowadzenia sprawozdań badawczych
C-1T-L-4, T-L-5, T-L-7, T-L-10, T-W-12M-1S-3
ZIP_1A_null_W03
ma wiedzę z podstaw programowania i przetwarzania współbieżnego
C-1T-L-1, T-L-4, T-L-6M-1S-3

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
ZIP_1A_null_U01
umiejętność badania jakości kodu równolewgłego
C-1T-W-1, T-W-2, T-L-3, T-L-5, T-L-12M-2S-2
ZIP_1A_null_U02
ma umiejętność poszukiwania źródeł informacji i wdrażania zdobytej wiedzy w praktyce
C-1T-L-1, T-W-11M-2S-2
ZIP_1A_null_U03
ma umiejętność tworzenia kodu równoległego inwidualnie lub w zespole
C-1T-L-5, T-L-7, T-W-8M-2S-2
ZIP_1A_null_U04
ma umiejętność wyszukania błędów oraz testowania jakości w kodzie równoległym
C-1T-W-4, T-W-5, T-W-8M-2S-2

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
ZIP_1A_null_K01
ma świadomość rozwoju programowania i architektur komputerowych
C-1T-W-1, T-W-9M-2S-2
ZIP_1A_null_K02
posiada świadomość trudu projektowania rozwiązań programowych z uwzględnieniem jakości kodu
C-1T-L-7, T-W-7, T-L-8M-2S-2

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
ZIP_1A_null_W01
ma wiedzę na temat rozwoju współczesnych architektur
2,0nie umie zdefiniować pojcia maszyny równoległej, nie zna procesorów wielordzeniowych
3,0umie zdefiniować pojęcie maszyny równoległej i procesora wielordzeniowego
3,5ma wiedzę na 3.0 oraz umie wyjaśnić pojęcia SISD, SIMD oraz MIMD
4,0ma wiedzę na 3.0 oraz umie wyjaśnić pojęcia SISD, SIMD oraz MIMD z przykładami
4,5ma wiedzę na 4.0 oraz zna taksonomię Flynna
5,0ma wiedzę na 4.5 oraz zna technologię GPGPU (CUDA i OpenCL)
ZIP_1A_null_W02
ma wiedzę z prowadzenia sprawozdań badawczych
2,0nie zna podstawowych charakterystyk jakości oprogramowania równoległego
3,0umie wyjaśnić pojęcie przyspieszenia i efektywności
3,5umie wyjaśnić pojęcie przyspieszenia i efektywności oraz skalowalności
4,0umie wyjaśnić pojęcie przyspieszenia i efektywności oraz skalowalności i lokalności
4,5umie wyjaśnić pojęcie przyspieszenia i efektywności oraz skalowalności i lokalności włącznie z prawem Amdahla
5,0umie wyjaśnić pojęcie przyspieszenia i efektywności oraz skalowalności i lokalności włącznie z prawem Amdahla i Gustavsona
ZIP_1A_null_W03
ma wiedzę z podstaw programowania i przetwarzania współbieżnego
2,0nie umie wyjaśnić pojęcia wątek, równoległość i współbieżność
3,0umie wyjaśnić pojęcia wątek, równoległość i współbieżność
3,5umie wyjaśnić pojęcia wątek, równoległość i współbieżność oraz zna podstawy modelu PCAM
4,0umie wyjaśnić pojęcia wątek, równoległość i współbieżność oraz zna szczegóły modelu PCAM
4,5ma wiedzę na 4.0 oraz umie opisać mechanizmy synchronizacji
5,0ma wiedzę na 4.0 oraz umie opisać mechanizmy synchronizacji i ryzyko związane z programowaniem równoległym (zakleszczenia, głodzenie wątków, itd.)

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
ZIP_1A_null_U01
umiejętność badania jakości kodu równolewgłego
2,0nie potrafi określić jakości kodu równoległego
3,0potrafi obliczyć przyspieszenie i efektywność z uzyskanyc wyników czasowych
3,5ma wiedzę na 3.0 oraz potrafi ocenić skalowalność dla wielu procesorów
4,0ma wiedzę na 3.5 i potrafi określić lokalność napisanego programu
4,5ma wiedzę na 4.0 i umie określić wpływ harmonogramowania instrukcji na wyniki czasowe
5,0ma wiedzę na 4.5 i umiejętnie przedstawia wyniki badań oraz wnioski za pomocą tabel i wykresów
ZIP_1A_null_U02
ma umiejętność poszukiwania źródeł informacji i wdrażania zdobytej wiedzy w praktyce
2,0nie potrafi odnaleźć specyfikacji technicznych i przedstawić potrzebnych informacji z dokumentacji
3,0potrafi odnaleźć specyfikacji technicznych i przedstawić potrzebnych informacji z dokumentacji
3,5potrafi odnaleźć specyfikacji technicznych i przedstawić potrzebnych informacji z dokumentacji oraz umie czytać opisy funkcji programistycznych
4,0ma wiedzę na 3.5 oraz sprawnie porusza się po podręcznikach programistycznych
4,5ma wiedzę na 4.0 oraz sprawnie porusza się po samouczkach (tutorials)
5,0ma wiedzę na 4.5 oraz umie korzystać z narzędzi wersjonujących
ZIP_1A_null_U03
ma umiejętność tworzenia kodu równoległego inwidualnie lub w zespole
2,0nie zna podstaw openMP i intel TBB
3,0zna podstawowe pragmy openmp i Intel TBB
3,5zna podstawowe pragmy openmp i Intel TBB oraz potrafi napisać program równoległy z grupą
4,0zna podstawowe pragmy openmp i Intel TBB oraz potrafi z grupą napisać program równoległy oraz sporządzić sprawozdanie z badań
4,5zna podstawowe pragmy openmp i Intel TBB oraz potrafi napisać program równoległy z grupą i samodzielnie
5,0zna podstawowe pragmy openmp i Intel TBB oraz potrafi z grupą i samodzielnie napisać program równoległy oraz sporządzić sprawozdanie z badań
ZIP_1A_null_U04
ma umiejętność wyszukania błędów oraz testowania jakości w kodzie równoległym
2,0nie potrafi odnaleźć usterek w kodzie równoleglym
3,0potrafi odnaleźć usterek w kodzie równoleglym za pomocą jego testowania i weryfikacji
3,5ma wiedzę na 3.0 oraz umiejętnie korzysta z podstawowych technik testowania
4,0ma wiedzę na 3.0 oraz umiejętnie korzysta z zaawansowanych technik testowania
4,5ma wiedzę na 4.0 i potrafi debugować kod sekwencyjny
5,0ma wiedzę na 4.5 i potrafi debugować kod równoległy i sekwkenycjny

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt kształceniaOcenaKryterium oceny
ZIP_1A_null_K01
ma świadomość rozwoju programowania i architektur komputerowych
2,0nie zna trendów rozwoju mikroporcesorów
3,0zna trendy rozwoju mikroporcesorów w aspekcie maszyn równoległych
3,5ma wiedzę na 3.0 oraz zna pojęcia rdzeni i wątków
4,0ma wiedzę na 3.5 oraz potrafi opisać rozwój kart graficznych
4,5ma wiedzę na 3.5 oraz potrafi opisać rozwój kart graficznych i urządzań wbudowanych
5,0ma wiedzę na 3.5 oraz potrafi opisać rozwój kart graficznych i urządzań wbudowanych oraz MID
ZIP_1A_null_K02
posiada świadomość trudu projektowania rozwiązań programowych z uwzględnieniem jakości kodu
2,0nie zna różńic między programowaniem sekwenycjnym i rownoległym
3,0zna różńice między programowaniem sekwenycjnym i rownoległym
3,5zna różńic między programowaniem sekwenycjnym i rownoległym z uwzględneniem synchronizacji
4,0zna różńic między programowaniem sekwenycjnym i rownoległym z uwzględneniem synchronizacji i komunikacji
4,5zna różńic między programowaniem sekwenycjnym i rownoległym z uwzględneniem synchronizacji i komunikacji oraz skalowalności i lokalności
5,0ma wiedzę 4.5 oraz umiejętnie z niej korzysta w praktyce (tworzeniu oprogramowania równoległego)

Literatura podstawowa

  1. Wlodzimierz Bielecki, Przetwarzanie równoległe i rozproszone, Politechnika Szczecińska, Szczecin, 2007
  2. Bielecki Włodzimierz, Marek Pałkowski, Ekstrakcja drobno- i gruboziarnistej równoległości w pętlach programowych, Wydawnictwo ZUT, Szczecin, 2011
  3. Rohit Chandra i inni, Parallel Programming in OpenMP, Academic Press, London, 2001

Literatura dodatkowa

  1. NVIDIA Corp., Specyfikacja techniczna bibliteki CUDA, nvidia.com, 2011
  2. Intel, Specyfikacja techniczna Intel TBB, intel.com, 2011

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Kompilacja programu w standardzie OpenMP /C++. Napisanie, kompilacja i sprawdzanie aplikacji z wykorzystaniem programu "parallel".1
T-L-2Napisanie aplikacji z wykorzystaniem pagm OpenMP do przydziału zadań dla wątków, synchronizacji wątków, funkcji bibliotecznych, zmiennych środowiskowych.1
T-L-3Zrównoleglenie 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.3
T-L-4Napisanie aplikacji w OpenMP do mnożenia macierzy z wykorzystaniem pragm OpenMP. Badanie przyspieszenia, efektywności i skalowalności opracowanych aplikacji.2
T-L-5Napisanie aplikacji równoległej w OpenMP dla wybranego algorytmu z zakresu metod numerycznych, grafiki lub kryptografii.1
T-L-6Napisanie programu równoległego za pomocą biblioteki Intel TBB dla mnożenia macierzy.2
T-L-7Napisanie aplikacji z wykorzystaniem Intel TBB do przydziału zadań dla wątków, synchronizacji wątków, funkcji bibliotecznych, zmiennych środowiskowych.1
T-L-8Porównanie aplikacji równoległych OpenMP i IntelTBB. Badanie przyspieszenia i skalowalności rozwiązań.1
T-L-9Poznanie podstaw programowania równoległego za pomocą kart graficznych i CUDA. Napisanie programu mnożenia macierzy.1
T-L-10Napisanie aplikacji z wykorzystaniem pagm CUDA do przydziału zadań dla wątków, synchronizacji wątków, funkcji bibliotecznych, zmiennych środowiskowych.1
T-L-11Napisanie programu dla wybranego problemu numerycznego z wykorzystaniem biblioteki CUDA.1
T-L-12Badanie przyspieszenia i skalowalności aplikacji równoległych dla kart graficznych.1
16

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych1
T-W-2podstawowe mierniki jakości aplikacji równoległych (lokalność, granulacja, determinizm, przyspieszenie i efektywność), prawa Amdahl’a i Gustaffson’a1
T-W-3podstawowe transformacje pętli: FAN, PAR, PIPE1
T-W-4poję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-5Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków1
T-W-6konstrukcje podziału pracy między wątki w OpenMP1
T-W-7Mechanizmy synchronizacji w OpenMP1
T-W-8Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB 21
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łych1
T-W-11Modele wydajnościowe do aplikacji rónoległych1
T-W-12podstawy programowania w bibliotece CUDA; architektura kart graficznych3
14

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1udział w laboratoriach16
A-L-2przygotowanie do laboratoriów; praca we własnym zakresie czasowym40
56
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1udział w wykładach14
A-W-2przygotowanie do egzaminu35
49
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_null_W01ma wiedzę na temat rozwoju współczesnych architektur
Treści programoweT-L-9Poznanie podstaw programowania równoległego za pomocą kart graficznych i CUDA. Napisanie programu mnożenia macierzy.
T-W-11Modele wydajnościowe do aplikacji rónoległych
T-W-12podstawy programowania w bibliotece CUDA; architektura kart graficznych
Sposób ocenyS-3Ocena formująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi
Kryteria ocenyOcenaKryterium oceny
2,0nie umie zdefiniować pojcia maszyny równoległej, nie zna procesorów wielordzeniowych
3,0umie zdefiniować pojęcie maszyny równoległej i procesora wielordzeniowego
3,5ma wiedzę na 3.0 oraz umie wyjaśnić pojęcia SISD, SIMD oraz MIMD
4,0ma wiedzę na 3.0 oraz umie wyjaśnić pojęcia SISD, SIMD oraz MIMD z przykładami
4,5ma wiedzę na 4.0 oraz zna taksonomię Flynna
5,0ma wiedzę na 4.5 oraz zna technologię GPGPU (CUDA i OpenCL)
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_null_W02ma wiedzę z prowadzenia sprawozdań badawczych
Cel przedmiotuC-1Ukształtowanie wiedzy i umięjtności niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-L-4Napisanie aplikacji w OpenMP do mnożenia macierzy z wykorzystaniem pragm OpenMP. Badanie przyspieszenia, efektywności i skalowalności opracowanych aplikacji.
T-L-5Napisanie aplikacji równoległej w OpenMP dla wybranego algorytmu z zakresu metod numerycznych, grafiki lub kryptografii.
T-L-7Napisanie aplikacji z wykorzystaniem Intel TBB do przydziału zadań dla wątków, synchronizacji wątków, funkcji bibliotecznych, zmiennych środowiskowych.
T-L-10Napisanie aplikacji z wykorzystaniem pagm CUDA do przydziału zadań dla wątków, synchronizacji wątków, funkcji bibliotecznych, zmiennych środowiskowych.
T-W-12podstawy programowania w bibliotece CUDA; architektura kart graficznych
Metody nauczaniaM-1Wykad informacyjny/konwersatoryjny
Sposób ocenyS-3Ocena formująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi
Kryteria ocenyOcenaKryterium oceny
2,0nie zna podstawowych charakterystyk jakości oprogramowania równoległego
3,0umie wyjaśnić pojęcie przyspieszenia i efektywności
3,5umie wyjaśnić pojęcie przyspieszenia i efektywności oraz skalowalności
4,0umie wyjaśnić pojęcie przyspieszenia i efektywności oraz skalowalności i lokalności
4,5umie wyjaśnić pojęcie przyspieszenia i efektywności oraz skalowalności i lokalności włącznie z prawem Amdahla
5,0umie wyjaśnić pojęcie przyspieszenia i efektywności oraz skalowalności i lokalności włącznie z prawem Amdahla i Gustavsona
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_null_W03ma wiedzę z podstaw programowania i przetwarzania współbieżnego
Cel przedmiotuC-1Ukształtowanie wiedzy i umięjtności niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-L-1Kompilacja programu w standardzie OpenMP /C++. Napisanie, kompilacja i sprawdzanie aplikacji z wykorzystaniem programu "parallel".
T-L-4Napisanie aplikacji w OpenMP do mnożenia macierzy z wykorzystaniem pragm OpenMP. Badanie przyspieszenia, efektywności i skalowalności opracowanych aplikacji.
T-L-6Napisanie programu równoległego za pomocą biblioteki Intel TBB dla mnożenia macierzy.
Metody nauczaniaM-1Wykad informacyjny/konwersatoryjny
Sposób ocenyS-3Ocena formująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi
Kryteria ocenyOcenaKryterium oceny
2,0nie umie wyjaśnić pojęcia wątek, równoległość i współbieżność
3,0umie wyjaśnić pojęcia wątek, równoległość i współbieżność
3,5umie wyjaśnić pojęcia wątek, równoległość i współbieżność oraz zna podstawy modelu PCAM
4,0umie wyjaśnić pojęcia wątek, równoległość i współbieżność oraz zna szczegóły modelu PCAM
4,5ma wiedzę na 4.0 oraz umie opisać mechanizmy synchronizacji
5,0ma wiedzę na 4.0 oraz umie opisać mechanizmy synchronizacji i ryzyko związane z programowaniem równoległym (zakleszczenia, głodzenie wątków, itd.)
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_null_U01umiejętność badania jakości kodu równolewgłego
Cel przedmiotuC-1Ukształtowanie wiedzy i umięjtności niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-W-1architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych
T-W-2podstawowe mierniki jakości aplikacji równoległych (lokalność, granulacja, determinizm, przyspieszenie i efektywność), prawa Amdahl’a i Gustaffson’a
T-L-3Zrównoleglenie 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.
T-L-5Napisanie aplikacji równoległej w OpenMP dla wybranego algorytmu z zakresu metod numerycznych, grafiki lub kryptografii.
T-L-12Badanie przyspieszenia i skalowalności aplikacji równoległych dla kart graficznych.
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-2Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0nie potrafi określić jakości kodu równoległego
3,0potrafi obliczyć przyspieszenie i efektywność z uzyskanyc wyników czasowych
3,5ma wiedzę na 3.0 oraz potrafi ocenić skalowalność dla wielu procesorów
4,0ma wiedzę na 3.5 i potrafi określić lokalność napisanego programu
4,5ma wiedzę na 4.0 i umie określić wpływ harmonogramowania instrukcji na wyniki czasowe
5,0ma wiedzę na 4.5 i umiejętnie przedstawia wyniki badań oraz wnioski za pomocą tabel i wykresów
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_null_U02ma umiejętność poszukiwania źródeł informacji i wdrażania zdobytej wiedzy w praktyce
Cel przedmiotuC-1Ukształtowanie wiedzy i umięjtności niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-L-1Kompilacja programu w standardzie OpenMP /C++. Napisanie, kompilacja i sprawdzanie aplikacji z wykorzystaniem programu "parallel".
T-W-11Modele wydajnościowe do aplikacji rónoległych
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-2Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0nie potrafi odnaleźć specyfikacji technicznych i przedstawić potrzebnych informacji z dokumentacji
3,0potrafi odnaleźć specyfikacji technicznych i przedstawić potrzebnych informacji z dokumentacji
3,5potrafi odnaleźć specyfikacji technicznych i przedstawić potrzebnych informacji z dokumentacji oraz umie czytać opisy funkcji programistycznych
4,0ma wiedzę na 3.5 oraz sprawnie porusza się po podręcznikach programistycznych
4,5ma wiedzę na 4.0 oraz sprawnie porusza się po samouczkach (tutorials)
5,0ma wiedzę na 4.5 oraz umie korzystać z narzędzi wersjonujących
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_null_U03ma umiejętność tworzenia kodu równoległego inwidualnie lub w zespole
Cel przedmiotuC-1Ukształtowanie wiedzy i umięjtności niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-L-5Napisanie aplikacji równoległej w OpenMP dla wybranego algorytmu z zakresu metod numerycznych, grafiki lub kryptografii.
T-L-7Napisanie aplikacji z wykorzystaniem Intel TBB do przydziału zadań dla wątków, synchronizacji wątków, funkcji bibliotecznych, zmiennych środowiskowych.
T-W-8Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB 2
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-2Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0nie zna podstaw openMP i intel TBB
3,0zna podstawowe pragmy openmp i Intel TBB
3,5zna podstawowe pragmy openmp i Intel TBB oraz potrafi napisać program równoległy z grupą
4,0zna podstawowe pragmy openmp i Intel TBB oraz potrafi z grupą napisać program równoległy oraz sporządzić sprawozdanie z badań
4,5zna podstawowe pragmy openmp i Intel TBB oraz potrafi napisać program równoległy z grupą i samodzielnie
5,0zna podstawowe pragmy openmp i Intel TBB oraz potrafi z grupą i samodzielnie napisać program równoległy oraz sporządzić sprawozdanie z badań
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_null_U04ma umiejętność wyszukania błędów oraz testowania jakości w kodzie równoległym
Cel przedmiotuC-1Ukształtowanie wiedzy i umięjtności niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-W-4poję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-5Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków
T-W-8Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB 2
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-2Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0nie potrafi odnaleźć usterek w kodzie równoleglym
3,0potrafi odnaleźć usterek w kodzie równoleglym za pomocą jego testowania i weryfikacji
3,5ma wiedzę na 3.0 oraz umiejętnie korzysta z podstawowych technik testowania
4,0ma wiedzę na 3.0 oraz umiejętnie korzysta z zaawansowanych technik testowania
4,5ma wiedzę na 4.0 i potrafi debugować kod sekwencyjny
5,0ma wiedzę na 4.5 i potrafi debugować kod równoległy i sekwkenycjny
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_null_K01ma świadomość rozwoju programowania i architektur komputerowych
Cel przedmiotuC-1Ukształtowanie wiedzy i umięjtności niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-W-1architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych
T-W-9podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-2Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0nie zna trendów rozwoju mikroporcesorów
3,0zna trendy rozwoju mikroporcesorów w aspekcie maszyn równoległych
3,5ma wiedzę na 3.0 oraz zna pojęcia rdzeni i wątków
4,0ma wiedzę na 3.5 oraz potrafi opisać rozwój kart graficznych
4,5ma wiedzę na 3.5 oraz potrafi opisać rozwój kart graficznych i urządzań wbudowanych
5,0ma wiedzę na 3.5 oraz potrafi opisać rozwój kart graficznych i urządzań wbudowanych oraz MID
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_null_K02posiada świadomość trudu projektowania rozwiązań programowych z uwzględnieniem jakości kodu
Cel przedmiotuC-1Ukształtowanie wiedzy i umięjtności niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych
Treści programoweT-L-7Napisanie aplikacji z wykorzystaniem Intel TBB do przydziału zadań dla wątków, synchronizacji wątków, funkcji bibliotecznych, zmiennych środowiskowych.
T-W-7Mechanizmy synchronizacji w OpenMP
T-L-8Porównanie aplikacji równoległych OpenMP i IntelTBB. Badanie przyspieszenia i skalowalności rozwiązań.
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-2Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0nie zna różńic między programowaniem sekwenycjnym i rownoległym
3,0zna różńice między programowaniem sekwenycjnym i rownoległym
3,5zna różńic między programowaniem sekwenycjnym i rownoległym z uwzględneniem synchronizacji
4,0zna różńic między programowaniem sekwenycjnym i rownoległym z uwzględneniem synchronizacji i komunikacji
4,5zna różńic między programowaniem sekwenycjnym i rownoległym z uwzględneniem synchronizacji i komunikacji oraz skalowalności i lokalności
5,0ma wiedzę 4.5 oraz umiejętnie z niej korzysta w praktyce (tworzeniu oprogramowania równoległego)