Intel veröffentlicht GPA 4.2 – kostenloser Download für Teilnehmer des Intel Visual Adrenaline Developer Programms
Eines der besten und wichtigsten Developer-Tool-Sets für die Analyse und Optimierung grafischer Berechnungen in 3D-Spielen und Animationen erscheint nun in einer neuen Version. Die Rede ist von den Graphics Performance Analyzers, kurz GP 4.2.
Hier eine schnelle Leistungs- und Funktionsübersicht für Spiele-Entwickler, die GPA noch nicht kennen. Das Set besteht aus drei Programmen:
- Intel GPA Frame Analyzer ist ein intuitiv bedienbares Tool zur Analyse und Optimierung einzelner Frames.
- Intel GPA System Analyzer Heads-up Display (HUD) bietet eine erste und grundlegende (Fehler-)Analyse, ermittelt Bottlenecks und misst die Grafik-Performance auch hinsichtlich möglicher Microsoft 3D-Effekte
- Intel GPA Platform Analyzer stellt eine Zeitskalenansicht für die Analyse von Tasks, Threads, Microsoft DirectX, OpenCL und anderen GPU relevaten Applikationen zur Verfügung.
Wenn Sie mehr darüber erfahren möchten, empfehle ich Ihnen diesen Beitrag von der GDC Europe 2011 zum Thema GPA.
Nun zu den Neuerungen der Version 4.2. Gegenüber der Version 4.1 vom Anfang des Jahres kamen abgesehen von einigen Fixes folgende Funktionen hinzu:
- Aktualisierte Intel Instrumentation und Tracing Technology (Intel ITT): Mehr Tracing-Informationen werden gesammelt, um typische Problemfelder wie Flaschenhälse noch exakter zu ermitteln
- Die Task Timeline Ansicht stellt nun auch Task Sub-States dar
- Task-Daten können nun auch über die OS- Scheduler Informationen hinaus abgerufen werden
- Task-Farben können nun flexibler angepasst werden um die Übersichtlichkeit der Darstellung zu verbessern
- In der Zeitskalenansicht kann der Anwender nun eigene Tracks hinzufügen
Neugierig geworden? Dann probieren Sie GPA doch selbst in Ihrem persönlichen Umfeld aus. Als Mitglied des Intel Visual Adrenaline Developer Programms können Sie die Tool-Sammlung kostenlos downloaden. Und hier können Sie sich für das Intel Visual Adrenaline Developer Programm registrieren, wenn Sie noch nicht dabei sind.
Andernfalls kostet GPA 4.2 299 US-Dollar und wird hier angeboten.
News-Beiträge, Workshops, Tutorials und Videos zu dem cleveren Toolset können Sie übrigens regelmäßig hier abrufen.
Wer braucht noch Google Android?!
Zugegeben, die Überschrift dieses Beitrags mag auf den ersten Blick etwas ketzerisch sein, und viele Android-Jünger würden mir wohl gerne in den nächsten Tagen auflauern, aber hey, so gemein bin ich doch gar nicht. Na ja, zumindest nicht so richtig. Und um das zu belegen, werde ich meine Überschrifts-These natürlich begründen. Und das mit einem nicht zu übersehenden Augenzwinkern.
Bei meiner provokanten Frage geht es übrigens um die gerade vorgestellte Version 4.0 von Android, die den lustigen und aus der Welt des Kulinarischen stammenden Codenamen “Ice Cream Sandwich” trägt. Eines der Hauptmerkmale von Android 4.0 ist zweifellos das Verschmelzen des Smartphone-OS “Gingerbread” und des Tablet-OS “Honeycomb”. Also wird aus Anroid mit der Version 4.0 endlich ein Betriebssystem für sämtliche Geräteklassen. Das wird nicht nur die Käufer, sondern vor allem auch die Software-Entwickler dieser Welt freuen, die sich in Zukunft nicht mehr überlegen müssen, für welche Android-Version sie ihre Apps bauen wollen.
So, jetzt aber zurück zu meiner Frage: “Wer braucht noch Google Android?”. Wie ich darauf komme? Nun, sieht man sich beispielsweise die angepasste Oberfläche von “Ice Cream Sandwich” an, so fällt auf, dass Google wohl von Windows Phone respektive Windows 8 und dem zugehörigen Metro-Design inspiriert wurde. Dazu gehört beispielsweise das Adressbuch, dass alles ein wenig größer darstellt und auf eine bessere Integration von Social-Media-Kontakten setzt. Aber auch der rechte Rand des Android-4.0-GUI mit der Andeutung, dass es dort weitere Elemente gibt, ähnelt sehr dem Bedienkonzept von Windows Phone.
Darüber hinaus findet man auch webOS in Android 4.0. So lassen sich einzelne Apps durch ein horizontales Wischen aus der Task-Manager-Ansicht eliminieren. Diese waagerechte Geste wurde im neuen Android sehr konsequent umgesetzt: Meldungen verschwinden auf diesem Weg vom Bildschirm, aber auch Browser-Tabs können so geschlossen werden.
Natürlich hat sich Google auch bei Apple das ein oder andere abgeguckt: dazu gehört beispielsweise die Möglichkeit, direkt aus dem Sperrbildschirm heraus ein Foto zu schießen (das beherrscht Windows Phone übrigens auch). Mit der Fotoapp können die so geschossenen Bilder direkt am Smartphone bearbeitet und gespeichert werden. Und das Erstellen von Bildschirmfotos mit Hilfe einer speziellen Tastenkombination beherrscht das iPhone schon ziemlich lange. Zudem erinnert der mobile Chrome-Browser immer mehr an Safari für iPhone und iPad. So werden bis zu 16 offene Tabs unterstützt, und Webseiten lassen sich für das Offline-Lesen speichern.
Insgesamt gibt es viele neue, nützliche Funktionen, die Entwickler in ihre Android-Apps in Zukunft einbauen können. Ob sie sich damit besser von iOS, Windows Phone und Co. abheben können, bleibt fraglich.
Ach ja: Auf der Entwicklerseite von Google stehen sämtliche Tools und Informationen zu Android 4.0 bereit.
Intel Threading Building Blocks 4.0 stehen mit neuen Funktionen bereit
Als ob ich es geahnt hätte: erst am Freitag habe ich über die Intel Parallel Building Blocks geschrieben, den “großen Bruder” der Intel Threading Building Blocks (Intel TBB). Und heute erfahre ich, dass die Multithreading-Bibliothek von Intel ab sofort als Major Release 4 erhältlich ist. Na, das ist mir ja wohl einen genaueren Blick wert.
Eine wichtige Verbesserung bzw. Neuheit stellt der Flow Graph dar, den man ja schon im fünften Update der Intel TBB 3.0 vorgefunden hat, allerdings noch nicht in der finalen Version. Dies ist mit Intel TBB 4.0 geschehen, und Software-Entwickler werden diese neue Funktion lieben.
Denn mit dem Flow Graph lassen sich Abhängigkeiten zwischen einzelnen Berechnungen und Algorithmen grafisch darstellen. Das betrifft sowohl statische als auch dynamische Operationen. Dies ist vor allem bei der Visualisierung von parallelisierten Codeabschnitten sehr hilfreich, da vor allem in diesen speziellen Fällen unvorhersehbare Nebeneffekte auftreten können, die mit Flow Graph unter Umständen sichtbar werden.
Neben Flow Graph spielen neue Mechanismen in TBB 4.0 ein weitere wesentliche Rolle, mit deren Hilfe Speicheroperationen auf definierte Bereiche beschränkt werden können. Diese Memory Pools eignen sich ebenfalls dazu, mögliche Speicherprobleme bei parallel programmierten Codeabschnitten zu vermeiden.
Für die explizite Parallelprogrammierung kommt in Intel TBB 4.0 eine Concurrent Memory Queue zum Einsatz, mit deren Hilfe die Abarbeitung paralleler Aufgaben einfacher gewichtet, also priorisiert werden können. Und mit den neu eingeführten Concurrent Unordered Sets können Software-Entwickler thread-sichere Container zum Ablegen von Nutzerobjekte erstellen und per Hashkey nutzen.
Darüber hinaus lassen sich auch Tasks und ganze Task-Gruppen priorisieren, und zwar auf drei verschiedenen Ebenen, nämlich Low, Normal und High. Last but not least unterstützt der GCC dank Intel TBB 4.0 ab sofort thread-sichere atomare Operationen, was Parallelcode noch effizienter machen soll.
Intel Threading Building Blocks 4.0 gibt es in Varianten für Windows, Linux und Mac OS X, und zwar kostenfrei, wenn man damit nicht-kommerzuielle Projekte betreibt (auf Basis der GPLv2 mit Runtime Exception). Für kommerzielle Projekte stehen diverse Kaufversionen von Intel bereit. Und das inklusive Support.
OpenMP 3.1 mit neuen Features und Funktionen
Über OpenMP konnte man auf diesem Blog schon eine ganze Menge lesen. Und jetzt wurde die Spezifikation 3.1 veröffentlicht. Zwar ist es nur ein Minor Release, das aber einige neue, interessante Features und Funktionen bereit hält. Das konnte man aber auch erwarten, schließlich stammt die Version 3.0 aus dem Jahr 2008. Zusammenfassend sei gesagt, dass die Spezifikation unter anderem vordefinierte min- und max-Operatoren vorsieht, das atomic-Konstrukt erweitert und den Task-Konstrukten neue Attribute spendiert wurden. Im einzelnen wirken sich die Veränderungen wie folgt aus:
min / max: Mit diesen beiden neuen Operatoren sind Entwickler nicht mehr dazu gezwungen, eigene Workarounds zu bauen, um zugehörige parallele Reduktionskonstrukte zu entwerfen. Solche Konstrukte sind beispielsweise beim Ermitteln der Kreiszahl Pi von großem Vorteil. Zumal, wenn mit min-max-Operatoren die Unter- und Obergrenzen sehr einfach begrenzt werden können.
atomic: Mit dem erweiterten atomic-Konstrukt ist in Zukunft die Übergabe von Variablenwerten möglich, die beispielsweise mittels #omp pragma atomic während der Ausführung einer Schleife automatisch aktualisiert werden. Dies soll dynamische Scheduler ermöglichen, und zwar ohne den Einsatz zeitaufwändiger Locks und Kritischer Abschnitte (critical regions). Darüber hinaus ermöglicht das aktualisierte atomic-Konstrukt das explizite Speichern und Lesen von einzelnen Speicherzellen, die mit solch einem Konstrukt in Zusammenhang stehen.
Task-Konstrukte: Auch das Task-Modell von OpenMP wurde optimiert. So sollen Entwickler mit dem neuen Konstrukt taskyield eigene Scheduler-Zeitpunkte definieren können. Damit kann man der OpenMP-Runtime mitteilen, dass ein bestimmter Task zugunsten eines anderen angehalten wird, um ihn später fortzusetzen.
Darüber hinaus lassen sich die Gültigkeitsbereiche der Daten innerhalb paralleler Task-Konstrukte noch genauer spezifizieren. Dazu wurden die neuen Attribute final und mergeable eingeführt. So kann mit Hilfe des Konstrukts #pragma omp task [final (ausdruck)] im Falle von ausdruck=true ein Task unmittelbar beendet werden. Das gilt dann auch für sämtliche Child-Tasks. Dies soll in Kombination mit dem Attribut mergeable zu feiner granulierten Parallelkonstrukten führen und zudem für einen geringeren Thread-Overhead sorgen
Falls Sie an der gesamten OpenMP-Spezifikation 3.1 interessiert sind: Hier finden Sie das passende PDF-Dokument dazu.
Mac OS X Lion steht vor der Tür: Das bringt es für Entwickler
Das Interview mit Alex von Below führte es zu Tage: so mancher Leser scheint mehr Apple-Themen auf diesem Blog lesen zu wollen. Diesem Wunsch komme ich gerne nach und beschäftige mich heute ein wenig genauer mit der nächsten Betriebssystemversion, OS X 10.7 “Lion”. Aber keineSorge: Die Kernthemen in diesem Blog bleiben natürlich Entwicklungsumgebungen und -Tools für Windows- und Linux-Plattformen.
Der Zeitpunkt für diesen Beitrag ist übrigens sehr naheliegend, da wohl nächsten Donnerstag (14.7.) das Update im Mac App Store für 24 Euro zum Download bereit steht. Das stellt übrigens eine Premiere dar: zum ersten Mal in der Apple-Historie wird eine OS-X-Version nicht auf DVD ausgeliefert, sondern rein digital verteilt. Das erklärt auch den niedriegn Preis.
Nun aber zu den wichtigsten Features, die OS X Lion für Entwickler parat hält:
- Mac App Store: Zwar ist der Online-Store für Mac-Anwendungen seit der Version 10.6.7 bereits verfügbar und floriert wohl auch schon ganz passabel, fester Bestandteil von Mac OS X wird er aber erst mit 10.7. Die Vorteile für Mac-Entwickler liegen auf der Hand: Software kann mit wenigen Mausklicks auf jedem Mac installiert werden, Apple kümmert sich um die komplette Infrastruktur und sicher ist solch ein Webstore ebenfalls.
- In-App-Verkäufe: Was bisher nur im mobilen Umfeld geschieht, wird mit Lion auch auf Desktop- und mobilen Rechnern Realität: der Verkauf zusätzlicher Funktionen und Module innerhalb einer existierenden Anwendung. Das bedeutet für Sie als Entwickler, dass Sie neue Features für Ihre bestehenden Anwendungen programmieren und diese dann per In-App-Purchasing an den Mann oder die Frau bringen können. Damit verdienen Sie an einer App mehrfach – wenn Sie es geschickt anstellen und gute Ideen für Zusatzfunktionen haben.
- Push Notifications: Auch dieses neue Features kennt man bisher nur von iOS. Doch was für mobile Apps gilt, lässt sich auf Mac-Anwendungen entsprechend übertragen: mit Hilfe von Push Notifications entsteht mehr Interaktion zwischen Anwender und Anwendung, da jede Veränderung mittels kleiner Nachrichten kommuniziert werden kann.
- Vollbild-Anwendungen: Auf der Basis von NSApplication, NSWindow und NSWindowDelegate wird es unter Lion recht einfach möglich sein, so genannte Vollbild-Anwendungen zu bauen, die vor allem auf Apple-Rechnern mit kleinem Bildschirm (z.B. Macbook Air mit 11 Zoll) ihr Potenzial ausspielen sollen.
- Neue Multitouch-Gesten: Damit wird der Desktop-PC ein wenig näher an die mobilen Geräte heranrücken. So lässt sich das Launchpad mit Hilfe neuer Gesten steuern, genauso wie die bereits erwähnten Vollbild-Apps und vieles mehr.
- Überarbeitetes AV-Foundation-Framework: Damit lassen sich jetzt unter OS X 10.7 bessere Video- und Audio-Anwendungen entwickeln. So wird es möglich sein, mit Hilfe geeigneter Schnittstellen Audio- und Videoinhalte in die eigene Anwendung zu integrieren, und auf Basis diverser Klassen lassen sich sogar Videodaten auf dem Mac bearbeiten, die in Echtzeit von einem externen Gerät wie einem Camcorder kommen.
- Automatisches Speichern: Auch dieses Feature steht unter Lion allen Entwicklern zur Verfügung. Es ist zwar nichts Revolutionäres, aber dass man ein Autosave in seine eigenen Apps einbauen kann, wird die Effizienz von Anwendungen verbessern. Und mit Hilfe einer Datei-Historie lassen sich beliebige Versionen eines Dokuments via Time Machine wiederherstellen.
- iCloud-APIs: Auf Basis neuer Schnittstellen für den MobileMe-Nachfolgedienst iCloud können Entwickler ihre Apps mit neuen Funktionen versehen, die das Speichern von Daten auf einem dedizierten Cloud-Server ermöglichen.
Zwei Updates & neue Videos zum Thema Parallel-Programmierung
“Alles neu macht der Mai”, heißt es in einer Redewendung. Wir beginnen schon im April damit und stellen Ihnen zwei wichtige Updates für Developer-Tools vor und neue Entwickler-Videos bei ISN.
Beginnen wir mit den Updates:
Der Parallel Advisor 2011 wurde mit einem zweiten Update aufgewertet. Zum einen wurden, wie bei Updates üblich, kleine Fehler korrigiert. Zum anderen wurde das Tool aber auch für das Zusammenspiel mit Windows 7 Service Pack 1 und Microsofts Entwicklungsumgebung Visual Studio 2010 optimiert.
Hintergrund: Der Parallel Advisor ist eines der wichtigsten Entwicklerwerkzeuge von Intel, um festzustellen, welche seriellen Codebestandteile Parallelisierungs-Potenzial haben und wie sich entsprechende Threads implementieren lassen.
In diesem Blog habe ich bereits mehrfach über den Parallel Advisor und dessen Möglichkeiten in der Programmierpraxis berichtet.
Auch Intels VTune Amplifier XE hat per Update ein paar neue Funktionen erhalten. Das Tool ist konsequent auf die neue Sandy-Bridge-Generation ausgerichtet und bietet nun neue Performance- und Analyse-Funktionen wie
- vordefinierte Event-Profile zur einfacheren Diagnose
- mehr integrierte Messverfahren etwa zur Speicherbelegung
- automatisches Markieren von Code-Elementen, die einen bestimmten Normwert übersteigern
- Tooltipps
Hintergrund: Der VTune Amplifier XE sammelt, analysiert und bewertet Leitungsdaten in vorhandenen Programmen, um Schwachstellen und Flaschenhälse zu ermitteln.
Weitere Informationen zum VTune Amplifier können Sie ebenfalls in diesem Blogbeitrag nachlesen.
Zudem hat das Intel ISN eine Reihe neuer Videos im Rahmen des Parallel Programming Talk veröffentlicht. Der Parallel Programming Talk ist eine wöchentliche Video-Show im Intel Software Network TV, die sich an Parallel-Programmierer wendet – auch an Einsteiger. Um zu neuen Video-Aufzeichnungen auf dem Laufenden zu bleiben, können Sie sich auch per Twitter informieren lassen.
Intel TBB 3.0 mit neuen Funktionen und VS2010-Support
Schon letzte Woche erreichte mich eine E-Mail, in der die aktualisierte Version der Intel Threading Building Blocks angekündigt wurde. Tja, und da genau heute Intels Bibliothekensammlung für C und C++ offiziell vorgestellt wird, gibt es dazu natürlich auch einen entsprechenden Blogbeitrag.
Auf den ersten Blick bietet Intel TBB 3.0 zwei wesentliche Verbesserungen: die volle Kompatibilität mit Visual Studio 2010 und .NET 4 sowie die Unterstützung des künftigen ISO/ANSI-Standards für C++, der noch unter dem Arbeitsnamen C++0x geführt wird. Aber auch andere Features wie eine neue Containerklasse und verbesserte Debugger-Merkmale flossen in die neue Version der Intel TBB 3.0 ein. Im Detail sieht das wie folgt aus:
Optionaler C++0x-Support
- die neue Funktion parallel_pipeline() verbessert die alte Warteschlange-Funktion mithilfe von Lambda-Support und anderen Features
- TBB_USE_CAPTURED_EXCEPTION() verbessert das Exception Handling
- verbesserte Synchronisierung auf Basis konditioneller Variablen
Handbuch “Pattern Design”
Dieses von TBB-Entwickler Arch Robison geschriebene Handbuch zeigt, wie Pattern Design funktioniert
Kompatibel mit Microsoft Visual Studio 2010
- Support der Concurrency Runtime
- kompatibel mit der Parallel Pattern Library
- kompatibel mit reader_writer_lock() and critical_section_lock()
Neue Container-Klasse
concurrent_unordered_map() (natürlich C++ 0x-kompatibel)
Verbessertes Debuggen
- Task Scheduling, Vorhersagen und Reaktionszeiten wurden verbessert
- voneinander unabhängiges Verwalten von Tasks für mehrere Masterthreads
- verbesserte Vermeidung von Deadlocks
- weiterentwickelte Hinweise für Parallel Amplifier und Parallel Inspector
Scheduler-Support (task::enqueue)
- unterstützt FIFO-Warteschlagen
- nützlich für das Emulieren von Task-Prioritäten und die Interaktion mit GUI-basierten Threads
Leistungsverbesserungen
- Beschleunigung der Funktion numerable_thread_specific() und Kombinationen davon
- verbesserte Speicherverteilung bei großen Speicherblöcken
und einiges mehr.
Wer mit Intel Threading Building Blocks Software entwickeln und parallelisieren möchte, kann dies in zweierlei Hinsicht tun: entweder bezahlt man 299 Dollar für die Windows- oder Linux-Variante und erwirbt damit das kommerzielle Paket von TBB 3.0. Dazu gehört auch ein professioneller Support seitens Intel. Oder man begibt sich auf www.threadingbuildingblocks.org, besorgt sich die Open-Source-Variante des Pakets und bekommt damit eine GPLv2-Lizenz. Diese ist natürlich kostenlos.



