Description |
Die Verbindung mehrerer Recheneinheiten auf einem Chip (Multicore-Prozessoren) ist zum Standard moderner Prozessoren geworden. Außerdem haben sich Grafikprozessoren (Graphics Processing Units, GPUs) als generische Co-Prozessoren etabliert. Moderne Computersysteme bestehen zunehmend aus einer Kombination dieser paralleler Prozessoren. Derartige heterogene Systeme erfordern innovative Maßnahmen zu ihrer effizienten Programmierung. Die großen Fortschritte moderner Prozessoren in unterschiedlichen Bereichen führen zu einer gegenseitigen Beeinflussung: GPUs werden zunehmend um Eigenschaften von CPUs erweitert, z.B. Cache-Speicher, während Multicore-CPUs mit GPUs auf einen Chip integriert, oder gar große Gruppen klassischer CPUs wie in einer GPU zusammen geschaltet werden. Die so gesteigerte Komplexität und teilweise Spezialisierung der Prozessoren erschwert jedoch ihre Programmierung. Das Verhalten einer Anwendung auf diesen Prozessoren lässt sich schwerer vorhersagen und eine effiziente Verteilung von Berechnungen und Daten in diesen Prozessoren erfordert komplexe Verfahren. In diesem Seminar werden moderne Architekturen und Verfahren zu ihrer Leistungsbewertung, sowie Verfahren zur optimierten Ausführung von Programmen in heterogenen Systemen vorgestellt. |