Intel Parallel Advisor: Code-Optimierung für Templates in C++

veröffentlicht von am 4. Februar 2011

Während der OOP (ja,ja, das Thema lassen wir bald ruhen, schließlich steht schon die CeBIT vor der Tür) hatte ich die Gelegenheit, interessante Gespräche mit (angehenden) Multicore-Programmierern zu führen. Dabei tauchte mehrfach die Frage auf, ob der Advisor in Intel Parallel Studio auch mit vorhandenen Templates umgehen könne. Berechtige Frage, aber nicht schwer zu beantworten, wie die amerikanischen Kollegen vom Intel Software Network festgestellt haben .

Das Ausgangsproblem: Mit den für C++ vorhandenen Templates lässt sich schnell zuverlässiger Code generieren. Die Fertigprodukte sind zuverlässig, lassen sich aber kaum optimieren, etwa hinsichtlich Performance. Der Advisor setzt genau dort an und leistet gute Dienste, indem er auch bei älteren Templates die passenden Threads in die Apps integriert.

Gerade wenn der Durchblick  bei seriellem Code fehlt, was bei fremden Templates häufig der Fall ist, sind Analyse-Instrumente obligat, um zu entscheiden, an welchen Stellen Parallelisierung möglich ist und in der Folge zu deutlichen Leistungsgewinnen führt. Der Advisor beantwortet die offenen Fragen über die Funktion Survey Report. Auf diesem Weg werden Bottlenecks grafisch sichtbar.

Funktion Survey Report ermittelt Bottlenecks

Die Funktion Survey Report ermittelt Bottlenecks

Und natürlich hilft das Tolol auch bei der Codebereinigung. Über die Funktion Correctness Report lassen sich die Fehler vorhandener Funktionen im Detail darstellen.

Die Funktion Correctness Report bewertet den Code

Die Funktion Correctness Report bewertet den Code

Und für das Fixing ist der Correctness Source zuständig. Die Funktion zeigt exakt, an welchen Stellen Parallelisieren hilft.

Den kompletten Beitrag mit weiteren Screenshots und konkreten Code-Beispielen können Sie übrigens hier abrufen. Und wer es noch genauer wissen will: Hier gibt es eine kostenlose und sehr detaillierte Einführung in den Advisor zum Download.


Kategorien : Multicore Tags : , , ,

Kommentare

Keine Kommentare vorhanden.


Beitrag kommentieren.

Sie müssen angemeldet sein um diesen Beitrag zu kommentieren. [Login | Registrieren]

(erforderlich)

(erforderlich)