Wydział Informatyki - Informatyka (S2)
Sylabus przedmiotu Automatyczna optymalizacja oprogramowania:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | drugiego stopnia |
Tytuł zawodowy absolwenta | magister inżynier | ||
Obszary studiów | charakterystyki PRK, kompetencje inżynierskie PRK | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Automatyczna optymalizacja oprogramowania | ||
Specjalność | Projektowanie 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> | ||
ECTS (planowane) | 3,0 | ECTS (formy) | 3,0 |
Forma zaliczenia | zaliczenie | 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 |
---|---|---|
laboratoria | ||
T-L-1 | Kalkulator ISCC, podstawowe operatory na zbiorach i relacjach | 2 |
T-L-2 | Znajdowanie zależności z wykorzystaniem PET i kalkulatora ISCC; generowanie kodu; implementacja postprocesora | 2 |
T-L-3 | Zastosowanie szeregowania afinicznego do znalezienia równoległości pozbawionej synchronizacji | 2 |
T-L-4 | Zastosowanie szeregowania afinicznego do znalezienia partycjonowania czasu (równoległości z synchronizacją) | 2 |
T-L-5 | Zastosowanie szeregowania afinicznego do implementacji techniki blokowania pętli | 2 |
T-L-6 | Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji | 2 |
T-L-7 | Zastosowanie tranzytywnego domknięcia do partycjonowania czasu | 2 |
T-L-8 | Zastosowanie tranzytywnego domknięcia do implementacji techniki blokowania pętli | 2 |
T-L-9 | Znalezienie relacji opisującej zależności pomiędzy kafelkami kodu zblokowanego i jej zastosowanie do wygenerowania kodu równoległego na poziomie kafelków | 2 |
T-L-10 | Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas | 2 |
T-L-11 | Implementacja blokowania pętli w oparciu o kafelkowanie czas-przestrzeń | 2 |
T-L-12 | Znalezienie transformacji afinicznych za pomocą aproksymacji zalezżnośći | 4 |
T-L-13 | Kompilatory PLUTO i TRACO | 4 |
30 | ||
wykłady | ||
T-W-1 | Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory, rola transformacji afinicznych | 3 |
T-W-2 | Mierniki wydajności i jakości kodu równoległego | 2 |
T-W-3 | Podstawowe pojęcia związane z automatyczną optymalizacją kodu | 2 |
T-W-4 | Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu), znalezienie zależności | 2 |
T-W-5 | Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych | 2 |
T-W-6 | Tranzytywne domkniecie grafu zależności, algorytmy jego obliczenia dla grafów sparametryzowanych | 1 |
T-W-7 | Podstawowe transformacje optymalizacji kodu, zastosowanie transformacji afinicznych do optymalizacji kodu, stan wiedzy, wady i zalety, problemy do rozwiązania | 2 |
T-W-8 | Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania | 2 |
T-W-9 | Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji | 2 |
T-W-10 | Zastosowanie transformacji afinicznych do partycjonowania czasu oraz implementacji techniki blokowania (tiling) | 2 |
T-W-11 | Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji | 2 |
T-W-12 | Zastosowanie tranzytywnego domknięcia do partycjonowania czasu | 2 |
T-W-13 | Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia | 2 |
T-W-14 | Blokowanie pętli w oparciu o kafelkowanie przestrzeń-czas (space-time tiling) oraz czas-przestrzeń (time-space) | 2 |
T-W-15 | Znalezienie transformacji afinicznych w oparciu o aproksymację zależności | 2 |
30 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | udział w zajęciach laboratoryjnych | 30 |
A-L-2 | opracowanie sprawozdań | 8 |
38 | ||
wykłady | ||
A-W-1 | uczestnictwo w wykładach | 30 |
A-W-2 | Przygotowanie do zaliczenia | 8 |
38 |
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 uczenia się - wiedza
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_2A_D02.09_W01 Ma wiedzę w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych | I_2A_W02 | — | — | C-1 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8, T-W-9, T-W-10, T-W-11, T-W-12, T-W-13, T-W-14, T-W-15 | M-1, M-2 | S-2 |
Zamierzone efekty uczenia się - umiejętności
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_2A_D02.09_U01 Potrafi rozwiązywać złożone problemy w oparciu o automatyczne tworzenie aplikacji równoległych i rozproszonych | I_2A_U01 | — | — | C-2 | T-L-1, T-L-2, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7, T-L-8, T-L-9, T-L-10, T-L-11, T-L-12, T-L-13 | M-2 | S-1 |
Zamierzone efekty uczenia się - inne kompetencje społeczne i personalne
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_2A_D02.09_K01 Ma świadomość współodpowiedzialności za wspólnie realizowane zadania dotyczące zastosowania kompilatorów optymalizujących do automatycznego zrównoleglania aplikacji równoległych | I_2A_K01, I_2A_K04 | — | — | C-2 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8, T-W-9, T-W-10, T-W-11, T-W-12, T-W-13, T-W-14, T-W-15, T-L-1, T-L-2, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7, T-L-8, T-L-9, T-L-10, T-L-11, T-L-12, T-L-13 | M-2 | S-1 |
Kryterium oceny - wiedza
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_2A_D02.09_W01 Ma wiedzę w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych | 2,0 | |
3,0 | podstawowa wiedza w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych | |
3,5 | ||
4,0 | ||
4,5 | ||
5,0 |
Kryterium oceny - umiejętności
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_2A_D02.09_U01 Potrafi rozwiązywać złożone problemy w oparciu o automatyczne tworzenie aplikacji równoległych i rozproszonych | 2,0 | |
3,0 | Student potrafi samodzielnie napisać skrypt ISCC pozwalający na wygenerowanie drobno- i grubo-ziarnistego kodu | |
3,5 | ||
4,0 | ||
4,5 | ||
5,0 |
Kryterium oceny - inne kompetencje społeczne i personalne
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_2A_D02.09_K01 Ma świadomość współodpowiedzialności za wspólnie realizowane zadania dotyczące zastosowania kompilatorów optymalizujących do automatycznego zrównoleglania aplikacji równoległych | 2,0 | |
3,0 | Student potafi napisać część większego skryptu realizowanego przez zespół | |
3,5 | ||
4,0 | ||
4,5 | ||
5,0 |
Literatura podstawowa
- Kompilatory optymalizujące 2 Alfred V. Aho, Monica S. Lam, Ravi Sethi, Kompilatory optymalizujące 2 Alfred V. Aho, MoniCompilers: 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, Szcecin, 2011