Vor dem Hintergrund immer leistungsfähigerer SIMD-Hardware gibt dieser Vortrag einen Überblick über Vektorisierungstechniken. Dabei gehen wir von impliziten über Direktiven-basierte Techniken bis hin zur expliziten Vektorisierung mittels C++-Bibliotheken. Es werden Vor- und Nachteile der einzelnen Techniken im Bezug auf Verlässlichkeit, Benutzbarkeit und Wartbarkeit besprochen. Im Fokus werden explizite Techniken stehen, die wir zur Vektorisierung von großen Anwendungen einsetzen. Anhand dieser werden wir illustrieren, wie Vektorisierung auch für Programme oder Programmteile, die auf den ersten Blick ungeeignet erscheinen, zu Speedups führt.
Skills
* Erfahrung mit C/C++
* Grundlagenwissen zu SIMD und Vektorisierung
Lernziele
* Gelegenheiten zur Vektorisierung erkennen
* Vektorisierungstechniken anwenden
* Anwendungen im Hinblick auf zukünftige Hardware optimieren
// Referenten
// Olaf Krzikalla
hat über 10 Jahre Erfahrung in der industriellen Softwareentwicklung gesammelt. 2009 wechselte er an die TU Dresden und forscht dort an Methoden zur Effizienzsteigerung von parallelen Anwendungen. Insbesondere beschäftigt er sich mit Vektorisierungsstrategien für umfangreiche Programme.
// Markus Höhnerbach
promiviert am Aachen Institute for Avanced Study in Computation Engineering Sciences über die Optimierung von Molekulardynamik-Simulationen. Im Rahmen dieser Arbeit beschäftigt er sich mit den Vektorisierungsmöglichkeiten, die moderne Hardware bietet.