Efficient task-local I/O operations of massively parallel applications

  • Effiziente tasklokale I/O-Operationen in massiv-parallelen Anwendungen

Frings, Wolfgang; Naumann, Uwe (Thesis advisor); Wolf, Felix Gerd Eugen (Thesis advisor)

Jülich : Forschungszentrum Jülich GmbH, Zentralbibliothek, Verlag (2016)
Doktorarbeit

In: Schriften des Forschungszentrums Jülich. IAS Series 30
Seite(n)/Artikel-Nr.: 1 Online-Ressource (xiv, 140 Seiten) : Diagramme

Dissertation, RWTH Aachen University, 2016

Kurzfassung

Auf heutigen Supercomputer-Systemen belasten parallele Anwendungen, welche regelmäßig Checkpoints der im Hauptspeicher befindlichen Simulationsdaten erstellen, das Dateisystem enorm. Zum Beispiel werden auf Supercomputern mit einem verteilten Hauptspeicher die Checkpoints oft individuell von jedem Ausführungsprozess erzeugt, wodurch eine große Anzahlvon Dateien entsteht. Neben der aufwendigen Handhabung der Dateien bewirkt dieses als tasklokaler I/O bezeichnete Zugriffsmuster zudem eine hohe Belastung der Dateisystem-Komponenten, die für die Verwaltung der Metadaten zuständig sind, was zu Verzögerungen im Programmablauf oder sogar zu dessen Abbruch führen kann. Ähnliche Auswirkungen durch die hohe Belastung des Metadatenmanagements findet man auch bei parallelen dynamisch gelinkten Programmen, die beim Start nach den benötigten Bibliotheken auf dem Dateisystem suchen und diese von dort laden. Hauptursache der oben beschriebenen Verzögerungen ist, dass die für den I/O zuständigenseriellen Komponenten des Betriebssystems keine Vorteile aus der Parallelität der Anwendungenziehen können. In dieser Arbeit werden zwei neuartige Lösungen vorgestellt, welche Charakteristika der I/O-Operationen von parallelen Programmen ausnutzen und mit geeigneten Mechanismen wie z.B. Aggregation oder Zwischenspeicherung die oben beschriebenen Engpässe vermeiden. Die zugrundeliegenden Methoden wurden in den beiden Werkzeugen SIONlib zur effizienten Speicherung von tasklokalen Daten und Spindle für das Laden von dynamisch gelinkten Programmen implementiert. Beide Tools nutzen verfügbare Informationen über die Parallelität der Anwendung, die Struktur der I/O-Komponenten und des Verbindungsnetzwerks des Supercomputers sowie die Konfiguration des parallelen Dateisystems zur Koordinierung und Optimierung der I/O-Operationen aus. Als eine Zwischenschicht zwischen der parallelen Anwendung und den vorhandenen POSIX-Schnittstellen können sie ohne Modifikation des Betriebssystems und mit minimaler bzw. ohne Änderung der Anwendungeingesetzt werden. SIONlib wird bereits in Anwendungen für die effiziente Erstellung von Checkpoints eingesetzt und ist in die parallele Performance-Analysewerkzeuge Scalasca und Score-P für die Speicherung von Ereignisspuren integriert. Messungen auf dem Blue Gene/Q System in Jülich zeigen, dass SIONlib auch bei 1,8 Millionen Prozessen eine effiziente Ein-/Ausgabe von Daten mitbis zu 60-80% der nominellen Bandbreite des Dateisystems unterstützt, ohne Probleme beim Metadatenmanagement zu verursachen. Auch die Leistungsfähigkeit von Spindle konnte mit Hilfe von Benchmarks nachgewiesen werden. Zum Beispiel ermöglichte Spindle auf einem Supercomputer des Lawrence Livermore National Laboratory das gemeinsame dynamische Laden mit nahezu konstantem Zeitaufwand auf einer ohne Spindle erst gar nicht erreichbaren Größenordnung von über 15.000 Prozessoren. Mit Hilfe von SIONlib und Spindle konnte in dieser Arbeit die Leistungsfähigkeit von Komponenten des Betriebssystems gesteigert werden, ohne diese oder die I/O-Muster der Anwendungen zu verändern. Damit stellen beide Werkzeuge Prototypen für die Implementierung von Funktionalitäten dar, die von Betriebssystemen der nächsten Generation bereitgestellt werden sollten.

Einrichtungen

  • Lehrstuhl für Parallele Programmierung [124010]
  • Lehr- und Forschungsgebiet Informatik 12 (Software und Werkzeuge für Computational Engineering) [123120]
  • Fachgruppe Informatik [120000]

Identifikationsnummern