h1

h2

h3

h4

h5
h6
http://join2-wiki.gsi.de/foswiki/pub/Main/Artwork/join2_logo100x88.png

Efficient task-local I/O operations of massively parallel applications = Effiziente tasklokale I/O-Operationen in massiv-parallelen Anwendungen



VerantwortlichkeitsangabeWolfgang Frings

ImpressumJülich : Forschungszentrum Jülich GmbH, Zentralbibliothek, Verlag 2016

Umfang1 Online-Ressource (xiv, 140 Seiten) : Diagramme

ISBN978-3-95806-152-1

ReiheSchriften des Forschungszentrums Jülich. IAS Series ; 30


Dissertation, RWTH Aachen University, 2016

Druckausgabe: 2016. - Onlineausgabe: 2016. - Auch veröffentlicht auf dem Publikationsserver der RWTH Aachen University


Genehmigende Fakultät
Fak01

Hauptberichter/Gutachter
;

Tag der mündlichen Prüfung/Habilitation
2016-04-26

Online
URN: urn:nbn:de:hbz:82-rwth-2016-057044
URL: https://publications.rwth-aachen.de/record/660992/files/660992.pdf
URL: https://publications.rwth-aachen.de/record/660992/files/660992.pdf?subformat=pdfa

Einrichtungen

  1. Lehrstuhl für Parallele Programmierung (124010)
  2. Lehr- und Forschungsgebiet Informatik 12 (Software und Werkzeuge für Computational Engineering) (123120)
  3. Fachgruppe Informatik (120000)

Inhaltliche Beschreibung (Schlagwörter)
Parallel I/O (frei) ; dynamic loading (frei) ; Task-local I/O (frei) ; SIONlib (frei) ; Spindle (frei)

Thematische Einordnung (Klassifikation)
DDC: 004

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.

Applications on current large-scale HPC systems use enormous numbers of processing elements for their computation and have access to large amounts of main memory for their data. Nevertheless, they still need file-system access to maintain program and application data persistently. Characteristic I/O patterns that produce a high load on the file system often occur during access to checkpoint and restart files, which have to be frequently stored to allow the application to be restarted after program termination or system failure. On large-scale HPC systems with distributed memory, each application task will often perform such I/O individually by creating task-local file objects on the file system. At large scale, these I/O pattern simpose substantial stress on the metadata management components of the I/O subsystem. For example, the simultaneous creation of thousands of task-local files in the same directory can cause delays of several minutes. Also at the startup of dynamically linked applications, such metadata contention occurs while searching for library files and induces a comparably high metadata load on the file system. Even mid-scale applications cause in such load scenarios startup delays of ten minutes or more. Therefore, dynamic linking and loading is nowadays not applied on large HPC systems, although dynamic linking has many advantages for managing large code bases. The reason for these limitations is that POSIX I/O and the dynamic loader are implemented as serial components of the operating system and do not take advantage of the parallel nature of the I/O operations. To avoid the above bottlenecks, this work describes two novel approaches for the integration of locality awareness (e.g., through aggregation or caching) into the serial I/O operations of parallel applications. The underlying methods are implemented in two tools, SIONlib and Spindle, which exploit the knowledge of application parallelism to coordinate access to file-system objects. In addition, the applied methods also use knowledge of the underlying I/O subsystem structure, the parallel file system configuration, and the network between HPC-system and I/O system to optimize application I/O. Both tools add layers between the parallel application and the POSIX-based standard interfaces of the operating system forI/O and dynamic loading, eliminating the need for modifying the underlying system software. SIONlib is already applied in several applications, including PEPC, muphi, and MP2C, to implement efficient checkpointing. In addition, SIONlib is integrated in the performance-analysis tools Scalasca and Score-P to efficiently store and read trace data. Latest benchmarks on the Blue Gene/Q in Jülich demonstrate that SIONlib solves the metadata problem at large scale by running efficiently up to 1.8 million tasks while maintaining high I/O band widths of 60-80%of file-system peak with a negligible file-creation time. The scalability of Spindle could be demonstrated by running the Pynamic benchmark, a proxy benchmark for a real application, ona cluster of Lawrence Livermore National Laboratory at large scale. The results show that the startup of dynamically linked applications is now feasible on more than 15000 tasks, whereas the overhead of Spindle is nearly constantly low. With SIONlib and Spindle, this work demonstrates how scalability of operating system components can be improved without modifying them and without changing the I/O patterns of applications. In this way, SIONlib and Spindle represent prototype implementations of functionality needed by next-generation runtime systems.

OpenAccess:
Download fulltext PDF Download fulltext PDF (PDFA)
(additional files)

Dokumenttyp
Dissertation / PhD Thesis

Format
online, print

Sprache
English

Externe Identnummern
HBZ: HT019045735

Interne Identnummern
RWTH-2016-05704
Datensatz-ID: 660992

Beteiligte Länder
Germany

 GO


Creative Commons Attribution CC BY 4.0 ; OpenAccess

QR Code for this record

The record appears in these collections:
Document types > Theses > Ph.D. Theses
Faculty of Mathematics, Computer Science and Natural Sciences (Fac.1) > Department of Computer Science
Publication server / Open Access
124010_20140620
Public records
Publications database
120000
123120

 Record created 2016-07-26, last modified 2023-04-08