Ursula Fissgus

A Tool for Generating Programs with Mixed Task and Data Parallelism

Dissertation zur Erlangung des akademischen Grades doctor rerum naturalium (Dr. rer. nat.) vorgelegt an der Mathematisch-Naturwissenschaftlich-Technischen Fakultät der Martin-Luther-Universität Halle-Wittenberg
verteidigt am 08.06.2001

Abstract
Parallelrechner, insbesondere solche mit verteiltem Speicher, bieten eine hohe Rechenkapazität, weisen aber eine komplexe Programmierbarkeit auf. Die vorliegende Arbeit beschreibt ein Werkzeug zur Generierung von parallelen Programmen mit gemischter Daten- und Funktionsparallelität auf Rechner mit geteiltem Speicher. Das Werkzeug stützt sich auf ein vielseitiges multidimensionales Scheduling, welches ebenfalls in der vorliegenden Arbeit beschrieben wird.
Die Programmgenerierung geht von einer vom Benutzer angegebenen Spezifikation der zu implementierenden Anwendung aus. Diese Spezifikation beschreibt die potentiell vorhandene Parallelität der Anwendung, der anschließend von unserem System in mehreren Ableitungsschritten an den Gegebenheiten eines Zielrechners angepasst wird. Das von uns entwickelte Scheduling, das auf genetischen Algorithmen basiert, entscheidet nicht nur über die Reihenfolge der Abarbeitung (voneinander unabhängige Module können einer nach dem anderen von allen Prozessoren datenparallel abgearbeitet werden oder sie können gleichzeitig, funktionsparallel, von disjunkten Gruppen von Prozessoren abgearbeitet werden) und darüber welche Prozessoren den einzelnen Modulen für die Abarbeitung zugeordnet werden, sondern trifft auch Entscheidungen über die geeignete Datenverteilung und über die jeweils einzubindende Implementierungsversion (dem System können für einzelne Module mehrere Implementierungen, zum Beispiel unterschiedliche Bibliotheksfunktionen, zur Auswahl vorliegen). Datenumverteilungsoperationen und Operationen zur Verwaltung der Kommunikationsumgebung werden, bei Bedarf, dem erstellten parallelen Rahmenprogramm hinzugef¨ ugt. Das Rahmenprogramm wird unter Verwendung einer imperativen Programmiersprache und einer Kommunikationsbibliothek, die hierarchische Prozessorgruppenstrukturen unterstützt, in einem parallelen Programm umgewandelt.
Die Einsatzfähigkeit und Effizienz unseres Ansatzes wurde an verschiedenen Beispielen erprobt.

Distributed memory machines provide large computing power, but the development process for a specific parallel algorithm on a specific machine is complex due to the complicated runtime behaviour caused by communication overhead and load imbalance. We consider a powerful multi-dimensional scheduling embedded into a tool for generating parallel programs with mixed task and data parallelism.
The program generation starts with a user provided specification of the maximum degree of task and data parallelism of the method to be implemented. In several derivation steps, the system adapts the degree of parallelism to a specific target machine. The therefore used scheduling is based on the genetic algorithm paradigm. Our scheduling takes not only decisions on the execution order (independent modules can be executed consecutively by all processors available or concurrently by independent groups of processors) and on the mapping of processors to tasks, but also on appropriate data distributions and module implementation versions (for each module there are several implementation version available, e.g., taken from a predefined set of library functions). Data redistribution operations and communication domain management operations are added, if necessary. The obtained parallel frame program can be translated in any imperative language augmented by a message passing library supporting groups.
The efficiency of our system was demonstrate by several examples.

Keywords:
Scheduling, Parallelisierende Compiler, Softwareentwicklungsumgebung, Rechner mit verteiltem Speicher, Funktionsparallelität, Datenparallelität, Genetische Algorithmen

Scheduling, Parallelizing compiler, Software development environment, Distributed memory machines, Task parallelism, Data parallelism, Genetic algorithms

Online-Dokument im PDF-Format (573 KB) mit integrierter Gliederung und im PS-Format (1.175 KB).

Inhaltsverzeichnis
Abstract / Zusammenfassung
Contents (1-2)
1 Introduction (3-4)
2 Related Work (5-8)
3 System Overview (9-10)
4 Module Specification (11-14)
5 Module Graph (15-28)
6 Design Decisions (29-34)
7 Genetic Algorithms (35-45)
8 Scheduling Graph (46-49)
9 Parallel Frame Program (50-52)
10 Transforming Scheduling Graphs into Parallel Frame Programs (53-66)
11 Data Distribution (67-81)
12 Example (82-84)
13 Implementation (85-86)
14 Summary and Outlook (87-88)
References (89-93)