Advanced Distributed Algorithms

Język wykładowy Angielski
Semestr Letni
Status W ofercie
Opiekun Tomasz Jurdziński
Liczba godzin 30 (wyk.) 30 (ćw.)
Rodzaj I2.T - teoria inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Tagi SY (systemy sieciowe i komputerowe) AZ (algorytmika i złożoność obliczeniowa)

Opis przedmiotu:

Obliczenia rozproszone stanowią obecnie naturalny sposób przetwarzania informacji – od sieci globalnych jak Internet do systemów wieloprocesorowych czy wielordzeniowych. Środowisko rozproszone daje możliwość przyspieszenia obliczeń dzięki podziale zadań na wiele komputerów. Jednocześnie dane, na których prowadzone są obliczenia są często rozproszone w sieci (niedostępne w całości poszczególnym komputerom), co stanowi istotne utrudnienie i wymaga kosztownej komunikacji. Dlatego oprócz czasu obliczeń i zużywanej lokalnie pamięci, w konstrukcji algorytmów rozproszonych kluczowe są też inne miary jakości, m. in.: * liczba rund komunikacji koniecznych do zakończenia obliczeń, * rozmiar przesyłanych pojedynczych wiadomości jak i sumaryczny ruch w sieci konieczny do rozwiązania problemu, * opóźnienia (latency) w dostarczaniu wiadomości, * stabilizacja (osiągnięcie stabilnego pożądanego stanu obliczeń). Celem wykładu jest zapoznanie studentów z najpopularniejszymi obecnie modelami obliczeń rozproszonych oraz problemami **algorytmicznymi** w nich występującymi. W szczególności wykład skoncentrowany będzie na rozwiązywaniu problemów grafowych w środowisku rozproszonym, a także na problemach algorytmicznych związanych komunikacją i koordynacją współpracujących jednostek, odpornościa na błędy, współdzieleniem łączy komunikacyjnych i innych zasobów. Rozważane będą klasyczne modele obliczeń rozproszonych (Local, Congest, pamięć dzielona) jak i nowsze (Congested Clique, radio/wireless networks, MapReduce). Wykład obejmować będzie m.in. następujące problemy w różnych modelach obliczeń **rozproszonych** : 1. Rozproszone kolorowanie grafu (sieci) 2. Wyznaczenie składowych spójności grafu, (minimalnych) drzew spinających, BFS 3. Wyznaczanie najkrótszych ścieżek, problemy rutingu 4. Wyznaczanie maksymalnego zbioru niezależnego, minimalnego zbioru dominującego 5. Wyznaczanie minimalnych/maksymalnych cięć w grafie 6. Klastrowanie i dekompozycja sieci 7. Rozgłaszanie (broadcasting) i zbieranie (gathering) informacji, elekcja lidera, łamanie symetrii w sieciach (ad hoc). 8. Problemy algorytmiczne w środowisku z pamięcią dzieloną. Tematyka wykładu będzie zbliżona m.in. do wykładów: * [ETH](https://disco.ethz.ch/courses/podc/) * [Aalto](https://users.ics.aalto.fi/suomela/da/) * [Yale](http://www.cs.yale.edu/homes/aspnes/classes/465/notes.pdf) Na wykładzie przyjmuje się, że studenci znają materiał z przedmiotu Algorytmy i Strutkury Danych, posiadają też podstawową wiedzę z rachunku prawdopodobieństwa. Uwaga. Program przedmiotu nie pokrywa się z programem przedmiotu _Algorytmy rozproszone_ prowadzone. Studenci mogą zaliczać oba przedmioty. **Literatura** 1. David Peleg. Distributed Computing: A Locality-Sensitive Approach Society for Industrial and Applied Mathematics (SIAM), 2000, ISBN 0-89871-464-8 2. Hagit Attiya, Jennifer Welch. Distributed Computing: Fundamentals, Simulations and Advanced Topics McGraw-Hill Publishing, 1998, ISBN 0-07-709352 6 3. Juraj Hromkovic, Ralf Klasing, Andrzej Pelc, Peter Ruzicka, Walter Unger. Dissemination of Information in Communication Networks Springer-Verlag, Berlin Heidelberg, 2005, ISBN 3-540-00846-2 4. Skrypty do wymienionych powyżej wykładów na różnych uczelniach. ###### Przewidywana formie zajęć w przypadku konieczności prowadzenia zajęć zdalnie: - wykłady i ćwiczenia będą prowadzone w formie wideokonferencji.