Uniwersytet Kazimierza Wielkiego - Centralny System Uwierzytelniania
Strona główna

Systemy rozproszone 1300-Inf3SR-NP
Laboratorium (LAB) Rok akademicki 2018/19

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.

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

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

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.

Metody i kryteria oceniania:

kolokwium zaliczeniowe (ustne oraz praca na komputerze)

Zakres tematów:

Zapoznanie studentów ze sprzętem firmy NVIDIA. Wprowadzenie do narzędzia NVIDIA GPU Computing SDK poprzez uruchomienie wybranych plików wykonywalnych (np. Device Query lub CUDA FFT Ocean) dostępnych w przeglądarce firmy NVIDIA.

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: 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 skalarnego produktu 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 Liczba osób w grupie / limit miejsc Akcje
1 (brak danych), (sala nieznana)
Sebastian Kula 23/ szczegóły
2 (brak danych), (sala nieznana)
Sebastian Kula 0/ 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.
J.K. Chodkiewicza 30
85-064 Bydgoszcz
tel: +48 52 32 66 429 https://ukw.edu.pl
kontakt deklaracja dostępności USOSweb 7.0.3.0 (2024-03-22)