Wydział Informatyki - Informatyka (S2)
specjalność: inżynieria oprogramowania
Sylabus przedmiotu Programowanie równoległe i rozproszone - Przedmiot obieralny II:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | drugiego stopnia |
Tytuł zawodowy absolwenta | magister | ||
Obszary studiów | nauki techniczne | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Programowanie równoległe i rozproszone - Przedmiot obieralny II | ||
Specjalność | projektowanie i zarządzanie projektami informatycznymi | ||
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 | 9 | Grupa obieralna | 1 |
Formy dydaktyczne
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Zaliczone przedmioty: Programowanie w językach C, C++, Architektura komputerów, Systemy operacyjne |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Uksztatowanie wiedzy i umiejtnoci niezbędnych do opracowania aplikacji równolegych dla komputerów wielerdzeniowych |
C-2 | Ukształ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ęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Kompilacaja programu w standardzie OpenMP C/C++. Napisanie, kompilacja i sprawdzenie aplikacji z wykorzystaniem pragmy "parallel" | 5 |
T-L-2 | Napisanie, 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. | 5 |
T-L-3 | Zró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. | 5 |
T-L-4 | Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności. | 5 |
T-L-5 | Napisanie aplikacji w OpenMP do mnożenie macierzy z wykorzystaniem pragm OpenMP, sprawdzenie przyspieszenia i efektywnosci napisanej aplikacji. | 5 |
T-L-6 | Napisanie aplikacji rwnoległej w OpenMP do wybranego algorytmu z dziedziny metod numerycznych. | 5 |
30 | ||
wykłady | ||
T-W-1 | architektura komputerów wielordzeniowych oraz jej związek z wydajnością aplikacji równoległych | 2 |
T-W-2 | podstawowe mierniki jakości aplikacji równoległych (lokalność, granulacja, determinizm, przyspieszenie i efektywność), prawa Amdahl’a i Gustaffson’a | 2 |
T-W-3 | Pojęcie zaleznośći, rodzaje zależności w programach | 2 |
T-W-4 | podstawowe transformacje pętli: FAN, PAR, PIPE | 2 |
T-W-5 | pojęcie wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołaniei zakończenia wątków, model obliczeń | 2 |
T-W-6 | Zrównoleglenie pętli w OpenMP, szeregowanie iteracji pętli do wątków | 2 |
T-W-7 | konstrukcje podziału pracy między wątki w OpenMP | 2 |
T-W-8 | Mechanizmy synchronizacji w OpenMP | 2 |
T-W-9 | Mechanizm zadań w OpenMP(tasking) | 4 |
T-W-10 | Biblioteki i narzędzia do tworzenia aplikacji równoległych komputerów wielordzeniowych: FORTRAN, OpenMP Java, POSIX, biblioteki Microsoft, biblioteki Java, Intel TBB | 2 |
T-W-11 | podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji | 2 |
T-W-12 | Metodologia PCAM tworzenia algorytmów równoległych | 4 |
T-W-13 | Modele wydajnościowe do aplikacji rónoległych | 2 |
30 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | udział w laboratoriach | 30 |
A-L-2 | przygotowanie do laboratoriów | 8 |
A-L-3 | Udzał w konsultacjach i zaliczeniu formy zajęć | 2 |
40 | ||
wykłady | ||
A-W-1 | Udział w wykładach | 30 |
A-W-2 | Przygotowanie do zaliczenia | 35 |
A-W-3 | Udzał w konsultacjach i zaliczeniu formy zajęć | 2 |
67 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykad informacyjny/konwersatoryjny |
M-2 | Ćwiczenia laboratoryjne |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów |
S-2 | Ocena formująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi |
Zamierzone efekty kształcenia - wiedza
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|
I_2A_D16/O3/2-3_W01 ma wiedzę w zakresie tworzenia algorytmów równoległych | I_2A_W04 | — | C-1 | T-W-2, T-W-5, T-W-10 | M-1 | S-2 |
I_2A_D16/O3/2-3_W02 zna API i biblioteki do tworzenia aplikacji równoległych dla komputerów wielordzeniowych | I_2A_W10 | — | C-2 | T-W-2, T-W-6, T-W-9 | M-1 | S-2 |
I_2A_D16/O3/2-3_W03 zna podstawowe metody gromadzenia i przetwarzania danych i informacji w oparciu o komputery równoległe | I_2A_W04 | — | C-1 | T-W-1, T-W-2, T-W-4, T-W-9, T-W-12 | M-1 | S-2 |
Zamierzone efekty kształcenia - umiejętności
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|
I_2A_D16/O3/2-3_U01 potrafi wykorzystać narzędzia i poszukiwać wiedzy o nich | I_2A_U02, I_2A_U08 | — | C-1 | T-W-1, T-W-9, T-W-13 | M-2 | S-1 |
I_2A_D16/O3/2-3_U02 potrafi wykorzystać dotychczasową wiedzę i dobrać nowo powstałe narzędzia | I_2A_U04 | — | C-2 | T-W-12, T-L-2, T-L-4 | M-2 | S-2 |
Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|
I_2A_D16/O3/2-3_K01 rozumie korzyśi wynikające z przetwarzania równoległego | I_2A_K03 | — | C-2 | T-W-6, T-W-9, T-W-13, T-L-2 | M-2 | S-1 |
Kryterium oceny - wiedza
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_2A_D16/O3/2-3_W01 ma wiedzę w zakresie tworzenia algorytmów równoległych | 2,0 | nie potrrafi zdefiniować programu współbieżnego, współbieżności oraz rozróżnić równoległość od współbieżności |
3,0 | rozumie pojęcie współbieżności, potrafi wyjaśnić definicję programu równoległego i odróżnić go od współbieżnego | |
3,5 | ma 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,0 | ma wiedzę na 3.5 oraz umiejętnie określa trudności w tworzeniu programów współbieżnych z odpowiednim doborem metod synchronizacji | |
4,5 | ma wiedzę na 4.0 oraz potrafi zdefiniować zagrożenia w tworzeniu oprogramowania współbieżnego | |
5,0 | ma wiedzę na 4.5 i potrafi wyjaśnić trudności w testowaniu oprogramowania współbieżnego | |
I_2A_D16/O3/2-3_W02 zna API i biblioteki do tworzenia aplikacji równoległych dla komputerów wielordzeniowych | 2,0 | nie potrafi opisać pragmy parallel i for |
3,0 | potrafi w podstawowym zakresie określić pragmę parallel i for | |
3,5 | potrafi w podstawowym zakresie określić pragmę parallel, for i sections | |
4,0 | potrafi w podstawowym zakresie określić pragmę parallel, for i sections oraz zna pragmy barrier i atomic | |
4,5 | ma wiedzę na 4.0 i zna definicje funkcji openmp | |
5,0 | ma wiedzę na 4.5 i zna mechanizmy lock w openmp | |
I_2A_D16/O3/2-3_W03 zna podstawowe metody gromadzenia i przetwarzania danych i informacji w oparciu o komputery równoległe | 2,0 | nie umie wyjaśnić taksonomi Flynna |
3,0 | potrafi wyjaśnić taksonomię Flynna | |
3,5 | potrafi wyjaśnić taksonomię Flynna i podać przykładowe architektury | |
4,0 | ma wiedzę 3.5 i opisać rozwój architektur równoległych | |
4,5 | ma wiedzę 4.0 i potrafi opisać architektury ze względu na dostęp do pamięci | |
5,0 | ma wiedzę na 4.5 i umie opisać model PCAM |
Kryterium oceny - umiejętności
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_2A_D16/O3/2-3_U01 potrafi wykorzystać narzędzia i poszukiwać wiedzy o nich | 2,0 | nie potrafi odnaleźć informacji na temat narzędzi oraz pisania programów |
3,0 | zna podstawowe słowa klucz, narzędzia i źródła wiedzy o nich | |
3,5 | potrafi odnaleźć informacje o poszczególnych funkcjach w dokumentacji narzędzia | |
4,0 | potrafi odnaleźć informacje o poszczególnych funkcjach w dokumentacji narzędzia i zastosować je w własnych projektach | |
4,5 | potrafi odnaleźć informacje o poszczególnych funkcjach w dokumentacji narzędzia i zastosować je w własnych projektach oraz zna alternetywne rozwiązania | |
5,0 | potrafi odnaleźć informacje o poszczególnych funkcjach w dokumentacji narzędzia i zastosować je w własnych projektach, zna alternetywne rozwiązania i jest zdolny do wyboru najbardziej odpowiedniego | |
I_2A_D16/O3/2-3_U02 potrafi wykorzystać dotychczasową wiedzę i dobrać nowo powstałe narzędzia | 2,0 | nie zna podstaw programowania i kompilatorów |
3,0 | umie skompilować program w środowisku GCC i zna podstawy openmp i tbb | |
3,5 | umie skompilować program w środowisku GCC i zna podstawy openmp i tbb oraz zna podstawowe funkcje języka C z zakresu programowania systemów operacyjnych | |
4,0 | ma wiedzę na 3.5 i potrafi wykorzystać tą wiedzę do programowania aplikacji równoległych | |
4,5 | ma wiedzę na 4.0 i potrafi wykorzystać tą wiedzę do programowania aplikacji równoległych z wyborem odpowiednich funkcji | |
5,0 | wiedza 4.5 oraz umie porównać rezultaty z różnych narzędzi i funkcji |
Kryterium oceny - inne kompetencje społeczne i personalne
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_2A_D16/O3/2-3_K01 rozumie korzyśi wynikające z przetwarzania równoległego | 2,0 | nie zna podstawowych różnic między programowaniem sekwencyjnym i równoległym |
3,0 | ma wiedzę na temat podstawowych różnic między programowaniem sekwencyjnym i równoległym | |
3,5 | ma wiedzę na temat podstawowych różnic między programowaniem sekwencyjnym i równoległym i potrafi określić problem programowania równoległego | |
4,0 | ma wiedzę na temat podstawowych różnic między programowaniem sekwencyjnym i równoległym i potrafi określić problem programowania równoległego oraz dobrać narzędzia do jego rozwiązania | |
4,5 | ma wiedzę na temat podstawowych różnic między programowaniem sekwencyjnym i równoległym i potrafi określić problem programowania równoległego oraz dobrać narzędzia do jego rozwiązania a także określić korzyści z maszyn równoległych | |
5,0 | ma wiedzę na 4.5 i potrafi określić jakość znajomych mu rozwiązań |
Literatura podstawowa
- W. Bielecki, Essentials of parallel and distributed computing, Politechnika Szczecińska, Szczecin, 2002
- W. Bielecki, Przetwarzanie równoległe i rozproszone, Programowanie komputerów wielordzeniowych, Szczecin, 2007, Politechnika Szczecińska, 2007
- Rohit Chandra et al., Parallel Programming in OpenMP, Programowanie komputerów wielordzeniowych, Londyn, 2001
- Chapman, Jost, and Van Der Pas, Using OpenMP, The MIT Press Cambridge, 2008