Please use this identifier to cite or link to this item: http://dx.doi.org/10.18419/opus-6313
Authors: Keller, Rainer
Title: Analyse und Optimierung der Softwareschichten von wissenschaftlichen Anwendungen für Metacomputing
Other Titles: Analysis and optimisation of the software layers of scientific applications for metacomputing
Issue Date: 2008
metadata.ubs.publikation.typ: Dissertation
URI: http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-38266
http://elib.uni-stuttgart.de/handle/11682/6330
http://dx.doi.org/10.18419/opus-6313
Abstract: Für parallele Anwendungen ist das Message Passing Interface (MPI) das Programmierparadigma der Wahl für Höchstleistungsrechner mit verteiltem Speicher. Mittels des Konzeptes des MetaComputings wiederum können verschiedenste Rechenressourcen mit PACX-MPI gekoppelt werden. Dies ist einerseits von Interesse, weil Problemgrößen gelöst werden sollen, die nicht auf nur einem System ausgeführt werden könnten, andererseits, weil gekoppelte Simulationen gerechnet werden, die auf bestimmten Rechnerarchitekturen ausgeführt werden sollen oder weil Systeme mit bestimmten Eigenschaften wie Visualisierungs- mit parallelen Rechenressourcen verbunden werden müssen. Diese Koppelung stellt für die verteilten Anwendungen eine Barriere dar, da Kommunikation zu nicht-lokalen Prozessen weitaus langsamer ist, als über das rechnerinterne Netzwerk. In dieser Arbeit werden Lösungen auf den Software-Ebenen ausgehend von der Netzwerkschicht, durch Verbesserungen innerhalb der verwendeten Middleware, bis hin zur Optimierung innerhalb der Anwendungsschicht erarbeitet. In Bezug auf die unterste Softwareschicht wird für die Middleware PACX-MPI eine allgemeine Bibliothek zur Netzwerkkommunikation auf Basis von User Datagram Protocol (UDP) entwickelt. Somit können Limitierungen des Transport Control Protocols (TCP) umgangen werden, vor allem in Verbindung mit Netzwerken mit hoher Latenz und großer Bandbreite, so genannte Long Fat Pipes. Die hier implementierte Bibliothek ist portabel programmiert und durch die Verwendung von Threads effizient. Dieses Protokoll erreicht gute Werte für die Bandbreite im Local Area Network (LAN), aber auch im Wide Area Network (WAN). Getestet wird dieses Protokoll zur Veranschaulichung mittels einer Verbindung zwischen Rechnern in Stuttgart und Canberra, Australien. Innerhalb der Middleware wird die Optimierung der kollektiven Kommunikationsroutinen behandelt und am Beispiel der Funktion PACX_Alltoall die Verbesserung anhand des IMB Benchmarks auf einem Metacomputer gezeigt. Zur Analyse der Kommunikationseigenschaften wird die Erweiterung einer Tracing-Bibliothek für PACX-MPI, sowie die Implementierung einer generischen Schnittstelle zur Messung der Kommunikationscharakteristik auf MPI-Schicht erläutert. Weiterhin wird eine allgemeine MPI-Testsuite vorgestellt, die beim Auffinden von Fehlern sowohl in PACX-MPI, als auch innerhalb der Open MPI Implementierung hilfreich war. Auf der obersten Softwareschicht werden Optimierungsmöglichkeiten für Anwendungen für MetaComputing aufgezeigt. Beispielhaft wird die Analyse des Kommunikationsmusters einer Anwendung aus dem Bereich der Bioinformatik gezeigt. Weiterhin wird die Implementierung des Cachings und Prefetchings von vielfach kommunizierten Daten mit räumlicher und zeitlicher Lokalität vorgestellt. Erst die Methodik des Cachings und Prefetchings erlaubt die Ausführung der Anwendung in einem Metacomputer und ist exemplarisch für eine Klasse von Algorithmen mit ähnlichem Kommunikationsmuster.
The Message Passing Interface (MPI)-Standard is the programming paradigm for parallel applications on high-performance computers with distributed memory. Using the MetaComputing-concept, a wide variety of computing resources may be coupled using PACX-MPI. This technique is of interest, either to solve problem sizes, that otherwise could not be run on a single system, or on the other hand, because coupled simulations may allow execution on specific computer architectures tailored for parts of the whole problem, or because the computer systems offer specific features, such as connecting visualization with parallel computing resources. This coupling however, poses an obstacle to the distributed application, as communication to non-local processes is considerably slower then over the high-performance network between local processes. In this treatise, solutions on several software layers are being worked on, including the network software stack, improvements in the middleware, as well as optimizations done within the application layer. With regard to the lowest software layer, a general network communication library is developed for the middleware PACX-MPI, based on the User Datagram Protocol (UDP). Thereby, limitations of Transport Control Protocol (TCP) are circumvented, especially with regard to networks with high latency and large bandwidth, the so-called long fat pipes. The implemented library is programmed portably and is efficient by using a multi-threaded approach. This protocol achieves good results with regard to bandwidth in a Local Area Network (LAN), as well as in a Wide Area Network (WAN). For exemplification, the protocol is tested with a connection between computers in Stuttgart and Canberra, Australia. Within the middleware, the optimization of collective communication routines is being shown on the function PACX_Alltoall by means of the IMB benchmark on a Metacomputer. To enable analysis of communication behaviour, the extension of a tracing-library for PACX-MPI is exemplified, as well as the implementation of a generic interface for the measurement of communication characteristics of the MPI layer. Additionally a generic MPI-Testsuite is presented, that has been helpful in finding bugs within PACX-MPI, and moreover within the Open MPI implementation. On the highest software layer, possibilities for optimization of applications for Meta-Computing are being presented. For instance, the methodological analysis of the communication pattern of a bioinformatic application is shown. Moreover, the implementation of caching and prefetching of repeatedly communicated data with spatial and temporal locality is introduced. Only using this method of caching and prefetching allows the execution of this application in a Metacomputer and is exemplary for a class of algorithms with a similar communication patterns.
Appears in Collections:13 Zentrale Universitätseinrichtungen

Files in This Item:
File Description SizeFormat 
dissertation_printed.pdf3,12 MBAdobe PDFView/Open


Items in OPUS are protected by copyright, with all rights reserved, unless otherwise indicated.