Wydział Informatyki - Informatyka (S2)
specjalność: inteligentne aplikacje komputerowe
Sylabus przedmiotu Programowanie równoległe i rozproszone:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | drugiego stopnia |
Tytuł zawodowy absolwenta | magister | ||
Obszary studiów | nauk technicznych | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Programowanie równoległe i rozproszone | ||
Specjalność | inżynieria oprogramowania | ||
Jednostka prowadząca | Katedra Inżynierii Oprogramowania | ||
Nauczyciel odpowiedzialny | Włodzimierz Bielecki <Wlodzimierz.Bielecki@zut.edu.pl> | ||
Inni nauczyciele | Marek Pałkowski <Marek.Palkowski@zut.edu.pl>, Krzysztof Siedlecki <Krzysztof.Siedlecki@zut.edu.pl> | ||
ECTS (planowane) | 3,0 | ECTS (formy) | 3,0 |
Forma zaliczenia | egzamin | Język | polski |
Blok obieralny | — | Grupa obieralna | — |
Formy dydaktyczne
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Zaliczone przedmioty: Programowanie w językach C, C++, Architektura komputerów, Systemy operacyjne, Inżynieria oprogramowania |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Przyswojenie wiedzy i umiejętności niezbędnych do projektowania aplikacji równolegych i rozproszonych oraz oceny ich jakości |
C-2 | Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie programowania równoległego i rozproszonego |
Treści programowe z podziałem na formy zajęć
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. | 2 |
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 opartych na zrównolegleniu pętli idealnie zagnieżdzonych na podstawie wyznaczonych zależności. | 2 |
T-L-6 | Napisanie aplikacji rwnoległej za pomocą biblioteki TBB | 2 |
T-L-7 | Napisanie aplikacji rwnoległej w oparciu o dyrektywę Task | 1 |
T-L-8 | Stworzenie projektu aplikacji równoległej oraz zespołowego sprawozdania z badań w grupach 2 (max 3) osobowych | 2 |
15 | ||
wykłady | ||
T-W-1 | architektura komputerów równoległych i systemów rozproszonych | 2 |
T-W-2 | podstawowe mierniki jakości aplikacji równoległych i rozproszonych (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 procesu i wątku, podstawowe konstrukcje aplikacji równoległych w OpenMP: region równoległy, powołanie i zakończenie wątków, model obliczeń | 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 | biblioteka Intel TBB | 2 |
T-W-11 | biblioteki MPI i PVM | 2 |
T-W-12 | podstawowe czynniki mające wpływ na wydajność aplikacji, sposoby pozwalające na tworzenie wydajnych aplikacji | 2 |
T-W-13 | metodologia PCAM tworzenia algorytmów równoległych i rozproszonych | 2 |
T-W-14 | modele wydajnościowe aplikacji rónoległych i rozproszonych | 2 |
30 |
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 | 5 |
A-L-3 | udzał w konsultacjach i zaliczeniu formy zajęć | 4 |
24 | ||
wykłady | ||
A-W-1 | Udział w wykładach | 30 |
A-W-2 | Przygotowanie do egzaminu | 25 |
A-W-3 | Udział w egzaminie | 2 |
A-W-4 | Udział w konsultacjach | 2 |
59 |
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_D14/01_W01 ma wiedzę w zakresie tworzenia algorytmów równoległych i rozproszonych | I_2A_W01, I_2A_W04 | T2A_W01, T2A_W04, T2A_W07 | C-2, C-1 | T-W-8, T-W-9, T-W-10, T-W-11, T-W-13, T-W-14, T-W-3, T-W-6, T-W-1, T-W-2, T-W-4, T-W-7, T-W-12, T-W-5, T-L-4, T-L-5, T-L-1, T-L-2, T-L-3, T-L-6, T-L-7 | M-1 | S-2 |
I_2A_D14/01_W02 zna metodykę tworzenia aplikacji równoległych i rozproszonych oraz odpowiednie API i biblioteki | I_2A_W04 | T2A_W04, T2A_W07 | C-2, C-1 | T-W-8, T-W-9, T-W-10, T-W-11, T-W-13, T-W-14, T-W-3, T-W-6, T-W-1, T-W-2, T-W-4, T-W-7, T-W-12, T-W-5, T-L-4, T-L-5, T-L-1, T-L-2, T-L-3, T-L-6, T-L-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 | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|
I_2A_D14/01_U01 potrafi rozwiązywać złożone problemy w oparciu o tworzenie aplikacji równoległych i rozproszonych | I_2A_U11, I_2A_U07, I_2A_U12 | T2A_U07, T2A_U09, T2A_U12, T2A_U14, T2A_U15, T2A_U17, T2A_U18, T2A_U19 | C-2 | T-W-8, T-W-9, T-W-10, T-W-11, T-W-13, T-W-14, T-W-3, T-W-6, T-W-1, T-W-2, T-W-4, T-W-7, T-W-12, T-W-5, T-L-4, T-L-5, T-L-1, T-L-2, T-L-3, T-L-6, T-L-7 | M-2 | S-1 |
I_2A_D14/01_U02 Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego | I_2A_U03 | T2A_U02, T2A_U03 | C-2 | T-W-8, T-W-9, T-W-10, T-W-11, T-W-13, T-W-14, T-W-3, T-W-6, T-W-1, T-W-2, T-W-4, T-W-7, T-W-12, T-W-5, T-L-4, T-L-5, T-L-1, T-L-2, T-L-3, T-L-6, T-L-7 | M-2 | S-1 |
I_2A_D14/01_U03 potrafi posługiwać się literaturą i dokumentacją techniczną do tworzenia aplikacji równoległych i rozproszonych | I_2A_U02 | T2A_U01, T2A_U03, T2A_U04, T2A_U07, T2A_U10 | C-2 | — | 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 | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|
I_2A_D14/01_K01 świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania równoległego i rozproszonego | I_2A_K02 | T2A_K01, T2A_K07 | C-2 | T-W-8, T-W-9, T-W-10, T-W-11, T-W-13, T-W-14, T-W-3, T-W-6, T-W-1, T-W-2, T-W-4, T-W-7, T-W-12, T-W-5, T-L-4, T-L-5, T-L-1, T-L-2, T-L-3, T-L-6, T-L-7 | M-2 | S-1 |
I_2A_D14/01_K02 ma świadomość współodpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia oprogramowania równoległego i rozproszonego | I_2A_K03, I_2A_K05 | T2A_K02, T2A_K03, T2A_K04, T2A_K07 | C-2 | T-W-8, T-W-9, T-W-10, T-W-11, T-W-13, T-W-14, T-W-3, T-W-6, T-W-1, T-W-2, T-W-4, T-W-7, T-W-12, T-W-5, T-L-4, T-L-5, T-L-1, T-L-2, T-L-3, T-L-6, T-L-7 | M-2 | S-1 |
Kryterium oceny - wiedza
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_2A_D14/01_W01 ma wiedzę w zakresie tworzenia algorytmów równoległych i rozproszonych | 2,0 | nie zna podstawowych algorytmów projektowania algorytmów równoległych i rozproszonych |
3,0 | zna podstawowe algorytmy projektowania algorytmów równoległych i rozproszonych | |
3,5 | zna podstawowe algorytmy projektowania algorytmów równoległych i rozproszonych oraz wie jak zostasowąc je do zrównoleglenia prostych algorytmów rónoległych | |
4,0 | zna szczegółowo podstawowe algorytmy projektowania algorytmów równoległych i rozproszonych oraz wie jak zostasowąc je do zrównoleglenia prostych algorytmów rónoległych | |
4,5 | zna szczegółowo podstawowe algorytmy projektowania algorytmów równoległych i rozproszonych oraz wie jak zostasowąc je do zrównoleglenia zaawansowanych algorytmów rónoległych | |
5,0 | zna szczegółowo podstawowe algorytmy projektowania algorytmów równoległych i rozproszonych oraz wie jak zostasowąc je do zrównoleglenia zaawansowanych algorytmów rónoległych oraz potrafi udowodnić i uzasadnić swoją wypowiedż | |
I_2A_D14/01_W02 zna metodykę tworzenia aplikacji równoległych i rozproszonych oraz odpowiednie API i biblioteki | 2,0 | nie zna metodyki oraz API i bibliotek do tworzenia aplikacji równoległych i rozproszonych |
3,0 | zna metodykę oraz API i biblioteki do tworzenia aplikacji równoległych i rozproszonych | |
3,5 | ma wiedzę o API i bibliotekach do tworzenia aplikacji równoległych i wie jak zostasować je do tworzenia prostych aplikacji | |
4,0 | ma szczegółową wiedzę o API i bibliotekach do tworzenia aplikacji równoległych i rozproszonych 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 rozproszonych 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 rozproszonych i wie jak zostasować je do tworzenia zaawansowanych aplikacji oraz potrafi udowodnić i uzasadnić odpowiedź |
Kryterium oceny - umiejętności
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_2A_D14/01_U01 potrafi rozwiązywać złożone problemy w oparciu o tworzenie aplikacji równoległych i rozproszonych | 2,0 | nie spełnia kryteriów określonych dla oceny 3 |
3,0 | potrafi skompilować program z openmp z pragmami parallel 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 ocenić skalowalność i efektywność programu | |
I_2A_D14/01_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 | |
3,5 | wymagania na ocenę 3 - dodatkowo: - aktywnie uczestniczy w tworzeniu programu | |
4,0 | wymagania na ocenę 3,5 - dodatkowo: - potrafi wykonać badania | |
4,5 | wymagania na ocenę 4 - dodatkowo: - potrafi sporządzić tabele i wykresy dla przyspieszenia oraz efektywności | |
5,0 | wymagania na ocenę 4 - dodatkowo: - wyciaga poprawne wnioski z uzyskanych wynikow | |
I_2A_D14/01_U03 potrafi posługiwać się literaturą i dokumentacją techniczną do tworzenia aplikacji równoległych i rozproszonych | 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 |
Kryterium oceny - inne kompetencje społeczne i personalne
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_2A_D14/01_K01 świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania równoległego i rozproszonego | 2,0 | nie potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych i rozproszonych |
3,0 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych i rozproszonych 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 i rozproszonych 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 i rozproszonych 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 i rozproszonych 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 i rozproszonych oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 5,0 | |
I_2A_D14/01_K02 ma świadomość współodpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia oprogramowania równoległego i rozproszonego | 2,0 | Nie potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych i rozproszonych |
3,0 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych i rozproszonych oraz zrealizował swoją część zadania z oceną 3,0 | |
3,5 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych i rozproszonych oraz zrealizował swoją część zadania z oceną 3,5 | |
4,0 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych i rozproszonych oraz zrealizował swoją część zadania z oceną 4,0 | |
4,5 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych i rozproszonych oraz zrealizował swoją część zadania z oceną 4,5 | |
5,0 | Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących wytwarzania aplikacji równoległych i rozproszonych 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