Wydział Informatyki - Informatyka (S2)
Sylabus przedmiotu Obliczenia dużej mocy:
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 | Obliczenia dużej mocy | ||
Specjalność | przedmiot wspólny | ||
Jednostka prowadząca | Katedra Inżynierii Oprogramowania | ||
Nauczyciel odpowiedzialny | Włodzimierz Bielecki <Wlodzimierz.Bielecki@zut.edu.pl> | ||
Inni nauczyciele | Michał Fedorov <Michal.Fedorov@zut.edu.pl>, Marek Pałkowski <Marek.Palkowski@zut.edu.pl>, Krzysztof Siedlecki <Krzysztof.Siedlecki@zut.edu.pl> | ||
ECTS (planowane) | 4,0 | ECTS (formy) | 4,0 |
Forma zaliczenia | zaliczenie | Język | polski |
Blok obieralny | — | Grupa obieralna | — |
Formy dydaktyczne
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Zaliczone przedmioty: Programowanie 1 i 2, Programowanie równoległe i rozproszone, architektura komputerów. |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Umiejętność optymalizacji kodu C++ w narzędziach Intela i pakietach rozprosoznych w oparciu o paradygmaty programowania obiektowego |
C-2 | Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie wytwarzania oprogramowania |
C-3 | Znajomość bibliotek wspomagających obliczenia numeryczne w tym z zakresu algebry liniowej |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Wstęp, Intel TBB vs. Openmp i Posix Threads, Prosty program TBB, kompilacja, uruchomienie, konfiguracja środowiska | 2 |
T-L-2 | Przypomnienie wiadomości Programowanie obiektowe C++ i STL, kontenery szablonów, wyrażenie Lamba, przeciążanie operatorów. | 2 |
T-L-3 | Algorytm TBB parallel for - mnożenie macierzy | 2 |
T-L-4 | c.d. lab. 2 Algorytmy cachowania dla parallel for - optymalizacja ustawień i kontrola ziarnistości | 2 |
T-L-5 | Algorytmy TBB - reduce i scan - Aplikacje przykłady akademicke | 2 |
T-L-6 | Zrównoleglanie pętli warunkowej w TBB | 2 |
T-L-7 | Algorytmy TBB - sortowanie współbieżne | 2 |
T-L-8 | Usługi dodatkowe TBB - pomiar czasu, obsługa wyjątków, operacje atomowe | 2 |
T-L-9 | Instlacja pakietu CILK- konfiguracja środowiska i przykładowy program równoległy | 2 |
T-L-10 | Algorytmy cilk_spawn, cilk_for, cilk_sync | 2 |
T-L-11 | Reducers i holders w CILK | 2 |
T-L-12 | Zamki i obsługa wyjątków w CILK | 2 |
T-L-13 | Demonstracja możliwości rozproszonych pakietów MPI i PVM - instlacja i uruchomienie gotowego programu równoleglego | 2 |
T-L-14 | Popularne biblioteki i API (BLAS, LINPACK, LAPACK, Intel MKL, Intel DAAL, openCL, OpenMP, OpenACC, Intel Movidius) - zadania numeryczne | 4 |
30 | ||
wykłady | ||
T-W-1 | Typy komputerów równoległych (procesory wielordzeniowe, symetryczne systemy wieloprocesorowe, komputery wektorowe, komputery masowo równoległe, karty graficzne, systemy osadzone, specjalizowane układy scalone, klastry, gridy, specjalizowane układy scalone, rekonfigurowalne systemy obliczeniowe, taksonomia Flynna) | 2 |
T-W-2 | Modele programowania równoległego i rozproszonego (fork-join, pamięć współdzielona, wielowątkowość, pamięć rozproszona, równoległość danych, obliczenia oparte na przesyłaniu komunikatów, pojedynczy program wielu danych (SPMD), wielokrotny program wielu danych (MPMD) | 2 |
T-W-3 | Paradygmaty i języki programowania równoległego i rozproszonego | 2 |
T-W-4 | Przyspieszenie i efektywność aplikacji równoległych i rozproszonych, podstawowe czynniki określające wydajność aplikacji równoległych i rozproszonych | 2 |
T-W-5 | Metodologia PCAM tworzenia algorytmów równoległych i rozproszonych | 2 |
T-W-6 | Biblioteka MPI do wytwarzania aplikacji rozproszonych | 4 |
T-W-7 | Biblioteka Intel Threading Building Blocks, (podstawowe algorytmy parallel_for, parallel_reduce, parallel_scan) | 2 |
T-W-8 | Biblioteka Intel Threading Building Blocks , zaawansowane algorytmy ( parallel_while, parallel_do,pipeline, parallel_sort) | 2 |
T-W-9 | Biblioteka Intel Threading Building Blocks , mechanizmy dodatkowe (kontenery, skalowalna alokacja pamięci, wzajemne wykluczanie, operacje atomowe, szeregowanie zadań) | 2 |
T-W-10 | Język Cilk, wprowadzenie, instalacja, rozszerzenia językowe, wersje, zrównoleglenie pętli | 2 |
T-W-11 | Język Cilk, równoległe wykonywanie wątków, synchronizacja wątków | 2 |
T-W-12 | Język Cilk, hiperobjekty, przetwarzanie simd, sposoby zwiększenia wydajności aplikacji | 2 |
T-W-13 | Popularne biblioteki i API (BLAS, LINPACK, LAPACK, Intel MKL, Intel DAAL, openCL, OpenMP, OpenACC, Intel Movidius) | 4 |
30 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | udział w zajęciach laboratoryjnych | 30 |
A-L-2 | przygotowanie sprawozdań i do odpowiedzi ustnych | 15 |
A-L-3 | konsultacje | 4 |
49 | ||
wykłady | ||
A-W-1 | Uczestnictwo w wykładach | 30 |
A-W-2 | Przygotowanie do zaliczenia | 20 |
50 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykad informacyjny/konwersatoryjny |
M-2 | Ćwiczenia laboratoryjne |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Ocena stopnia wykonania zadań praktycznych pod koniec każdych laboratoriów |
S-2 | Ocena 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ów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_2A_C01_W01 Ma wiedzę w zakresie metod optymalizacji kodu za pomocą narzędzi Intela i nie tylko w przetwarzaniu równoległym i rozproszonym | I_2A_W03, I_2A_W02 | — | — | C-2 | T-W-1, T-W-11, T-W-2, T-W-7, T-W-9, T-W-6, T-W-10, T-W-13, T-W-3, T-W-8, T-W-5, T-W-12, T-W-4 | M-1 | S-2 |
Zamierzone efekty uczenia się - umiejętności
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_2A_C01_U01 Potrafi rozwiązywać złożone problemy oparte na tworzeniu współbieżnych aplikacji w Intel TBB i Cilk jak i innych modelach programowania współbieżnego | I_2A_U09, I_2A_U04, I_2A_U05 | — | — | C-3, C-1 | T-L-6, T-L-10, T-L-5, T-L-13, T-L-12, T-L-2, T-L-9, T-L-7, T-L-3, T-L-11, T-L-14, T-L-1, T-L-4, T-L-8 | M-2 | S-1, S-2 |
Kryterium oceny - wiedza
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_2A_C01_W01 Ma wiedzę w zakresie metod optymalizacji kodu za pomocą narzędzi Intela i nie tylko w przetwarzaniu równoległym i rozproszonym | 2,0 | |
3,0 | Rozumie pojęcia przyspieszenie, optymalizacja kodu, współbieżność aplikacji. | |
3,5 | Kryteria 3.0 +Znajomość pakietów OpenMP, TBB, CILK, cechy wspólne i różnice. | |
4,0 | Kryteria 3.5 + znajomość algorytmów TBB, CILK i STL. | |
4,5 | Kryteria 4.0 +Znajomość pakietów PVM i MPI. | |
5,0 | Kryteria 4.5 +Znajomość pakietów Intela dla algebry liniowej. |
Kryterium oceny - umiejętności
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
I_2A_C01_U01 Potrafi rozwiązywać złożone problemy oparte na tworzeniu współbieżnych aplikacji w Intel TBB i Cilk jak i innych modelach programowania współbieżnego | 2,0 | |
3,0 | Potrafi napisać podstawowe aplikacje współbieżne w dowolnym pakiecie. | |
3,5 | Kryteria 3.0 +Potrafi odnaleźć różnice pomiędzy TBB i OpenMP w zasosotowaniu do tworzenia aplikacji obiektowych. | |
4,0 | Kryteria 3.5 +Umiejętność doboru odpowiednich algorytmów z pakietów do zadania. | |
4,5 | Kryteria 4.0 +Umiejętność testowania kodu i wyciągania wniosków na temat jego jakości. | |
5,0 | Kryteria 4.5 +Potrafi napisać sprawozdanie na podstawie otrzymanych wyników i wnioskować w oparciu o poznaną wiedzę teoretyczną. |
Literatura podstawowa
- Intel, Dokumentacja Intel TBB, 2011, http://threadingbuildingblocks.org/documentation.php
- James Reinders, Intel® Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism, O`Reilly, 2007