Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N2)
specjalność: Projektowanie oprogramowania

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

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL3 20 1,50,50zaliczenie
wykładyW3 20 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-9Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas2
T-L-10Kompilator Pluto2
20
wykłady
T-W-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory. Mierniki wydajności i jakości kodu równoległego.2
T-W-2Podstawowe 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-3Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych2
T-W-4Tranzytywne 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-5Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania2
T-W-6Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji2
T-W-7Zastosowanie transformacji afinicznych do partycjonowania czasu oraz implementacji techniki blokowania (tiling)2
T-W-8Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji.2
T-W-9Zastosowanie tranzytywnego domknięcia do partycjonowania czasu. Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia2
T-W-10Blokowanie 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

KODForma aktywnościGodziny
laboratoria
A-L-1Uczestnictwo w zajęciach20
A-L-2Przygotowanie sprawozdań18
38
wykłady
A-W-1Uczestnictwo w wykładach20
A-W-2Przygotowanie do zaliczenia15
A-W-3Konsultacje2
37

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 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ó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-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-9M-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-1T-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-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-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-9M-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. Alfred V. Aho, Monica S. Lam, Ravi Sethi, Compilers: 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, Szczecin, 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-9Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas2
T-L-10Kompilator Pluto2
20

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory. Mierniki wydajności i jakości kodu równoległego.2
T-W-2Podstawowe 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-3Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych2
T-W-4Tranzytywne 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-5Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania2
T-W-6Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji2
T-W-7Zastosowanie transformacji afinicznych do partycjonowania czasu oraz implementacji techniki blokowania (tiling)2
T-W-8Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji.2
T-W-9Zastosowanie tranzytywnego domknięcia do partycjonowania czasu. Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia2
T-W-10Blokowanie pętli w oparciu o kafelkowanie przestrzeń-czas. Znalezienie transformacji afinicznych za pomocą aproksymacji zależności.2
20

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Uczestnictwo w zajęciach20
A-L-2Przygotowanie sprawozdań18
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ładach20
A-W-2Przygotowanie do zaliczenia15
A-W-3Konsultacje2
37
(*) 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-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory. Mierniki wydajności i jakości kodu równoległego.
T-W-8Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji.
T-W-7Zastosowanie transformacji afinicznych do partycjonowania czasu oraz implementacji techniki blokowania (tiling)
T-W-2Podstawowe pojęcia związane z automatyczną optymalizacją kodu, 2 godz. Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu)
T-W-3Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych
T-W-4Tranzytywne 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.
T-W-5Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania
T-W-6Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji
T-W-10Blokowanie pętli w oparciu o kafelkowanie przestrzeń-czas. Znalezienie transformacji afinicznych za pomocą aproksymacji zależności.
T-W-9Zastosowanie tranzytywnego domknięcia do partycjonowania czasu. Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia
Metody nauczaniaM-1Wykad informacyjny/konwersatoryjny
Sposób ocenyS-2Ocena podsumowują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-1Przyswojenie wiedzy i umiejętności niezbędnych do automatycznego zrównoleglania aplikacji równoległych
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-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-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-7Zastosowanie tranzytywnego domknięcia do partycjonowania czasu
T-L-8Zastosowanie tranzytywnego domknięcia do implementacji techniki blokowania pętli
T-L-10Kompilator Pluto
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-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-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-7Zastosowanie tranzytywnego domknięcia do partycjonowania czasu
T-L-8Zastosowanie tranzytywnego domknięcia do implementacji techniki blokowania pętli
T-L-10Kompilator Pluto
T-L-9Implementacja blokowania pętli w oparciu o kafelkowanie przestrzeń-czas
T-W-1Organizacja kompilatora optymalizującego, jego zadania, aktualne kompilatory. Mierniki wydajności i jakości kodu równoległego.
T-W-8Zastosowania tranzytywnego domknięcia do znalezienia równoległości pozbawionej synchronizacji.
T-W-7Zastosowanie transformacji afinicznych do partycjonowania czasu oraz implementacji techniki blokowania (tiling)
T-W-2Podstawowe pojęcia związane z automatyczną optymalizacją kodu, 2 godz. Narzędzia i biblioteki automatycznego wytwarzania oprogramowania (biblioteka ISL, PET, ISCC, OMEGA , generatory kodu)
T-W-3Podstawowe operatory na zbiorach i relacjach w liczbach całkowitych
T-W-4Tranzytywne 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.
T-W-5Transformacja blokowania pętli (tiling), stan wiedzy, zalety i wady, problemy do rozwiązania
T-W-6Zastosowanie transformacji afinicznych do znalezienia równoległości pozbawionej synchronizacji
T-W-10Blokowanie pętli w oparciu o kafelkowanie przestrzeń-czas. Znalezienie transformacji afinicznych za pomocą aproksymacji zależności.
T-W-9Zastosowanie tranzytywnego domknięcia do partycjonowania czasu. Technika korekcji kafelków (tiles) za pomocą tranzytywnego domknięcia
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