19.11.2013 Aufrufe

Statusbericht - Bergische Universität Wuppertal

Statusbericht - Bergische Universität Wuppertal

Statusbericht - Bergische Universität Wuppertal

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

<strong>Statusbericht</strong><br />

Matthias Hüsken<br />

<strong>Bergische</strong> <strong>Universität</strong> <strong>Wuppertal</strong><br />

Fachbereich C – Mathematik und Naturwissenschaften<br />

Arbeitsgruppe Angewandte Mathematik<br />

07.07.2004<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

1 IEEE 754 Compliance Checker<br />

2 Verification Grid<br />

3 GRU – Grid Run Utilities<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


IeeeCC754<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Entwickelt an der <strong>Universität</strong> Antwerpen, Fachbereich<br />

Mathematics und Computer Science“<br />

”<br />

Forschungsgruppe Computer Arithmetic and Numerical<br />

”<br />

Techniques“<br />

Implementiert in C++<br />

Plattformen:<br />

Hardware: Intel Pentium, AMD Athlon, Sun<br />

(Super/Ultra)Sparc<br />

Software: MpIeee (C++, Uni Antwerpen), FMLib<br />

(Fortran 90)<br />

Compiler: GNU g++, Intel icc, Sun CC, Sun f95<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


IeeeCC754<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Ziel: Test auf Konformität zu IEEE 754-1985<br />

Erkennung verschiedener Aspekte der<br />

Floating-Point-Implementation:<br />

Benutzter Underflow-Mechanismus<br />

Unterstützte Rundungsmodi<br />

Unterscheidung BasicOp/Conversion:<br />

BasicOp: +, −, ∗, /, %, sqrt<br />

Ergebnisse (i. A.) Hardware-abhängig<br />

Conversion: Umwandlung zwischen Zahlenformaten<br />

Implementation in Software<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


IeeeCC754<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Testsets: Dateien, die unterschiedliche Aspekte testen<br />

Enthalten ”<br />

schwierige“ Testfälle<br />

Echte Ergebnisse zwischen zwei Maschinenzahlen<br />

Over-/Underflow, NaNs etc.<br />

Arbeitsweise:<br />

Operanden und Ergebnisse aus Testset-Dateien lesen<br />

Operation ausführen und Ergebnisse vergleichen<br />

Ebenso Test auf Exceptions etc.<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante A: IeeeCC754 Grid<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Ich kenne Verhalten auf meiner Maschine ⇒ Grid?<br />

Teste Grid-Knoten vorab auf Kompatibilität<br />

Kompatibilität := gleiches Verhalten bzgl. Numerik<br />

(nicht zwingend Übereinstimmung mit IEEE 754)<br />

Idee: teste auf beiden Rechner und vergleiche<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante A: Ieee754CC Grid<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Mein Rechner := A, Grid-Knoten := B<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante A: Ieee754CC Grid<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Mein Rechner := A, Grid-Knoten := B<br />

Kompiliere IeeeCC754 A auf A (gleiche Optionen!!!)<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante A: Ieee754CC Grid<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Mein Rechner := A, Grid-Knoten := B<br />

Kompiliere IeeeCC754 A auf A (gleiche Optionen!!!)<br />

Führe IeeeCC754 A auf A aus ⇒ Ergebnis A<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante A: Ieee754CC Grid<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Mein Rechner := A, Grid-Knoten := B<br />

Kompiliere IeeeCC754 A auf A (gleiche Optionen!!!)<br />

Führe IeeeCC754 A auf A aus ⇒ Ergebnis A<br />

Sende IeeeCC754 A an B<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante A: Ieee754CC Grid<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Mein Rechner := A, Grid-Knoten := B<br />

Kompiliere IeeeCC754 A auf A (gleiche Optionen!!!)<br />

Führe IeeeCC754 A auf A aus ⇒ Ergebnis A<br />

Sende IeeeCC754 A an B<br />

Führe IeeeCC754 A auf B aus ⇒ Ergebnis B<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante A: Ieee754CC Grid<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Mein Rechner := A, Grid-Knoten := B<br />

Kompiliere IeeeCC754 A auf A (gleiche Optionen!!!)<br />

Führe IeeeCC754 A auf A aus ⇒ Ergebnis A<br />

Sende IeeeCC754 A an B<br />

Führe IeeeCC754 A auf B aus ⇒ Ergebnis B<br />

Vergleiche Ergebnis A und Ergebnis B:<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante A: Ieee754CC Grid<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Mein Rechner := A, Grid-Knoten := B<br />

Kompiliere IeeeCC754 A auf A (gleiche Optionen!!!)<br />

Führe IeeeCC754 A auf A aus ⇒ Ergebnis A<br />

Sende IeeeCC754 A an B<br />

Führe IeeeCC754 A auf B aus ⇒ Ergebnis B<br />

Vergleiche Ergebnis A und Ergebnis B:<br />

Ergebnis A = Ergebnis B:<br />

⇒ Numerik sollte übereinstimmen<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante A: Ieee754CC Grid<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Mein Rechner := A, Grid-Knoten := B<br />

Kompiliere IeeeCC754 A auf A (gleiche Optionen!!!)<br />

Führe IeeeCC754 A auf A aus ⇒ Ergebnis A<br />

Sende IeeeCC754 A an B<br />

Führe IeeeCC754 A auf B aus ⇒ Ergebnis B<br />

Vergleiche Ergebnis A und Ergebnis B:<br />

Ergebnis A = Ergebnis B:<br />

⇒ Numerik sollte übereinstimmen<br />

Ergebnis A != Ergebnis B: Vorsicht!<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante A: IeeeCC754 Grid<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Welche Informationen vergleichen?<br />

Checksumme?<br />

Anzahl Fehler?<br />

Anzahl Fehler pro Operationstyp (+, − etc.)?<br />

Zusätzlich verwendeter Underflow-Mechanismus?<br />

Welche Formate werden getestet? Single & Double (&<br />

Quadruple?)<br />

Testen unterschiedlicher Fälle ohne Neustart<br />

Kombiniere BasicOp und Conversion in ein Programm<br />

Integration ins Grid – manuell, via GRUsh/GRUwin, . . . ?<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante B: IeeeCC754 Info<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Nutze Grid-Informationssystem des Grid-Knotens<br />

Ermittele Daten einmal<br />

statische Information – Hardware ändert sich nicht<br />

Verhalten abhängig vom Compiler ⇒ mehrfaches<br />

Ausführen<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Variante B: IeeeCC754 Info<br />

IeeeCC754<br />

IeeeCC754 Grid<br />

IeeeCC754 Info<br />

Für welche Grid-Info-System? Z.z. Globus2 (MDS/LDAP)<br />

Evtl. weitere Module, z. B. Globus3/4, Unicore...<br />

Trennung in Hardware-/Software-Modul?<br />

Welche Informationen veröffentlichen?<br />

Pro Compiler: IEEE 754-konform ja/nein?<br />

Anzahl Fehler in Modulen?<br />

Module mit Fehlern?<br />

Informationen über ”<br />

Konformitätslevel“ der Hardware?<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Idee<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Idee<br />

Architektur<br />

Middleware<br />

Server zur verifizierten Lösung mathematischer Probleme<br />

Grid-Interface<br />

Ähnliche Projekte:<br />

NEOS/iNEOS<br />

Diverse andere Löser<br />

nicht verifiziert<br />

typischerweise Zielfunktion auf eigenem Rechner<br />

Grid-Ansatz: GridRPC<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Fragestellungen<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Idee<br />

Architektur<br />

Middleware<br />

Architektur<br />

Welche Grid-Middleware/Schnittstellen?<br />

Für welche Probleme?<br />

Zielfunktion lokal<br />

Zielfunktion extern<br />

Welche Löser einbinden?<br />

Hardware-Unterstützung?<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Architektur I<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Idee<br />

Architektur<br />

Middleware<br />

Internal Grid<br />

Computer 1<br />

Gateway<br />

Computer 2<br />

Computer 3<br />

Computer 4<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Architektur II<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Idee<br />

Architektur<br />

Middleware<br />

Web-Interface<br />

Database<br />

Resource Broker<br />

Cache<br />

Internal Interface<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Web-Interface<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Idee<br />

Architektur<br />

Middleware<br />

Schnittstellen nach außen:<br />

Grid-Service/Web-Service<br />

GridRPC?<br />

Globus2/Unicore???<br />

Nimmt Anfragen entgegen, überprüft diese<br />

Abgleich mit vorhandenen Lösern<br />

Informationen publizieren (via WSDL):<br />

Registrierte Löser<br />

Akzeptierte Input-Formate<br />

Monitoring-Funktionalität und -Daten<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Resource Broker<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Idee<br />

Architektur<br />

Middleware<br />

Verteilt Jobs im internen Grid<br />

Wahl des besten Lösers, Kriterien z. B.:<br />

(vermutlich) schnellster Löser<br />

genauester Löser<br />

verfügbare Rechner (Hardware-Unterstützung!)<br />

voraussichtliche Rechenzeit<br />

. . .<br />

Load-Balancing<br />

Performance-Messung und -Vorhersage<br />

Intelligente“ Verteilung: Aus gewonnenen Daten lernen<br />

”<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Datenbank<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Idee<br />

Architektur<br />

Middleware<br />

Speicherung aller relevanten Informationen wie<br />

Registrierte Module<br />

Art und Funktion der Module<br />

(Löser, Parser, Converter etc.)<br />

Aufrufsyntax der Module<br />

Akzeptierte Datenformate<br />

Performance-Daten<br />

Monitoring-Daten?<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Weitere Module<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Idee<br />

Architektur<br />

Middleware<br />

Cache<br />

Job-Queue<br />

Zwischenspeichern großer Matrizen<br />

Monitoring-Daten?<br />

Internes Interface<br />

Schnittstellen für die Löser etc.<br />

Möglicherweise verschiedene Middleware<br />

Registry für Löser/Anmeldefunktionalität<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Ein wenig Historie. . .<br />

Idee<br />

Architektur<br />

Middleware<br />

Globus 2, Unicore etc.:<br />

proprietäre Schnittstellen<br />

verschiedenste Informtionsmodelle (MDS etc.)<br />

i. A. inkompatibel<br />

OGSI (Open Grid Services Infrastructure):<br />

Basiert auf Web-Services<br />

Erweiterung zu Grid-Services<br />

Aufteilung der Grid-Funktionalität in Services<br />

Erweiterung von WSDL 1.1 (GWSDL bzs. WSDL 1.2)<br />

Entwickelt vom GGF (Global Grid Forum)<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Ein wenig mehr Historie. . .<br />

Idee<br />

Architektur<br />

Middleware<br />

WSRF (Web-Service Resource Framework):<br />

enzwickelt vom GGF zusammen mit Industriepartnern<br />

Problem von OGSI: Akzeptanz<br />

Aufsplittung in noch kleinere Einheiten<br />

diese sind standardisiert<br />

Konzept äquivalent zu OGSI<br />

Aber: verschiedene Interfaces!<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Web-Services<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Idee<br />

Architektur<br />

Middleware<br />

Web-Services<br />

Methoden aufrufen (ähnlich wie RPC)<br />

plattformunabhängig<br />

Kommunkation unabhängig von der Implementierung<br />

Übertragung über SOAP/HTTP bzw. XML<br />

standardisierte Funktionalitätbeschreibungen (WSDL)<br />

Registries: UDDI<br />

Probleme im Grid:<br />

kein Status<br />

Authentifizierung<br />

Lebenszeit/Zerstörung von Services<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


Roadmap<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

Idee<br />

Architektur<br />

Middleware<br />

WSRF in Globus 3.4/4.0<br />

Soll im Sommer veröffentlicht werden<br />

Prototypen von Web-Interface und Resource Broker<br />

genau Modellierung des Verification Grid<br />

Festlegung der Datenformate (Schnittstellen)<br />

. . .<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


GRU<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

GRUst– GRU Starter Script<br />

GRUsh– die GRU Shell<br />

GRUwin– GRU GUI<br />

GRU = Grid Run Utilities<br />

Tools zum Verwalten von Grid-Jobs:<br />

GRUst – GRU Starter Script<br />

GRUsh – GRU Shell<br />

GRUwin – GRU GUI<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


GRUst<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

GRUst– GRU Starter Script<br />

GRUsh– die GRU Shell<br />

GRUwin– GRU GUI<br />

Basis: Python-Script von Torsten Harenberg<br />

Kümmert sich um Datei-Transfer (In- und Output)<br />

Lädt Bibliotheken nach<br />

Benachrichtigung per Mail<br />

Erweiterungen:<br />

Debug-Output<br />

Transfer per GridFTP<br />

Output-Transfer schlägt fehl<br />

⇒ Ergebnisse werden gespeichert<br />

etc.<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


GRUst<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

GRUst– GRU Starter Script<br />

GRUsh– die GRU Shell<br />

GRUwin– GRU GUI<br />

Status: fertig/stabil<br />

Probleme:<br />

Laufzeit des Jobs überschreitet Gültigkeit des<br />

Proxy-Zertifikats<br />

Globus-Installation wird nicht gefunden<br />

Kompatibilitätsprobleme mit EDG (Python 1.5.2 vs.<br />

Python 2.x)<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


GRUsh<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

GRUst– GRU Starter Script<br />

GRUsh– die GRU Shell<br />

GRUwin– GRU GUI<br />

Verwalten von Jobs via Kommandozeile<br />

Speichern der Job-Daten in Description-Files<br />

Abfragen von MDS/Auswahl des Grid-Knoten<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


GRUsh<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

GRUst– GRU Starter Script<br />

GRUsh– die GRU Shell<br />

GRUwin– GRU GUI<br />

Aktuelle Version: 0.8b<br />

ToDo:<br />

Möglichkeit, Einstellungen zu konfigurieren<br />

Bessere Kapselung des verwendeten Toolkits<br />

(Denkbar: Module für Globus, pyGlobus, EDG,<br />

Unicore...)<br />

EDG-Kompatibilität: Python, EDG-MDS etc.<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>


GRUwin<br />

Übersicht<br />

IEEE 754 Compliance Checker<br />

Verification Grid<br />

GRU – Grid Run Utilities<br />

GRUst– GRU Starter Script<br />

GRUsh– die GRU Shell<br />

GRUwin– GRU GUI<br />

GUI mit ähnlicher Funktionalität wie GRUsh<br />

Realisierung in Bachelor-Thesis<br />

Geplante Umsetzung:<br />

Verwalten mehrerer Jobs (MDI)<br />

Implementation mit python, wxPython<br />

Benutzt GRUst und job.py<br />

Matthias Hüsken<br />

<strong>Statusbericht</strong>

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!