Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Bernhard Haumacher, Michael Philippsen Universität Karlsruhe Institut für Programmstrukturen www.javagrande.org.

Ähnliche Präsentationen


Präsentation zum Thema: "Bernhard Haumacher, Michael Philippsen Universität Karlsruhe Institut für Programmstrukturen www.javagrande.org."—  Präsentation transkript:

1 Bernhard Haumacher, Michael Philippsen Universität Karlsruhe Institut für Programmstrukturen www.javagrande.org

2 2 Überblick Grande-Anwendungen Das JavaGrande Forum Diskutierte Probleme Lösungsansätze in den Bereichen –Numerik –verteiltes paralleles Rechnen Grande-Anwendung, was nun?

3 3 Grande Anwendungen...angesiedelt im wissenschaftlichen, ingeneurmäßigen oder kommerziellen Rechnen...bei Modellbildung, Simulation und Datenauswertung...sind komplex, rechen-, daten- und/oder Ein-/Ausgabe-intensiv

4 4 Benötigen... 4höchste Leistung 4Parallelität 4verteiltes Rechnen In der Java-Gemeinde bisher nur geringer Nutzeranteil Grande Anwendungen

5 5 Java Grande Forum (JGF) 4 Gegründet: März 1998 4 Offenes Forum: Industrie, US- Regierung, universitäre Beteiligung Academic Coordinator: Geoffrey C. Fox (Syracuse) Secretary: George Thiruvathukal (Chicago) Industry Coordinator: Siamak Hassenzadeh (Sun)

6 6 Java Grande Forum (JGF) 4 Workshops & Konferenzen –Syracuse Dezember 96 –PLDI Las Vegas Juni 97 –Palo Alto Februar 98 –EuroPar Southampton September 98 –HPCN Amsterdam April 99 –IPPS San Juan April 99 –ACM JavaGrande Konferenz 12.-13. Juni –JavaOne 15.-18. Juni 99 –ICS99 Rhodos 19.-20. Juni 99

7 7 Java Grande Forum (JGF) Besteht aus zwei Arbeitsgruppen 4Numerics Working Group Ron Boisvert Roldan Pozo (NIST) 4Distributed Computing Working Group Dennis Gannon (Indiana) Denis Caromel (INRIA)

8 8 Ziele von Java Grande 4 Schwächen von Sprache und Laufzeitumgebung für Grande- Anwendungen aufzeigen 4 Bedarf gegenüber Sun bündeln 4 Java für Grande-Anwendungen verwendbar machen (Außenwirkung) 4 Standardisierung von Schnittstellen und Bibliotheken für Grande-Anwendungen (JGF intern)

9 9 Warum Grande mit Java? 4 Infrastruktur für verteiltes Rechnen 4 Sprachdesign (oo, GC, multi-threaded,...) 4 Portabilität: Java Virtual Machine 4 Reicher Fundus an Bibliotheken 4 Integrierte Entwicklungsumgebungen 4 Breite Akzeptanz 4 Java wird gelehrt und gelernt

10 10 Überall Java in Grande? 4 Benutzerschnittstelle (Applet) –graphische Datenaufbereitung 4 Bindeglied zwischen Berechnung, Ablaufsteuerung, Datenbank und Ausgabe (Mittlere Schicht) 4 Sprache für die parallele & verteilte Programmierung im Cluster (Hochleistungs-Backend)

11 11 Probleme mit Java & Grande 4 Java nicht für Grande-Anwendungen entworfen –verlangt ist Geschwindigkeit & Portabilität –keine Sprachunterstützung für numerisches Rechnen 4 Keine numerischen Bibliotheken –Henne & Ei Problem

12 12 Numerics Working Group 4 Effiziente komplexwertige Arithmetik 4 Effiziente mehrdimensionale Felder 4 Leichtgewichtige Klassen 4 Operator - Überladung 4 Java-Fließkomma-Arithmetik 4 Mathematische Bibliotheken –FFT, lineare Algebra,...

13 13 Numerics Working Group John Brophy, Visual Numerics Sid Chatterjee, University of North Carolina David S. Dixon, Mantos Consulting Steve Hague, NAG Lennart Johnsson, University of Houston William Kahan, University of California, Berkeley Cleve Moler, The MathWorks Jose Moreira, IBM Kees van Reevwijk, Technical University, Delft Keith Seymour, University of Tennessee Nik Shaylor, Sun Marc Snir, IBM

14 14 Komplexwertige Arithmetik 4 Forderungen … –so effizient und bequem wie float und double 4 Komplex als normale Klasse liefert –inakzeptablen Objekt-Mehraufwand –falsche Semantik von = und == –undurchschaubare Methodenaufrufe der Form a.assign(b.times(c).plus(d))

15 15 Komplexwertige Arithmetik 4 IBM-Ansatz –Klasse Complex –Nativer Übersetzer –Spezialfall im Übersetzer fest verdrahtet Einbetten keine Heap-Allokation kein Objekt-Mehraufwand –http://alphaworks.ibm.com/tech/ninja

16 16 Komplexwertige Arithmetik 4 CJ: Complex Numbers in Java –Uni Karlsruhe –Neuer Basistyp complex –mit allen Operatoren + - * /... –Übersetzung durch Präprozessor Auflösen von complex in zwei double Transformation der Operatoren nach Java –reine Java-Lösung –http://wwwipd.ira.uka.de/JavaParty/

17 17 Mehrdimensionale Felder 4 Forderungen … –Übersetzer-optimierbarer Feldzugriff –Keine Bereichstests zur Laufzeit –Verläßliche Feldanordnung Auswahl des besten Algorithmus 4 Probleme bei mehrdim. Java-Feldern –zerstückelt mit Zeilen-Aliasen –Klasse zur Kapselung verursacht unlesbaren und ineffizienten Code

18 18 Mehrdimensionale Felder 4 IBM –Klassen für 0D-, 1D-, 2D- und 3D- Matrizen –native Übersetzung –http://alphaworks.ibm.com/tech/ninja/ –http://www.research.ibm.com/ninja/

19 19 Eine allgemeinere Lösung 4 Leichgewichtige Klassen –eingeschränkte Klassen mit Wertsemantik –wenig Mehraufwand –können eingebettet werden 4 Operator-Überladung –wenigstens für existierende Operatoren: Arithmetik, Vergleich, Zuweisung, Indizierung

20 20 Fließkomma-Arithmetik 4 Forderungen... –immer akzeptable Geschwindigkeit –nur bei Bedarf: Hochgeschwindigkeit plattformübergreifend reproduzierbare Ergebnisse –Zugriff auf IEEE-Merkmale

21 21 Fließkomma-Arithmetik Ist-Zustand / Probleme –run anywhere, get the same answers everywhere –keine Ausnutzung proprietäter Fließkomma-Hardware 80-bit Register auf x86 2-10x langsamer –fused multiply-add verboten –gängige Übersetzer-Optimierungen verboten (z.B. Assoziativität ausnutzen)

22 22 Sun: Fließkomma-Vorschlag Lange diskutiert, erste Reaktion: 4 widefp (standard) –gleichberechtigte Verwendung von float- und double-extended –kein FMA –eingeschränkte HW-Unterstützung 4 strictfp –bisherige Konventionen

23 23 JGF: Fließkomma-Vorschlag Einführung von 3 Modi –standard 15-bit Exponent, fused multiply-add –strictfp bisherige Konventionen –associativefp Assoziativität ausnutzen,... mehr ?

24 24 IBM Fließkomma-Ergebnisse

25 25 Weitere FP-Vorhaben 4 reproduzierbare mathematische Funktionen –Java-Version von fdlibm für strictfp 4 Standard zur Beeinflussung von –IEEE Fließkomma-Flags –IEEE Rundungsmodi 4 Implementation von IEEE-Funktionen

26 26 4 Komplexe Zahlen (IBM, VNI) 4 Mehrdimensionale Felder (IBM) 4 Lineare Algebra (MathWorks & NIST) 4 In Arbeit –Intervalle –FFT –multiprecission Klassen-Bibliotheken

27 27 4 Java Benchmark-Applet für Numerik 4 kombinierte Ergebnisse aus –FFT (komplex) –Gauss-Seidel Relaxation –Monte Carlo Integration von e -x 2 –Multiplikation dünnbesetzter Matrizen –LU-Faktorisierung dichter Matrizen mit Pivotisierung 4 normalisiert: SPARC 10, Netscape 4.04 SciMark Benchmark

28 28 Distributed Computing W.G. 4 schnelles RMI 4 JavaParty - Transparente entfernte Objekte in Java 4 MPI für Java 4 Benchmark Initiative –http://www.epcc.ed.ac.uk/research/javagrande/benchmarking.html 4 Seamless Computing Standards

29 29 Distributed Computing W.G. George Crawford, MPI Software Technology Vladimir Getov, University of Westminster, UK Piyush Mehrotra, ICASE Michael Philippsen, University of Karlsruhe, Germany Omer Rana, University of Wales, Cardiff, UK Tony Skjellum. MPI Software Technology Henry Sowizral, Sun Martin Westhead, EPCC, University of Edinburgh, UK

30 30 Remote Method Invocation RMI –entfernter Methodenaufruf –hat Forschung im Bereich verteiltes Rechnen beflügelt –Geschwindigkeit für Cluster Computing nicht ausreichend –Programmiermodell erfüllt nicht alle Wünsche

31 31 Remote Method Invocation 4 Nicht entworfen für eng gekoppelte Netzwerke 4 Geschwindigkeitsprobleme –aufwendige, langsame Serialisierung –Verluste bei interner Verwaltung –Keine flexible Transportschicht unzureichende Unterstützung von Hochgeschwindigkeitsnetzwerken (ParaStation, Myrinet, ATM,...)

32 32 Schnelle Serialisierung 4 Entwickelt an der Uni Karlsruhe 4 Ersetzt JDK-Serialisierung unter der Annahme eng gekoppelter Netzwerke 4 Zusammen mit RMI verwendbar 4 ca. um Faktor 10 schneller als der Standard im JDK 4 Verfügbar

33 33 KaRMI: Schnelles RMI 4 Entwickelt an der Uni Karlsruhe 4 Anpaßbar an Hochgeschwindigkeits- Netze durch Komponenten-Austausch 4 Schlanke Implementierung 4 Verwendet schnelle Serialisierung 4 Transportschicht austauschbar, für ParaStation und Ethernet vorhanden 4 80µ s für entfernten Methodenaufruf

34 34 JavaParty 4 Java-Mechanismen unzureichend für das Programmieren von Rechnerbündeln –parallel -> Threads –verteilt -> ??? Sockets –Keine entfernten Adressen –Kein entfernter Methodenaufruf –Keine automatische Serialisierung –Keine automatische Speicherbereinigung

35 35 Warum JavaParty? RMI 4Entfernte Adressen 4Entfernter Methodenaufruf 4Objekte als Parameter 4Automatische Speicherbereinigung –Explizite Namensbindung (registry) –Kein Aufruf statischer Methoden –Zusätzliche Ausnahmebedingungen –Kein entfernter Feldzugriff –Explizite Objekt-Pla[t]zierung –Keine Objekt-Migration

36 36 Warum JavaParty? 4 Java-Versionen der Salishan- Benchmarks mit den verfügbaren Mechanismen #Zeilen#geändert Java + Threads1277 Sockets2086992 +63.3% RMI2123969 +66.2% JavaParty127728 +0.0%

37 37 JavaParty 4 Java-ähnliches multi-threaded Programmiermodell für Rechnerbündel 4 Illusion: verteilte virtuelle Maschine 4 entfernte Objekte verteilt im Cluster –Parallelität durch entfernte Threads –automatische Lokalität & Lastbalance

38 38 JavaParty 4 Transparente entfernte Objekte mit (näherungsweise) Java-Semantik –entfernte Erzeugung (new) –entfernter Methodenaufruf (auch statische Methoden) –Keine zusätzl. Ausnahmebedingungen –entfernter Variablenzugriff –Synchronisation auf entf. Objekten –Objekt-Migration

39 39 JavaParty 4 Entfernte Threads –selbe Schnittstelle wie java.lang.Thread –auf entferntem Knoten startbar 4 Lokalität & Lastbalance –Explizite Platzierung –Strategie-Objekt –Dynamisch zur Laufzeit –Statische Analyse beim Übersetzen

40 40 MPI für Java 4 RMI & Sockets: Client/Server-Modell 4 MPI-1, MPI-2 Standard: –Nachrichtenaustausch –symmetrische Kommunikation 4 benötigt: Java-MPI API Spezifikation –ermöglicht portable MPI-basierte Grande-Anwendungen in Java

41 41 MPI für Java (Status) 4 mpiJava –JNI -Wrapper für die C++-Bindung von MPI. –http://www.npac.syr.edu/projects/pcrc/HPJava/ 4 JavaMPI –automatisch erzeugte JNI-Wrapper für die C-Bindung von MPI –http://perun.hscs.wmin.ac.uk/JavaMPI/ 4 MPIJ –Reine Java-Implementierung von MPI. –Stark an die C++ Bindung angelehnt –http://ccc.cs.byu.edu/DOGMA/

42 42 MPI für Java (Status) 4 JMPI (angekündigt) –MPI Soft Tech Inc. –kommerzielles Produkt 4 MPI-Spezifikation (Entwurf) –http://www.javagrande.org/reports

43 43 Seamless Computing 4 DATORR –Desktop Access to Remote Resources –http://www-fp.mcs.anl.gov/~gregor/datorr/ Java-Rahmenwerk für Computing Services

44 44 Seamless Computing 4 Rechnen als verteilter Dienst 4 Auffinden von Ressourcen 4 Abfrage von Eigenschaften 4 Web-Schnittstelle um jeden Job auf jedem Computer mit beliebiger Datenquelle auszuführen 4 Schnittstelle zum Zusammenschalten mehrerer Computer für einen Job

45 45 JavaGrande Europe 4 Stärkung der Europäischen Rolle bei Standardisierungsbemühungen 4 Zwei Gruppen –Metacomputing and Interoperability Dr. Mark Baker, Prof. Denis Caromel –High Performance Applications Prof. David Walker, Dr. Michael Philippsen 4 http://www.irisa.fr/EuroTools/Sigs/JavaGrande.top.html

46 46 Mitarbeit bei JavaGrande 4 Mitarbeit an Standards, Schnittstellen & Bibliotheken 4 Benchmarks beisteuern 4 Interessenvertretung durch JGF wahrnehmen 4 Nutzung des Forums –http://www.javagrande.org/


Herunterladen ppt "Bernhard Haumacher, Michael Philippsen Universität Karlsruhe Institut für Programmstrukturen www.javagrande.org."

Ähnliche Präsentationen


Google-Anzeigen