JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen...

30
JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik und Rechnerorganisation/ Parallelrechnerarchitektur Themensteller:Prof. Dr. Michael Gerndt (SS 2001)

Transcript of JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen...

Page 1: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

JAVA/DSMA Platform for Heterogeneous

ComputingSerge F. Possono M.

Technische Universität Muenchen (TUM)Lehr- und Forschungseinheit Informatik X Rechnertechnik

und Rechnerorganisation/ Parallelrechnerarchitektur Themensteller:Prof. Dr. Michael Gerndt

(SS 2001)

Page 2: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Übersicht

TUM

- Design von JAVA/DSM

- Einige Programmiermodelle(DSM)

- Motivationen

Page 3: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Problemstellung

• Hardware Unterschiede

-Verschiedene Darstellung von Daten

-Kodeanpassung für jede Architektur

Page 4: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

• Verteilte Beschaffenheit des Systems

-heterogene Systeme sind auch verteilte Systeme

-Notwendigkeit von Kommunikation zwischen Maschinen

-Konvertierung von komplexen Daten

Page 5: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Einige Programmiermodelle

• Message Passing

- message passing libraries

.Basisfunktionen: send(), receive()

.Datenkonvertierungsroutinen:

pack(), unpack()

.Keine Unterstützung von komplexen Daten

Page 6: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

-Remote procedure call (RPC)

.Schnittstelle mit spezifischen Funktionen

.automatisches Ein-/ und Auspacken von Nachrichten

. Definition der Schnittstelle

.Sichtbarkeit des Darstellungsunterschiedes von Datenwerten

Page 7: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

- Java/RMI (verbessertes RPC)

.Referenzierung von Objekten zwischen Maschinen

.Referenzierung und Replikation von Objekten möglich

.Sichtbarkeit der Kohärenzverwaltung von Objektkopien (Replikationen)

Page 8: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

DSM

• Gemeinsamer Adressraum in einem Netzwerk

• NUMA-Modell• Zwei Klassen von DSM

- Hardwarebasierte DSM

-Softwarebasierte DSM

Page 9: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Prozessor Prozessor

Netzwerk

Lokaler Speicher

Lokaler Speicher

DSM Prinzip

Page 10: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Hardwarebasierte DSM

-Spezielle Hardwareunterstützung für die gemeinsamen Speicher

-Anforderung von Daten durch MMU kontrolliert.

-z.B. DASH,Alewife

Page 11: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Softwarebasierte DSM

• Seitenbasierte DSM

-Linearer gemeinsam genutzter Speicher

-Page-Fault Handler fördert Seiten

-Probleme: Falshe-Sharing

-z.B: IVY,Treadmarks

Page 12: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Softwarebasierte DSM

• Objektbasierte DSM

-Strukturierter Adressraum mit gemeinsam genutzten Objekten

-Migration und Replikation

-Probleme: Zugriff auf die gemeinsamen Daten sehr aufwendig

-z.B: Emerald,Clouds

Page 13: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Softwarebasierte DSM

• Shared-Variable DSM

-einzelne gemeinsam genutzte Variabeln

-drei Klassen von Variabeln

*gemeinsame Variabeln global sichtbar

*Synchronisationsvariabeln

*normale Variabeln (in lokal Speicher)

Page 14: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Fähigkeit und Nachteile von DSM .Unsichtbarkeit des verteilten Zustandes

des Systems

. Zugriff auf komplexe Strukturen mit Zeiger

.Sichtbarkeit von Hardwareunterschieden

. Gebrauch von Sondercompiler für automatische Datenkonvertierung

Page 15: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Treadmarks

• Ziel

- Reduzierung des Kommunikationsumfangs

In der Verwaltung von Datenkonsistenz

Page 16: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Design von Treadmarks

• Notwendigkeit der Synchronisation

-Vermeidung von „Data Race“

• Synchronisationsfunktionen

- Locks (acquire,release)

- Barriers

Page 17: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Lazy Release Konsistenz

• Konsistenzverwaltung zwischen dem letzten releaser und dem neuen acquirer

• Verringerung von Kommunikationsumfang

Page 18: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Multiple-Writer Protocols

• Mehrere Schreiber können gleichzeitig auf eine Seite zugreifen

• Benutzung von Diffs

- Reduzierung von Bandwidth

Page 19: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Write(X)

X:

Create twin

Make X writableX:

twin

X:

Diff Diff

Release:

Page 20: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Programmieren mit Treadmarks

• Die Datei Tmk.h bietet eine Schnittstelle zu Treadmarks

• Die wichtigsten Funktionen der Schnittstelle:

-Startup

-Speicher Allokation

-Synchronisation

-Termination

Page 21: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Programmieren mit Treadmarks

• Die Routine Tmk_startup initialisiert die Treadmarks library und erstellt Prozesse auf anderen Maschinen.

• Die Routine Tmk_malloc kümmert sich um die Speicherallokation. Mit Tmk_free wird ein Speicherplatz freigegeben.

• Der Ruf von Tmk_exit beendet einen Prozess

Page 22: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Programmieren mit Treadmarks

• Die Locks werden während die Durchführung von Tmk_startup hergestellt und initialisiert

• Übernahme der Lockkontrolle: Tmk_lock_acquire (lock_identifier)

• Locksfreigabe: Tmk_lock_release(lock_identifier)

Page 23: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Warum Java ?

• Portabilität

- ArchitekturunabhängigeCodegenerierung (dank JVM)

- Unsichtbarkeit der Maschinenarchitektur

Page 24: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Warum DSM ?

• Gemeinsamer Adressraum von physikalisch getrennten Speichern

• automatischeVerwaltung von Kommunikation zwischen Maschinen

Page 25: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Design Von Java/DSM

• Eine JVM für jeden Maschine (Knoten)

• Objekte werden in verteiltem Adressraum gespeichert

• Unterstützung von Java API

• Keine Migration von Threads zwischen Maschinen

• Keine Unterschiede zwischen entfernten und lokalen Objekten

Page 26: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Speicher Verwaltung

• Garbage collection wird unabhängig auf jeder Maschine ausgeführt

• Entfernte Referenzen zu lokalen Objekten sind bekannt um falsche Vernichtung zu vermeiden

Page 27: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Garbage Collection Algorithmus

• Der GC auf jeder Maschine verwaltet zwei Listen

• Die export Liste für entfernte Referenzen zu lokalen Objekten

• Die import Liste für Referenzen zu entfernten Objekten

• Benutzung von „weighted reference counting“

Page 28: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Datenkonvertierung

• Der handle von einem Objekt zeigt auf seinen body und zu einer Struktur, die den Typ von jedem Feld enhält

• Objekte auf einer Seite haben die gleiche Grösse

• Der body enthält einen Rückzeiger zum handle

Page 29: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Änderungen in JVM• Eine Treadmarksroutine ladet den heap

• Klassen sind in dem gemeinsamen Speicher

• Jedes Objekt zeigt auf seinen handle (Unterstützung von Datenkonvertierung)

Page 30: JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.

Zusammenfassung

• Hardwareunterschiede und Kommunikationsbedürfnisse

• Message Passing und DSM lösen nicht alle Probleme

• Java/DSM hat zu einer leichten Änderung von der JVM geführt