Software Dev Blog

Mobile, Multicore, Multithreading & Visual Computing

Parallel Studio: Das leistet der Parallel Advisor Lite

| 0 comments

Erst gestern habe ich darüber berichtet, dass Intel seinen jüngsten Spross, Parallel Studio, der Öffentlichkeit vorgestellt hat. Daneben gibt es eine sogenannte Tech Preview des Parallel Advisor Lite, der in der nächsten Version von Parallel Studio vollwertiges Mitglied der Toolsuite werden soll. Und ich habe gestern versprochen, ein paar Infos zum Advisor online zu stellen. Was hiermit geschieht.

Zunächst einmal: Mit dem Parallel Advisor stellt Intel ein Tool zur Verfügung, das Entwicklern und Programmierern dabei helfen soll, Parallelisierungspotenzial ihrer Anwendungen zu identifizieren. Und das nicht per Trial-and-Error, sondern mit erprobten Messverfahren, die diejenigen Codeabschnitte ermitteln, bei denen sich das Multithreaden am ehesten lohnt. Hierfür unterstützt Parallel Advisor Lite diverse Ansätze:

Flexible Handhabung: Der Advisor kann zu jedem beliebigen Zeitpunkt der Anwendungsentwicklung laufen. Entscheidend ist nur, dass Microsoft Visual Studio 2005 oder 2008 samt einer C++-Entwicklungsumgebung und Parallel Studio zum Einsatz kommen.

Eingebaute Skalierbarkeit: Der Parallel Advisor sorgt für skalierende Anwendungen, die auf den kommenden Intel-Plattformen “mitwachsen”.

Einsatz von Industriestandards: Dank des Einsatzes von OpenMP und anderer Techniken orientiert sich Parallel Studio und damit auch der Parallel Advisor an anerkannten Industriestandards, was die Software-Entwicklung mit diesen Tools zukunftssicher macht.

Vereinfachte Parallelprogrammierung: Der Parallel Advisor erfordert laut Intel relativ wenig Vorwissen in Sachen Parallelprogrammierung. Gleichzeitig soll sich das Erfolgserlebnis recht schnell einstellen.

Bekannte Programmiermethoden: Parallel Advisor unterstützt sowohl Daten- als auch Aufgabenparallelismus.

Um eine sequenziell programmierte Software-Anwendung effizient und ohne größere Kopfschmerzen zu parallelisieren, sind mithilfe des Parallel Advisors folgende Schritte notwendig:

  • Die laufende Anwendung wird auf mögliche parallelisierbare Abschnitte hin untersucht. Hierbei handelt es sich um eine Hotspot-Analyse, die potenzielle Konstrukte wie Schleifen für die Parallelisierung identifiziert.
  • In Frage kommende Abschnitte der Anwendung werden entsprechend markiert, sodass ein späteres Einfügen von Parallelkonstrukten mithilfe von OpenMP, Intel TBB und Co. möglichst einfach vonstatten geht.
  • Anschließend werden diejenigen Programmabschnitte identifiziert, die Dead Locks und ähnliche Probleme verursachen können.
  • Es werden an denjenigen Sourcecode-Stellen entsprechende Programmierzeilen eingefügt, die dabei helfen sollen, Datenprobleme mithilfe passender Konstrukte zu beseitigen.
  • Nach ausführlichen Tests des seriellen Quellcodes werden abschließend alle markierten Stellen durch Multithread-Konstrukte ersetzt. Das macht aus dem sequenziell programmierten Software-Titel eine parallel ablaufende Anwendung, die die vorhandenen Multicore-Ressourcen hoffentlich optimal nutzt.

Leave a Reply