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.
|