Uniwersytet w Białymstoku - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Programowanie równoległe

Informacje ogólne

Kod przedmiotu: 390-FG1-3PR Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Programowanie równoległe
Jednostka: Wydział Fizyki
Grupy: fizyka gier komputerowych i robotów 3 rok I stopień sem. letni
Punkty ECTS i inne: 3.00
zobacz reguły punktacji
Język prowadzenia: polski
Rodzaj przedmiotu:

obowiązkowe

Wymagania (lista przedmiotów):

Programowanie strukturalne 0900-FG1-1PS

Założenia (opisowo):

Przedmiotem zajęć jest programowanie równoległe. Zostanie omówione programowanie równoległe na maszyny o pamięci współdzielonej, o pamięci rozproszonej, programowanie akceleratorów obliczeń bazujących na kartach graficznych i tworzenie aplikacji wielowątkowych.

Skrócony opis:

Założenia i cele przedmiotu: Ogólna charakterystyka środowiska i programowania równoległego oraz rozproszonego. Współbieżność procesów w systemach operacyjnych i poprawność programu współbieżnego. Wybrane problemy programowania współbieżnego: wzajemnego wykluczania, producenta i konsumenta, ucztujących filozofów. Podstawowe modele obliczeń równoległych, model z pamięcią wspólną, model sieciowy. Elementarne algorytmy równoległe, ocena algorytmów, prawo Amdahla, prawo Gustafsona i Barsisa. Algorytmy dla modelu z pamięcią wspólną i dla modelu sieciowego. Architektura komputerów równoległych, klasyfikacja Flynna, komputery wieloprocesorowe, klastry, sieci połączeń. Programowanie równoległe z użyciem pamięci wspólnej, model obliczeń OpenMP. Programowanie równoległe z przesyłaniem wiadomości, model obliczeń MPI. Wprowadzenie do programowania równoległego wykorzystującego karty graficzne GPU.

Pełny opis:

Profil studiów: ogólnoakademicki

Forma studiów: stacjonarne

Rodzaj przedmiotu: obowiązkowy

Dziedzina i dyscyplina nauki: nauki ścisłe i przyrodnicze, nauki fizyczne, informatyka

Rok studiów, semestr: rok 3, semestr 6

Moduł: narzędzia informatyki

Liczba godzin zajęć dydaktycznych: wykład 15h, laboratorium 30h

Punkty ECTS: 3

Bilans nakładu pracy studenta: wykład (15 godzin), laboratorium (30 godzin), przygotowanie do zajęć (14 godzin), udział w konsultacjach przedmiotowych (3 godziny), przygotowanie do egzaminu końcowego i udział w egzaminie (10+3 godziny).

Wskaźniki ilościowe: wykład (0.6 punktów ECTS), konwersatorium (1.2 punktów ECTS), przygotowanie do zajęć (0.56 punktów ECTS), udział w konsultacjach przedmiotowych (0.12 punktów ECTS), przygotowanie do egzaminu końcowego i udział w egzaminie (0.52 punkty ECTS).

Treści wykładu:

Programowanie równoległe na maszyny z pamięcią współdzieloną

Wprowadzenie do OpenMP

Podstawowe klauzule

Funkcje biblioteczne, zmienne środowiskowe, kontrolowanie uruchomienia i liczby wątków

Zaawansowane klauzule

Programowanie równoległe na maszyny z pamięcią rozproszoną

Wprowadzenie i instalacja MPI

Komunikacja punk-punkt

Prosta komunikacja kolektywna

Komunikacja kolektywna z redukcją

Programowanie równoległe akceleratorów obliczeń

Wprowadzenie do programowania CUDA

Wprowadzenie do programowania OpenCL

Treści laboratorium:

Na laboratorium realizowane są praktycznie treści odpowiadające wykładowi.

Literatura:

Źródła internetowe:

OpenMP: https://www.openmp.org/

Open MPI: https://www.open-mpi.org/

CUDA: https://docs.nvidia.com/cuda/

OpenCL: https://www.khronos.org/opencl/

C++11 threads: https://en.cppreference.com/w/cpp/thread

Efekty uczenia się:

K_W24 - ma podstawową wiedzę z zakresu algorytmiki i struktur danych

Ma podstawową wiedzę zna pojęcia z zakresu programowania równoległego

K_U23 - umie napisać złożony program komputerowy w wybranym języku programowania, skompilować go i uruchomić

Umie napisać program komputerowy ralizujący obliczenia równolegle na wybrane architektury sprzętowe

K_U25 - umie wyszukiwać i wykorzystywać specjalistyczne oprogramowanie komputerowe w zasobach Internetu z poszanowaniem własności intelektualnej oraz zasad użytkowania

K_K05 - potrafi samodzielnie wyszukiwać informacje w literaturze i zasobach Internetu, także w językach obcych

Metody i kryteria oceniania:

Zaliczenie laboratorium odbywa się na podstawie oceny, która uwzględnia:

1. znajomości pojęć i mechanizmów programowania równoległego;

2. umiejętność zastosowania mechanizmów programowania równoległego do konkretnych problemów;

4. umiejętność korzystania z zasobów Internetu;

5. kreatywność w podejściu do rozwiązywanych problemów;

6. prace domowe.

Podstawą zaliczenia laboratorium jest obecność na zajęciach. Dopuszcza się opuszczenie trzech zajęć.

Zaliczenie wykładu odbywa się na podstawie egzaminu końcowego.

Zajęcia w cyklu "Rok akademicki 2020/21" (w trakcie)

Okres: 2020-10-01 - 2021-06-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 30 godzin więcej informacji
Wykład, 15 godzin więcej informacji
Koordynatorzy: Marian Uba
Prowadzący grup: Marian Uba
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin
Rodzaj przedmiotu:

obowiązkowe

Wymagania (lista przedmiotów):

Programowanie strukturalne 0900-FG1-1PS

Tryb prowadzenia przedmiotu:

w sali

Skrócony opis:

Założenia i cele przedmiotu: Ogólna charakterystyka środowiska i programowania równoległego oraz rozproszonego. Współbieżność procesów w systemach operacyjnych i poprawność programu współbieżnego. Wybrane problemy programowania współbieżnego: wzajemnego wykluczania, producenta i konsumenta, ucztujących filozofów. Podstawowe modele obliczeń równoległych, model z pamięcią wspólną, model sieciowy. Elementarne algorytmy równoległe, ocena algorytmów, prawo Amdahla, prawo Gustafsona i Barsisa. Algorytmy dla modelu z pamięcią wspólną i dla modelu sieciowego. Architektura komputerów równoległych, klasyfikacja Flynna, komputery wieloprocesorowe, klastry, sieci połączeń. Programowanie równoległe z użyciem pamięci wspólnej, model obliczeń OpenMP. Programowanie równoległe z przesyłaniem wiadomości, model obliczeń MPI. Wprowadzenie do programowania równoległego wykorzystującego karty graficzne GPU.

Pełny opis:

Profil studiów: ogólnoakademicki

Forma studiów: stacjonarne

Rodzaj przedmiotu: obowiązkowy

Dziedzina i dyscyplina nauki: nauki ścisłe i przyrodnicze, nauki fizyczne, informatyka

Rok studiów, semestr: rok 3, semestr 6

Moduł: narzędzia informatyki

Liczba godzin zajęć dydaktycznych: wykład 15h, laboratorium 30h

Punkty ECTS: 3

Bilans nakładu pracy studenta: wykład (15 godzin), laboratorium (30 godzin), przygotowanie do zajęć (14 godzin), udział w konsultacjach przedmiotowych (3 godziny), przygotowanie do egzaminu końcowego i udział w egzaminie (10+3 godziny).

Wskaźniki ilościowe: wykład (0.6 punktów ECTS), konwersatorium (1.2 punktów ECTS), przygotowanie do zajęć (0.56 punktów ECTS), udział w konsultacjach przedmiotowych (0.12 punktów ECTS), przygotowanie do egzaminu końcowego i udział w egzaminie (0.52 punkty ECTS).

Literatura:

Literatura podstawowa:

Z. Czech. Wprowadzenie do obliczeń równoległych, PWN, Warszawa 2010.

Literatura uzupełniająca:

P. Stpiczyński, M. Brzuszek, Podstawy programowania obliczeń równoległych, UMCS, Lublin 2011.

Sanders Jason, Kandrot Edward: Cuda w przykładach Wprowadzenie do ogólnego programowania procesów GPU, Wydawnictwo Helion, 2012.

Strony internetowe: www.openmp.org, www.mpi-forum.org

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet w Białymstoku.