Uniwersytet Warszawski - Centralny System Uwierzytelniania
Strona główna

Przetwarzanie dużych danych i programowanie na klastrach

Informacje ogólne

Kod przedmiotu: 1000-218bPDD
Kod Erasmus / ISCED: 11.3 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0612) Database and network design and administration Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
Nazwa przedmiotu: Przetwarzanie dużych danych i programowanie na klastrach
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty obieralne dla informatyki
Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka
Przedmioty obieralne z grupy programowania współbieżnego i rozproszonego
Punkty ECTS i inne: 6.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
Język prowadzenia: angielski
Rodzaj przedmiotu:

obowiązkowe

Skrócony opis:

Zaprezentujemy techniki i narzędzia przetwarzania dużych zbiorów danych (ang. Big data) przy pomocy klastrów złożonych z prostych maszyn. Najważniejsze omawiane narzędzia to Hadoop i Spark. Przedstawimy architekturę tych systemów oraz stosowane modele programistyczne MapReduce i Resilient Distributed Dataset. Omówimy najważniejsze techniki algorytmiczne oraz metody analizy i porównywania algorytmów. Zwrócimy uwagę na typowe problemy (np. synchronizacja zegarów maszynowych) i wąskie gardła (np. ograniczenia pamięciowe fazy redukcji w modelu MapReduce) oraz pokażemy najważniejsze metody radzenia sobie z nimi. Przedmiot będzie łączył zagadnienia praktyczne z wybranymi wynikami teoretycznymi.

Pełny opis:

1. Hadoop Distributed File System (HDFS)

2. Model MapReduce

3. Podstawowe techniki algorytmiczne dla modelu MapReduce i metody analizy algorytmów na przykładzie typowych problemów (mnożenie macierzy i wielozłączenia; algorytmy minimalne: sortowanie, ranking i idealny podział; zliczanie trójkątów w dużych grafach)

- koszt obliczenia vs koszt komunikacji

- całkowity vs mijający koszt komunikacji (ang. total vs elapsed communication cost)

- metody ograniczania pamięci reducera

- metody radzenia sobie ze skew

4. Metody efektywnej i uniwersalnej serializacji danych (na przykładzie systemu Avro)

5. Chmury obliczeniowe Amazon, Google, Microsoft, IBM

6. Rozproszone przetwarzanie dużych grafów (model BSP i Pregel)

7. Przykłady najważniejszych problemów na dużych grafach, np. PageRank i community detection

8. Spark i model Resilient Distributed Dataset

9. Kolumnowy format danych (na przykładzie Parquet)

10. Spark SQL i optymalizator Catalyst"

wymaganiami określonymi dla poziomu B2+ Europejskiego Systemu Opisu Kształcenia Językowego, w szczególności: identyfikuje główne i poboczne tematy wykładów, pogadanek, debat akademickich, dyskusji, czyta ze zrozumieniem i krytycznie analizuje teksty akademickie, zabiera głos w dyskusji lub debacie naukowej, streszcza ustnie informacje, wyniki badań, opinie i argumenty autora zawarte w tekście naukowym [K_U14].

4. Potrafi dokonać analizę złożoności algorytmu rozproszonego, porównać takie algorytmy oraz dobrać właściwy w zależności od problemu.

5. Potrafi wyrażać problemy w modelach obliczeń rozproszonych takich jak MapReduce.

6. Potrafi diagnozować wąskie gardła w algorytmach rozproszonych.

7. Posługuje się technologiami Hadoop i Spark.

8. Potrafi serializować/deserializować dane w przy pomocy frameworków sekwencyjnych i kolumnowych jak Avro i Parquet (KU_08)6. Potrafi skonfigurować klaster obliczeniowy przy pomocy frameworków Hadoop i Spark.

9. Potrafi uruchamiać programy na chmurze obliczeniowej.

10. Potrafi posługiwać się przewodnikami dla programistów dotyczącymi technologii rozproszonych.

Kompetencje

1. Zna najważniejsze biblioteki z algorytmami do przetwarzanie dużych danych, np. Spark GraphX, Spark MLlib, Apache Mahout

2. Potrafi odnajdywać informacje o przyczynach problemów i błędów na internetowych serwisach jak Stack Overflow

Literatura:

- Data-Intensive Text Processing with MapReduce, Jimmy Lin and Chris Dyer. Morgan & Claypool Publishers, 2010

- Mining of Massive Datasets. Anand Rajaraman, WalmartLabs, Jeffrey David Ullman, Stanford University, California

- Hadoop: The Definitive Guide, 4th Edition, Storage and Analysis at Internet Scale, Tom White, O'Reilly Media, 2015

Efekty uczenia się:

Wiedza:

1. Zna techniki synchronizacji procesów i komunikacji międzyprocesowej w scentralizowanym i rozproszonym modelu programu współbieżnego [K_W04].

2. Zna algorytmy wzajemnego wykluczania i uzgadniania w systemach rozproszonych [K_W05].

3. Potrafi wyrazić w modelu MapReduce podstawowe operacje na danych takie jak operacje algebry relacji czy mnożenia macierzy przez wektor.

4. Ma wiedzę na temat analizy złożoności algorytmów rozproszonych i algorytmów przetwarzających duże dane.

5. Ma wiedzę na temat podstawowych technik algorytmicznych związanych z algorytmami rozproszonymi takich jak algorytmy minimalne.

6. Ma wiedzę na temat ogólnodostępnych chmur obliczeniowych.

7. Ma wiedzę na temat przenośnych metod serializacji danych.

Umiejętności

1. potrafi zastosować mechanizmy synchronizacji procesów i wątków w wybranych technologiach w zależności od architektury i możliwości konkretnego komputera [K_U06].

2. posługuje się nowoczesnymi technologiami rozpraszania i zrównoleglania obliczeń [K_U08].

3. ma umiejętności językowe w zakresie informatyki zgodne z wymaganiami określonymi dla poziomu B2+ Europejskiego Systemu Opisu Kształcenia Językowego, w szczególności: identyfikuje główne i poboczne tematy wykładów, pogadanek, debat akademickich, dyskusji, czyta ze zrozumieniem i krytycznie analizuje teksty akademickie, zabiera głos w dyskusji lub debacie naukowej, streszcza ustnie informacje, wyniki badań, opinie i argumenty autora zawarte w tekście naukowym [K_U14].

4. Potrafi dokonać analizę złożoności algorytmu rozproszonego, porównać takie algorytmy oraz dobrać właściwy w zależności od problemu.

5. Potrafi wyrażać problemy w modelach obliczeń rozproszonych takich jak MapReduce.

6. Potrafi diagnozować wąskie gardła w algorytmach rozproszonych.

7. Posługuje się technologiami Hadoop i Spark.

8. Potrafi serializować/deserializować dane w przy pomocy frameworków sekwencyjnych i kolumnowych jak Avro i Parquet (KU_08)6. Potrafi skonfigurować klaster obliczeniowy przy pomocy frameworków Hadoop i Spark.

9. Potrafi uruchamiać programy na chmurze obliczeniowej.

10. Potrafi posługiwać się przewodnikami dla programistów dotyczącymi technologii rozproszonych.

Kompetencje

1. Zna najważniejsze biblioteki z algorytmami do przetwarzanie dużych danych, np. Spark GraphX, Spark MLlib, Apache Mahout

2. Potrafi odnajdywać informacje o przyczynach problemów i błędów na internetowych serwisach jak Stack Overflow

Metody i kryteria oceniania:

Laboratorium zaliczane jest na podstawie dużych zadań programistycznych oraz punktów za prace na zajęciach. Do egzaminu w pierwszym terminie dopuszczone są osoby, które otrzymały przynajmniej połowę punktów z programistycznych zadań zaliczeniowych. Duże zadania programistyczne oddawane po terminie będą karane obcięciem części punktów lub, w przypadku dużego spóźnienia, pozostawiane bez oceny. Ocena z pierwszego terminu wystawiana jest za punkty z labu i egzaminu w sumie. Ocena z drugiego terminu wystawiana jest tylko za punkty z egzaminu.

Dla doktorantów dodatkowym warunkiem zaliczenia jest przeczytanie i zreferowanie świeżej pracy naukowej z tematyki przedmiotu (wybór pracy należy uzgodnić z prowadzącym przedmiot).

Zajęcia w cyklu "Semestr letni 2023/24" (zakończony)

Okres: 2024-02-19 - 2024-06-16
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Jacek Sroka
Prowadzący grup: Grzegorz Bokota, Jacek Sroka
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin

Zajęcia w cyklu "Semestr letni 2024/25" (jeszcze nie rozpoczęty)

Okres: 2025-02-17 - 2025-06-08

Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Jacek Sroka
Prowadzący grup: Grzegorz Bokota, Jacek Sroka
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.
ul. Banacha 2
02-097 Warszawa
tel: +48 22 55 44 214 https://www.mimuw.edu.pl/
kontakt deklaracja dostępności mapa serwisu USOSweb 7.1.0.0-895557ea9 (2024-09-26)