Grundlagen des Grid Computing Grid Middleware Toolkits: Unicore ICA Joh.. Kepler Universität t Linz
Unicore Uniform Interface to Computing Resources Seit 1997 am Forschungszentrum Jülich entwickelt Grid Middleware Toolkit Konkurrenz zu Globus Europäisches Projekt Wird in Europa, aber auch international eingesetzt (zb. Japan) Entwicklung begann vor dem Auftauchen des Grid Computings Grundlagen des Grid Computing 2
Ziele Zugriff auf entfernte, heterogene Ressourcen Soll Heterogenität (Hardware und Software) verstecken Sicherheit Basierend auf X.509 Zertifikaten Graphisches Interface für Job-Erzeugung und Verwaltung Vertikal integrierte Lösung basierend auf vorhandenen Technologien Grundlagen des Grid Computing 3
Services Job Creation Job Management Data Management Application Support Flow Control Meta-Computing Interactive Support Single Sign-On Support for Legacy Jobs Resource Management Grundlagen des Grid Computing 4
Job Creation Graphisches Interface für Job Erzeugung Anzeige & Modifikation von Jobdetails Ressourcenauswahl für Jobausführung Ein Job kann Unterjobs umfassen (Jobgruppen) (Zeitliche) Abhängigkeiten zwischen Jobs sind möglich Grundlagen des Grid Computing 5
Job Creation Grundlagen des Grid Computing 6
Job Management Kontrolle über Jobs und Daten Jobstatus wird farblich dargestellt Rekursive Darstellung von (Unter)jobs stdout und stderr werden im Client dargestellt Log-Information für Fehlerananlyse Laufende und gequeued Jobs können abgebrochen werden Grundlagen des Grid Computing 7
Data Management Jobs können verteilt ausgeführt werden Jede Job Group hat einen Unicore Space (Uspace) für (temporäre) Jobdaten Bei der Jobdefinition wird definiert welche Daten in den Uspace importiert werden von Workstation oder remote Storage welche Daten aus dem Uspace exportiert werden z.b. Ergebnisdaten welche Daten zwischen Uspaces transferiert werden Zur Laufzeit werden die Daten automatisch transferiert Datenmanagement kann auch in Applikationen integriert werden Grundlagen des Grid Computing 8
Application Support Plugins für den Unicore Client ermöglichen applikationsspezifische GUIs Wrappers für Anwendungen mit existierenden Benutzerschnittstellen Grundlagen des Grid Computing 9
Flow Control Bedingte und / oder wiederholte Ausführung von Jobs Fixe Anzahl von Wiederholungen Wiederholung bis Bedingung erfüllt Das Jobmodell kann als gerichteter azyklischer Graph ausgedrückt werden Grundlagen des Grid Computing 10
Metacomputing Gleichzeitige Verwendung mehrerer Systeme für eine Applikation Oft MPI-Applikationen Programmiermodell: Verteilter Speicher Notwendig: Advance Reservation für einzelne Ressourcen Grundlagen des Grid Computing 11
Single Sign-On Benutzeridentifikation über X.509 Zertifikate Werden auf Resource-Level lokal auf uid/gid abgebildet Ein Client kann mehrere Zertifikate zur Authentisierung verwenden z.b. Verwendung verschiedener Grid-Infrastrukturen Die Jobs werden vor der Übertragung mit asymmetrischer Kryptographie signiert. Grundlagen des Grid Computing 12
Legacy Jobs Ermöglicht die Verwendung alter Job- Scripte z.b. Job Submission auf einen Supercomputer Datentransfer per FTP Diese Skripte können als Teil eines Unicore Jobs integriert werden Erleichtert Migration Grundlagen des Grid Computing 13
Resource Management Verfügbare Ressourcen werden von lokalen Administratoren publiziert dezentralisierter Ansatz Aktuelle Ressource-Informationen sind für Benutzer sichtbar für Job Definition und Submission Benutzer wählt das Zielsystem aus Benutzer spezifiziert Job-Anforderungen Der Unicore Client verifiziert die formale Korrektheit der Anforderungen Grundlagen des Grid Computing 14
Unicore Architektur Dreistufige Architektur Unicore Client Unicore Server Target System Interface Grundlagen des Grid Computing 15
Unicore Client Unterstützt Erzeugung, Manipulation und Kontrolle von Jobs Ausführung von Jobs kann mehrere Ressourcen an unterschiedlichen Standorten einbinden Jobs und Aktionen werden als Abstract Job Objects (AJOs) definiert Java Klassen serialisiert und signiert für Transfer zwischen Unicore Komponenten Grundlagen des Grid Computing 16
Server Level Unicore Gateway Gateway als Zugang zur lokalen Unicore Site Authentifiziert Anforderungen von Unicore Clients und schickt sie weiter an den Network Job Supervisor (NJS) bildet abstrakte Anforderforderung (AJO) für die lokale Site auf konkrete Jobs ab diese werden am lokalen System ausgeführt (Inkarnation) Teiljobs für andere Sites werden an die entsprechenden NJSs geschickt Grundlagen des Grid Computing 17
Andere NJS Funktionen Jobsynchronisation Berücksichtigung von Jobreihenfolgen Automatischer Datentransfer zwischen Unicore Sites Job Ein- und Ausgabedaten stdout, stderr Datenimport und Export zwischen lokalem System und Unicore Space Grundlagen des Grid Computing 18
Target System Interface Läuft am Zielhost lightweight daemon (TSI) Schnittstelle zum lokalen Batch-System Zustandsloses Protokoll zwischen NJS und TSI Mehrere TSIs können auf einem Host laufen erhöht Performance Grundlagen des Grid Computing 19
Typen von Sites Usite (Unicore Site) Teilnehmende Organisation Zugriffsadresse wird auf das entsprechende Gateway abgebildet Eine Organisation kann an verschiedenen Grids teilnehmen Usite ist eine physikalische Site / Organisation Vsite (Virtual Site) Menge an Ressourcen innerhalb einer Usite Jede Vsite wird von einem NJS überwacht Hinter dem NJS befindet sich das lokale Scheduling System Grundlagen des Grid Computing 20
Unicore Architektur Grundlagen des Grid Computing 21
Unicore Architektur Überblick (Multi-Site) Grundlagen des Grid Computing 22
Zuweisung von Subjobs an andere Usites Ein Unicore Job wird an eine Usite geschickt Für Sub-Jobs für Vsites an anderen Usites: NJS verbindet zum betreffenden Gateway Transferiert Sub-AJO Agiert gegenüber dem Gateway als Client Das AJO wurde vom originalen Client signiert Zielgateway authorisiert Job basierend auf dieser Signatur Grundlagen des Grid Computing 23
Verwendung von Grid-Services in Unicore Sicherheit Basierend auf X.509 Zertifikaten Authentifizieren Benutzer und auch Hosts Ressource Beschreibungen Ressourcebeschreibung notwendig Wird im Client angezeigt Datentransfer Datenhandhabung für den Uspace entweder durch den Benutzer oder durch die Anwendung spezifiziert Datentransfer ist synchrone Operation unter Benutzerkontrolle Byte-streaming oder innerhalb von AJO für geringe Datenmengen Kontrolle des Transfers durch NJS Grundlagen des Grid Computing 24
Verwendung von Grid-Services Abstract Job Object in Unicore Plattform- und Site-neutrale Spezifikation von Resourceanforderungen Konzeptionelle Repräsentation eines Jobs Sammlung von potentiell untereinander abhängigen Operationen Können von verschiedenen Diensten an verschiedenen Sites ausgeführt werden Job-Beschreibung durch das AJO ist unabhängig von ausführenden Ressourcen (Hardware, Software,...) Grundlagen des Grid Computing 25
NJS Aufgaben NJS besteht aus mehreren Komponenten für Incarnation Userid Mapping Durch Unicore User Database (UUDB) Abbildung von (User) Certificate Subjects auf lokale Benutzeraccounts Job Synchronisation Basierend auf Job-Abhängigkeiten, die im AJO definiert sind Grundlagen des Grid Computing 26
NJS - Incarnation Incarnation Database (IDB) übersetzt den Inhalt eines AJOs in konkrete Batch-Jobs oder Kommandos Umsetzung für das lokale System Regelbasierter Interpretationsprozess Abbildungsregeln werden vom Systemadministrator gesetzt Ort für temporäre Dateien MPI-Bibliotheken Minimum / Maximum Prozessoranzahl... Grundlagen des Grid Computing 27
Target System Interface Ein Daemon, der auf jedem Unicore Host läuft Schnittstelle zum Batchsystem und Betriebssystem Kann auch zur Anbindung anderer Grid Resourcen verwendet werden z.b. Globus Ressourcen Grundlagen des Grid Computing 28