Wydział Informatyki - Informatyka (N2)
Sylabus przedmiotu Kompilatory optymalizujące:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia niestacjonarne | Poziom | drugiego stopnia |
Tytuł zawodowy absolwenta | magister inżynier | ||
Obszary studiów | nauk technicznych | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Kompilatory optymalizujące | ||
Specjalność | inżynieria oprogramowania | ||
Jednostka prowadząca | Katedra Inżynierii Oprogramowania | ||
Nauczyciel odpowiedzialny | Piotr Błaszyński <Piotr.Blaszynski@zut.edu.pl> | ||
Inni nauczyciele | Piotr Błaszyński <Piotr.Blaszynski@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++, Programowanie równoległe i rozproszone, metody kompilacji, Analiza matematyczna, Algebra liniowa, Architektura komputerów |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Przyswojenie wiedzy i umiejętności niezbędnych do automatycznego zrównoleglania aplikacji równoległych |
C-2 | Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie wytwarzania oprogramowania |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
projekty | ||
T-P-1 | Zrealizowanie projektu dotyczącego automatycznego zownoleglenia programu sekwencyjnego w oparciu o narzebdzie PLUTO oraz narzedzie katedry KIO | 8 |
8 | ||
wykłady | ||
T-W-1 | Pojęcie kompilatora optymalizującego. Rodzaje optymalizacji. Pojecie zależności oraz sposoby ich reprezentowania. Metody optymalizacji: transformacje liniowe i afiniczne. | 1 |
T-W-2 | Zwiększenie lokalności programu na przykładzie mnożenia macierzy, przestrzeń iteracji, zapis matematyczny, wielościan wypukły. | 1 |
T-W-3 | kolejność wykonywania iteracji, pojęcie projekcji, rozwiązywanie układów nierówności w liczbach całkowitych, algorytm Fouriera_Motzkina, znalezienie granic pętli przetransformowanej | 1 |
T-W-4 | Ponowne użycie danych, rodzaje ponownego użycia danych, przestrzeń zerowa macierzy,warunki ponownego użycia danych | 1 |
T-W-5 | równoległość pozbawiona synchronizacji, ograniczenia podziału przestrzeni zawierającej obliczenia bez synchronizacji, algorytm znajdowania równoległości pozbawionej synchroni\zacji | 1 |
T-W-6 | transformacje afiniczne, podstawowe transformacje afinicane, równoległość drobno-ziarnista, algorytmy znajdowania równoległości drobno-ziarnistej | 1 |
T-W-7 | przetwarzanie potokowe, transformacje afiniczne pozwalające na przetwarzanie potokowe, algorytm znajdowania transformacji afinicznych pozwalających na przetwarzanie potokowe | 1 |
T-W-8 | algorytmy zwiekszenia lokalności aplikacji sekwencyjnych i rónoległych | 1 |
8 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
projekty | ||
A-P-1 | udział w realizacji projektu | 8 |
A-P-2 | przygotowanie do realizacj projektu | 38 |
A-P-3 | konsultacje | 2 |
48 | ||
wykłady | ||
A-W-1 | Udział w wykładach | 8 |
A-W-2 | Przygotowanie do egzaminu | 25 |
33 |
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/2_W01 ma wiedzę w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych | I_2A_W06, I_2A_W04, I_2A_W01, I_2A_W09 | T2A_W01, T2A_W03, T2A_W04, T2A_W07 | C-1 | T-W-4, T-W-2, T-W-5, T-W-8, T-W-6, T-W-1, T-W-3, T-W-7, T-P-1 | M-1 | S-2 |
I_2A_D14/2_W02 Ma rozszerzoną wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglania aplikacji sekwencyjnych | I_2A_W10 | T2A_W02, T2A_W05 | C-1 | T-W-4, T-W-2, T-W-5, T-W-8, T-W-6, T-W-1, T-W-3, T-W-7, T-P-1 | 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/2_U01 potrafi rozwiązywać złożone problemy w oparciu o automatyczne tworzenie aplikacji równoległych i rozproszonych | I_2A_U04, I_2A_U12, I_2A_U08 | T2A_U07, T2A_U09, T2A_U12, T2A_U14, T2A_U16, T2A_U17, T2A_U18 | C-1 | T-W-4, T-W-2, T-W-5, T-W-8, T-W-6, T-W-1, T-W-3, T-W-7, T-P-1 | M-2 | S-1 |
I_2A_D14/2_U02 Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego | I_2A_U03, I_2A_U16, I_2A_U15 | T2A_U02, T2A_U03, T2A_U05, T2A_U13 | C-1 | T-W-4, T-W-2, T-W-5, T-W-8, T-W-6, T-W-1, T-W-3, T-W-7, T-P-1 | M-2 | S-1 |
I_2A_D14/2_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-1 | T-W-4, T-W-2, T-W-5, T-W-8, T-W-6, T-W-1, T-W-3, T-W-7, T-P-1 | 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/2_K01 świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania równoległego i rozproszonego | I_2A_K02, I_2A_K01 | T2A_K01, T2A_K04, T2A_K05, T2A_K06, T2A_K07 | C-2, C-1 | T-W-4, T-W-2, T-W-5, T-W-8, T-W-6, T-W-1, T-W-3, T-W-7, T-P-1 | M-2 | S-1 |
Kryterium oceny - wiedza
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_2A_D14/2_W01 ma wiedzę w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych | 2,0 | brak wiedzy w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych |
3,0 | ma podstawowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych | |
3,5 | ma podstawowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych | |
4,0 | ma szczegółowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych | |
4,5 | ma szczegółowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli programowych | |
5,0 | ma szczegółowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli programowych oraz potrafi udowodnic swoje odpowiedzi | |
I_2A_D14/2_W02 Ma rozszerzoną wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglania aplikacji sekwencyjnych | 2,0 | brak wiedzy dotyczącej trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych |
3,0 | ma podstawowa wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych | |
3,5 | ma podstawowa wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych | |
4,0 | ma szczegółową wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych | |
4,5 | ma szczegółową wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli | |
5,0 | ma szczegółową wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli programowych oraz potrafi udowodnic swoje odpowiedzi |
Kryterium oceny - umiejętności
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_2A_D14/2_U01 potrafi rozwiązywać złożone problemy w oparciu o automatyczne tworzenie aplikacji równoległych i rozproszonych | 2,0 | nie potrafi zastososować podstawowych metod automatycznego tworzenie aplikacji równoległych i rozproszonych |
3,0 | potrafi rozwiązywać podstawowe problemy w oparciu o zastosowanie narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych | |
3,5 | potrafi rozwiązywać złożone problemy w oparciu o zastosowanie narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych | |
4,0 | potrafi rozwiązywać złożone problemy w oparciu o zastosowanie narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych i analizę porównawczą wyników | |
4,5 | potrafi rozwiązywać złożone problemy w oparciu o zastosowanie własnych rozwiązań i narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych i analizę porównawczą wyników | |
5,0 | potrafi rozwiązywać złożone problemy w oparciu o zastosowanie własnych rozwiązań i alternatywnych narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych i syntezę rozwiązań z wielu źródeł | |
I_2A_D14/2_U02 Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego | 2,0 | nie rozumie podstawowych zagadnień i nie jest w stanie uczestniczyć w zespołowych pracach projektowych |
3,0 | rozumie samodzielnie wybrane podstawowe zagadnienia i potrafi uczestniczyć w zespołowych pracach projektowych | |
3,5 | rozumie samodzielnie wszystkie podstawowe zagadnienia i potrafi aktywnie uczestniczyć w zespołowych pracach projektowych | |
4,0 | rozumie samodzielnie wszystkie podstawowe zagadnienia i potrafi je stosować w trakcie aktywnego uczestnictwa w zespołowych pracach projektowych | |
4,5 | rozumie samodzielnie wszystkie zagadnienia i potrafi analizować proponowane rozwiązania i dodawać istotne propozycje w trakcie aktywnego uczestnictwa w zespołowych pracach projektowych | |
5,0 | rozumie samodzielnie wszystkie zagadnienia i potrafi ocenić ich przydatność oraz wyjaśnić innym studentom zagadnienia dotyczące budowy narzędzi umożliwiających automatyczne zrównoleglanie | |
I_2A_D14/2_U03 potrafi posługiwać się literaturą i dokumentacją techniczną do tworzenia aplikacji równoległych i rozproszonych | 2,0 | nie potrafi zastosować dostępnej dokumentacji technicznej i literatury do tworzenia aplikacji równoległych i rozproszonych |
3,0 | potrafi przy pomocy prowadzącego i na podstawie dostępnej dokumentacji zaimplementować proste aplikacje równoległe i rozproszone | |
3,5 | potrafi samodzielnie stosować udostępnioną dokumentacje techniczną do implementacji złożonych aplikacji równoległych i rozproszonych | |
4,0 | potrafi analizować dostępną dokumentacje techniczną i literaturę jak również poszukiwać skutecznie dodatkowych informacji | |
4,5 | potrafi wszystko na ocenę 4,0, proponuje również nowe rozwiązania (np.sposób zapisu konstrukcji języka C++ w sposób zrozumiały dla narzędzia pluto) udokumentowanych rozwiązań | |
5,0 | potrafi wszystko na ocenę 4,5, zapoznał się z innymi narzędziami do budowy aplikacji równoległych oraz potrafi porównać stosowane na zajęciach narzędzia (pluto, stepson) z innymi dostępnymi (stepson, omega, samodzielne wykorzystanie isla, llvm) |
Kryterium oceny - inne kompetencje społeczne i personalne
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_2A_D14/2_K01 świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania równoległego i rozproszonego | 2,0 | nie rozumie potrzeby dokształcania i dzielenia się wiedza w zakresie automatycznego zrównoleglania aplikacji sekwencyjnych |
3,0 | rozumie potrzebę dokształcania i dzielenia się wiedza w zakresie automatycznego zrównoleglania aplikacji sekwencyjnych | |
3,5 | jest w stanie zaprezentować w pełni zaimplementowane rozwiązanie | |
4,0 | jest w stanie zaprezentować w pełni i przedyskutować z prowadzącym zaimplementowane rozwiązanie | |
4,5 | na bazie kompetencji wymaganych na niższe oceny jest w stanie podzielić się wiedzą w usystematyzowany sposób z grupą | |
5,0 | na bazie kompetencji wymaganych na niższe oceny jest w stanie przygotować i zaprezentować własne propozycje w zakresie programowania równoległego i rozproszonego |
Literatura podstawowa
- R. Allen, K. Kennedy, Optimizing compilers, Morgan Kaufmann Publishers, Burlington, 2004
- Alfred V. Aho, Monica S. Lam, Ravi Sethi, Compilers: Principles, Techniques, and Tools 2nd Edition, Addison Wesley, 2006
- W. Bielecki, M . Pałkowski, Ekstrakcja drobno i gruboziarnistej równoległości w pętlach programowych, ZUT w Szczecinie, Szczecin, 2011