Programowanie równoległe / Przetwarzanie równoległe i rozproszone
Prowadzący
- Dr hab. inż. Krzysztof Banaś, prof. AGH
Informacje, ogłoszenia
Korzystanie z udostępnionych serwerów
Konsultacje
Organizacja egzaminu na platformie UPeL
Terminy egzaminów
Materiały dydaktyczne
Wykłady
-
W01 (03.10.2024):
Procesy_watki
, W01.mp4
-
W02 (10.10.2024):
Watki_SPMD
, W02.mp4
-
W03 (17.10.2024):
Wspolbieznosc
, W03.mp4
-
W04 (24.10.2024):
Tworzenie
, W04.mp4
-
W05 (07.11.2024):
Obiekty_Java
, W05.mp4
-
W06 (14.11.2024):
Monitory i zmienne warunku
, W06.mp4
, W07.mp4
-
W07 (21.11.2024):
OpenMP_1
, W08.mp4
-
W08 (28.11.2024):
OpenMP_2
, W09.mp4
-
W09 (05.12.2024):
Zaleznosci
, W10.mp4
-
W10 (12.12.2024):
MPI_Podstawy
, W11.mp4
-
W11 (19.12.2024):
MPI_Komunikacja_grupowa
, W12a.mp4 ,
W12b.mp4
-
W12 (09.01.2025):
MPI_Rozszerzenia
-
W13 (16.01.2025):
Wydajnosc
, W13.mp4
-
W14 (23.01.2025):
Algorytmy_sortowania
-
W15 (23.01.2025):
Sprzęt, alternatywne modele PR
Laboratoria
Podstawą sukcesu jest uważne czytanie instrukcji i dokładna realizacja poleceń, krok po kroku (wszelkie niejasności i uwagi należy zgłaszać prowadzącym)
-
L01:
Pomiar czasu
, pomiar_czasu.tgz
, moj_program.c
, zasady pomiaru czasu
-
L02 (W01):
Procesy_watki - fork_clone
, fork_clone.tgz
, libpomiar_czasu.tgz
-
L03 (W02):
Zarządzanie wątkami POSIX
, pthreads_detach_kill.c
-
L04 (W03):
Wzajemne wykluczanie
, pub_sym_1.c
, pub_sym_2.c
-
L05 (W02, W03, W04):
Dekompozycja
, pthreads_suma.tgz (tworzenie biblioteki pomiaru czasu: pomiar_czasu_lib_create.tgz )
, pthreads_calka.tgz
-
L06 (W05):
Java
, Histogram_test.java, Obraz.java
-
L07 (W05):
Java - zadania, pule wątków
,
java_executor_test.tgz
,
Calka_callable.java
,
scal_tab.java
-
L08 (W06):
Zmienne warunku
, Czyt_Pis_Pthreads.tgz
, bariera.tgz
, ProdKons.tgz
-
L09 (W07, W08):
OpenMP - pętle
,
openmp_petle_simple.c
,
openmp_petle.c
-
L10 (W07, W08, W09):
OpenMP zmienne,
openmp_watki_zmienne.tgz
,
openmp_zaleznosci.c
,
openmp_sortowanie.tgz
,
search_max_openmp.tgz
,
openmp_mat_vec.tgz
-
L11 (W10):
MPI - podstawy
,
MPI_simple.tgz
-
L12 (W11):
MPI - komunikacja grupowa
,
oblicz_PI.c
,
mat_vec_row_MPI.tgz
-
L13 (W13):
Pomiary wydajności
, zasady pomiaru czasu
,
calka_omp.c,
mat_vec_scalability.tgz,
-
L14: Poprawy, zaliczenia;
temat bez sprawozdania (W12):
MPI - rozszerzenia
,
MPI_heat.tgz
Rozdziały 1 i 2 skryptu z Programowania Równoległego i Rozproszonego
Informacje ogólne
Sylabus (IO i IT)
Zasady zaliczenia:
- warunkiem zaliczenia jest ocena
pozytywna z laboratoriów i egzaminu, ocena końcowa - średnia ważona
(egzamin 2/3, laboratoria 1/3)
- egzamin składa się z części
pisemnej (test, pytania otwarte) oraz części ustnej
(w każdym z terminów egzaminu pewne części mogą zostać opuszczone dla wszystkich lub dla wybranych osób)
- warunkiem dopuszczenia do egzaminu
jest zaliczenie laboratoriów
- szczegółowe warunki zaliczenia określa sylabus przedmiotu
Program zajęć
- Wprowadzenie. Modele obliczeń równoległych.
- Tworzenie programów równoległych. Wydajność obliczen równoległych.
- Obliczenia wielowątkowe. Specyfikacja POSIX i biblioteka Pthreads.
- Programowanie wielowątkowe w językach obiektowych - Java.
- Programowanie równoległe w modelu z pamięcia wspólną. Specyfikacja OpenMP.
- Obliczenia równoległe z przesyłaniem komunikatów. Specyfikacja MPI.
- Algorytmy i programy równoległe. Zależności danych, dekompozycja zadania.
Literatura
- Zbigniew Czech, "Wprowadzenie do obliczeń równoległych", PWN, Warszawa 2013
- “Obliczenia równoległe i rozproszone”, red. Karbowski A., Niewiadomska-Szynkiewicz E., Wyd. PW
- Foster I., “Designing and Building Parallel Programs”, książka dostępna w internecie http://www-unix.mcs.anl.gov/dbpp
- Grama A. et al., „Introduction to Parallel Computing” (wyd. 2), Addison-Wesley, 2003
- M. Herlihy, N. Shavit „The Art of Multiprocessor Programming” Elsevier, 2008
(wydanie polskie „Sztuka programowania wieloprocesorowego”, PWN 2010)
- Strony internetowe: www.openmp.org, www.mpi-forum.org
Stronę redaguje: