Erweiterung des Threadmodelles fur den Einsatz in verteilten und heterogenen Systemumgebungen

A Thread Model Extension for Distributed and Heterogeneous Environments

Für die klassischen distributed memory und shared memory Architekturen kann bei der Programmierung auf bewährte nachrichten- und threadbasierte Programmiermodelle zurückgegriffen werden. Die weite Verbreitung und Akzeptanz dieser Modelle ermöglicht den portablen Einsatz und die Migration von bestehenden Programmen auf andere gleichartige Computersysteme. In verteilten heterogenen Systemumgebungen, die aus einer Vielzahl von unterschiedlichen Computerknoten bestehen und über ein Netzwerk miteinanFür die klassischen distributed memory und shared memory Architekturen kann bei der Programmierung auf bewährte nachrichten- und threadbasierte Programmiermodelle zurückgegriffen werden. Die weite Verbreitung und Akzeptanz dieser Modelle ermöglicht den portablen Einsatz und die Migration von bestehenden Programmen auf andere gleichartige Computersysteme. In verteilten heterogenen Systemumgebungen, die aus einer Vielzahl von unterschiedlichen Computerknoten bestehen und über ein Netzwerk miteinander verbunden sind, wird meistens ein nachrichtenbasiertes Programmiermodell verwendet. Neben praktischen Problemen, wie der Sicherstellung der korrekten Datendarstellung beim Nachrichtenaustausch zwischen Knoten mit unterschiedlicher Prozessorarchitektur, ergeben sich weitere Fragestellungen, die eine Erstellung und Portierung von Programmen für solche Ausführungsumgebungen erschweren. So ist man beispielsweise bei der Verwendung einer MPI-Bibliothek meist an ein Netzwerk gebunden und kann oft Systeme mit unterschiedlichen Prozessorarchitekturen nicht gleichzeitig verwenden. Im ersten Teil der vorliegenden Arbeit wird das Modell einer hybriden Programmierumgebung vorgestellt. Durch die Verwendung von Konzepten aus den thread- und nachrichtenbasierten Programmiermodellen soll eine leichte Einarbeitung in das System und ein breites Einsatzgebiet ermöglicht werden. Im Anschluß an die Spezifikationen und Definitionen der Programmierumgebung und des Programmiermodelles wird die hierfür erstellte Prototypimplementierung beschrieben. Diese Prototypimplementierung erlaubt die Ausführung von Programmen in verteilten heterogenen Systemumgebungen und zeichnet sich durch eine hohe Modularität aus. Dies bedeutet, daß nahezu jede Komponente des Systems austauschbar ist und Funktionen bereitstellt, welche in der allgemeinen Spezifikation der Umgebung definiert werden. F"ur verschiedene Zielsetzungen des Anwenders, wie z.B. die Sicherheit der Datenübertragung oder eine hohe Fehlertoleranz der gesamten Kommunikation, lassen sich so unterschiedliche Komponenten in das Laufzeitsystem einbinden, ohne das Benutzerprogramm neu erstellen oder anpassen zu müssen. Die Benutzung und Einbindung von bereits existierenden, externen Implementierungen für solche Anforderungen ist ebenfalls möglich und reduziert den Entwicklungsaufwand neuer Komponenten des Laufzeitsystems. In der Arbeit wird das unter anderen anhand der TSpaces-Bibliothek von IBM als alternatives Speichersystem demonstriert. Die sich im zweiten Teil der Arbeit anschließenden Kapitel befassen sich mit mehreren Umsetzungen von numerischen Algorithmen für die erstellte Prototypimplementierung der beschriebenen Programmierumgebung. Die erzielten Ergebnisse zeigen, daß die im Vorfeld definierten Ziele erreicht werden können und die resultierenden Programme mit unterschiedlichen Systemkonfigurationen lauffähig sind.show moreshow less
For the classic distributed memory and shared memory programming it is possible to use the common message passing or multithreading concepts. The prevalence and acceptance of this kind of programming allows the portable use and the migration of existing programming code into similar computer environments. Message passing models are used basically for heterogeneous systems. These systems consist on many kinds of different computer nodes which are connected by a network. The preservation of the coFor the classic distributed memory and shared memory programming it is possible to use the common message passing or multithreading concepts. The prevalence and acceptance of this kind of programming allows the portable use and the migration of existing programming code into similar computer environments. Message passing models are used basically for heterogeneous systems. These systems consist on many kinds of different computer nodes which are connected by a network. The preservation of the correct presentation of data encoding for the communication between nodes of different processor architectures is only one of many practical problems. There are some more issues which complicate the creation and the porting of programs for this kind of execution environment. Therefore the use of a MPI library is often only possible inside one network and mostly it is not possible to use systems with different processor architectures simultaneously. The first part of this work presents the model of a hybrid programming environment. The use of various message passing and multithreading concepts enables an easy orientation and allows the implementation of applications for a wide range of execution environments. This part includes the definitions and specifications of the programming environment and the programming model. Afterwards the developed prototype implementation is described. This prototype implementation allows the execution of parallel programs in distributed heterogeneous system environments and is characterized by a high modularity level. That means, that nearly each component of this prototype implementation can be replaced by another component and that it offers functions, which are defined in the basic specification of the programming environment. For different user requirements, for example a safe or fault-tolerant communication, it is possible to plug in different components into the prototype runtime system, without a reimplementation of the user application. It is also possible to integrate already existing and external 3rd party implementations for this kind of applications. Such strategy reduces the development effort of new components of the prototype environment. In this work the TSpaces library by IBM is taken as an alternative runtime component for transparent and distributed memory access. The following chapters in the second part of this work are dealing with several numerical algorithms for the prototype implementation of the described programming environment. The experimental results show that the predefined objectives can be achieved and the resulting programs are running at a wide range of possible system configurations.show moreshow less

Download full text files

Export metadata

  • Export Bibtex
  • Export RIS
  • frontdoor_exportcitavi

Additional Services

    Share in Twitter Search Google Scholar
Metadaten
Institutes:Informatik
Author: Raik Nagel
Advisor:Prof. Dr. Thomas Rauber
Granting Institution:Universität Bayreuth,Fakultät für Mathematik, Physik und Informatik
Date of final exam:30.10.2009
Year of Completion:2009
SWD-Keyword:Laufzeitsystem; Parallelverarbeitung; Verteilter Speicher; Verteiltes System; Virtueller Speicher
Tag:Partikelsimulation; verteilter gemeinsamer Speicher
distributed computing; distributed shared memory; runtime environment
Dewey Decimal Classification:004 Datenverarbeitung; Informatik
CCS-Classification:D.1.3 Concurrent Programming
D.2.12 Interoperability (NEW)
URN:urn:nbn:de:bvb:703-opus-6236
Document Type:Doctoral Thesis
Language:German
Date of Publication (online):18.11.2009