Waren Anfang des Jahrtausends parallele Systeme noch dem High-Performance-Computing (HPC) vorbehalten, so haben sie mit dem Hardware-Trend hin zu Multicoresytemen mittlerweile auch im Desktop-PC und Serverbereich Einzug gehalten. Um diese Hardwareplattformen optimal auszunutzen sind neue Programmierparadigmen, -sprachen und -werkzeuge notwendig.

Im HPC-Bereich hat die Vernetzung von Arbeitsplatzrechnern mittels leistungsfähiger Kommunikationstechnologien (z. B. Gigabit Ethernet, InfiniBand) zu einer preisgünstigen Plattform für parallele Anwendungen geführt – den sogenannten Clustern. Dabei handelt es sich heutzutage meist um hybride Systeme, d.h. um vernetzte Multicoresysteme. Ein weiterer aktueller Trend ist die Auslagerung rechenintensiver Anwendungen auf die Grafikkarte.

Die Vorlesung stellt die Konzepte der Parallelverarbeitung vor und legt ihren Schwerpunkt auf den Bereich Cluster Computing. Es werden sowohl Programmierparadigmen für Cluster Computing als auch Systemansätze zur Unterstützung paralleler Anwendungen in Clustern wie z.B. das Ressourcenmanagment besprochen.