Uniwersytet Kazimierza Wielkiego w Bydgoszczy - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Systemy rozproszone 1300-Inf3SR-NP
Laboratorium (LAB) Rok akademicki 2020/21

Informacje o zajęciach (wspólne dla wszystkich grup)

Liczba godzin: 9
Limit miejsc: (brak limitu)
Zaliczenie: Zaliczenie na ocenę
Rygory zaliczenia zajęć: zaliczenie na ocenę
Literatura uzupelniająca: 1. Programming massively parallel processors: a hands-on approach,
David B. Kirk, Wen-mei W. Hwu., Morgan Kaufmann Publ., 2010.
2. Guerraoui R., Rodrigues L. Introduction to Reliable Distributed
Programming, Springer-Verlag, 2006
Metody dydaktyczne: ćwiczenia laboratoryjne
Literatura:

1. Sztuka programowania wieloprocesorowego, Maurice Herlihy, Nir Shavit ; przekł. z jęz. Ang.: Maciej Baranowski, PWN, 2010

2. M. Ben-Ari, Podstawy programowania współbieżnego i rozproszonego, WNT, 1990

Efekty uczenia się:

U1. Potrafi pozyskiwać informacje z internetu, literatury, baz danych i innych źródeł niezbędne w nowej oraz szybko rozwijającej się dziedzinie przetwarzania równoległego. (K_U01)

U2. Ma umiejętność zrównoleglania prostych algorytmów obliczeniowych. (K_U07)

U3. Student potrafi wykorzystać karty GPU i język CUDA C do stworzenia prostego programu wykonującego obliczenia metodami równoległymi i rozproszonymi. (K_U07)

U4. Potrafi zmodyfikować kod programu w języku CUDA C celem optymalizacji wykorzystania zasobów sprzętowych kart GPU w przetwarzaniu równoległym i rozproszonym. (K_U011)

Metody i kryteria oceniania:

kolokwium zaliczeniowe (praca na komputerze i platformch zdalnych)

Zakres tematów:

Zapoznanie studentów ze sprzętem firmy NVIDIA. Wprowadzenie do narzędzia NVIDIA GPU Computing platform.

Studenci wykonują praktyczne zadania programowania w języku CUDA C. Zadania są następujące: konfigurowanie środowiska IDE dla programowania w języku CUDA C; uruchamianie pierwszego programu w CUDA ("Hello world "); uruchomienie funkcji jądra; uruchomienie kodu do testowania i wyjaśniania różnic między następującymi funkcjami języka CUDA C: funkcja jądra, funkcja hosta a funkcja urządzenia (słowa kluczowe: _global_, _device_, _host_); uruchomienie kodu do testowania transferu danych i alokacji obszaru pamięci kart GPU (słowa kluczowe: cudaMallocManaged(), cudaMalloc (), cudaMemcpy (), cudaFree ()); kod do sprawdzania właściwości urządzenia GPU za pomocą funkcji cudaGetDeviceCount i cudaGetDeviceProperties; uruchamianie kodu wykonującego operację dodawania wektorów za pomocą bloków, obliczenia wykonywane równolegle; uruchomienie kodu do dodawania wektorów z wykorzystaniem wątków; uruchomienie kodu, dla wyliczenia iloczynu skalarnego dwóch wektorów z użyciem pamięci współdzielonej (słowo kluczowe: _shared_).

Grupy zajęciowe

zobacz na planie zajęć

Grupa Termin(y) Prowadzący Miejsca Akcje
1 wielokrotnie, sobota (niestandardowa częstotliwość), 10:30 - 12:45, (sala nieznana)
Sebastian Kula 13/ szczegóły
2 wielokrotnie, sobota (niestandardowa częstotliwość), 13:30 - 15:45, (sala nieznana)
Sebastian Kula 13/ szczegóły
Wszystkie zajęcia odbywają się w budynku:
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Kazimierza Wielkiego w Bydgoszczy.