Software Dev Blog

Mobile, Multicore, Multithreading & Visual Computing

IDF09: Techsession “Software-Tools für skalierende Apps”

| 0 comments

Hier ist sie also: meine erste Techsession auf dem Intel Developer Forum 2009. Es geht um die Frage, mit welchen Tools Software-Entwickler arbeiten sollten, um das Beste aus ihren Anwendungen herauszuholen.

Die Session beginnt mit einer Folie, die all das zeigt, was Intel in Sachen High Performance Computing tut.

Folie 2 beschäftigt sich mit der Frage, welche Dinge zu berücksichtigen sind, um das Optimum aus seiner Anwendung zu holen. Dazu gehören die Wahl der richtigen Algorithmen, der passenden Programmiersprache und Compiler und natürlich die Frage nach den passenden Software-Tools, mit denen sich Anwendungen optimieren lassen.

Mit Fragen der Portabilität und der Produktivität sollten sich Entwickler ebenfalls beschäftigen. Auch hier geht es um Dinge wie Programmiersprachen, Tools, Betriebssysteme etc.

Jetzt dreht es sich um das Thema Skalierung und was getan werden muss, um eine Beschleunigung der Anwendungen zu erhalten, die sich an der Zahl der vorhandenen Prozessorkerne und Hardware-Threads orientiert.

Ok, jetzt wird’s interessanter. Der Intel-Kollege spricht über die vorhandenen Entwickler-Tools, die Intel bereit hält. Natürlich ist die Rede von Parallel Studio für C/C++-Entwickler, aber auch von Workstation-/Server- und HPC-Tools wie VTune Performance Analyzer, Intel TBB und mehr.

Wer übrigens glaubt, dass Intel sich nur der Windows-Welt verpflichtet fühlt, der irrt. Der Chiphersteller bietet ebenso Software-Tools für die Linux- und Mac-Entwickler dieser Welt.

Eine sehr schöne Folie: die Unterschiede zwischen Task- und datenbasierter Parallelprogrammierung.

Natürlich darf Parallel Studio nicht fehlen. Es geht also um Parallel Advisor, Parallel Composer, Parallel Inspector und Parallel Amplifier.

Vier Schritte, um eine serielle programmierte Anwendung zu parallelisieren:

1. Der Wechsel zum Intel Compiler verbessert ohne direkten Eingriff in den Code die Laufzeit der Anwendung.

2. Die Vektorisierung des Sourcecodes mithilfe von SIMD-Befehlen.

3. Die Implementierung von Intel-MKL-Code.

4. Automatische Parallelisierung mithilfe von OpenMP und andere Techniken.

Ein wenig Zukunftsaussichten gehören natürlich auch dazu: Intel wird seine Tools weiterentwickeln und damit sicher stellen, dass zukünftige Plattformen mit zukünftigen Anwendungen weiterhin skalieren. Dazu gehören unter anderem Weiterentwicklungen basierend auf Cilk++ und Ct.

Am Schluss gibt es noch ein paar Surftipps: Intel Software Network und whatif sollten Parallelprogrammierer auf jeden Fall kennen. Und natürlich das Software Dev Blog. Aber das stand leider nicht auf der Folie …

Leave a Reply