Ellmenreich, Nils
PolyAPM: Comparative Parallel Programming with Abstract Parallel Machines
PolyAPM: Vergleichende Parallelprogrammierung mit Abstrakten Parallelen Maschinen
Open Access: Freier Zugang zum Volltext!





| SWD-Schlagwörter: |
| Parallelverarbeitung , Funktionale Programmierung , Software Engineering , Schrittweise Verfeinerung |
| Freie Schlagwörter (Deutsch): |
| Parallelprogrammierung, Kostenmodell |
| Freie Schlagwörter (Englisch): |
| parallel programming, software engineering, stepwise refinement, cost model |
| NASA - Thesaurus: |
| parallel programming |
| Beteiligte Einrichtung: |
| Mitarbeiter Lehrstuhl/Einrichtung der Fakultät für Informatik und Mathematik |
| Fakultät: |
| Fakultät für Informatik und Mathematik |
| DDC-Sachgruppe: |
| Informatik |
| Dokumentart: |
| Dissertation |
| Hauptberichter: |
| Lengauer, Christian (Prof. Dr.) |
| Sprache: |
| Englisch |
| Tag der mündlichen Prüfung: |
| 23.07.2004 |
| Erstellungsjahr: |
| 2004 |
| Publikationsdatum: |
| 20.08.2004 |
| Kurzfassung auf Englisch: |
| A parallelising compilation consists of many translation and optimisation stages. The programmer may steer the compiler through these stages by supplying directives with the source code or setting compiler switches. However, for an evaluation of the effects of individual stages, their selection and their best order, this approach is not optimal.
To solve this problem, we propose the following method. The compilation is cast as a sequence of program transformations. Each intermediate program runs on an Abstract Parallel Machine (APM), while the program generated by the final transformation runs on the target architecture. Our intermediate programs are all in the same language, Haskell. Thus, each program is executable and still abstract enough to be legible, which enables the evaluation of the transformation that generated it. This evaluation is supported by a cost model, which makes a performance prediction of the abstract program for a real machine.
Our project, PolyAPM, provides an acyclic directed graph -- usually a tree -- of APMs whose traversal specifies different combinations and orders of transformations. From one source program, several target programs can be constructed. Their run time characteristics can be evaluated and compared.
The goal of PolyAPM is not to support the one-off construction of parallel application programs. For the method's overhead to pay off, the project aims rather at supporting the construction and comparison of many similar variations of a parallel program and a comparative evaluation of parallelisation techniques. With the automation of transformations, PolyAPM can also be used to construct semi-automatic compilation systems. |
| Kurzfassung auf Deutsch: |
| Eine parallelisierende Compilation besteht aus vielen Übersetzungs- und Optimierungsstufen. Der Programmierer kann den Compiler in diesen Stufen steuern, in dem er im Quellcode Anweisungen einfügt oder Compileroptionen verwendet. Für eine Bewertung der Auswirkungen der einzelnen Stufen, der Auswahl der Stufen und ihrer besten Reihenfolge ist der Ansatz aber nicht geeignet.
Um dieses Problem zu lösen, schlagen wir folgende Methode vor. Eine Compilation wird als Abfolge von Programmtransformationen betrachtet. Jedes Zwischenprogramm gehört jeweils zu einer Abstrakten Parallelen Maschine (APM), während das durch die letzte Transformation erzeugte Program für die Zielarchitektur bestimmt ist. Alle Zwischenprogramme sind in der Sprache Haskell geschrieben. Dadurch ist jedes Programm ausführbar und trotzdem abstrakt genug, um gut lesbar zu sein. Durch diese Ausführbarkeit kann die Transformation, durch die das Programm erzeugt wird, bewertet werden. Diese Bewertung wird durch ein Kostenmodell unterstützt, das eine Performance-Vorhersage des abstrakten Programms, bezogen auf eine reale Maschine, ermöglicht.
Unser Projekt PolyAPM liefert einen azyklischen, gerichteten Graphen - in der Regel einen Baum - aus APMs, dessen Traversierungen jeweils bestimmte Kombinationen und Reihenfolgen von Transformationen definieren. Aus einem Quellprogramm können verschiedene Zielprogramme erzeugt werden, deren Laufzeitverhalten bewert- und vergleichbar ist.
Das Ziel von PolyAPM liegt nicht in der Erzeugung eines einzelnen, parallelen Programms. Damit sich der zusätzliche Aufwand der Methode auszahlt, richtet sich das Projekt eher auf die Entwicklung und den Vergleich vieler, ähnlicher Variationen eines parallelen Programms und der vergleichenden Bewertung von Parallelisierungstechniken. Mit der Automatisierung von Transformationen kann PolyAPM dazu benutzt werden, halbautomatische Compilations-Systeme zu bauen. |
Hinweis zum Urheberrecht
URN: http://nbn-resolving.de/urn:nbn:de:bvb:739-opus-447
URL dieser Seite: http://www.opus-bayern.de/uni-passau/volltexte/2004/44/
Home
Suchen
Melden
Veröffentlichen
Hilfe
Kontakt
©
Universitätsbibliothek Passau · Innstrasse
29 · 94032 Passau
Tel. (0851) 509 1645 · Fax (0851) 509 1602 ·
Mail opus@uni-passau.de
22.10.10 |