Prozessoren mit mehreren Kernen sind heute bereits sehr weit verbreitet.
Vertreter solcher Architekturen sind beispielsweise moderne Grafikprozessoren,
die aus bis zu 240 so genannter Stream Processors bestehen können oder
auch der Cell-Prozessor, mit seinem Power Processing Element und acht
zusätzlichen Synergistic Processing Elements. Mehrkernprozessoren
besitzen eine sehr hohe theoretische Rechenleistung und eröffnen
dadurch faszinierende neue Möglichkeiten in naturwissenschaftlichen
und anderen berechnungsintensiven Bereichen, wie etwa Multimedia-
anwendungen, Medizintechnik oder Finanzwirtschaft.
Damit die Leistungsfähigkeit voll ausgeschöpft werden kann,
muss jedoch eine effiziente Abbildung von Algorithmen auf die
Architektur des jeweiligen Mehrkernprozessors gefunden
werden. Gegenüber traditionellen Einkernprozessoren
ist dabei oftmals ein radikales Umdenken bei der
Programmierung erforderlich.
Ziele dieses Seminars sind das Gewinnen von
Einblicken in modernste Mehrkernarchitekturen
und entsprechender Programmierparadigmen.
Zur Umsetzung und Erprobung werden
NVIDIA Tesla und Sony PLAYSTATION3
Systeme angeboten. Für die Projektarbeit
im Team stehen neueste Software-
entwicklungswerkzeuge (Cell SDK, CUDA)
zur Verfügung.
In diesem Semester soll im Rahmen eines Blockseminars ein bestehendes
Open-Source Softwareprojekt (z.B. Hugin,
ein Stitching-Programm zur Erstellung von Panoramabildern) mit Hilfe
von obigen Architekturen beschleunigt werden. Dazu wird zunächst von uns das
Programmiermodell vorgestellt. Daraufhin sollen einzelne
Teilalgorithmen z.B. auf die Graphikkarte ausgelagert werden um dadurch die
Gesamtapplikation zu beschleunigt. Abschließend sollen die
Algorithmen sowie die Umsetzung und Ergebnisse präsentiert werden.