Statusbericht - Bergische Universität Wuppertal
Statusbericht - Bergische Universität Wuppertal
Statusbericht - Bergische Universität Wuppertal
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>