Softwarekonferenz für parallele, nebenläufige
und asynchrone Programmierung und HPC
Heidelberg, Print Media Academy, 6.-8. März 2018

// The Performance Addict's Toolbox

Für viele Entwickler ist die Leistung ihres Codes in jeder Minute ihres Arbeitslebens extrem wichtig. Beispielsweise ist das zentrale Kriterium zur Nutzung von C++ in Softwareprojekten fast ausschließlich Geschwindigkeit. Aber wie messen wir diese Geschwindigkeit? Welche Werkzeuge gibt es, um die Leistungsfähigkeit eines Quelltextabschnitts in einem größeren Softwareprojekt zu bestimmen? Welche Werkzeuge helfen uns die Effizienz von neuen Algorithmen eines Kollegen oder eines beliebigen Code-Beitrages zu messen?

In diesem Vortrag werde ich diese Fragen mittels Demonstrationen und Beispielen aus dem Entwickleralltag beantworten. Ich werden vornehmlich *NIX-Werkzeuge vorstellen, die helfen, das Laufzeitprofil von parallelen Applikation zu bestimmen; mit einem besonderen Fokus auf C++.

Vorkenntnisse
Die Teilnehmer sollten ein grundsätzliches Verständnis des Programmierens mitbringen, bspw. sollten sie eventuell einmal in ihrem Entwicklerleben eine For-Schleife geschrieben haben, die ihre Anwendung bis zur Nutzlosigkeit verlangsamt hat. Dies wird ihnen die grundsätzliche Motivation für diesen Talk näher bringen.

Lernziele
Dieser Vortrag hat drei Hauptteile:
* Wie nutze ich Kommandozeilen-Werkzeuge, um die Gründe für die langsame Laufzeit einer Anwendung zu finden?
* Wie nutze ich C++-Bibliotheken, um verschiedene Implementierungen zu vergleichen?
* Wie arbeitet man mit Performancedaten und trifft aufgrund derer Entscheidungen?


// Thomas Röhl Thomas Röhl

ist wissenschaftlicher Mitarbeiter und Phd-Student in der HPC Gruppe des Rechenzentrums der Universität Erlangen-Nürnberg. Er arbeitet in mehreren performance-relevanten Projekten und sein Arbeitsfeld reicht von HPC-Cluster-Performanceüberwachung bis zur Auswertung von Hardware Performance Countern zur automatischen Anpassung von Laufzeitsystemen. Außerdem ist er der Hauptentwickler der LIKWID Toolbox, die Programmierer und Softwareentwickler bei der Optimierung und Validierung der Performance ihrer Codes unterstützt.


// Peter Steinbach Peter Steinbach

hat an der Universität Leipzig studiert, wo er sein Diplom mit einem Thema aus der Teilchenphysik am DESY Hamburg erhielt. Seine Doktorarbeit befasste sich mit der Analyse von Daten des Large Hadron Collider (CERN), welche er 2012 erfolgreich verteidigte. Danach wechselte er in eine Anstellung als IT-Spezialist und Scientific Software Engineer am Max-Planck-Institut für molekulare Zellbiologie und Genetik Dresden (als Kunde der Scionics Computer Innovation GmbH), wo er sich seitdem mit parallelen Algorithmen auf Grafikkarten und HPC-Systemen beschäftigt.