Zur Seitenansicht

Titelaufnahme

Links
Zusammenfassung (Deutsch)

Die aktuelle Entwicklung von Prozessoren hat zu einer weiten Verbreitung von Multi- und Many-Core-Prozessoren geführt. Demgegenüber steht nach wie vor das etablierte sequentielle Programmierparadigma. Eine effiziente Entwicklung mehrerer parallel arbeitender Instanzen erfordert in der Regel die explizite Programmierung von Kommunikations- und Synchronisierungsaufgaben. Durch das zusätzlich benötigte Wissen über die Zielarchitektur und parallele Algorithmen erreicht Softwareentwicklung eine höhere Komplexität. Dies geht einher mit einem erhöhten Fehlerrisiko. Zudem werden Reimplementierungen etablierter Programme notwendig. Um den Entwicklungsaufwand gering zu halten und zugleich von Mehrkernarchitekturen profitieren zu können, verfolgt diese Forschungsarbeit einen Ansatz zur rechnergestützten Parallelisierung sequentieller Programme mittels eines Zerlegungsmodells. Fragmentierungsansätze wurden herangezogen und in Hinblick auf das Ziel adaptiert, um deren Eignung für die Parallelisierung und mögliche Strategien zu prüfen.

Das für weitere Schritte gewählte Modell führt zu Fragmenten, bei denen alle Kontroll- und Datenflüsse bekannt sein müssen. Konkrete Datenabhängigkeiten sind für die Ausführungsdauer einzelner Fragmente zudem statisch. Dadurch wird eine Umordnung in der Ausführung möglich. In der Arbeit werden Parallelisierungsstrategien auf Basis ermittelter Kontroll- und Datenflussabhängigkeiten zwischen gebildeten Fragmenten eines Programmsystems präsentiert. Um Entwicklern einen Eindruck über existierende Abhängigkeiten vermitteln zu können, ist Visualisierung ein geeignetes Mittel. Diese wird für reale Anwendungen schnell komplex. Die besonderen Eigenschaften des zugrundeliegenden Modells erlauben einen Vergleich mit digitalen bzw. kombinatorischen Schaltungen. Es wird der daraus abgeleitete Visualisierungsansatz präsentiert. Darüber hinaus ergibt sich zudem eine mögliche Transformation in Schaltungen auf Systemebene, welche diskutiert wird.

Für eine Umordnung der Ausführung zur Nutzung der Parallelität wurde ein Ausführungsmodell entwickelt. Dieses basiert auf einer Ablaufplanung, welche durch Kapselung der Fragmente und Abflachung der Aufrufhierarchie möglich wird. Das Verhalten dieses Modells wird hinsichtlich parallelisierbarer Strukturen diskutiert. Konkrete Ausprägungen der theoretisch entwickelten Strategien werden anhand von Beispielen belegt.

Statistik