Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S2)
specjalność: Programowanie gier komputerowych

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 Piotr Błaszyński <Piotr.Blaszynski@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

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL3 30 1,50,50zaliczenie
wykładyW3 30 1,50,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Zaliczone przedmioty: Programowanie w językach C, C++, Programowanie równoległe i rozproszone, metody kompilacji, Analiza matematyczna, Algebra liniowa, Architektura komputerów

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Przyswojenie wiedzy i umiejętności niezbędnych do automatycznego zrównoleglania aplikacji równoległych
C-2Ukształ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ęć

KODTreść programowaGodziny
laboratoria
T-L-1Kalkulator ISCC, podstawowe operatory na zbiorach i relacjach2
T-L-2Znajdowanie zależności z wykorzystaniem PET i kalkulatora ISCC; generowanie kodu; implementacja postprocesora4
T-L-3Zastosowanie szeregowania afinicznego do znalezienia równoległości pozbawionej synchronizacji2
T-L-4Zastosowanie szeregowania afinicznego do znalezienia partycjonowania czasu (równoległości z synchronizacją)2
T-L-5Zastosowanie szeregowania afinicznego do implementacji techniki blokowania pętli4
T-L-6Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji2
T-L-7Zastosowanie tranzytywnego domknięcia do partycjonowania czasu2
T-L-8Zastosowanie tranzytywnego domknięcia do implementacji techniki blokowania pętli4
T-L-9Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas4
T-L-10Kompilator PLUTO4
30
wykłady
T-W-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory, rola transformacji afinicznych2
T-W-2Mierniki wydajności i jakości kodu równoległego2
T-W-3Podstawowe pojęcia związane z automatyczną optymalizacją kodu2
T-W-4Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych2
T-W-5Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu), znalezienie zależności3
T-W-6Tranzytywne domkniecie grafu zależności, algorytmy jego obliczenia dla grafów sparametryzowanych1
T-W-7Podstawowe transformacje optymalizacji kodu, zastosowanie transformacji afinicznych do optymalizacji kodu, stan wiedzy, wady i zalety, problemy do rozwiązania2
T-W-8Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania2
T-W-9Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji2
T-W-10Zastosowanie transformacji afinicznych do partycjonowania czasu oraz implementacji techniki blokowania (tiling)2
T-W-11Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji2
T-W-12Zastosowanie tranzytywnego domknięcia do partycjonowania czasu2
T-W-13Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia2
T-W-14Blokowanie pętli w oparciu o kafelkowanie przestrzeń-czas (space-time tiling)2
T-W-15Znalezienie transformacji afinicznych w oparciu o aproksymację zależności2
30

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1Udział w zajęciach laboratoryjnych30
A-L-2Opracowanie sprawozdań8
38
wykłady
A-W-1Uczestnictwo w wykładach30
A-W-2Przygotowanie do zaliczenia6
A-W-3Konsultacje2
38

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykad informacyjny/konwersatoryjny
M-2Ćwiczenia laboratoryjne

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
S-2Ocena 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ówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D02.09_W01
Ma wiedzę w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych
I_2A_W02C-1T-W-3, T-W-6, T-W-2, T-W-7, T-W-8, T-W-9, T-W-10, T-W-11, T-W-12, T-W-13, T-W-15, T-W-1, T-W-4, T-W-5, T-W-14M-1, M-2S-2

Zamierzone efekty uczenia się - umiejętności

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposó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_U01C-2T-L-1, T-L-2, T-L-10, T-L-3, T-L-4, T-L-6, T-L-7, T-L-5, T-L-8, T-L-9M-2S-1

Zamierzone efekty uczenia się - inne kompetencje społeczne i personalne

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposó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_K04C-2T-L-1, T-L-2, T-L-10, T-L-3, T-L-4, T-L-6, T-L-7, T-L-5, T-L-8, T-L-9, T-W-3, T-W-6, T-W-2, T-W-7, T-W-8, T-W-9, T-W-10, T-W-11, T-W-12, T-W-13, T-W-15, T-W-1, T-W-4, T-W-5, T-W-14M-2S-1

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium oceny
I_2A_D02.09_W01
Ma wiedzę w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych
2,0
3,0podstawowa 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ęOcenaKryterium 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,0Student 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ęOcenaKryterium 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,0Student potafi napisać część większego skryptu realizowanego przez zespół
3,5
4,0
4,5
5,0

Literatura podstawowa

  1. 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
  2. W. Bielecki, M . Pałkowski, Ekstrakcja drobno i gruboziarnistej równoległości w pętlach programowych, ZUT w Szczecinie, Szcecin, 2011

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Kalkulator ISCC, podstawowe operatory na zbiorach i relacjach2
T-L-2Znajdowanie zależności z wykorzystaniem PET i kalkulatora ISCC; generowanie kodu; implementacja postprocesora4
T-L-3Zastosowanie szeregowania afinicznego do znalezienia równoległości pozbawionej synchronizacji2
T-L-4Zastosowanie szeregowania afinicznego do znalezienia partycjonowania czasu (równoległości z synchronizacją)2
T-L-5Zastosowanie szeregowania afinicznego do implementacji techniki blokowania pętli4
T-L-6Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji2
T-L-7Zastosowanie tranzytywnego domknięcia do partycjonowania czasu2
T-L-8Zastosowanie tranzytywnego domknięcia do implementacji techniki blokowania pętli4
T-L-9Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas4
T-L-10Kompilator PLUTO4
30

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory, rola transformacji afinicznych2
T-W-2Mierniki wydajności i jakości kodu równoległego2
T-W-3Podstawowe pojęcia związane z automatyczną optymalizacją kodu2
T-W-4Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych2
T-W-5Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu), znalezienie zależności3
T-W-6Tranzytywne domkniecie grafu zależności, algorytmy jego obliczenia dla grafów sparametryzowanych1
T-W-7Podstawowe transformacje optymalizacji kodu, zastosowanie transformacji afinicznych do optymalizacji kodu, stan wiedzy, wady i zalety, problemy do rozwiązania2
T-W-8Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania2
T-W-9Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji2
T-W-10Zastosowanie transformacji afinicznych do partycjonowania czasu oraz implementacji techniki blokowania (tiling)2
T-W-11Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji2
T-W-12Zastosowanie tranzytywnego domknięcia do partycjonowania czasu2
T-W-13Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia2
T-W-14Blokowanie pętli w oparciu o kafelkowanie przestrzeń-czas (space-time tiling)2
T-W-15Znalezienie transformacji afinicznych w oparciu o aproksymację zależności2
30

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Udział w zajęciach laboratoryjnych30
A-L-2Opracowanie sprawozdań8
38
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Uczestnictwo w wykładach30
A-W-2Przygotowanie do zaliczenia6
A-W-3Konsultacje2
38
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.09_W01Ma wiedzę w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_W02Ma wiedzę z zakresu zaawansowanych technik programowania systemów informatycznych w wybranym obszarze zastosowań
Cel przedmiotuC-1Przyswojenie wiedzy i umiejętności niezbędnych do automatycznego zrównoleglania aplikacji równoległych
Treści programoweT-W-3Podstawowe pojęcia związane z automatyczną optymalizacją kodu
T-W-6Tranzytywne domkniecie grafu zależności, algorytmy jego obliczenia dla grafów sparametryzowanych
T-W-2Mierniki wydajności i jakości kodu równoległego
T-W-7Podstawowe transformacje optymalizacji kodu, zastosowanie transformacji afinicznych do optymalizacji kodu, stan wiedzy, wady i zalety, problemy do rozwiązania
T-W-8Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania
T-W-9Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji
T-W-10Zastosowanie transformacji afinicznych do partycjonowania czasu oraz implementacji techniki blokowania (tiling)
T-W-11Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji
T-W-12Zastosowanie tranzytywnego domknięcia do partycjonowania czasu
T-W-13Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia
T-W-15Znalezienie transformacji afinicznych w oparciu o aproksymację zależności
T-W-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory, rola transformacji afinicznych
T-W-4Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych
T-W-5Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu), znalezienie zależności
T-W-14Blokowanie pętli w oparciu o kafelkowanie przestrzeń-czas (space-time tiling)
Metody nauczaniaM-1Wykad informacyjny/konwersatoryjny
M-2Ćwiczenia laboratoryjne
Sposób ocenyS-2Ocena formująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi
Kryteria ocenyOcenaKryterium oceny
2,0
3,0podstawowa wiedza w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych
3,5
4,0
4,5
5,0
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.09_U01Potrafi rozwiązywać złożone problemy w oparciu o automatyczne tworzenie aplikacji równoległych i rozproszonych
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_U01Potrafi prawidłowo zaplanować, przeprowadzić eksperyment badawczy, dokonać analizy i prezentacji uzyskanych wyników
Cel przedmiotuC-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie wytwarzania oprogramowania
Treści programoweT-L-1Kalkulator ISCC, podstawowe operatory na zbiorach i relacjach
T-L-2Znajdowanie zależności z wykorzystaniem PET i kalkulatora ISCC; generowanie kodu; implementacja postprocesora
T-L-10Kompilator PLUTO
T-L-3Zastosowanie szeregowania afinicznego do znalezienia równoległości pozbawionej synchronizacji
T-L-4Zastosowanie szeregowania afinicznego do znalezienia partycjonowania czasu (równoległości z synchronizacją)
T-L-6Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji
T-L-7Zastosowanie tranzytywnego domknięcia do partycjonowania czasu
T-L-5Zastosowanie szeregowania afinicznego do implementacji techniki blokowania pętli
T-L-8Zastosowanie tranzytywnego domknięcia do implementacji techniki blokowania pętli
T-L-9Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Student potrafi samodzielnie napisać skrypt ISCC pozwalający na wygenerowanie drobno- i grubo-ziarnistego kodu
3,5
4,0
4,5
5,0
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.09_K01Ma świadomość współodpowiedzialności za wspólnie realizowane zadania dotyczące zastosowania kompilatorów optymalizujących do automatycznego zrównoleglania aplikacji równoległych
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_K01Jest gotów do krytycznej oceny odbieranych treści i wiedzy własnej
I_2A_K04Potrafi myśleć i działać w sposób kreatywny i przedsiębiorczy
Cel przedmiotuC-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie wytwarzania oprogramowania
Treści programoweT-L-1Kalkulator ISCC, podstawowe operatory na zbiorach i relacjach
T-L-2Znajdowanie zależności z wykorzystaniem PET i kalkulatora ISCC; generowanie kodu; implementacja postprocesora
T-L-10Kompilator PLUTO
T-L-3Zastosowanie szeregowania afinicznego do znalezienia równoległości pozbawionej synchronizacji
T-L-4Zastosowanie szeregowania afinicznego do znalezienia partycjonowania czasu (równoległości z synchronizacją)
T-L-6Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji
T-L-7Zastosowanie tranzytywnego domknięcia do partycjonowania czasu
T-L-5Zastosowanie szeregowania afinicznego do implementacji techniki blokowania pętli
T-L-8Zastosowanie tranzytywnego domknięcia do implementacji techniki blokowania pętli
T-L-9Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas
T-W-3Podstawowe pojęcia związane z automatyczną optymalizacją kodu
T-W-6Tranzytywne domkniecie grafu zależności, algorytmy jego obliczenia dla grafów sparametryzowanych
T-W-2Mierniki wydajności i jakości kodu równoległego
T-W-7Podstawowe transformacje optymalizacji kodu, zastosowanie transformacji afinicznych do optymalizacji kodu, stan wiedzy, wady i zalety, problemy do rozwiązania
T-W-8Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania
T-W-9Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji
T-W-10Zastosowanie transformacji afinicznych do partycjonowania czasu oraz implementacji techniki blokowania (tiling)
T-W-11Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji
T-W-12Zastosowanie tranzytywnego domknięcia do partycjonowania czasu
T-W-13Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia
T-W-15Znalezienie transformacji afinicznych w oparciu o aproksymację zależności
T-W-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory, rola transformacji afinicznych
T-W-4Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych
T-W-5Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu), znalezienie zależności
T-W-14Blokowanie pętli w oparciu o kafelkowanie przestrzeń-czas (space-time tiling)
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Student potafi napisać część większego skryptu realizowanego przez zespół
3,5
4,0
4,5
5,0