Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N2)
specjalność: inżynieria oprogramowania

Sylabus przedmiotu Kompilatory optymalizujące:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne Poziom drugiego stopnia
Tytuł zawodowy absolwenta magister
Obszary studiów nauk technicznych
Profil ogólnoakademicki
Moduł
Przedmiot Kompilatory optymalizujące
Specjalność inżynieria oprogramowania
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Piotr Błaszyński <Piotr.Blaszynski@zut.edu.pl>
Inni nauczyciele Piotr Błaszyński <Piotr.Blaszynski@zut.edu.pl>
ECTS (planowane) 4,0 ECTS (formy) 4,0
Forma zaliczenia egzamin Język polski
Blok obieralny Grupa obieralna

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
projektyP2 10 2,60,44zaliczenie
wykładyW2 10 1,40,56egzamin

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
projekty
T-P-1Zrealizowanie projektu dotyczącego automatycznego zownoleglenia programu sekwencyjnego w oparciu o narzebdzie PLUTO oraz narzedzie katedry KIO15
15
wykłady
T-W-1Pojęcie kompilatora optymalizującego. Rodzaje optymalizacji. Pojecie zależności oraz sposoby ich reprezentowania. Metody optymalizacji: transformacje liniowe i afiniczne.1
T-W-2Zwiększenie lokalności programu na przykładzie mnożenia macierzy, przestrzeń iteracji, zapis matematyczny, wielościan wypukły.1
T-W-3kolejność wykonywania iteracji, pojęcie projekcji, rozwiązywanie układów nierówności w liczbach całkowitych, algorytm Fouriera_Motzkina, znalezienie granic pętli przetransformowanej1
T-W-4Ponowne użycie danych, rodzaje ponownego użycia danych, przestrzeń zerowa macierzy,warunki ponownego użycia danych1
T-W-5równoległość pozbawiona synchronizacji, ograniczenia podziału przestrzeni zawierającej obliczenia bez synchronizacji, algorytm znajdowania równoległości pozbawionej synchroni\zacji2
T-W-6transformacje afiniczne, podstawowe transformacje afinicane, równoległość drobno-ziarnista, algorytmy znajdowania równoległości drobno-ziarnistej2
T-W-7przetwarzanie potokowe, transformacje afiniczne pozwalające na przetwarzanie potokowe, algorytm znajdowania transformacji afinicznych pozwalających na przetwarzanie potokowe1
T-W-8algorytmy zwiekszenia lokalności aplikacji sekwencyjnych i rónoległych1
10

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

KODForma aktywnościGodziny
projekty
A-P-1udział w realizacji projektu15
A-P-2przygotowanie do realizacj projektu15
30
wykłady
A-W-1Udział w wykładach15
A-W-2Przygotowanie do egzaminu15
30

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 kształcenia - wiedza

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D14/2_W01
ma wiedzę w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych
I_2A_W01, I_2A_W04, I_2A_W06, I_2A_W09T2A_W01, T2A_W03, T2A_W04, T2A_W07C-1T-W-1, T-P-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8M-1S-2
I_2A_D14/2_W02
Ma rozszerzoną wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglania aplikacji sekwencyjnych
I_2A_W10T2A_W02, T2A_W05C-1T-W-1, T-P-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8M-1S-2

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D14/2_U01
potrafi rozwiązywać złożone problemy w oparciu o automatyczne tworzenie aplikacji równoległych i rozproszonych
I_2A_U04, I_2A_U08, I_2A_U12T2A_U07, T2A_U09, T2A_U12, T2A_U14, T2A_U16, T2A_U17, T2A_U18C-1T-W-1, T-P-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8M-2S-1
I_2A_D14/2_U02
Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego
I_2A_U03, I_2A_U15, I_2A_U16T2A_U02, T2A_U03, T2A_U05, T2A_U13C-1T-W-1, T-P-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8M-2S-1
I_2A_D14/2_U03
potrafi posługiwać się literaturą i dokumentacją techniczną do tworzenia aplikacji równoległych i rozproszonych
I_2A_U02T2A_U01, T2A_U03, T2A_U04, T2A_U07, T2A_U10C-1T-W-1, T-P-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8M-2S-1

Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D14/2_K01
świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania równoległego i rozproszonego
I_2A_K01, I_2A_K02T2A_K01, T2A_K04, T2A_K05, T2A_K06, T2A_K07C-1, C-2T-W-1, T-P-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8M-2S-1

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_2A_D14/2_W01
ma wiedzę w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych
2,0brak wiedzy w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych
3,0ma podstawowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych
3,5ma podstawowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych
4,0ma szczegółowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych
4,5ma szczegółowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli programowych
5,0ma szczegółowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli programowych oraz potrafi udowodnic swoje odpowiedzi
I_2A_D14/2_W02
Ma rozszerzoną wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglania aplikacji sekwencyjnych
2,0brak wiedzy dotyczącej trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych
3,0ma podstawowa wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych
3,5ma podstawowa wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych
4,0ma szczegółową wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych
4,5ma szczegółową wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli
5,0ma szczegółową wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli programowych oraz potrafi udowodnic swoje odpowiedzi

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_2A_D14/2_U01
potrafi rozwiązywać złożone problemy w oparciu o automatyczne tworzenie aplikacji równoległych i rozproszonych
2,0nie potrafi zastososować podstawowych metod automatycznego tworzenie aplikacji równoległych i rozproszonych
3,0potrafi rozwiązywać podstawowe problemy w oparciu o zastosowanie narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych
3,5potrafi rozwiązywać złożone problemy w oparciu o zastosowanie narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych
4,0potrafi rozwiązywać złożone problemy w oparciu o zastosowanie narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych i analizę porównawczą wyników
4,5potrafi rozwiązywać złożone problemy w oparciu o zastosowanie własnych rozwiązań i narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych i analizę porównawczą wyników
5,0potrafi rozwiązywać złożone problemy w oparciu o zastosowanie własnych rozwiązań i alternatywnych narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych i syntezę rozwiązań z wielu źródeł
I_2A_D14/2_U02
Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego
2,0nie rozumie podstawowych zagadnień i nie jest w stanie uczestniczyć w zespołowych pracach projektowych
3,0rozumie samodzielnie wybrane podstawowe zagadnienia i potrafi uczestniczyć w zespołowych pracach projektowych
3,5rozumie samodzielnie wszystkie podstawowe zagadnienia i potrafi aktywnie uczestniczyć w zespołowych pracach projektowych
4,0rozumie samodzielnie wszystkie podstawowe zagadnienia i potrafi je stosować w trakcie aktywnego uczestnictwa w zespołowych pracach projektowych
4,5rozumie samodzielnie wszystkie zagadnienia i potrafi analizować proponowane rozwiązania i dodawać istotne propozycje w trakcie aktywnego uczestnictwa w zespołowych pracach projektowych
5,0rozumie samodzielnie wszystkie zagadnienia i potrafi ocenić ich przydatność oraz wyjaśnić innym studentom zagadnienia dotyczące budowy narzędzi umożliwiających automatyczne zrównoleglanie
I_2A_D14/2_U03
potrafi posługiwać się literaturą i dokumentacją techniczną do tworzenia aplikacji równoległych i rozproszonych
2,0nie potrafi zastosować dostępnej dokumentacji technicznej i literatury do tworzenia aplikacji równoległych i rozproszonych
3,0potrafi przy pomocy prowadzącego i na podstawie dostępnej dokumentacji zaimplementować proste aplikacje równoległe i rozproszone
3,5potrafi samodzielnie stosować udostępnioną dokumentacje techniczną do implementacji złożonych aplikacji równoległych i rozproszonych
4,0potrafi analizować dostępną dokumentacje techniczną i literaturę jak również poszukiwać skutecznie dodatkowych informacji
4,5potrafi wszystko na ocenę 4,0, proponuje również nowe rozwiązania (np.sposób zapisu konstrukcji języka C++ w sposób zrozumiały dla narzędzia pluto) udokumentowanych rozwiązań
5,0potrafi wszystko na ocenę 4,5, zapoznał się z innymi narzędziami do budowy aplikacji równoległych oraz potrafi porównać stosowane na zajęciach narzędzia (pluto, stepson) z innymi dostępnymi (stepson, omega, samodzielne wykorzystanie isla, llvm)

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt kształceniaOcenaKryterium oceny
I_2A_D14/2_K01
świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania równoległego i rozproszonego
2,0nie rozumie potrzeby dokształcania i dzielenia się wiedza w zakresie automatycznego zrównoleglania aplikacji sekwencyjnych
3,0rozumie potrzebę dokształcania i dzielenia się wiedza w zakresie automatycznego zrównoleglania aplikacji sekwencyjnych
3,5jest w stanie zaprezentować w pełni zaimplementowane rozwiązanie
4,0jest w stanie zaprezentować w pełni i przedyskutować z prowadzącym zaimplementowane rozwiązanie
4,5na bazie kompetencji wymaganych na niższe oceny jest w stanie podzielić się wiedzą w usystematyzowany sposób z grupą
5,0na bazie kompetencji wymaganych na niższe oceny jest w stanie przygotować i zaprezentować własne propozycje w zakresie programowania równoległego i rozproszonego

Literatura podstawowa

  1. R. Allen, K. Kennedy, Optimizing compilers, Morgan Kaufmann Publishers, Burlington, 2004
  2. Alfred V. Aho, Monica S. Lam, Ravi Sethi, Compilers: Principles, Techniques, and Tools 2nd Edition, Addison Wesley, 2006
  3. 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 - projekty

KODTreść programowaGodziny
T-P-1Zrealizowanie projektu dotyczącego automatycznego zownoleglenia programu sekwencyjnego w oparciu o narzebdzie PLUTO oraz narzedzie katedry KIO15
15

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Pojęcie kompilatora optymalizującego. Rodzaje optymalizacji. Pojecie zależności oraz sposoby ich reprezentowania. Metody optymalizacji: transformacje liniowe i afiniczne.1
T-W-2Zwiększenie lokalności programu na przykładzie mnożenia macierzy, przestrzeń iteracji, zapis matematyczny, wielościan wypukły.1
T-W-3kolejność wykonywania iteracji, pojęcie projekcji, rozwiązywanie układów nierówności w liczbach całkowitych, algorytm Fouriera_Motzkina, znalezienie granic pętli przetransformowanej1
T-W-4Ponowne użycie danych, rodzaje ponownego użycia danych, przestrzeń zerowa macierzy,warunki ponownego użycia danych1
T-W-5równoległość pozbawiona synchronizacji, ograniczenia podziału przestrzeni zawierającej obliczenia bez synchronizacji, algorytm znajdowania równoległości pozbawionej synchroni\zacji2
T-W-6transformacje afiniczne, podstawowe transformacje afinicane, równoległość drobno-ziarnista, algorytmy znajdowania równoległości drobno-ziarnistej2
T-W-7przetwarzanie potokowe, transformacje afiniczne pozwalające na przetwarzanie potokowe, algorytm znajdowania transformacji afinicznych pozwalających na przetwarzanie potokowe1
T-W-8algorytmy zwiekszenia lokalności aplikacji sekwencyjnych i rónoległych1
10

Formy aktywności - projekty

KODForma aktywnościGodziny
A-P-1udział w realizacji projektu15
A-P-2przygotowanie do realizacj projektu15
30
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Udział w wykładach15
A-W-2Przygotowanie do egzaminu15
30
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/2_W01ma wiedzę w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_W01Ma poszerzoną i pogłębioną wiedzę w zakresie wybranych działów matematyki teoretycznej oraz matematyki stosowanej
I_2A_W04Ma wiedzę z zakresu zaawansowanych technik programowania systemów informatycznych w wybranym obszarze zastosowań
I_2A_W06Posiada wiedzę o narzędziach sprzętowo-programowych wspomagających rozwiązywanie wybranych i złożonych problemów w różnych obszarach nauki i techniki
I_2A_W09Ma uporządkowaną, podbudowaną metodycznie i teoretycznie wiedzę w zakresie metod i technik projektowania systemów informatycznych
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT2A_W01ma rozszerzoną i pogłębioną wiedzę z zakresu matematyki, fizyki, chemii i innych obszarów właściwych dla studiowanego kierunku studiów przydatną do formułowania i rozwiązywania złożonych zadań z zakresu studiowanego kierunku studiów
T2A_W03ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu studiowanego kierunku studiów
T2A_W04ma podbudowaną teoretycznie szczegółową wiedzę związaną z wybranymi zagadnieniami z zakresu studiowanego kierunku studiów
T2A_W07zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu złożonych zadań inżynierskich z zakresu studiowanego kierunku studiów
Cel przedmiotuC-1Przyswojenie wiedzy i umiejętności niezbędnych do automatycznego zrównoleglania aplikacji równoległych
Treści programoweT-W-1Pojęcie kompilatora optymalizującego. Rodzaje optymalizacji. Pojecie zależności oraz sposoby ich reprezentowania. Metody optymalizacji: transformacje liniowe i afiniczne.
T-P-1Zrealizowanie projektu dotyczącego automatycznego zownoleglenia programu sekwencyjnego w oparciu o narzebdzie PLUTO oraz narzedzie katedry KIO
T-W-2Zwiększenie lokalności programu na przykładzie mnożenia macierzy, przestrzeń iteracji, zapis matematyczny, wielościan wypukły.
T-W-3kolejność wykonywania iteracji, pojęcie projekcji, rozwiązywanie układów nierówności w liczbach całkowitych, algorytm Fouriera_Motzkina, znalezienie granic pętli przetransformowanej
T-W-4Ponowne użycie danych, rodzaje ponownego użycia danych, przestrzeń zerowa macierzy,warunki ponownego użycia danych
T-W-5równoległość pozbawiona synchronizacji, ograniczenia podziału przestrzeni zawierającej obliczenia bez synchronizacji, algorytm znajdowania równoległości pozbawionej synchroni\zacji
T-W-6transformacje afiniczne, podstawowe transformacje afinicane, równoległość drobno-ziarnista, algorytmy znajdowania równoległości drobno-ziarnistej
T-W-7przetwarzanie potokowe, transformacje afiniczne pozwalające na przetwarzanie potokowe, algorytm znajdowania transformacji afinicznych pozwalających na przetwarzanie potokowe
T-W-8algorytmy zwiekszenia lokalności aplikacji sekwencyjnych i rónoległych
Metody nauczaniaM-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,0brak wiedzy w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych
3,0ma podstawowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych
3,5ma podstawowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych
4,0ma szczegółowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych
4,5ma szczegółowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli programowych
5,0ma szczegółowa wiedze w zakresie metod automatycznego zrównoleglenia aplikacji sekwencyjnych opartych na transformacjach afinicznych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli programowych oraz potrafi udowodnic swoje odpowiedzi
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/2_W02Ma rozszerzoną wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglania aplikacji sekwencyjnych
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_W10Ma poszerzoną wiedzę dotyczącą trendów rozwojowych i możliwości zastosowania informatyki w wybranych obszarach nauki i techniki
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT2A_W02ma szczegółową wiedzę w zakresie kierunków studiów powiązanych ze studiowanym kierunkiem studiów
T2A_W05ma wiedzę o trendach rozwojowych i najistotniejszych nowych osiągnięciach z zakresu dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów i pokrewnych dyscyplin naukowych
Cel przedmiotuC-1Przyswojenie wiedzy i umiejętności niezbędnych do automatycznego zrównoleglania aplikacji równoległych
Treści programoweT-W-1Pojęcie kompilatora optymalizującego. Rodzaje optymalizacji. Pojecie zależności oraz sposoby ich reprezentowania. Metody optymalizacji: transformacje liniowe i afiniczne.
T-P-1Zrealizowanie projektu dotyczącego automatycznego zownoleglenia programu sekwencyjnego w oparciu o narzebdzie PLUTO oraz narzedzie katedry KIO
T-W-2Zwiększenie lokalności programu na przykładzie mnożenia macierzy, przestrzeń iteracji, zapis matematyczny, wielościan wypukły.
T-W-3kolejność wykonywania iteracji, pojęcie projekcji, rozwiązywanie układów nierówności w liczbach całkowitych, algorytm Fouriera_Motzkina, znalezienie granic pętli przetransformowanej
T-W-4Ponowne użycie danych, rodzaje ponownego użycia danych, przestrzeń zerowa macierzy,warunki ponownego użycia danych
T-W-5równoległość pozbawiona synchronizacji, ograniczenia podziału przestrzeni zawierającej obliczenia bez synchronizacji, algorytm znajdowania równoległości pozbawionej synchroni\zacji
T-W-6transformacje afiniczne, podstawowe transformacje afinicane, równoległość drobno-ziarnista, algorytmy znajdowania równoległości drobno-ziarnistej
T-W-7przetwarzanie potokowe, transformacje afiniczne pozwalające na przetwarzanie potokowe, algorytm znajdowania transformacji afinicznych pozwalających na przetwarzanie potokowe
T-W-8algorytmy zwiekszenia lokalności aplikacji sekwencyjnych i rónoległych
Metody nauczaniaM-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,0brak wiedzy dotyczącej trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych
3,0ma podstawowa wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych
3,5ma podstawowa wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych
4,0ma szczegółową wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia prostych petli programowych
4,5ma szczegółową wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli
5,0ma szczegółową wiedzę dotyczącą trendów rozwoju metod automatycznego zrównoleglenia aplikacji sekwencyjnych oraz wie jak zastosowac wiedze do zrównoleglenia złozonych petli programowych oraz potrafi udowodnic swoje odpowiedzi
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/2_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_U04Potrafi wybrać, krytycznie ocenić przydatność i zastosować metodę i narzędzia rozwiązania złożonego zadania inżynierskiego
I_2A_U08Potrafi wykorzystywać narzędzia sprzętowo-programowe wspomagające rozwiązywanie wybranych problemów w różnych obszarach nauki i techniki
I_2A_U12Ma umiejętność stosowania zaawansowanych technik programowania i metodyki projektowania systemów informatycznych w wybranym obszarze zastosowań
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT2A_U07potrafi posługiwać się technikami informacyjno-komunikacyjnymi właściwymi do realizacji zadań typowych dla działalności inżynierskiej
T2A_U09potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich i prostych problemów badawczych metody analityczne, symulacyjne i eksperymentalne
T2A_U12potrafi ocenić przydatność i możliwość wykorzystania nowych osiągnięć (technik i technologii) w zakresie studiowanego kierunku studiów
T2A_U14potrafi dokonać wstępnej analizy ekonomicznej podejmowanych działali inżynierskich
T2A_U16potrafi zaproponować ulepszenia (usprawnienia) istniejących rozwiązań technicznych
T2A_U17potrafi dokonać identyfikacji i sformułować specyfikację złożonych zadań inżynierskich, charakterystycznych dla studiowanego kierunku studiów, w tym zadań nietypowych, uwzględniając ich aspekty pozatechniczne
T2A_U18potrafi ocenić przydatność metod i narzędzi służących do rozwiązania zadania inżynierskiego, charakterystycznego dla studiowanego kierunku studiów, w tym dostrzec ograniczenia tych metod i narzędzi; potrafi - stosując także koncepcyjnie nowe metody - rozwiązywać złożone zadania inżynierskie, charakterystyczne dla studiowanego kierunku studiów, w tym zadania nietypowe oraz zadania zawierające komponent badawczy
Cel przedmiotuC-1Przyswojenie wiedzy i umiejętności niezbędnych do automatycznego zrównoleglania aplikacji równoległych
Treści programoweT-W-1Pojęcie kompilatora optymalizującego. Rodzaje optymalizacji. Pojecie zależności oraz sposoby ich reprezentowania. Metody optymalizacji: transformacje liniowe i afiniczne.
T-P-1Zrealizowanie projektu dotyczącego automatycznego zownoleglenia programu sekwencyjnego w oparciu o narzebdzie PLUTO oraz narzedzie katedry KIO
T-W-2Zwiększenie lokalności programu na przykładzie mnożenia macierzy, przestrzeń iteracji, zapis matematyczny, wielościan wypukły.
T-W-3kolejność wykonywania iteracji, pojęcie projekcji, rozwiązywanie układów nierówności w liczbach całkowitych, algorytm Fouriera_Motzkina, znalezienie granic pętli przetransformowanej
T-W-4Ponowne użycie danych, rodzaje ponownego użycia danych, przestrzeń zerowa macierzy,warunki ponownego użycia danych
T-W-5równoległość pozbawiona synchronizacji, ograniczenia podziału przestrzeni zawierającej obliczenia bez synchronizacji, algorytm znajdowania równoległości pozbawionej synchroni\zacji
T-W-6transformacje afiniczne, podstawowe transformacje afinicane, równoległość drobno-ziarnista, algorytmy znajdowania równoległości drobno-ziarnistej
T-W-7przetwarzanie potokowe, transformacje afiniczne pozwalające na przetwarzanie potokowe, algorytm znajdowania transformacji afinicznych pozwalających na przetwarzanie potokowe
T-W-8algorytmy zwiekszenia lokalności aplikacji sekwencyjnych i rónoległych
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,0nie potrafi zastososować podstawowych metod automatycznego tworzenie aplikacji równoległych i rozproszonych
3,0potrafi rozwiązywać podstawowe problemy w oparciu o zastosowanie narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych
3,5potrafi rozwiązywać złożone problemy w oparciu o zastosowanie narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych
4,0potrafi rozwiązywać złożone problemy w oparciu o zastosowanie narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych i analizę porównawczą wyników
4,5potrafi rozwiązywać złożone problemy w oparciu o zastosowanie własnych rozwiązań i narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych i analizę porównawczą wyników
5,0potrafi rozwiązywać złożone problemy w oparciu o zastosowanie własnych rozwiązań i alternatywnych narzędzi do automatycznego tworzenia aplikacji równoległych i rozproszonych i syntezę rozwiązań z wielu źródeł
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/2_U02Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania oprogramowania równoległego
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_U03Potrafi aktywnie uczestniczyć w pracach projektowych indywidualnych i zespołowych przyjmując w nich różne role
I_2A_U15Ma przygotowanie niezbędne do pracy w środowisku przemysłowym oraz zna zasady bezpieczeństwa związane z tą pracą
I_2A_U16Potrafi określić kierunek dalszego uczenia się i zrealizować proces samokształcenia
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT2A_U02potrafi porozumiewać się przy użyciu różnych technik w środowisku zawodowym oraz w innych środowiskach, także w języku angielskim lub innym języku obcym uznawanym za język komunikacji międzynarodowej w zakresie studiowanego kierunku studiów
T2A_U03potrafi przygotować opracowanie naukowe w języku polskim i krótkie doniesienie naukowe w języku obcym, uznawanym za podstawowy dla dziedzin nauki i dyscyplin naukowych właściwych dla studiowanego kierunku studiów, przedstawiające wyniki własnych badań naukowych
T2A_U05potrafi określić kierunki dalszego uczenia się i zrealizować proces samokształcenia
T2A_U13ma przygotowanie niezbędne do pracy w środowisku przemysłowym oraz zna zasady bezpieczeństwa związane z tą pracą
Cel przedmiotuC-1Przyswojenie wiedzy i umiejętności niezbędnych do automatycznego zrównoleglania aplikacji równoległych
Treści programoweT-W-1Pojęcie kompilatora optymalizującego. Rodzaje optymalizacji. Pojecie zależności oraz sposoby ich reprezentowania. Metody optymalizacji: transformacje liniowe i afiniczne.
T-P-1Zrealizowanie projektu dotyczącego automatycznego zownoleglenia programu sekwencyjnego w oparciu o narzebdzie PLUTO oraz narzedzie katedry KIO
T-W-2Zwiększenie lokalności programu na przykładzie mnożenia macierzy, przestrzeń iteracji, zapis matematyczny, wielościan wypukły.
T-W-3kolejność wykonywania iteracji, pojęcie projekcji, rozwiązywanie układów nierówności w liczbach całkowitych, algorytm Fouriera_Motzkina, znalezienie granic pętli przetransformowanej
T-W-4Ponowne użycie danych, rodzaje ponownego użycia danych, przestrzeń zerowa macierzy,warunki ponownego użycia danych
T-W-5równoległość pozbawiona synchronizacji, ograniczenia podziału przestrzeni zawierającej obliczenia bez synchronizacji, algorytm znajdowania równoległości pozbawionej synchroni\zacji
T-W-6transformacje afiniczne, podstawowe transformacje afinicane, równoległość drobno-ziarnista, algorytmy znajdowania równoległości drobno-ziarnistej
T-W-7przetwarzanie potokowe, transformacje afiniczne pozwalające na przetwarzanie potokowe, algorytm znajdowania transformacji afinicznych pozwalających na przetwarzanie potokowe
T-W-8algorytmy zwiekszenia lokalności aplikacji sekwencyjnych i rónoległych
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,0nie rozumie podstawowych zagadnień i nie jest w stanie uczestniczyć w zespołowych pracach projektowych
3,0rozumie samodzielnie wybrane podstawowe zagadnienia i potrafi uczestniczyć w zespołowych pracach projektowych
3,5rozumie samodzielnie wszystkie podstawowe zagadnienia i potrafi aktywnie uczestniczyć w zespołowych pracach projektowych
4,0rozumie samodzielnie wszystkie podstawowe zagadnienia i potrafi je stosować w trakcie aktywnego uczestnictwa w zespołowych pracach projektowych
4,5rozumie samodzielnie wszystkie zagadnienia i potrafi analizować proponowane rozwiązania i dodawać istotne propozycje w trakcie aktywnego uczestnictwa w zespołowych pracach projektowych
5,0rozumie samodzielnie wszystkie zagadnienia i potrafi ocenić ich przydatność oraz wyjaśnić innym studentom zagadnienia dotyczące budowy narzędzi umożliwiających automatyczne zrównoleglanie
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/2_U03potrafi posługiwać się literaturą i dokumentacją techniczną do tworzenia aplikacji równoległych i rozproszonych
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_U02Potrafi pozyskiwać informacje z różnych źródeł (literatura, Internet, bazy danych, dokumentacja techniczna), dokonywać ich interpretacji i oceny
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT2A_U01potrafi pozyskiwać informacje z literatury, baz danych oraz innych właściwie dobranych źródeł, także w języku angielskim lub innym języku obcym uznawanym za język komunikacji międzynarodowej w zakresie studiowanego kierunku studiów; potrafi integrować uzyskane informacje, dokonywać ich interpretacji i krytycznej oceny, a także wyciągać wnioski oraz formułować i wyczerpująco uzasadniać opinie
T2A_U03potrafi przygotować opracowanie naukowe w języku polskim i krótkie doniesienie naukowe w języku obcym, uznawanym za podstawowy dla dziedzin nauki i dyscyplin naukowych właściwych dla studiowanego kierunku studiów, przedstawiające wyniki własnych badań naukowych
T2A_U04potrafi przygotować i przedstawić w języku polskim i języku obcym prezentację ustną, dotyczącą szczegółowych zagadnień z zakresu studiowanego kierunku studiów
T2A_U07potrafi posługiwać się technikami informacyjno-komunikacyjnymi właściwymi do realizacji zadań typowych dla działalności inżynierskiej
T2A_U10potrafi - przy formułowaniu i rozwiązywaniu zadań inżynierskich - integrować wiedzę z zakresu dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów oraz zastosować podejście systemowe, uwzględniające także aspekty pozatechniczne
Cel przedmiotuC-1Przyswojenie wiedzy i umiejętności niezbędnych do automatycznego zrównoleglania aplikacji równoległych
Treści programoweT-W-1Pojęcie kompilatora optymalizującego. Rodzaje optymalizacji. Pojecie zależności oraz sposoby ich reprezentowania. Metody optymalizacji: transformacje liniowe i afiniczne.
T-P-1Zrealizowanie projektu dotyczącego automatycznego zownoleglenia programu sekwencyjnego w oparciu o narzebdzie PLUTO oraz narzedzie katedry KIO
T-W-2Zwiększenie lokalności programu na przykładzie mnożenia macierzy, przestrzeń iteracji, zapis matematyczny, wielościan wypukły.
T-W-3kolejność wykonywania iteracji, pojęcie projekcji, rozwiązywanie układów nierówności w liczbach całkowitych, algorytm Fouriera_Motzkina, znalezienie granic pętli przetransformowanej
T-W-4Ponowne użycie danych, rodzaje ponownego użycia danych, przestrzeń zerowa macierzy,warunki ponownego użycia danych
T-W-5równoległość pozbawiona synchronizacji, ograniczenia podziału przestrzeni zawierającej obliczenia bez synchronizacji, algorytm znajdowania równoległości pozbawionej synchroni\zacji
T-W-6transformacje afiniczne, podstawowe transformacje afinicane, równoległość drobno-ziarnista, algorytmy znajdowania równoległości drobno-ziarnistej
T-W-7przetwarzanie potokowe, transformacje afiniczne pozwalające na przetwarzanie potokowe, algorytm znajdowania transformacji afinicznych pozwalających na przetwarzanie potokowe
T-W-8algorytmy zwiekszenia lokalności aplikacji sekwencyjnych i rónoległych
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,0nie potrafi zastosować dostępnej dokumentacji technicznej i literatury do tworzenia aplikacji równoległych i rozproszonych
3,0potrafi przy pomocy prowadzącego i na podstawie dostępnej dokumentacji zaimplementować proste aplikacje równoległe i rozproszone
3,5potrafi samodzielnie stosować udostępnioną dokumentacje techniczną do implementacji złożonych aplikacji równoległych i rozproszonych
4,0potrafi analizować dostępną dokumentacje techniczną i literaturę jak również poszukiwać skutecznie dodatkowych informacji
4,5potrafi wszystko na ocenę 4,0, proponuje również nowe rozwiązania (np.sposób zapisu konstrukcji języka C++ w sposób zrozumiały dla narzędzia pluto) udokumentowanych rozwiązań
5,0potrafi wszystko na ocenę 4,5, zapoznał się z innymi narzędziami do budowy aplikacji równoległych oraz potrafi porównać stosowane na zajęciach narzędzia (pluto, stepson) z innymi dostępnymi (stepson, omega, samodzielne wykorzystanie isla, llvm)
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_2A_D14/2_K01świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie programowania równoległego i rozproszonego
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_K01Ma świadomość organizacji własnego czasu pracy i jest zdeterminowany aby osiągnąć założone cele
I_2A_K02Świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT2A_K01rozumie potrzebę uczenia się przez całe życie; potrafi inspirować i organizować proces uczenia się innych osób
T2A_K04potrafi odpowiednio określić priorytety służące realizacji określonego przez siebie lub innych zadania
T2A_K05prawidłowo identyfikuje i rozstrzyga dylematy związane z wykonywaniem zawodu
T2A_K06potrafi myśleć i działać w sposób kreatywny i przedsiębiorczy
T2A_K07ma świadomość roli społecznej absolwenta uczelni technicznej, a zwłaszcza rozumie potrzebę formułowania i przekazywania społeczeństwu, w szczególności poprzez środki masowego przekazu, informacji i opinii dotyczących osiągnięć techniki i innych aspektów działalności inżynierskiej; podejmuje starania, aby przekazać takie informacje i opnie w sposób powszechnie zrozumiały, z uzasadnieniem różnych punktów widzenia
Cel przedmiotuC-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 programoweT-W-1Pojęcie kompilatora optymalizującego. Rodzaje optymalizacji. Pojecie zależności oraz sposoby ich reprezentowania. Metody optymalizacji: transformacje liniowe i afiniczne.
T-P-1Zrealizowanie projektu dotyczącego automatycznego zownoleglenia programu sekwencyjnego w oparciu o narzebdzie PLUTO oraz narzedzie katedry KIO
T-W-2Zwiększenie lokalności programu na przykładzie mnożenia macierzy, przestrzeń iteracji, zapis matematyczny, wielościan wypukły.
T-W-3kolejność wykonywania iteracji, pojęcie projekcji, rozwiązywanie układów nierówności w liczbach całkowitych, algorytm Fouriera_Motzkina, znalezienie granic pętli przetransformowanej
T-W-4Ponowne użycie danych, rodzaje ponownego użycia danych, przestrzeń zerowa macierzy,warunki ponownego użycia danych
T-W-5równoległość pozbawiona synchronizacji, ograniczenia podziału przestrzeni zawierającej obliczenia bez synchronizacji, algorytm znajdowania równoległości pozbawionej synchroni\zacji
T-W-6transformacje afiniczne, podstawowe transformacje afinicane, równoległość drobno-ziarnista, algorytmy znajdowania równoległości drobno-ziarnistej
T-W-7przetwarzanie potokowe, transformacje afiniczne pozwalające na przetwarzanie potokowe, algorytm znajdowania transformacji afinicznych pozwalających na przetwarzanie potokowe
T-W-8algorytmy zwiekszenia lokalności aplikacji sekwencyjnych i rónoległych
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,0nie rozumie potrzeby dokształcania i dzielenia się wiedza w zakresie automatycznego zrównoleglania aplikacji sekwencyjnych
3,0rozumie potrzebę dokształcania i dzielenia się wiedza w zakresie automatycznego zrównoleglania aplikacji sekwencyjnych
3,5jest w stanie zaprezentować w pełni zaimplementowane rozwiązanie
4,0jest w stanie zaprezentować w pełni i przedyskutować z prowadzącym zaimplementowane rozwiązanie
4,5na bazie kompetencji wymaganych na niższe oceny jest w stanie podzielić się wiedzą w usystematyzowany sposób z grupą
5,0na bazie kompetencji wymaganych na niższe oceny jest w stanie przygotować i zaprezentować własne propozycje w zakresie programowania równoległego i rozproszonego