Wydział Informatyki - Informatyka (S1)
specjalność: systemy komputerowe i oprogramowanie
Sylabus przedmiotu Programowanie współbieżne - Przedmiot obieralny I:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | pierwszego stopnia |
Tytuł zawodowy absolwenta | inżynier | ||
Obszary studiów | nauk technicznych, studiów inżynierskich | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Programowanie współbieżne - Przedmiot obieralny I | ||
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 | 6 | Grupa obieralna | 4 |
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 | Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania aplikacji równoległych w standardzie OpenMP |
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". | 2 |
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. | 2 |
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. | 3 |
T-L-4 | Napisanie aplikacji w OpenMP opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności. | 2 |
T-L-5 | Napisanie aplikacji w OpenMP do mnożenie macierzy z wykorzystaniem pragm OpenMP, sprawdzenie przyspieszenia i efektywnosci napisanej aplikacji. | 3 |
T-L-6 | Napisanie aplikacji rwnoległej w OpenMP do wybranego algorytmu z dziedziny metod numerycznych - praca w zespole | 2 |
T-L-7 | zaliczenie laboratoriów | 1 |
15 | ||
wykłady | ||
T-W-1 | Architektura komputerów równoległych oraz jej związek z wydajnością aplikacji równoległych | 1 |
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 zależności, rodzaje zależności. Podstawowe transformacje pętli (FAN, PAR, PIPE) | 3 |
T-W-4 | Pojęcie wątku. Standard OpenMP: model, podstawowe konstrukcje aplikacji równoległych( region równoległy, konstrukcje tworzenia wątków, zarządzanie liczbą wątków) | 2 |
T-W-5 | Standard OpenMP: synchronizacja barierowa, sekcja krytyczna, konstrukcje podziału pracy między wątki. | 2 |
T-W-6 | Standard OpenMP: Zrównoleglenie pętli, szeregowanie iteracji pętli do wątków | 2 |
T-W-7 | Podstawowe czynniki mające wpływ na wydajność aplikacji równoległych , sposoby pozwalające na tworzenie wydajnych aplikacji. Metodologia PCAM do tworzenia algorytmów równoległych, Modele wydajnościowe do aplikacji rónoległych. | 3 |
15 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | udział w laboratoriach | 15 |
A-L-2 | przygotowanie do laboratoriów | 15 |
A-L-3 | konsultacje do laboratorium | 2 |
32 | ||
wykłady | ||
A-W-1 | Udział w wykładach | 15 |
A-W-2 | Przygotowanie do zaliczenia | 10 |
A-W-3 | Udział w konsultacjach i zaliczeniu | 2 |
27 |
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 podsumowują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 | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_O/1/4_W01 ma wiedzę w zakresie tworzenia algorytmów równoległych | I_1A_W05 | T1A_W03, T1A_W07 | InzA_W02 | C-1 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7 | M-1 | S-2 |
I_1A_O/1/4_W02 zna API OpenMP do tworzenia aplikacji równoległych | I_1A_W06 | T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W09 | InzA_W01, InzA_W02, InzA_W04, InzA_W05 | C-1 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7 | M-1 | S-2 |
I_1A_O/1/4_W03 zna podstawowe metody gromadzenia i przetwarzania danych i informacji w oparciu o komputery równoległe | I_1A_W17 | T1A_W03, T1A_W07 | InzA_W02, InzA_W05 | C-1 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7 | 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 | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_O/1/4_U01 potrafi w zakresie podstawowym projektować, implementować i testować oprogramowanie równoległe | I_1A_U01 | T1A_U01, T1A_U02, T1A_U04, T1A_U07, T1A_U08, T1A_U09, T1A_U14, T1A_U15, T1A_U16 | InzA_U01, InzA_U02, InzA_U06, InzA_U07, InzA_U08 | C-1 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-L-3, T-L-1, T-L-2, T-L-4, T-L-5, T-L-6 | M-2 | S-1 |
I_1A_O/1/4_U02 Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego | I_1A_U02 | T1A_U02, T1A_U03, T1A_U04, T1A_U07, T1A_U11, T1A_U12 | InzA_U01, InzA_U02, InzA_U03, InzA_U05, InzA_U06, InzA_U07, InzA_U08 | C-1 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-L-3, T-L-1, T-L-2, T-L-4, T-L-5, T-L-6 | M-2 | S-1 |
I_1A_O/1/4_U03 potrafi posługiwać się dokumentacją techniczną do API OpenMP | I_1A_U05 | T1A_U01, T1A_U02, T1A_U06, T1A_U07, T1A_U13 | InzA_U05 | C-1 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-L-3, T-L-1, T-L-2, T-L-4, T-L-5, T-L-6 | M-2 | S-1 |
I_1A_O/1/4_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_U19 | T1A_U13, T1A_U15, T1A_U16 | InzA_U05, InzA_U07, InzA_U08 | C-1 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-L-3, T-L-1, T-L-2, T-L-4, T-L-5, T-L-6 | M-2 | S-1 |
I_1A_O/1/4_U05 umie oceniać przydatność i stosować API OpenMP do rozwiązywania problemów dziedzinowych | I_1A_U03 | T1A_U01, T1A_U08, T1A_U09, T1A_U10, T1A_U13, T1A_U14, T1A_U15 | InzA_U01, InzA_U02, InzA_U03, InzA_U05, InzA_U06, InzA_U07 | C-1 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-L-3, T-L-1, T-L-2, T-L-4, T-L-5, T-L-6 | M-2 | S-1 |
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 | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_O/1/4_K01 świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania współbieżnego | I_1A_K01 | T1A_K01, T1A_K07 | — | C-2 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-L-3, T-L-1, T-L-2, T-L-4, T-L-5, T-L-6 | M-2 | S-1 |
I_1A_O/1/4_K02 ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia oprogramowania współbieżnego | I_1A_K03 | T1A_K02, T1A_K03, T1A_K04 | InzA_K01 | C-2 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-L-3, T-L-1, T-L-2, T-L-4, T-L-5, T-L-6 | M-2 | S-1 |
Kryterium oceny - wiedza
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_O/1/4_W01 ma wiedzę w zakresie tworzenia algorytmów równoległych | 2,0 | nie zna podstawowych algorytmów projektowania algorytmów równoległych |
3,0 | zna podstawowe algorytmy projektowania algorytmów równoległych | |
3,5 | zna podstawowe algorytmy projektowania algorytmów równoległych i wie jak zostasowąc je do zrównoleglenia prostych algorytmów sekwencyjnych | |
4,0 | zna szczegółowo podstawowe algorytmy projektowania algorytmów równoległych i wie jak zostasowąc je do zrównoleglenia prostych algorytmów sekwencyjnych | |
4,5 | zna szczegółowo podstawowe algorytmy projektowania algorytmów równoległych i i wie jak zostasowąc je do zrównoleglenia algorytmów sekwencyjnych | |
5,0 | zna szczegółowo podstawowe algorytmy projektowania algorytmów równoległych i wie jak zostasowąc je do zrównoleglenia algorytmów sekwencyjnych oraz potrafi udowodnić i uzasadnić swoją wypowiedż | |
I_1A_O/1/4_W02 zna API OpenMP do tworzenia aplikacji równoległych | 2,0 | nie zna API i bibliotek do tworzenia aplikacji równoległych |
3,0 | ma wiedze o API i bibliotekach do tworzenia aplikacji równoległych | |
3,5 | ma wiedzę o API i bibliotekach do tworzenia aplikacji równoległych i wie jak zostasować ją do tworzenia prostych aplikacji | |
4,0 | ma szczegółową wiedzę o API i bibliotekach do tworzenia aplikacji równoległych i wie jak zostasować je do tworzenia prostych aplikacji | |
4,5 | ma szczegółową wiedzę o API i bibliotekach do tworzenia aplikacji równoległych i wie jak zostasować je do tworzenia zaawansowanych aplikacji | |
5,0 | ma szczegółową wiedzę o API i bibliotekach do tworzenia aplikacji równoległych i wie zostasować je do tworzenia zaawansowanych aplikacji oraz potrafi udowodnić i uzasadnić odpowiedź | |
I_1A_O/1/4_W03 zna podstawowe metody gromadzenia i przetwarzania danych i informacji w oparciu o komputery równoległe | 2,0 | nie zna podstawowych algorytmów projektowania algorytmów równoległych, nie zna API i bibliotek do tworzenia aplikacji równoległych |
3,0 | zna podstawowe algorytmy projektowania algorytmów równoległych, ma wiedze o API i bibliotekach do tworzenia aplikacji równoległych | |
3,5 | zna podstawowe algorytmy projektowania algorytmów równoległych i potrafi zostasowąc je do zrównoleglenia prostych algorytmów sekwencyjnych, ma wiedzę o API i bibliotekach do tworzenia aplikacji równoległych i potrafi zostasować ją do tworzenia prostych aplikacji | |
4,0 | zna szczegółowo podstawowe algorytmy projektowania algorytmów równoległych i potrafi zostasowąc je do zrównoleglenia prostych algorytmów sekwencyjnych, ma szczegółową wiedzę o API i bibliotekach do tworzenia aplikacji równoległych i potrafi zostasować ją do tworzenia prostych aplikacji | |
4,5 | na szczegółowo podstawowe algorytmy projektowania algorytmów równoległych i potrafi zostasowąc je do zrównoleglenia algorytmów sekwencyjnych, ma szczegółową wiedzę o API i bibliotekach do tworzenia aplikacji równoległych i potrafi zostasować ją do tworzenia zaawansowanych aplikacji | |
5,0 | zna szczegółowo podstawowe algorytmy projektowania algorytmów równoległych i potrafi zostasowąc je do zrównoleglenia algorytmów sekwencyjnych, ma szczegółową wiedzę o API i bibliotekach do tworzenia zaawansowanych aplikacji równoległych i potrafi zostasować ją do tworzenia aplikacji oraz potrafi udowodnić i uzasadnić odpowiedź |
Kryterium oceny - umiejętności
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_O/1/4_U01 potrafi w zakresie podstawowym projektować, implementować i testować oprogramowanie równoległe | 2,0 | nie spełnia kryteriów określonych dla oceny 3 |
3,0 | potrafi skompilować program z openmp z pragmami paralle i for | |
3,5 | wymagania na ocenę 3 - dodatkowo: - potrafi poprawnie skonfigurować pragmy parallel i for | |
4,0 | wymagania na ocenę 3,5 - dodatkowo: - potrafi skonfigurować większość pragm | |
4,5 | wymagania na ocenę 4 - dodatkowo: - potrafi określić przyspieszenie programu | |
5,0 | wymagania na ocenę 4,5- dodatkowo: - potrafi określić skalowalność i efektywność programu | |
I_1A_O/1/4_U02 Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego | 2,0 | nie spełnia kryteriów określonych dla oceny 3 |
3,0 | potrafi zaangażować się w projekt poprzez wniesienie uwag do projektu | |
3,5 | wymagania na ocenę 3 - dodatkowo: - aktywnie uczestniczy w tworzeniu programu poprzez krytyczną ocenę proponowanych rozwiązań w grupie | |
4,0 | wymagania na ocenę 3,5 - dodatkowo: - potrafi przejąć inicjatywę w grupie dla składowych realizowanego projektu | |
4,5 | wymagania na ocenę 4,0 - dodatkowo: - potrafi wybrac poprawne rozwiazania ze wszytskich zaprponowanych w zespole | |
5,0 | wymagania na ocenę 4,5 - dodatkowo: - rozumie znaczenie pracy w zespole, poprawnie identyfikuje role jaką odgrywał w ramach prac projektowych | |
I_1A_O/1/4_U03 potrafi posługiwać się dokumentacją techniczną do API OpenMP | 2,0 | nie spełnia kryteriów określonych dla oceny 3 |
3,0 | potrafi opisać podstawowe pragmy i odszukać te informacje w dokumnetacji | |
3,5 | wymagania na ocenę 3,0 - dodatkowo: - potrafi znaleźć wszystkie dyrektywy dla wybranych pragm z dokumentacji | |
4,0 | wymagania na ocenę 3,5 - dodatkowo: - rozumie znaczenie wszytskich dyrektyw zdokumentacji | |
4,5 | wymagania na ocenę 4,0 - dodatkowo: - potrafi włączyć wyszukane informacje do swojego programu | |
5,0 | wymagania na ocenę 4,5 - dodatkowo: - potrafi optymalizować program na podstawie uzyskanych informacji z dokumnetacji | |
I_1A_O/1/4_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,0 | nie spełnia kryteriów określonych dla oceny 3 |
3,0 | zna podstawowe etapy modelu PCAM | |
3,5 | wymagania na ocenę 3,0 - dodatkowo: - potrafi szczegółowo opisać etapy modelu PCAM | |
4,0 | wymagania na ocenę 3,5 - dodatkowo: - potrafi opisać i rozumie trudnosci zwiazane z tworzeniem programow rownoleglych | |
4,5 | wymagania na ocenę 4,0 - dodatkowo: - potrafi wskazać poszczególne etapy modelu PCAM w swoich programach | |
5,0 | wymagania na ocenę 4,5 - dodatkowo: - potrafi wyjaśnić wagę etapów PCAM w kontekście uzyskiwanych wyników | |
I_1A_O/1/4_U05 umie oceniać przydatność i stosować API OpenMP do rozwiązywania problemów dziedzinowych | 2,0 | nie spełnia kryteriów określonych dla oceny 3 |
3,0 | zna podstawowe zastosowania pakietu OpenMP | |
3,5 | wymagania na ocenę 3,0 - dodatkowo: - potrafi określić dzienię zastosowania OpenMP | |
4,0 | wymagania na ocenę 3,5 - dodatkowo: - potrafi praktycznie zastosować OpenMP | |
4,5 | wymagania na ocenę 4,0 - dodatkowo: - potrafi wskazać plusy i minusy OpenMP w zależności od dziedziny problemu | |
5,0 | wymagania na ocenę 4,5 - dodatkowo: - portafi poprawnie przewidzieć opłacalnosc zastosowania OpenMP dla określonego algorytmu przed jego implementacją |
Kryterium oceny - inne kompetencje społeczne i personalne
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_O/1/4_K01 świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania współbieżnego | 2,0 | Nie potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania oprogramowania równoległego |
3,0 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 3,0 | |
3,5 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 3,5 | |
4,0 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 4,0 | |
4,5 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 4,5 | |
5,0 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 5,0 | |
I_1A_O/1/4_K02 ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia oprogramowania współbieżnego | 2,0 | Nie potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania oprogramowania równoległego |
3,0 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania oprogramowania równoległego oraz zrealizował swoją część zadania z oceną 3,0 | |
3,5 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania oprogramowania równoległego oraz zrealizował swoją część zadania z oceną 3,5 | |
4,0 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania oprogramowania równoległego oraz zrealizował swoją część zadania z oceną 4,0 | |
4,5 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania oprogramowania równoległego oraz zrealizował swoją część zadania z oceną 4,5 | |
5,0 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania oprogramowania równoległego oraz zrealizował swoją część zadania z oceną 5,0 |
Literatura podstawowa
- W. Bielecki, Przetwarzanie równoległe i rozproszone, Politechnika Szczecińska, Szczecin, 2007
- Rohit Chandra et al., Parallel Programming in OpenMP, Morgan Kaufmann Publishers, London, 2001
- Chapman, Jost, and Van Der Pas, Using OpenMP, The MIT Press, Cambridge, 2007