Programowanie równoległe i rozproszone

Wykłady i laboratoria, AMW, WNiUO, 2018

Zagadnienia i sposób zaliczenia:

Tematy zadań

  1. Programowanie współbieżne i równoległe. Wątki i procesy.
    • Napisać programy do sekwencyjnego i współbieżnego (równoległego) pobierania danych z internetu (np. obraz, plik tekstowy);
    • Napisać programy do sekwencyjnego i współbieżnego (równoległego) obliczania funkcji lub ciągu matematycznego (np. silnia, ciąg Fibonnaciego, liczby pierwsze);
    • Należy porównać czasy wykonań obu wersji danego programu.
  2. Komunikacja i synchronizacja między wątkami.
    • Napisać program wykorzystujący synchronizację między wątkami do realizacji określonego zadania;
    • Ww. program należy pozbawić synchronizacji wątków i zapisać pod nową nazwą;
    • Należy porównać wyniki wykonań obu programu.
  3. Web Scraping
    • Napisać program wykorzystujący ideę web-scrapingu do pobierania konkretnych danych ze strony WWW;
    • Spróbowac uruchomić ww. program na kilku wątkach, przy czym każdy wątek wykonuje inne zadanie.
  4. Zadania do samodzielnego wyboru
    • laboratoria 4 - 8 zrealizowane w wybranej technologii;
    • tematyka i materiał przesłane za pomocą Slack’a;
    • oprócz działającego programu, należy na repozytorium przesłać krótkie podsumowanie danego laboratorium.
  5. Propozycje zagadnień:
    • Zastosowanie wybranych mechanizmów synchronizacji wątków: lock, mutex, semaphore.
    • Kolejkowanie zadań za pomocą message brokera (np. RabbitMQ, Redis, Celery itp.)
    • Asynchroniczność z async/await
    • Przetwarzanie danych za pomocą Apache Hadoop
    • Użycie Web Sockets
    • Użycie architektury CUDA do obliczeń równoległych
    • Implementacja protokołu JSON-RPC
    • Porównanie implementacji synchronicznej i asynchronicznej wybranego problemu.

Zasady zaliczenia przedmiotu

  1. Dowolny język do realizacji zadania.
  2. Zadanie należy zrealizować do następnych zajęć - max. 5 punktów,
    • Tydzień opóźnienia w realizacji zadania - max. 3 punkty,
    • Przekroczenie obu terminów - max. 1 punkt.
  3. Zrealizowane zadanie należy umieścić na portalu GitHub (lub BitBucket) i wysłać link do repozytorium do prowadzącego (Slack).
  4. Należy wykonać zrzuty ekranu z wynikami i również umieścić je w repozytorium.
  5. Zadanie należy zaprezentować osobiście prowadzącemu (najlepiej na bieżących lub kolejnych zajęciach).

Punkty i oceny

Liczba punktówOcena
35 - 405
29 - 344,5
24 - 284
19 - 233,5
15 - 183
0 - 142