Vorheriger Beitrag: Das war die Microsoft TechEd Europe 2009
Multicore-Testumgebung in der Cloud: Intel Parallel Universe
Das Entwerfen und Entwickeln parallel programmierter Anwendungen ist keine einfache Sache. Man muss nicht nur beim Entwurf der Software viele Dinge berücksichtigen, sondern will natürlich auch sicher sein, dass das Programm aufgrund der möglichen Abhängigkeiten (sowohl in der Logik als auch bei den Daten) möglichst fehlerfrei läuft. Vor allem beim Multithreaden kommt es nämlich immer wieder zu so hässlichen Dingen wie Dead Locks und Data Races, die unverhofft und völlig überraschend zur Laufzeit auftauchen.
Damit es erst gar nicht so weit kommt, stellt Intel seit Ende Mai dieses Jahres für C- und C++-Anwendungen Parallel Studio zur Verfügung. Mit diesem Plug-in für Visual Studio lassen sich nicht nur möglichst fehlerfreie, sondern auch möglichst skalierende Programme entwickeln, die je nach Anzahl der verfügbaren Prozessorkerne möglichst linear ablaufen. Soll also heißen, dass bei zwei Kernen eine Anwendung doppelt so schnell läuft, auf vier Kernen viermal so schnell usf. – theoretisch zumindest.
Doch wer hat schon unbedingt einen Quadcore- oder noch leistungsfähigeren Rechner im Testlabor rumstehen, mit dem sich diese Skalierung effizient und zuverlässig testen lässt? Eben. Und hier kommt ein ganz neuer Cloud-Service von Intel zum Einsatz, der seit heute kostenlos verfügbar ist. Sein Name: Intel Parallel Universe. Seine Idee: Das Testen parallelisierter Apps mithilfe eines 16-Core-Rechners, der via Internet zur Verfügung steht. Die Voraussetzungen: ein Internetbrowser, Zugang zum Intel Software Network und Parallel Studio für weitere Auswertungen und Analysen.
Der Weg dorthin ist recht einfach: Mit einem kompatiblen Webbrowser (Internet Explorer, Firefox, Safari oder Chrome) lädt man die lauffähige, parallelisierte Windows-Software (32 Bit only) auf Paralleluniverse.intel.com und befolgt die entsprechenden Schritte. Dabei ist es wichtig, dass neben der Anwendung selbst sämtliche Daten und Parameter als Zip-Datei hochgeladen werden (Programme mit Benutzereingaben werden also nicht unterstützt). Sobald dies geschehen ist, wird die Software ausgiebig auf Bottlenecks untersucht. Die Resultate werden dann grafisch aufbereitet und im Webbrowser anschaulich dargestellt. So kann man auf einen Blick erkennen, wie sich die Anwendung auf 1, 2, 4, 8 und 16 Prozessorkernen verhält.
Man sieht also beispielsweise, wie lange die Software auf einer bestimmten Anzahl von CPUs läuft und an welchem Punkt die App nicht mehr skaliert. Aber auch die Parallelität der Anwendung lässt sich feststellen, wie viele Threads also je nach Anzahl verfügbarer Prozessorkerne parallel ausgeführt werden. Doch das ist natürlich nur der Anfang, da man jetzt zwar weiß, ob es klemmt, wo dies allerdings der Fall ist, weiß man noch nicht. Daher lässt sich das Ergebnis der cloud-basierten Analyse lokal speichern und in Parallel Studio öffnen. Der betreffende Sourcecode wird automatisch geladen und per Doppelklick landet man genau an den Stellen, die die mangelhafte Parallelität verursachen. Vermutlich war es noch nie einfacher, Bottlenecks im eigenen Programm zu finden, oder?!

Trackbacks & Pingbacks