Automatische Partitionierung partiell replizierter Objekte in JavaParty

  • JavaParty unterstützt datenparallele Berechnungen auf verteilten Objektgraphen. Hierfür werden kollektiv replizierte Objekte verwendet. Mit einem kollektiv replizierten Objekt lässt sich eine über mehrere Rechenknoten verteilte Datenstruktur realisieren, die in einer datenparallelen Operation durch mehrere Kontrollfäden parallel modifiziert werden kann. Parallel ausgeführte Modifikationen werden danach in einer kollektiven Operation zu einem konsistenten Gesamtzustand verschmolzen.

    Bisher muss die Anwendung die Verteilung des kollektiv replizierten Objektgraphen auf die Rechenknoten explizit angeben. Um optimale Effizienz zu erreichen, muss dabei die zu kommunizierende Datenmenge und die Anzahl der auf Veränderung zu prüfenden Replikate während des kollektiven Update minimiert werden. Dies wird erreicht, indem das replizierte Objekt so auf die Rechenknoten verteilt wird, dass möglichst kleine replizierte Überlappungsbereiche entstehen.

    Ziel dieser Arbeit ist es den Anwender bei der Optimierung der Partitionierung seiner replizierten Daten zu unterstützen. Dazu sollen Graphpartitionierungsalgorithmen zum Einsatz kommen, die für beliebige replizierte Objekte einer Anwendung eine gute Partition der Datenstruktur für die zur Verfügung stehenden Rechenknoten bestimmen. Damit soll erreicht werden, dass die Partition der Daten unabhängig von der Anwendung ermittelt werden kann. Eine geeignete Schnittstelle zwischen der Partitionierungsbibliothek und der Anwendung ist zu entwerfen. Über diese Schnittstelle kann die Anwendung dem Partitionierungsalgorithmus Informationen über zusammen benötigte Objekte mitteilen. Umgekehrt muss der Partitionierungsalgorithmus als Ergebnis der Anwendung mitteilen, welche Objekte auf welche Rechenkonten verteilt wurden.