Programozási modell

Befejeződött

A GraphLab adatmodelljéből ismert, hogy a gráfok több gépre vannak particionálva. A GAS függvények egyes csúcsokon történő végrehajtása során fennáll a közös hatókörű csúcsok közötti olvasás-írás és írás-írás ütközés lehetősége. A GraphLab-motor szinkronizálja a megosztott adathozzáféréseket és gondoskodik a konzisztens párhuzamos végrehajtásról. A GraphLab több gráfvégrehajtási motort is támogat, melyek mindegyikét más szintű konzisztencia jellemzi, így a felhasználók kiválaszthatják az alkalmazásik helyességéhez és teljesítményéhez megfelelő motort. A GraphLab különböző motorok által kínált konzisztencia-szintjeinek megnevezése a következő: teljes konzisztencia, élkonzisztencia és csúcskonzisztencia. Teljes konzisztencia esetén, ahogyan a 8. ábrán látható, az egy csúcsot (csúcs 3) módosító függvény kizárólagos olvasási-írási hozzáféréssel rendelkezik a saját csúcsára, a csatlakozó élekre és a szomszédos csúcsokra (a teljes hatókörére) vonatkozóan. Ez a megoldás erős konzisztenciát és teljes helyességet garantál, de korlátozza a párhuzamosságot és ennek következtében a teljesítményt is. A csúcsok azonban sok MLDM-algoritmusban nem igényelnek kizárólagos olvasási-írási hozzáférést a teljes hatókörükhöz. A PageRank algoritmus például csak olvasási hozzáférést igényel a szomszédos élekhez és csúcsokhoz.

Emiatt a párhuzamosság növelése és a különböző MLDM-algoritmusokhoz illő konzisztencia-beállítások tágabb körének támogatása érdekében a GraphLab az élkonzisztenciát és a csúcskonzisztenciát is ismeri. Élkonzisztencia esetén az egy csúcsot módosító függvénynek kizárólagos olvasási-írási hozzáférése van a csúcshoz és a csatlakozó élekhez, de csak olvasási hozzáférése a szomszédos csúcsokhoz. Ez a protokoll egyértelműen gyengíti a konzisztenciát, és a párhuzamosság jobb kihasználását teszi lehetővé. Csúcskonzisztencia esetén az egy csúcsot módosító függvény csak a saját csúcsához rendelkezik kizárólagos írási hozzáféréssel, így az összes módosító függvény egyidejűleg futhat. Ez a képesség kínálja a legnagyobb elérhető párhuzamosságot, de ennek áraként a leggyengébb konzisztenciát is. A GraphLab felhasználói kiválaszthatják azt a motort, amely megvalósítja az alkalmazásaikhoz jól használhatónak ítélt konzisztenciamodell és a teljesítmény egyensúlyát.

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.

8. ábra: A GraphLab által garantált teljes konzisztencia, élkonzisztencia és csúcskonzisztenciamodellek. A teljes konzisztencia modell a legerősebb, a csúcskonzisztencia pedig a leggyengébb. A gyengébb konzisztencia jobb párhuzamossággal jár és fordítva.

A megosztott memória szemlélet részeként a GraphLab a helyi memóriákban tárolja a szellemeket. A szellemek az egyes csúcsok szomszédossági információi és adatai. A csúcsokban a szellemek biztosítják, hogy a csúcs módosító függvénye közvetlenül a memóriában férjen hozzá a hatókörén belüli összes adathoz.

Tesztelje tudását

1.

Az alábbi gráfban a teljes konzisztencia modell szerint legfeljebb hány csúcs olvashat vagy írhat párhuzamosan adatokat egy adott időpontban?

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.