Techniki programowania równoległego

RSS

Cel przedmiotu

Uzyskanie umiejętności i kompetencji w zakresie tworzenia i oceny programów równoległych z uwzględnieniem aspektów sprzętowych i programowych, w oparciu o odpowiednie modele, narzędzia i środowiska stosowane w obliczeniach równoległych.

Program wykładu

Modele obliczeń równoległych: z przekazywaniem wiadomości| (message passing), z równoległością danych (data paralel), ze wspólną pamięcią (shared memory). Wpływ architektury komputera i środowiska programowania na algorytm równoległy. Metodologia PCAM: dekompozycja, komunikacja, aglomeracja, odwzorowanie. Metryki dla programów równoległych (przyspieszenie, efektywność, część sekwencyjna). Szczegółowa analiza przyspieszania i efektywności obliczeniowej programu równoległego przy stałym i zmiennym rozmiarze problemu. Problem równoważenia obciążenia. Przegląd konstrukcji typowych środowisk programowania z wymiana˛ wiadomości: MPI-1, MPI-2. Inne języki i środowiska programowania równoległego: HPF, OpenMP, Linda. Przykładowe algorytmy równoległe: operacje macierzowe, rozwiązywanie układów równań liniowych, symulacja przepływów metodą automatów komórkowych. Modele teoretyczne CSP, BSP, PRAM. Programowanie szkieletowe, paradygmat MapReduce. Obliczenia typu HPC, HTC i gridowe.

Charakterystyka pozostałych zajęć

W ramach przedmiotu prowadzone są zajęcia laboratoryjne. Treści tych zajęć ugruntowują i rozszerzają wiedzę przekazywaną podczas wykładów, w szczególności w zakresie programowania z wykorzystaniem narzędzi: MPI-1, MPI-2 i OpenMP oraz sposobów oceny tworzonych programów. W szczególności zajęcia te obejmują: badanie komunikacji typu punkt-punkt i grupowych w powiązaniu z architektura˛ dostępnego sprzętu komputerowego, ocenę programów równoległych opracowanych dla problemów naturalnie równoległych i problemów o mniejszym stopniu równoległości w oparciu o typowe metryki, implementację algorytmów równoległych z wykorzystaniem zaawansowanych mechanizmów MPI-1, MPI-2 i typowych mechanizmów synchronizacji w OpenMP.

Bibliografia

1. pod red. A. Karbowskiego, E. Niewiadomskiej-Szymkiewicz: „Programowanie równoległe i rozproszone”, Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2009
2. Z. J. Czech: „Wprowadzenie do obliczeń równoległych", Wydawnictwo Naukowe PWN, 2013
3. Bogdan Borowik „Programowanie równoległe w zastosowaniach”, Mikom 2001
4. J. Foster: „Designing and Building Parallel Programs’‘, Addison-Wesley, 1995 (on-line)
5. M. Snir, S. Otto, S. Huss-Lederman, D. Walker, J. Dongarra, “MPI: the Complete Reference”, The MIT Press, 1995 (on-line)

Wszelkie prawa zastrzeżone © 2010 Katedra Informatyki   |   Akademia Górniczno-Hutnicza   |   Realizacja Creative Bastards