Wydział Informatyki - Informatyka (N2)
Sylabus przedmiotu Automatyczna optymalizacja oprogramowania:
Informacje podstawowe
| Kierunek studiów | Informatyka | ||
|---|---|---|---|
| Forma studiów | studia niestacjonarne | 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 | |||
| 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 | Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas | 2 |
| T-L-10 | Kompilator Pluto | 2 |
| 20 | ||
| wykłady | ||
| T-W-1 | Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory. Mierniki wydajności i jakości kodu równoległego. | 2 |
| T-W-2 | Podstawowe pojęcia związane z automatyczną optymalizacją kodu, 2 godz. Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu) | 2 |
| T-W-3 | Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych | 2 |
| T-W-4 | Tranzytywne domkniecie grafu zależności, algorytmy jego obliczenia dla grafów sparametryzowanych. Podstawowe transformacje optymalizacji kodu, zastosowanie transformacji afinicznych do optymalizacji kodu, stan wiedzy, wady i zalety, problemy do rozwiązania. | 2 |
| T-W-5 | Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania | 2 |
| T-W-6 | Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji | 2 |
| T-W-7 | Zastosowanie transformacji afinicznych do partycjonowania czasu oraz implementacji techniki blokowania (tiling) | 2 |
| T-W-8 | Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji. | 2 |
| T-W-9 | Zastosowanie tranzytywnego domknięcia do partycjonowania czasu. Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia | 2 |
| T-W-10 | Blokowanie pętli w oparciu o kafelkowanie przestrzeń-czas. Znalezienie transformacji afinicznych za pomocą aproksymacji zależności. | 2 |
| 20 | ||
Obciążenie pracą studenta - formy aktywności
| KOD | Forma aktywności | Godziny |
|---|---|---|
| laboratoria | ||
| A-L-1 | Uczestnictwo w zajęciach | 20 |
| A-L-2 | Przygotowanie sprawozdań | 18 |
| 38 | ||
| wykłady | ||
| A-W-1 | Uczestnictwo w wykładach | 20 |
| A-W-2 | Przygotowanie do zaliczenia | 15 |
| A-W-3 | Konsultacje | 2 |
| 37 | ||
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 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-8, T-W-7, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-10, T-W-9 | M-1 | 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-1 | 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-10, T-L-9 | 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-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-10, T-L-9, T-W-1, T-W-8, T-W-7, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-10, T-W-9 | 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
- 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