Parallele Hochleistungs-Ein-/Ausgabe in Cluster-Umgebungen Prof. Dr. Thomas Ludwig Abteilung für parallele und verteilte Systeme Institut für Informatik Ruprecht-Karls-Universität Heidelberg Im Neuenheimer Feld 348 69120 Heidelberg Tel.: 06221-54-4968 Fax: 06221-54-4404 Email: thomas.ludwig@informatik.uni-heidelberg.de Web: pvs.informatik.uni-heidelberg.de Im Bereich des Cluster-Computing gewinnt die parallele Ein-/Ausgabe von Daten immer mehr an Bedeutung. Programme, die auf einer großen Anzahl von Rechenknoten laufen, erzeugen umfangreiche Datenmengen. Wir finden hierbei verschiedene Kategorien wie z.B. temporäre Daten, Daten eines Programmsicherungspunktes oder Ergebnisdaten. Je nach Kategorie bestimmt sich auch die Langlebigkeit der Daten und es werden unterschiedliche Verfahren zu ihrer Weiterverarbeitung eingesetzt. Zum Zugriff der Programme auf Daten auf Hintergrundspeichern etablieren sich seit einiger Zeit Konzepte und Mechanismen auf verschiedenen Abstraktionsebenen. Auf Programmebene finden wir die in MPI-I/O definierte Schnittstelle, die den Prozessen unterschiedliche logische Sichten auf gemeinsam genutzte physikalische Dateien anbietet. Kollektive Operationen auf nichtzusammenhängende Datenbereiche werden durch die Implementierungen von MPI-I/O effizient auf Plattenzugriffe abgebildet. Auf der Systemebene findet man mehrere Implementierungen paralleler Dateisysteme, von denen ab nur eine frei verfügbar ist und von einer größeren Arbeitsgruppe vorangetrieben wird. Dies ist das Projekt PVFS / PVFS2, einer Kooperation von Forschern der Clemson University und der Argonne National Laboratories. PVFS bietet, wie andere parallele Dateisysteme auch, die Möglichkeit einer flexiblen Aufteilung der Daten einer Datei aus Anwendersicht auf viele Dateien auf verschiedenen Platten aus Systemsicht. Eigene Arbeiten in diesem Bereich zielen zum einen darauf ab, die Leistungsparameter in diesem Bereich auf den verschiedenen Abstraktionsebenen zu erfassen und zueinander in Beziehung zu setzen. Dies ist deshalb wichtig, weil die konkrete Abbildung der logischen Sichten in eine Datei auf Einzeldateien auf Platten entscheidend für die Leistung der parallelen E/A-Operationen ist. Die meisten Implementierungen bieten bezüglich dieser Abbildung nur einfach Verfahren an und Verfahren, die zur Laufzeit nicht modifiziert werden können. Damit man im parallelen System auch zu einem Lastausgleich bei der E/A kommen kann, werden diese Verfahren erweitert, so daß eine dynamische Änderung der Abbildung während der Programmläufe möglich sein wird. Die Änderung der Abbildung wird hierbei von den oben genannten erfaßten Meßdaten angestoßen und gesteuert. Zur Realisierung der beiden Arbeitspunkte kommen Methoden und Erkenntnisse aus dem Bereich des Monitoring in parallelen Systemen und des dynamischen Lastausgleichs durch Prozeßmigration zur Anwendung.