Vorheriger Beitrag: Intel Software Conference: erste Worte
ISC’09: Parallele Programmierung für den Mainstream
James Reinders widmet sich dem Thema Parallelprogrammierung aus Intel-Sicht. Das hat vor allem mit den Tools zu tun, die der Chiphersteller seit vielen Jahren im Programm hat, seinerzeit vor allem auf HPC spezialisiert.
Ohne große Umschweife kommt James auf Parallel Studio zu sprechen. Das Feedback der Beta-Tester ist wohl sehr gut. Gleichzeitig ist es aber wichtig, so Reinders, dass die Segmentierung der Tools klar ist: Parallel Studio wird in Zukunft den Mainstream der C++-Programmierer adressieren, während sich die anderen Softwarewerkzeuge eher an Highend-Entwickler wenden – unter anderem an diejenigen, die nicht in C++ unter Windows programmieren.
Klar, dass James auch über geplante Produkte redet. Zum einen über die nächsten Multicore-Prozessoren, die ein Vielfaches an Threads wie die aktuellen CPUs parallel verarbeiten können. Aber auch Larrabee kommt kurz ins Gespräch.
Jetzt liegt gerade eine interessante Folie auf, die das ganze Dilemma vieler Programmierer aufzeigt: Mehr Prozessorkerne bedeuten nicht zwangsläufig mehr Leistung, da die Taktraten nicht weiter nach oben gehen und aus diesem Grund die Anwendungen für parallel ablaufende Threads optimiert werden müssen. Und zwar so, dass die Software auch dann skaliert, wernn die Hardware nicht nur vier Prozessorkerne bietet, sondern 8, 16, 32 oder mehr.
Auf die Bühne kommt – Intel Threading Building Blocks, übrigens Teil des Parallel Studio.
“Tools must help” – sowohl in vergangenen Zeiten als Hilfsmittel als auch heute und morgen für korrekt und skalierend programmierte Anwendungen.
Ok, jetzt wird’s parallel: James spricht über Parallel Studio und stellt die vier Stufen der parallelen Programmierung vor: Design, Programmierung/Testen, Verifizierung, Tuning.
Design: Hiefür wird es eines schönen Tages den Parallel Advisor geben, der aber zunächst nicht Bestandteil von Parallel Studio sein wird.
Programmierung/Testen: Hierfür gibt es Parallel Composer, der verschiedene Tools in sich vereint: OpenMP 3.0, C++-Compiler, Parallel Debugger Plug-in, Integrated Performance Primitives, Threading Building Blocks, Lambda-Funktionen etc.
Verifizierung: Parallel Inspector kümmert sich um die Fehler und Bugs, die sich bei der parallelen Programmierung eingeschlichen haben. Letztlich ist der Inspector eine verbesserte Variante des Thread Checker, den es ja schon eine ganze Weile gibt. Was der Inspector besser macht ist das Aufspüren von Speicherproblemen, und das natürlich zur Laufzeit. Daneben findet Inspector Fehler in Multithreading-Segementen wie Dead Locks Data Races – und gleich die passenden Programmzeilen dazu.
Tuning: Parallel Amplifier spürt ähnlich wie VTune und Thread Profiler Flaschenhälse und Hotspots innerhalb einer parallel programmierten Anwendungen auf. Hierfür kann man sich beispielsweise seine Software benchmarken, indem man die vorhandenen Funktionen unterschiedlich anordnet und mithilfe des Amplifier herausfindet, welche Anordnung am besten ist.
Jetzt kommt James doch noch mal auf Parallel Advisor zu sprechen, der im Laufe des Jahres allen Studio-Anwendern zur Verfügung stehen wird. Dieses Tool wird Entwicklern dabei helfen, den besten Ansatz für die Parallelisierung seiner Anwendung zu finden.
Auch ein wichtiges Thema ist die geplante Version von Microsoft Visual Studio 2010, die eine Menge an Parallelismus eingebaut haben wird. Interssant an der Folie ist der Hinweis, dass Intel die Microsoft Concurrency Runtime in Zukunft unterstützen wird. Bisher ist es nämlich vor allem für .NET-Entwickler recht schwierig, Multithread-Code zu “überwachen”. Das betrifft hauptsächlich den Task Scheduler, der sich um das Verteilen der anfallenden Threads auf die vorhandenen Prozessoren kümmert.
Interessanter Einwurf eines anwesenden Teilnehmers: Warum sollte man nicht einfach auf Visual Studio 2010 warten, anstatt Parallel Studio einzusetzen? Antwort von James Reinders: Parallel Studio setzt auf OpenMP und hat vor allem mit dem Parallel Inspector ein Debugger-Tool “onboard”, das zur Laufzeit Data Races und Deadlocks finden kann!
Und jetzt noch zwei schöne Schlussworte:
C- und C++-Entwickler benötigen ALLE Parallel Studio!
Parallel Studio ist das absolut beste Tool für die parallel Programmierung!



Trackbacks & Pingbacks