Model programowania

Ukończone

Pamiętaj, że w modelu danych GraphLab grafy są podzielone na partycje między wiele maszyn. Podczas wykonywania funkcji GAS na poszczególnych wierzchołkach istnieją potencjalne konflikty typu odczyt-zapis i zapis-zapis między wierzchołkami należącymi do jednego zakresu. Aparat GraphLab synchronizuje dostęp do udostępnionych danych i zapewnia spójne wykonywanie równoległe. W szczególności oprogramowanie GraphLab obsługuje różne aparaty wykonywania grafów, z których każdy ma różne poziomy spójności, dzięki czemu użytkownicy mogą wybrać odpowiedni aparat zapewniających poprawne działanie i wydajność w aplikacjach. Różne koncepcje spójności oferowane przez narzędzie GraphLab w ramach różnych aparatów to: pełna spójność, spójność krawędzi i spójność wierzchołków. Jak pokazano na rysunku 8, zgodnie z modelem pełnej spójności, funkcja aktualizacji poszczególnych wierzchołków (wierzchołek 3) ma wyłączny dostęp do odczytu-zapisu do własnego wierzchołka, sąsiednich krawędzi oraz sąsiednich wierzchołków (cały zakres). To rozmieszczenie gwarantuje wysoką spójność i pełną poprawność, ogranicza równoległość, a w związku z tym wydajność. Jednak wierzchołki w wielu algorytmach MLDM w rzeczywistości nie wymagają wyłącznego dostępu do odczytu-zapisu do całego swojego zakresu. Na przykład algorytm PageRank wymaga tylko dostępu do odczytu do sąsiednich krawędzi i wierzchołków.

Tak więc w celu zwiększenia równoległości i obsługi szerszego zakresu ustawień spójności dostosowanych do różnych aplikacji MLDM, narzędzie GraphLab oferuje koncepcje spójności krawędzi i wierzchołków. Zgodnie z modele spójności krawędzi funkcja aktualizacji w wierzchołku ma wyłączny dostęp do odczytu-zapisu do wierzchołka i sąsiednich krawędzi, ale ma dostęp tylko do odczytu do sąsiednich wierzchołków. Można zauważyć, że ten protokół osłabia spójność i zapewnia lepsze wykorzystanie równoległości. Zgodnie z modelem spójności wierzchołków funkcja aktualizacji w wierzchołku ma wyłączny dostęp do zapisu tylko do własnego wierzchołka, co umożliwia jednoczesne uruchamianie wszystkich funkcji aktualizacji. Ta funkcja zapewnia maksymalną możliwą równoległość, ale kosztem mniejszej spójności. Użytkownicy narzędzia GraphLab mogą wybrać aparat równoważący wydajność z wymaganym modelem spójności, który jest odpowiedni dla ich aplikacji.

The full consistency, the edge consistency, and the vertex consistency models guaranteed by GraphLab. The full consistency model is the strongest, and the vertex consistency is the most relaxed one. As consistency is relaxed, parallelism is increased and vice versa.

Rysunek 8. Pełna spójność, spójność krawędzi i modele spójności wierzchołków gwarantowane przez narzędzie GraphLab. Model pełnej spójności jest najsilniejszy, a model spójności wierzchołków jest najbardziej swobodny. Spójność jest niższa, a równoległość jest większa i odwrotnie.

W ramach widoku pamięci współdzielonej program GraphLab przechowuje duplikaty w pamięciach lokalnych. Duplikaty są informacjami o sąsiednich elementach i danych poszczególnych wierzchołków. Duplikat wierzchołka gwarantuje, że funkcja aktualizacji wierzchołka ma bezpośredni dostęp do wszystkich danych w pamięci należących do zakresu.

Sprawdź swoją wiedzę

1.

Dla poniższego grafu, zgodnie z modelem pełnej spójności, jaka jest maksymalna liczba wierzchołków, które mogą jednocześnie równolegle odczytywać lub zapisywać dane?

Diagram of graph showing vertex V1 connected to V2, V3, and V6; then vertex V2 connected to V4 and V3 connected to V4 and V5.