PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...
PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...
PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Statisches Scheduling heterogener Systeme mit Hilfe von<br />
Meta-Heuristiken<br />
Udo Hönig, Wolfram Schimann und Ralf Wagner<br />
FernUniversität Hagen<br />
Lehrgebiet Rechnerarchitektur<br />
58084 Hagen, Germany<br />
{udo.hoenig,wolfram.schiffmann,ralf.wagner}@fernuni-hagen.de<br />
http://ra.fernuni-hagen.de<br />
Zusammenfassung <strong>Parallel</strong>e Programme können formal durch gerichtete attributierte Graphen beschrieben<br />
werden, die die Abhängigkeiten der Teilaufgaben und den Kommunikationsaufwand für Zwischenergebnisse<br />
anhand von Gewichten in den Knoten bzw. an den Kanten modellieren. Im Beitrag<br />
wird gezeigt, wie man das klassiche Greedy Mapping durch Meta-Heuristiken ersetzen kann. Anhand<br />
von drei naturanalogen Beispiel-<strong>Algorithmen</strong> (Simulated Annealing, Genetic Algorithm, Ant Colony<br />
Optimization) wurde die Leistungsfähigkeit mit dem klassischen Greedy-Mapper verglichen. Der höhere<br />
Rechenzeitbedarf der Meta-Heuristiken wird durch bessere Schedules belohnt.<br />
Key words: task graph scheduling, heterogeneous target systems, greedy mapper, genetic algorithm,<br />
simulated annealing, ant colony optimization<br />
1 Einführung<br />
Um komplexe Aufgabenstellungen wie z.B. die mehrtägige Wettervorhersage in einem akzeptablen<br />
Zeitraum lösen zu können, muss man auf die <strong>Parallel</strong>verarbeitung zurückgreifen.<br />
Häug kommen dabei <strong>Parallel</strong>rechner zum Einsatz, die aus einer Vielzahl vernetzter Computer<br />
bestehen. Wenn sowohl die einzelnen Computer als auch die Verbindungsnetzwerke<br />
unterschiedliche Rechenleistung bzw. Übertragungsbandbreite aufweisen, spricht man von<br />
einem heterogenen (Ziel)System. Ein typisches Beispiel für derartige Systeme sind Compute<br />
Grids oder auch Clustercomputer, die meist nicht aus homogenen Komponenten bestehen,<br />
da sie im Laufe der Zeit durch neuere und leistungsstärkere Komponenten erweitert werden.<br />
Die beiden angeführten Architekturen unterscheiden sich bzgl. der Granularität der<br />
damit möglichen <strong>Parallel</strong>verarbeitung. Während Grids aufgrund der beschränkten Übertragungsbandbreiten<br />
vorwiegend für grobkörnige <strong>Parallel</strong>ität wie z.B. Workows geeignet sind,<br />
können mit Clustercomputern auch feinkörnigere Aufgabenstellungen parallelisiert werden.<br />
In beiden Fällen muss man jedoch die Gesamtaufgabe in mehrere Teilaufgaben (Tasks)<br />
zerlegen, die dann möglichst zeitgleich auf den einzelnen Computer berechnet werden. Die<br />
<strong>Parallel</strong>isierung erfolgt häug durch eine Aufteilung der zu bearbeitenden Datenmenge,<br />
deren Teilmengen dann mit mehreren Kopien des gleichen Programms parallel bearbeitet<br />
werden. Wir werden im Folgenden jedoch die funktionale <strong>Parallel</strong>ität betrachten, bei der eine<br />
Gesamtaufgabe in viele unterschiedliche Tasks zerlegt wird. Aufgrund von Datenabhängigkeiten<br />
können bestimmte Tasks erst dann ausgeführt werden, wenn alle ihre Vorgänger die<br />
als Eingabe benötigten Zwischenergebnisse berechnet und gegebenfalls über das Netzwerk<br />
übertragen haben. Die Übertragung entfällt, wenn eine vorangehende Task auf dem gleichen<br />
Rechner bearbeitet wird. In diesem Fall können die Zwischenergebnisse direkt über<br />
den Speicher übergeben werden.<br />
Formal können funktional parallele Programme durch einen attributierten gerichteten<br />
Graphen (Task-Graph bzw. DAG für Directed Acyclic Graph) beschrieben werden. Die<br />
Graphknoten repräsentieren die Tasks und die Kanten deren Abhängigkeiten. Die Attribute<br />
(Weights) an den Knoten entsprechen dem Berechnungsaufwand einer Task und die an<br />
den Kanten dem Kommunikationsaufwand zwischen zwei Tasks. Sobald eine Task einem<br />
36