Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S2)
specjalność: Inteligencja obliczeniowa

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

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 postprocesora2
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ętli2
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ętli2
T-L-9Znalezienie relacji opisującej zależności pomiędzy kafelkami kodu zblokowanego i jej zastosowanie do wygenerowania kodu równoległego na poziomie kafelków2
T-L-10Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas2
T-L-11Implementacja techniki tworzenia kafelków zapewniająca acykliczność grafu zależności na poziomie kafelków2
T-L-12Kompilator PLUTO4
T-L-13Kompilator TRACO4
30
wykłady
T-W-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory, rola transformacji afinicznych3
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-4Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu), znalezienie zależności2
T-W-5Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych2
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-15Techniki tworzenia kafelków zapewniające acykliczność grafu zależności na poziomie kafelków2
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 zaliczenia8
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-14, T-W-3, T-W-6, T-W-4, T-W-8, T-W-10, T-W-11, T-W-7, T-W-9, T-W-2, T-W-1, T-W-12, T-W-13, T-W-15, T-W-5M-2, M-1S-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-7, T-L-8, T-L-5, T-L-6, T-L-10, T-L-11, T-L-4, T-L-3, T-L-2, T-L-1, T-L-9, T-L-12, T-L-13M-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-W-2, T-W-9, T-W-11, T-W-8, T-W-6, T-W-7, T-W-10, T-W-4, T-W-12, T-W-5, T-W-14, T-W-13, T-W-3, T-W-1, T-W-15, T-L-8, T-L-11, T-L-10, T-L-3, T-L-13, T-L-2, T-L-1, T-L-4, T-L-5, T-L-7, T-L-6, T-L-9, T-L-12M-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 postprocesora2
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ętli2
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ętli2
T-L-9Znalezienie relacji opisującej zależności pomiędzy kafelkami kodu zblokowanego i jej zastosowanie do wygenerowania kodu równoległego na poziomie kafelków2
T-L-10Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas2
T-L-11Implementacja techniki tworzenia kafelków zapewniająca acykliczność grafu zależności na poziomie kafelków2
T-L-12Kompilator PLUTO4
T-L-13Kompilator TRACO4
30

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory, rola transformacji afinicznych3
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-4Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu), znalezienie zależności2
T-W-5Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych2
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-15Techniki tworzenia kafelków zapewniające acykliczność grafu zależności na poziomie kafelków2
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 zaliczenia8
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-14Blokowanie pętli w oparciu o kafelkowanie przestrzeń-czas (space-time tiling),
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-4Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu), znalezienie zależności
T-W-8Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania
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-7Podstawowe transformacje optymalizacji kodu, zastosowanie transformacji afinicznych do optymalizacji kodu, stan wiedzy, wady i zalety, problemy do rozwiązania
T-W-9Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji
T-W-2Mierniki wydajności i jakości kodu równoległego
T-W-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory, rola transformacji afinicznych
T-W-12Zastosowanie tranzytywnego domknięcia do partycjonowania czasu
T-W-13Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia
T-W-15Techniki tworzenia kafelków zapewniające acykliczność grafu zależności na poziomie kafelków
T-W-5Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych
Metody nauczaniaM-2Ćwiczenia laboratoryjne
M-1Wykad informacyjny/konwersatoryjny
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-7Zastosowanie tranzytywnego domknięcia do partycjonowania czasu
T-L-8Zastosowanie tranzytywnego domknięcia do implementacji techniki blokowania pętli
T-L-5Zastosowanie szeregowania afinicznego do implementacji techniki blokowania pętli
T-L-6Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji
T-L-10Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas
T-L-11Implementacja techniki tworzenia kafelków zapewniająca acykliczność grafu zależności na poziomie kafelków
T-L-4Zastosowanie szeregowania afinicznego do znalezienia partycjonowania czasu (równoległości z synchronizacją)
T-L-3Zastosowanie szeregowania afinicznego do znalezienia równoległości pozbawionej synchronizacji
T-L-2Znajdowanie zależności z wykorzystaniem PET i kalkulatora ISCC; generowanie kodu; implementacja postprocesora
T-L-1Kalkulator ISCC, podstawowe operatory na zbiorach i relacjach
T-L-9Znalezienie relacji opisującej zależności pomiędzy kafelkami kodu zblokowanego i jej zastosowanie do wygenerowania kodu równoległego na poziomie kafelków
T-L-12Kompilator PLUTO
T-L-13Kompilator TRACO
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-W-2Mierniki wydajności i jakości kodu równoległego
T-W-9Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji
T-W-11Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji
T-W-8Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania
T-W-6Tranzytywne domkniecie grafu zależności, algorytmy jego obliczenia dla grafów sparametryzowanych
T-W-7Podstawowe transformacje optymalizacji kodu, zastosowanie transformacji afinicznych do optymalizacji kodu, stan wiedzy, wady i zalety, problemy do rozwiązania
T-W-10Zastosowanie transformacji afinicznych do partycjonowania czasu oraz implementacji techniki blokowania (tiling)
T-W-4Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu), znalezienie zależności
T-W-12Zastosowanie tranzytywnego domknięcia do partycjonowania czasu
T-W-5Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych
T-W-14Blokowanie pętli w oparciu o kafelkowanie przestrzeń-czas (space-time tiling),
T-W-13Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia
T-W-3Podstawowe pojęcia związane z automatyczną optymalizacją kodu
T-W-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory, rola transformacji afinicznych
T-W-15Techniki tworzenia kafelków zapewniające acykliczność grafu zależności na poziomie kafelków
T-L-8Zastosowanie tranzytywnego domknięcia do implementacji techniki blokowania pętli
T-L-11Implementacja techniki tworzenia kafelków zapewniająca acykliczność grafu zależności na poziomie kafelków
T-L-10Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas
T-L-3Zastosowanie szeregowania afinicznego do znalezienia równoległości pozbawionej synchronizacji
T-L-13Kompilator TRACO
T-L-2Znajdowanie zależności z wykorzystaniem PET i kalkulatora ISCC; generowanie kodu; implementacja postprocesora
T-L-1Kalkulator ISCC, podstawowe operatory na zbiorach i relacjach
T-L-4Zastosowanie szeregowania afinicznego do znalezienia partycjonowania czasu (równoległości z synchronizacją)
T-L-5Zastosowanie szeregowania afinicznego do implementacji techniki blokowania pętli
T-L-7Zastosowanie tranzytywnego domknięcia do partycjonowania czasu
T-L-6Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji
T-L-9Znalezienie relacji opisującej zależności pomiędzy kafelkami kodu zblokowanego i jej zastosowanie do wygenerowania kodu równoległego na poziomie kafelków
T-L-12Kompilator PLUTO
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