Wydział Informatyki - Informatyka (S1)
specjalność: Inżynieria chmurowa
Sylabus przedmiotu Programowanie komputerów heterogenicznych:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | pierwszego stopnia |
Tytuł zawodowy absolwenta | inżynier | ||
Obszary studiów | charakterystyki PRK, kompetencje inżynierskie PRK | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Programowanie komputerów heterogenicznych | ||
Specjalność | Inżynieria oprogramowania | ||
Jednostka prowadząca | Katedra Inżynierii Oprogramowania i Cyberbezpieczeństwa | ||
Nauczyciel odpowiedzialny | Sławomir Wernikowski <Slawomir.Wernikowski@zut.edu.pl> | ||
Inni nauczyciele | Sławomir Wernikowski <Slawomir.Wernikowski@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 | Architektura systemów komputerowych |
W-2 | Programowanie 2 |
W-3 | Programowanie równoległe i współbieżne |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Zapoznanie słuchaczy z heterogenicznymi środowiskami sprzętowymi. |
C-2 | Wykształcenie umiejętności tworzenia oprogramowania przeznaczonego do pracy w różnorodnych platformach heterogenicznych. |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Implementacja prostych problemów obliczeniowch z użyciem języka CUDA C/C++ | 8 |
T-L-2 | Implementacja złożonych problemów obliczeniowych z wykorzystaniem zaawansowanych środków języka CUDA/C i środowiska CUDA | 6 |
T-L-3 | Implementacja wybranego problemu z wykorzystaniem środków API sterownika NVIDIA CUDA | 2 |
T-L-4 | Implementacja wybranego problemu z wykorzystaniem języka PTX | 2 |
T-L-5 | Implementacja wybranego problemu obliczeniowego z wykorzystaniem OpenACC | 2 |
T-L-6 | Implementacja wybranych problemów obliczeniowych z użyciem środowisk i języków spoza ekosystemu NVIDIA CUDA | 4 |
T-L-7 | Implementacja programu do renderingu obrazu wykorzystującego shadery GLSL do obliczenia koloru powierzchni | 4 |
T-L-8 | Implementacja programu przetwarzającego teksturę OpenGL w środowisku OpenCLa | 2 |
30 | ||
wykłady | ||
T-W-1 | Wprowadzenie do programowania w środowiskach heterogenicznych: podstawowe pojęcia, tło historyczne, taksonomie, problemy i rozwiązania, charakterystyka wybranych środowisk heterogenicznych | 2 |
T-W-2 | Wprowadzenie do programowania języku CUDA C/C++, podstawy architektury i historia rozwoju urządzeń CUDA, CUDA SDK, transfery danych, tworzenie i uruchamianie kerneli | 6 |
T-W-3 | Zaawansowane techniki programowania w środowisku CUDA C/C++, hierarchia pamięci urządzeń CUDA, mapowanie pamięci, obsługa błędów, programowanie asynchroniczne, dokładność obliczeń, operacje atomowe, szczegóły architektury SIMT | 4 |
T-W-4 | Programowanie na poziomie API sterownika środowiska CUDA | 2 |
T-W-5 | Programowanie w języku PTX | 2 |
T-W-6 | Programowanie w środowisku OpenACC: wprowadzenie, aparat pojęciowy, prezentacja rozwiązań przykładowych | 2 |
T-W-7 | Programowanie hetorogeniczne z użyciem innych środków i języków programowania (Java, Python, Fortran) | 4 |
T-W-8 | Programowanie w języku GLSL: Wprowadzenie do języka GLSL (kompilacja, uruchamianie w środowisku programu graficznego, narzędzia programistyczne) | 2 |
T-W-9 | Programowanie w języku GLSL: Podstawowe składniki języka na przykładzie programu obliczającego równanie oświetlenia | 2 |
T-W-10 | Przetwarzanie obrazów w środowisku OpenCL: Techniki reprezentacji i przetwarzania obrazów w środowisku OpenCL | 2 |
T-W-11 | Zaliczenie | 2 |
30 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | Uczestnictwo w zajęciach | 30 |
A-L-2 | Praca własna | 20 |
50 | ||
wykłady | ||
A-W-1 | Uczestnictwo w zajęciach | 30 |
A-W-2 | Praca własna | 18 |
A-W-3 | Udział w konsultacjach | 2 |
50 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykład informacyjno-konwersatoryjny |
M-2 | Ćwiczenia laboratoryjne |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Ocena na podstawie stopnia wykonania scenariuszy konspektów laboratoryjnych, wymagań projektowych i/lub sprawozdania z zajec |
S-2 | Ocena podsumowująca: Egzamin (pytania zamknięte oraz otwarte) |
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 |
---|---|---|---|---|---|---|---|
Itest_1A_D03.05_W01 Student rozumie techniki konstrukcji, specyfikę i charakterystykę środowisk heterogenicznych oraz zna wybrane języki programowania stosowane w środowiskach heterogenicznych | I_1A_W04, I_1A_W02, I_1A_W03 | — | — | C-1, C-2 | T-W-1, T-W-3, T-W-6, T-W-5, T-W-11, T-W-10, T-W-8, T-W-2, T-W-9, T-W-4, T-W-7 | 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 |
---|---|---|---|---|---|---|---|
Itest_1A_D03.05_U01 potrafi pisać, uruchamiać i profilować programy przeznaczone do pracy w środowiskach heterogenicznych | I_1A_U05, I_1A_U07, I_1A_U04, I_1A_U06 | — | — | C-2 | T-L-1, T-L-5, T-L-7, T-L-8, T-W-4, T-W-6, T-W-7, T-W-8, T-W-9, T-W-10, T-W-2 | M-2 | S-1 |
Zamierzone efekty uczenia się - inne kompetencje społeczne i personalne
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 |
---|---|---|---|---|---|---|---|
Itest_1A_D03.05_K01 Student jest kreatywny i przygotowany do wykorzystywania różnorodnych źródeł wiedzy | I_1A_K01 | — | — | C-2 | T-L-1, T-L-5, T-L-7, T-L-8, T-W-1, T-W-3, T-W-4, T-W-6, T-W-7, T-W-8, T-W-9, T-W-10, T-W-2 | M-2 | S-1 |
Kryterium oceny - wiedza
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
Itest_1A_D03.05_W01 Student rozumie techniki konstrukcji, specyfikę i charakterystykę środowisk heterogenicznych oraz zna wybrane języki programowania stosowane w środowiskach heterogenicznych | 2,0 | |
3,0 | potrafi wymienić podstawowe charakterystyki środowisk heterogenicznych oraz rozumie techniki programowania heterogenicznego i potrafi czytać kod zapisany w wybranych językach programowania heterogenicznego | |
3,5 | ||
4,0 | potrafi wymienić dowolne charakterystyki środowisk heterogenicznych oraz zna techniki programowania heterogenicznego i potrafi pisać kod zapisany w wybranych językach programowania heterogenicznego | |
4,5 | ||
5,0 | zna wybrane konkretne środowiska heterogeniczne oraz biegle zna techniki programowania heterogenicznego i potrafi pisać kod zapisany we wszystkich omówionych językach programowania heterogenicznego |
Kryterium oceny - umiejętności
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
Itest_1A_D03.05_U01 potrafi pisać, uruchamiać i profilować programy przeznaczone do pracy w środowiskach heterogenicznych | 2,0 | |
3,0 | potrafi czytać oraz pisać proste programy przeznaczone do pracy w środowiskach heterogenicznych | |
3,5 | ||
4,0 | potrafi czytać oraz pisać dowolne programy przeznaczone do pracy w środowiskach heterogenicznych | |
4,5 | ||
5,0 | biegle potrafi czytać oraz pisać dowolne programy przeznaczone do pracy w środowiskach heterogenicznych |
Kryterium oceny - inne kompetencje społeczne i personalne
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
Itest_1A_D03.05_K01 Student jest kreatywny i przygotowany do wykorzystywania różnorodnych źródeł wiedzy | 2,0 | |
3,0 | dostateczna umiejętność samodzielnego szukania i wykorzystania informacji, wymaga bardzo częstej pomocy nauczyciela | |
3,5 | ||
4,0 | dobra umiejętność samodzielnego szukania i wykorzystania informacji, wymaga rzadkiej pomocy nauczyciela | |
4,5 | ||
5,0 | wyróżniająca umiejętność samodzielnego szukania i wykorzystania informacji, potrafi bez pomocy nauczyciela wykonać wszystkie ćwiczenia laboratoryjne zgodnie z otrzymanymi konspektami |
Literatura podstawowa
- R. Gerber, Getting Started with OpenMP, Intel, https://software.intel.com/en-us/articles/getting-started-with-openmp
- R.J. Rost, OpenGL Shading Language, Addison-Wesley
- NVidia, CUDA C Programming Guide, http://docs.nvidia.com/cuda/pdf/CUDA_C_Programming_Guide.pd
Literatura dodatkowa
- OpenMP Architecture Review Board, OpenMP Application Programming Interface, http://www.openmp.org/wp-content/uploads/openmp-4.5.pdf
- Khronos OpenCL Working Group, The OpenCL Specification, https://www.khronos.org/registry/OpenCL/specs/opencl-1.1.pdf