Porównanie rozproszonych aparatów analitycznych

Ukończone

W tym miejscu zakończymy omówienie rozproszonych aparatów analitycznych dla chmury, w którym prezentowane są usługi Hadoop MapReduce, Spark i GraphLab jako efektywne i popularne platformy do programowania rozproszonego. Każdy z tych trzech aparatów wyręcza użytkownika w następujących kwestiach związanych z obliczaniem rozproszonym:

  • Projektowanie i wdrażanie odpowiedniego modelu programowania (przekazywanie komunikatów lub pamięć współdzielona) oraz rozwiązywanie wszystkich powiązanych problemów z synchronizacją i spójnością
  • Opracowywanie modelu obliczeniowego (synchronicznego lub asynchronicznego)
  • Określanie modelu równoległości (równoległość grafów, równoległość danych, iteracyjny) oraz kodowanie niezbędnych algorytmów partycjonowania i mapowania
  • Projektowanie podstawowej struktury architektonicznej (nadrzędno-podrzędnej lub równorzędnej)
  • Wdrożenie efektywnej strategii planowania zadań/wierzchołków (opartej na wypychaniu lub ściąganiu)

W poniższej tabeli porównano trzy aparaty pod względem tych zagadnień. W usługach MapReduce i Spark stosowany jest model danych równoległych, a programy GraphLab są wykonywane w modelu grafów równoległych. Usługi MapReduce i Spark sugerują synchroniczne modele obliczeniowe, a narzędzie GraphLab udostępnia użytkownikowi aparaty zarówno synchroniczne, jak i asynchroniczne. Usługa MapReduce jest odpowiednia dla aplikacji, które są względnie luźno połączone lub zaskakująco równoległe (z małą liczbą zależności/komunikatów między równoległymi zadaniami lub bez nich) i obejmują nieiteracyjne obliczenia z dużymi woluminami danych. Usługa Spark optymalizuje model usługi MapReduce dla aplikacji wymagających iteracyjnego stosowania mapowania i ograniczenia funkcji do danych. Z kolei narzędzie GraphLab jest bardziej odpowiednie w przypadku silnie połączonych aplikacji (o wysokim stopniu zależności między równoległymi zadaniami/wierzchołkami) i aplikacji obejmującymi iteracyjne obliczenia z małą ilością danych na zadanie/wierzchołek. Narzędzie GraphLab obejmuje również konkretne optymalizacje, które umożliwiają zrównoważoną i wydajną dystrybucję zadań między węzłami przetwarzania grafów z rozkładem wykładniczym, takich jak grafy społecznościowe i sieci Web.

Oto porównanie rozproszonych aparatów analitycznych:

MapReduce platforma Spark GraphLab
Model programowania Przekazywanie komunikatów Przekazywanie komunikatów Przekazywanie komunikatów
Model obliczeniowy Synchronous Synchronous Synchroniczny i asynchroniczny
Model równoległości Dane równoległe Iteracyjny z danymi równoległymi Grafy równoległe
Model architektoniczny Nadrzędno-podrzędny Nadrzędno-podrzędny Równorzędny
Model planowania zadań lub wierzchołków Oparty na ściąganiu Oparty na ściąganiu Oparty na wypychaniu

Sprawdź swoją wiedzę

1.

Które z następujących platform najlepiej nadają się do obliczenia najkrótszych ścieżek dla wszystkich par (ang. all-pairs shortest paths, APSP) na ważonym, w pełni połączonym grafie?