Automatische Verteilung mehrsträngiger Java-Programme / von Dinh Khoi Le. 2006
Inhalt
- 1 Einleitung
- 2 Java und sein Modell zur verteilten Ausführung
- 2.1 Multithreading-Konzept und die parallele Programmierung
- 2.1.1 Prozesse und ihre Interaktion
- 2.1.2 Java-Threads und das Multithreading-Konzept
- 2.1.3 Unterstützung der parallelen Programmierung
- 2.2 Kommunikation mittels Java Remote Method Invocation
- 2.2.1 Konzept von Java-RMI
- 2.2.2 Objekt-Serialisierung
- 2.2.3 Semantische Unterscheidung zwischen verteiltem und lokalem Objektmodell
- 2.3 Multithreaded Java-Programme und ihre Ausführungsmodelle
- 3 Grundüberlegungen zur automatischen Verteilung
- 3.1 Manuelle Verteilung eines mehrsträngigen Java-Programms
- 3.2 Konzept zur automatischen Verteilung
- 4 Verwandte Arbeiten
- 4.1 Existierende Systeme, Frameworks und Bibliotheken
- 4.1.1 Systeme mit Sprachänderung
- 4.1.2 Systeme und Bibliotheken mit Semantik-Änderung
- 4.1.3 Systeme mit statisch basierter Verteilungsentscheidung
- 4.1.4 Systeme mit dynamisch basiertem Ansatz
- 4.1.5 Andere Systeme
- 4.1.6 Systeme für High-Performance Java - Datenparallel
- 4.2 Kommunikationsmodelle und -techniken
- 4.3 Vergleiche - Überblicke
- 5 Verteilungsstrategien und Verteilungsplan: Konzept und Modellierung
- 5.1 Modell zur automatischen Verteilung mittels Programmanalyse
- 5.1.1 Programmanalyse zur Berechnung der Programmeigenschaften
- 5.1.2 Anforderungen vor der Laufzeit
- 5.1.3 Aufgaben zur Laufzeit
- 5.2 Verteilungsplan: die Komponenten, deren Modellierung und verwendete Konzepte
- 5.2.1 Modellierung von Verteilungsvorschriften als ODFs
- 5.2.2 Modellierung der Verteilungsstrategien
- 5.2.3 Modell eines Verteilungsplanes
- 5.2.4 Andere Komponenten
- 5.3 Grundlegende Objektverteilungsfunktionen
- 5.3.1 Statische Verteilungsfunktionen
- 5.3.2 Basis-Verteilungsfunktionen
- 5.3.3 Dynamische Verteilungsfunktionen
- 5.4 Spezielle Verteilungsstrategien
- 5.4.1 Statische Verteilungsstrategien
- 5.4.2 Basis-Verteilungsstrategien
- 5.4.3 Strategien mit dynamischen Entscheidungen
- 5.5 Konkrete Verteilungspläne
- 6 Analysetechniken zur automatischen Verteilung
- 6.1 Charakteristiken der statischen Programm- und Laufzeiteigenschaften
- 6.2 Dynamische Programmeigenschaften und das Kostenmodell zur Objektverteilung
- 6.3 Grundlegende statische Analysen
- 6.3.1 Aufrufgraph-Analyse zur Auflösung dynamischer Methodenbindung
- 6.3.2 Interprozedurale Def-Use-Analyse (GlobalDefUse-Analyse)
- 6.3.3 Analysetechniken zur Berechnung der Programmeigenschaften
- 6.4 Analyseverfahren zur stagewise-immutable Eigenschaft
- 6.4.1 Die stagewise-immutable Eigenschaft und ihre Anwendung zur Objektreplikation
- 6.4.2 Analysetechniken zur Berechnung der stagewise-immutable Eigenschaft
- 6.4.3 Analyse zur pure-immutable Eigenschaft
- 6.5 Verwandte Arbeiten
- 7 Infrastruktur und Realisierung des Systems JScatter
- 7.1 Die PAULI - Analyseumgebung
- 7.2 Programmtransformation
- 7.3 Berechnung der Programmeigenschaften
- 7.4 Verteilte Laufzeitumgebung
- 7.5 Systemvoraussetzungen und Verbesserungen
- 8 Evaluation
- 8.1 Vorstellung der Anwendungen und Benchmarks - Vorbereitung zur Evaluation
- 8.1.1 Ein Anwendungsgebiet: diskrete ereignisbasierte Simulation
- 8.1.2 Untersuchte Simulations- und Benchmark-Programme
- 8.1.3 Eingesetzte Hardware und Software
- 8.2 Empirische Untersuchung der stagewise-immutable Eigenschaften
- 8.2.1 Analyseergebnisse der Anwendungen
- 8.2.2 Analyseergebnisse der Anwendungen zusammen mit ihren transitiven Hüllen
- 8.3 Empirische Untersuchungen zur Performanz der verteilten Anwendungen
- 8.3.1 Grocery-Simulation
- 8.3.2 Multithreaded Raytracer (mtrt) aus dem SPECjvm98
- 8.3.3 Das Traveling Salesperson-Problem (TSP)
- 8.4 Die Erkenntnisse
- 9 Zusammenfassung
- A Verzeichnisse
