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

Algorytmy równoległe i rozproszone 1300-Inf12ARiR-SD
Wykład (WYK) Semestr Letni 2023/24

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

Liczba godzin: 15
Limit miejsc: (brak limitu)
Zaliczenie: Zaliczenie na ocenę
Rygory zaliczenia zajęć: zaliczenie na ocenę
Literatura uzupelniająca: 1. Herlichy M., Shavit N. Sztuka programowania wieloprocesorowego, Warszawa: PWN, 2010.
2. J. Sanders, E. Kandrot. CUDA w przykładach. Wprowadzenie do ogólnego programowania procesorów GPU, Helion, 2012 (https://docer.pl/doc/-ncnv01#ncnv01).

Metody dydaktyczne: metody dyskusyjne
metody pracy ze źródłami
wykład kursowy
Metody dydaktyczne - inne: Wykład poparty przykładami wybranych algorytmów i dyskusją ze studentami.
Literatura:

1. Programowanie równoległe i rozproszone. Praca zbiorowaA. Karbowski (red.) E. Niewiadomska-Szynkiewicz (red.), OWPW, 2009 (http://docer.pl/doc/nex0n5e).

2. Czech, Z.J. Wprowadzenie do obliczeń równoległych, Warszawa: PWN, 2010 ((https://docer.pl/doc/-5e011#5e011).

3. Ułasiewicz J. Pakiet Deino MPI jako środowiska programowania równoległego – Instalacja i konfiguracja pakietu (http://jedrzej.ulasiewicz.staff.iiar.pwr.wroc.pl/Komputery-i-Syst-Rownolegle/wyklad/Instalacja-Deino-MPI.pdf).

4. DeinoMPI. The Great and Terrible implementation of MPI-2 (http://mpi.deino.net/).

5. Williams A. Język C++ i przetwarzanie współbieżne w akcji, Helion, 2013 (https://docer.pl/doc/-5nevxn#5nevxn).

6. K. Gregory, A. Miller. C++ AMP: Accelerated Massive Parallelism with Microsoft Visual C++, Microsoft Press, 2012 (https://books.google.pl/books?id=kqpCAwAAQBAJ&pg=PT298&lpg=PT298&dq=gregory+miller+amp+pdf&source=bl&ots=GZNTRrIo6o&sig=ACfU3U3pFN5Fo0pydkwq894Uztb7gstdew&hl=pl&sa=X&ved=2ahUKEwjMmcibpuTkAhXhxIsKHV0JClAQ6AEwEHoECAkQAQ#v=onepage&q=gregory%20miller%20amp%20pdf&f=false).

7. Materiały autorskie prowadzącego (w postaci plików .doc, .docx, .pdf, .jpg, .txt, xls, .xlsx, .xlsm, .zip, .rar, .cpp, .exe).

Efekty uczenia się:

WIEDZA: W1, W2.

UMIEJĘTNOŚCI: U1, U2.

KOMPETENCJE SPOŁECZNE: K1.

Metody i kryteria oceniania:

„2” - Student nie zna i nie charakteryzuje podstawowych pojęć dotyczących zagadnień związanych z programowaniem równoległym, synchronizacją i wymianą informacji w obliczeniach równoległych, programowaniem równoległym na komputerach wieloprocesorowych, elementami programowania równoległego specyficznego dla maszyn z pamięcią wspólną i z pamięcią lokalną

„3” - Student zna i charakteryzuje podstawowe pojęcia dotyczące zagadnień związanych z programowaniem równoległym, wymianą informacji w obliczeniach równoległych

„3.5” - Student zna i charakteryzuje podstawowe pojęcia dotyczące zagadnień związanych z programowaniem równoległym, synchronizacją i wymianą informacji w obliczeniach równoległych, programowania równoległego na komputerach wieloprocesorowych, elementami programowania równoległego

„4” - Student zna i charakteryzuje podstawowe pojęcia dotyczące zagadnień związanych z programowaniem równoległym, synchronizacją i wymianą informacji w obliczeniach równoległych, programowania równoległego na komputerach wieloprocesorowych, elementy programowania równoległego specyficzne dla maszyn z pamięcią wspólną

„4.5” - Student zna i charakteryzuje podstawowe pojęcia dotyczące zagadnień związanych z programowaniem równoległym, synchronizacją i wymianą informacji w obliczeniach równoległych, programowania równoległego na komputerach wieloprocesorowych, elementami programowania równoległego specyficzne dla maszyn z pamięcią wspólną i z pamięcią lokalną

„5” - Student zna i charakteryzuje podstawowe pojęcia dotyczące zagadnień związanych z programowaniem równoległym, synchronizacją i wymianą informacji w obliczeniach równoległych, programowania równoległego na komputerach wieloprocesorowych, elementami programowania równoległego specyficzne dla maszyn z pamięcią wspólną, z pamięcią lokalną, podaje przykłady

Zakres tematów:

Wstępne definicje i pojęcia: powody rozwoju systemów równoległych i rozproszonych; przykłady zastosowania obliczeń równoległych; równoległe metody obliczeniowe: sposoby dekompozycji, równoległej implementacji oraz analizą poprawności, wydajności i złożoności; miary efektywności zrównoleglenia; prawo Amdahla oraz Gustafsona-Barsisa; skalowalność; równoległe i rozproszone systemy obliczeniowe: klasyfikacja, podstawowe architektury i sposoby ich realizacji

Wprowadzenie do programowania równoległego: narzędzia służące do zrównoleglenia; zagadnienia synchronizacji i wymiany informacji w obliczeniach równoległych: podstawowe mechanizmy (zamek, semafor, monitor, bariera), komunikaty (przesyłanie: synchroniczne, asynchroniczne, blokujące, nieblokujące, buforowane).

Programowanie równoległe na komputerach wieloprocesorowych (wielordzeniowych). Programowanie rozproszone w środowiskach sieciowych. Obliczenia z wykorzystaniem wektorowych jednostek wykonawczych; obliczenia z wykorzystaniem kart graficznych. Elementy programowania równoległego specyficzne dla maszyn z pamięcią wspólną, z pamięcią lokalną, sieci komputerowych.

Przegląd środowisk i standardów przetwarzania rozproszonego: C++, C#, VisualStudio, Concurrency Vizualizer, OpenMP, MPI, AMP, CUDA, C++11/14/17/20 (thread), TBB.

Wnioski i podsumowania.

Grupy zajęciowe

zobacz na planie zajęć

Grupa Termin(y) Prowadzący Miejsca Liczba osób w grupie / limit miejsc Akcje
1 co drugi wtorek (nieparzyste), 11:30 - 13:00, sala 109 (PS)
Aleksandra Mreła 5/10 szczegóły
Wszystkie zajęcia odbywają się w budynku:
Budynek przy ulicy M. Kopernika
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 mapa serwisu USOSweb 7.1.1.0-6 (2025-03-04)