10.03.2015 Aufrufe

PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...

PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...

PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!