Verbesserung der automatischen Verteilung von Java-Programmen durch Laufzeitdaten

wurde bearbeitet von Michael Stiller

JScatter ist ein System, das mehrsträngige Java-Anwendungen automatisch auf verschiedene Rechnerknoten verteilt. Die Verteilungsstrategien werden in einem Verteilungsplan formuliert und bestimmen, wie die Objekte platziert werden. Grundlage für die Verteilungsentscheidungen des Plans sind Daten, die er durch statische Analyse des Eingabeprogramms noch vor der Laufzeit gewonnen hat. Besonders wichtig dabei ist die Abschätzung, wie oft ein bestimmter Programmteil des Eingabeprogramms während der Laufzeit zur Ausführung kommt. Gerade hierbei werden jedoch nur sehr grobe Abschätzungen und Heuristiken verwendet.

Bessere Entscheidungen des Plans ließen sich erzielen, indem man die Abschätzungen des Planes durch präzisere Voraussagen ersetzt. Dies soll dadurch realisiert werden, dass die vorher nur durch Abschätzungen ermittelten Daten während der Laufzeit des Programms gemessen werden und der Plan aufgrund dieser genaueren Daten noch während der Laufzeit seine Verteilungsentscheidungen entsprechend anpaßt.

In diesem neuen Ansatz soll nun das vom Transformator, einer Komponente von JScatter, bereits transformierte Eingabeprogramm so instrumentiert, dass zur Laufzeit vom Verteilungsplan Werte für die Ausführungshäufigkeiten von bestimmten Programmstellen abgefragt werden können. Diese Werte sollen durch Messung und Mittelung der erfaßten Werte genauer sein, als die vorher nur grob vom Verteilungsplan abgeschätzten.

Im Rahmen dieser Diplomarbeit wurde der obige Ansatz untersucht und umgesetzt. Eine umfassende Evaluation von Verteilungsgüte und erreichtem Geschwindigkeitsvorteil wurde ebenfalls durchgeführt.

Impressum | Webmaster | Letzte Änderungen am : 16.10.2013