Warum Shrek immer schöner und das Rendern bei Dreamworks immer schneller wird

veröffentlicht von am 20. September 2011 (0) Kommentare

Ich vermute mal, dass Software-Entwickler dank ihrer Technik-Affinität ein großes Faible für animierte Filme à la Shrek und Madagaskar haben. Also, das trifft zumindest auf mich zu, und das nicht nur, weil ich Shrek so unglaublich schräg finde. Und genau aus diesem Grund fand ich die Geschichte so bemerkenswert, die ich bei den Kollegen des Softtalkblogs gefunden habe und die ich Ihnen nicht vorenthalten will.

Die Macher von Shrek, Dreamworks Animation, haben nämlich eine Art “Mooresches Gesetz” für Animationsfilme entwickelt. Diese Regel besagt, dass sich mit jeder Shrek-Episode die notwendige Rechenleistung verdoppelt hat. Benötigte also Shrek I vor zehn Jahren etwa fünf Millionen CPU-Stunden zum Rendern des fertigen Films, so kam Shrek 2 bereits auf mehr als 10 Millionen Prozessorstunden für die notwendige Render-Leistung. Und der “aktuelle” Shrek-Film aus dem letzten Jahr erforderte eine unglaubliche Rechenleistung von 50 Millionen CPU-Stunden – und das nur für das Erstellen der 3D-Bilder. Die Konsequenzen für den benötigten Rechner-Park muss ich ja wohl nicht extra ausführen, oder?

Da es Dreamworks Animation sinnvoller erschien, anstatt ständig in neue Hardware eher in die Render-Software zu investieren, setze man sich mit diversen Intel-Ingenieuren zusammen und entwarf einen Plan, wie die Dreamworks-Render-Werkzeuge so zu optimieren seien, damit aus den 50 Millionen Render-CPU-Stunden möglicherweise 20 Millionen oder weniger Stunden werden können. Nun, die Ergebnisse des Brainstormings lassen sich wie folgt zusammenfassen:

  • Mit Hilfe von OpenMP ließen sich zahlreiche Abschnitte des Render-Codes parallelisieren. Um diese kritischen Code-Regionen exakt und mit möglichst geringem Aufwand ausfindig machen zu können, setzten die Intel-Ingenieure auf Intel Inspector XE 2011. Damit ließen sich die Render-Werkzeuge zudem auf mögliche Dead-Lock- und Data-Race-Probleme hin untersuchen.
  • Dank des Tools Intel C++ Compiler Threading Diagnostisch, der Teil des Intel C++-Compilers ist, konnten globale Variablen identifiziert werden, die beim gleichzeitigen Zugriff auf gemeinsam genutzte Daten erhebliche Probleme innerhalb parallel programmierter Abschnitte machen können.
  • Aber auch das Intel C++ Compiler Code Coverage Tool (ebenfalls Teil des Intel C++-Compilers) kam zum Einsatz. Damit lassen sich nämlich sämtliche Programmteile anzeigen, die vom Inspector XE 2011 analysiert worden sind. Das erhöht das Verständnis für die möglichen Optimierungen des eigenen Sourcecodes ganz erheblich.

Es ist wohl überflüssig zu erwähnen, dass all diese Maßnahmen nicht nur zu schnellerem, sondern auch zu thread-sicherem Code geführt haben. Denn bei aller Euphorie hinsichtlich kürzerer Render-Zeiten darf die Laufzeit-Sicherheit auf keinen Fall zu kurz kommen.

So, und falls Sie an detaillierteren Infos zu den einzelnen Optimierungen der Render-Tools von Dreamworks Animation interessiert sind, sollten Sie unbedingt den zugehörigen Blogbeitrag auf software.intel.com lesen.

Kategorien : Multicore,Visual Computing Tags : , ,

Parallelisierungspotenzial von Anwendungen mit Hilfe von Parkour bestimmen

veröffentlicht von am 15. Juli 2011 (0) Kommentare

Also, es gibt ja Tools, die kaum ein Mensch kennt, was wirklich eine Schande ist. Denn mit einem Werkzeug wie Parkour, das begabte Wissenschaftler der Universität von Kalifornien in San Diego entwickelt haben, lässt sich das Leben eines Software-Ingenierus sicherlich vereinfachen. Was aber genau tut Parkour hierfür?

Nun, zunächst einmal stelle man sich vor, dass man eine seriell/sequentiell programmierte Anwendung gebaut hat, von der man gerne wissen möchte, ob sie auf einem Multicore-System schneller laufen würde, wenn sie parallel programmiert wäre. Und das betrifft schließlich einen Großteil sämtlicher Computersysteme, die derzeit am Markt zu kaufen sind. Denn das Parallelisieren von Software-Anwendungen kostet Zeit und Geld und sollte damit wohl überlegt sein.

Und genau hier setzt Parkour an. Anhand einer hirarchischen Analyse sämtlicher kritischen Pfade einer Anwendung (Hierarchical Critical Path Analysis) ermittelt das Tool diejenigen Codebereiche, die sich ganz besonders für die Parallelisierung von seriellem Code eignen. Hierzu gehören vor allem Schleifen und Rekursionen, aber auch andere Konstrukte. Für diese Analyse muss allerdings keine Instrumentalisierung (Instrumantation) des Codes vorgenommen werden, da dies der Parkour-Compiler übernimmt. Das Ergebnis der vollständigen Anaylse einer Anwendung mit Hilfe von Parkour stellt eine Vorhersage anhand eines 64-Core-Systems dar. Damit lässt sich relativ genau prognostizieren, in welchem Ausmaß die serielle Anwendung im parallelisierten Fall skalieren würde, und zwar auf 1, 2, 4, 8, 16, 32 und 64 Prozessorkernen.

Die Grenzen von Parkour werden allerdings bei kurzem Nachdenken recht schnell klar: Neben der hilfreichen Aussage, in welchem Umfang die Anwendung auf x Kernen laufen würde, fehlen nützliche Hinweise, in welchen Bereichen die Parallelisierung des Software-Programms sinnvoll wäre. Hierfür benötig man also andere Tools, so wie Intel Parallel Advisor oder CilkView, wobei CilkView ähnlich wie Parkour arbeitet. Parallel Advisor hingegen gibt Auskunft darüber, an welchen Stellen Optimierungspotenzial besteht und wie dies zu implementieren ist. Allerdings steht Parallel Advisor nur C/C++-Entwickler zur Verfügung. Mehr Infos hierzu finden Sie auch bei Intel.

Ach ja: Die Herren Amdahl und Gustafson haben sich schon vor vielen Jahren zur Skalierbeit von Software-Anwendungen so ihre Gedanken gemacht.

Kategorien : Multicore Tags : , ,

Das sagen bekannte Spieleentwickler über Intel Graphics Performance Analyzers

veröffentlicht von am 20. Mai 2011 (0) Kommentare

Vorgestern habe ich auf ein Webinar hingwiesen, das Intel am 28. Juni 2011 abhalten wird und das sich vor allem mit der Toolsuite Intel Graphics Performance Analyzers beschäftigt. Ziel dieses kostenlosen Online-Seminars ist der richtige Umgang mit der Tool-Sammlung und wie sich damit eigene Spiele optimieren lassen.

Das bestätigen erfolgreiche Spielefirmen. Entwicklerschmieden wie Creative Assembly (“Empire: Total War”), Kingsoft (“JX3″), Codemasters (“Dirt 2″) und Gas Powered Games (“Demigod”) setzen Intel GPA bereits eine ganze Weile erfolgreich ein. Hier ein paar Statements der Software-Häuser zu dem Profiling-Tool von Intel:

Jeder einzelne API-Call wird zeitlich erfasst und ausgegeben. Man sieht also ganz genau, wie lange der Grafikprozessor für die Berechnungen benötigt, und kann auf dieser Basis den Code entsprechend optimieren, damit das Spiel flüssig auf einem Onboard-Grafikchip läuft. (Yuri O’Donnell, Creative Assembly)

Mithilfe von Intel GPA konnten wir recht einfach zwei Störenfriede in Form von Bottleneck aufspüren und eliminieren. Das verhalf uns zu einer 30-prozentigen Leistungssteigerung des Spiels. Ganz erstaunlich! (Richard Broadhurst, Creative Assembly)

Das Hauptziel war es, die Framerate unseres Spiels “JX3″ um den Faktor 2.1 zu erhöhen, ohne dass die Darstellungsqualität der gerenderten Bilder darunter leidet. Dank Intel GPA können wir sagen: Mission accomplished! (Kingsoft)

Intel GPA ist ein wirklich cooles Tool. Es hat uns dabei geholfen, “Ghostbusters” für Intel Onboard-Grafikchips zu optimieren. Dabei ging es vordergründig um die Frage, wie wir es schaffen können, so wenig wie möglich an Details zu verlieren und gleichzeitig so viel wie möglich Merkmale zu erhalten (Schatten, Reflexionen, etc.). Ich muss sagen: wir haben mithilfe von Intel GPA die passenden Antworten gefunden. (Mark Randel, Terminal Reality)

Wir arbeiten schon seit längeren mit Tools wie VTune Performance Analyzer, Intel Thread Profiler und Intel GPA. Und ich muss sagen: Ohne diese Tools wären wir nicht in der Lage gewesen, die Framerates unserer Spiele auf ein solch hohes Level zu bringen, wie wir es heute gewohnt sind. Hoffentlich können wir auch in Zukunft dazu beitragen, diese Tools noch ein wenig besser zu machen. (Graham Watson, Codemasters)

Intel GPA lässt sich einfach bedienen und erzeugt all die Informationen, die wir für das Optimieren der Render-Pipelines und der Gesamt-Performance unserer Spiele benötigen. Darüber hinaus ist es ein prima Debugging-Tool. Intel GPA hilft uns wirklich, unsere Effizienz zu verbessern. (777 Studio, “Rise of Flight”)

Mithilfe von Intel GPA konten wir Civilization V für sämtliche am Markt befindlichen Grafikchips optimieren – von Onboard-GPUs bis hin zu Highend-Karten. Dank des GPA-Tools “Platform View” – in Kombination mit Intel TBB – konnten wir unseren Spielecode so optimieren, dass er von sämtlichen verfügbaren Prozessoren maximalen Gebrauch macht – 6-Kern-Core-i7-CPU inklusive. (Dan Baker, Firaxis)

Kategorien : Visual Computing Tags : , , ,

Intel veröffentlicht Graphics Performance Analyzers (GPA) 4.0

veröffentlicht von am 2. März 2011 (0) Kommentare

Nachdem ich in der vergangenen Woche über PC-Spiele geschrieben und meine düsteren Visionen veröffentlicht habe, hier nun etwas Positives:

Intel hat die Version 4 der Toolsuite Graphics Performance Analyzers (GPA) veröffentlicht, die selbstverständlich auf die Sandy Bridge-Architektur hin optimiert wurde.  Dabei handelt es sich um ein Set von Software-Tools, das Spiele-Entwicklern  dabei hilft, die Performance der eigenen Applikationen zu verbessern.

GPA visualisiert die Performance-Werte und zeigt deutlich, in welchen Frames die Schwachstellen zu finden sind. Zudem ermöglicht es „Was-wäre-wennn“-Analysen in Echtzeit, um die optimalen Grafikeinstellungen und -werte zu ermitteln. Zur Analyse typischer CPU-Probleme sind hingegen andere Intel-Tools wie Intel VTune Performance Analyzer und Intel Parallel Studio besser geeignet.

Die neue Version 4 bietet signifikante Verbesserungen, die weitestgehend aus dem Feedback der bestehenden Anwender resultieren und wendet sich an Programmierer für Windows (7, Vista, XP mit DirectX in den Versionen 9-11).

Der Download ist für registrierte User kostenlos.

Performance-Analyse in Echtzeit mit GPA

Vorteile der neuen Version

Insgesamt sorgt ein verbessertes Programmdesign dafür, dass Sie Ihre Spiele-Apps intuitiv und schneller analysieren können. Zudem erweitert die Microsoft DirectX 11-Unterstützung das Spektrum der Spiele, die Sie testen und optimieren können.

Weitere Vorteile in Stichpunkten:

  • Voll konfigurierbare Funktion für automatisch ablaufendes Capturing von Frames oder Trace Files (etwa alle Frames, die langsamer als 20 FPS sind)
  • Screenshot-Vorschau in Thumbnails erleichtert die Auswahl der Frames
  • Neue “How to”-Videos helfen Neulingen bei den ersten Schritten mit GPA
  • Das neue GPA-System Analyzer Heads-Up Display (HUD) ermöglicht eine intuitive Analyse und ist bereits für die aktuellen GPU-Metrics auf Intel HD Graphics 2000/3000 Hardware (GPU bei Sandy Bridge) gerüstet, um gerade dort die Bottlenecks in den Apps festzustellen
  • Intel Graphics Frame Analyzers unterstützt Multiple Render Targets (MRT)
  • Es werden mehr Texturen als bisher unterstützt

Für den Einstieg in das Tool hat Intel einen Quickstart-Guide und eine FAQ-Seite veröffentlicht.

Kategorien : Visual Computing Tags : , ,

Parallelisierungsgrad von .NET- und Java-Anwendungen testen

veröffentlicht von am 1. März 2011 (0) Kommentare

Zugegeben, ganz neu ist der Intel Concurrency Checker nicht . Mit diesem Tool lässt sich ziemlich einfach der Parallelisierungsgrad einer Anwendung messen – und zwar ganz egal, ob es sich dabei um ein C++-, .NET- oder Java-Programm handelt. Denn das Intel-Tool untersucht – wie so viele andere Software-Werkzeuge – nicht den Sourcecode des zu testenden Programms, sondern erstellt mithilfe der laufenden Anwendung und des daraus resultierenden Datenaufkommens eine Testdatei, in der bestimmte Parameter abgelegt werden. Anhand dieser Werte lässt sich dann der Parallelisierungsgrad der Anwendung ermitteln.

Das kann man einerseits selbst erledigen, indem man zunächst bestimmte Konstrukte parallelsiert, um den Multicore-Koeffizienten zu verbessern. Hierzu eignen sich ja beispielsweise Schleifenkonstrukte, die eine große Zahl an Daten in kurzer Zeit manipulieren. Sobald man testweise eine for-Schleife mit dem richtigen Befehl und dem dazu passenden Programmiermodell (wie zum Beispiel OpenMP) parallelisiert hat, kompiliert man die Anwendung erneut, startet den Concurrency Checker und betrachtet die so ermittelten Testergebnisse.

Das ist natürlich aufwändig und erfordert ein gewisses Maß an Paralleliserungs-Know-now. Einfacher geht es da mit dem zugehörigen Service, den Intel Software-Entwicklern kostenlos anbietet. Das einzige, was Sie hierfür benötigen, ist ein gültiger Account des Intel Software Partner Program. Sobald Sie Besitzer der notwendigen Login-Daten sind, können Sie den Testbericht, den der Concurrency Checker automatisch ausspuckt, auf den Intel-Server laden. Dieser wertet die Daten aus und stellt diese in grafischer Art und Weise am Bildschirm dar.

Falls die hierfür eingesetzten Tools Parallelisierungspotenzial innerhalb Ihrer Anwendung finden, bekommen Sie das mitgeteilt und Sie müssen sich selbst um das Aufspüren der möglichen Sourcecode-Stellen nicht kümmern. Was Sie allerdings schon wissen sollten, wie Sie die identifizierten Stellen mit entsprechenden Parallel-Konstrukten versehen. Und das wiederum erfordert ein wenig mehr als nur den Concurrency Checker. Aber wozu gibt es dieses Blog, oder?!

Falls Sie sich zu dem Thema ein Video angucken wollen, hilft ein Mausklick auf diesen Link. Oder Sie besuchen die Concurrency-Checker-Seite, die Intel speziell zu diesem Thema zusammen gezimmert hat.

Kategorien : Multicore Tags : , , ,

Ausblick auf die CES, Sandy Bridge und zwei nützliche Tools

veröffentlicht von am 3. Januar 2011 (0) Kommentare

Keine Ahnung, wie viele Menschen Ihnen in den letzten Tagen „Ein gutes neues Jahr!“ gewünscht haben. Aber vermutlich waren es viele, und ganz sicher werden sie Recht behalten. Denn das Jahr 2011 wird für Parallel-Programmierer und Spiele-Entwickler Maßstäbe setzen!

In wenigen Tagen wird Intel während der CES in Las Vegas die neue Prozessorgeneration Sandy Bridge offiziell vorstellen. Vor Ort werden dann auch gleich ein paar Hardware-Hersteller erste Notebooks mit den neuen Recheneinheiten zeigen.

Die Prozessor-Architektur von Sandy Bridge wird vor allem in puncto Multimedia-Performance alle Vorgänger der Nehalem-Bauweise in den Schatten stellen. Sandy Bridge integriert den Grafikkern (GPU) in die CPU bei einer Strukturbreite von 32 Nanometern. Dank der integrierten Encoding-Einheit lassen sich Videos wesentlich schneller konvertieren als beispielsweise mit bekannten Core-i5-Prozessoren.

Die technologischen Neuerungen von Sandy Bridge und die daraus resultierenden, erweiterten Möglichkeiten für Parallel-Computing sind Anlass genug, dieses Blog wiederzubeleben. Ich werde Sie ab sofort regelmäßig mit News, technischem Background und Veranstaltungshinweisen versorgen, die Ihnen den Programmieralltag etwa erleichtern.

Zunächst aber darf ich Ihnen zwei neue, sehr nützlich Tools empfehlen, die Intel im Rahmen der Partnerprogramme veröffentlich hat und vor allem Entwickler von Media- und Videoanwendungen adressieren.

Das Intel Media Software Development Kit in der Version 1.5 ist ein plattformübergreifendes SDK, das Ihnen hilft, auf einfache Weise leistungsstarke und schnelle Videoanwendungen zu entwickeln.  Das Tool-Paket bietet Ihnen drei Highlights:

  • Codecs für Hardwarebeschleunigung: Sie greifen auf Video-Codecs zu, die für Intel Multicore-Prozessoren und Intel HD Graphics optimiert wurden und bestmögliche Performance bieten
  • Einheitliches API für unterschiedliche Plattformen: Weniger Code und weniger Komplexität durch ein universelles API, das viele PC-Plattformen unterstützt, darunter selbstverständlich auch die zukunftsträchtigen Intel Graphics- und Multicore-Architekturen.
  • Support und Add-Ons: Schneller optimale Ergebnisse erzielen dank nützlicher Features wie Video-Pre-Processing, Decodieren und Encodieren

Sie können das Media Software Development Kit kostenlos laden und installieren. Sinnvoll ergänzt wird das SDK durch das Intel Media Checker Software Assessment Tool. Zugegeben, eine grauenhafte Bezeichnung, aber das Tool ist überaus nützlich. Denn damit stellen Sie beispielsweise sicher, dass Sie das SDK korrekt in die Anwendungen einbinden. Zudem fungiert es als Tutorial, indem es die Funktionen und Technologien des SDK erläutert. Also für die ersten Schritte mit dem SDK sicherlich genau richtig. Und kostenlos ist es natürlich auch. Viel Erfolg damit!

Kategorien : Multicore,Visual Computing Tags : , , , , , , , ,

Wie multicore-optimiert ist Office 2010?

veröffentlicht von am 19. Mai 2010 (1) Kommentar

Wer immer noch glaubt, dass Multicore-Optimierungen, Multithreading und Co. nur etwas für Highend-Software-Lösungen sind, sollte sich mal etwas näher mit Office 2010 beschäftigen. Denn was Microsoft hier an Mühen insvestiert hat, um die aktuelle All-in-One-Lösung für den modernen PC-Arbeiter für vier, sechs und mehr Kerne zu optimieren, ist aller Ehren wert – und diesen Blogbeitrag.

Die einzelnen Bereiche und Tools wurden wie folgt an die moderne CPU-Architektur angepasst:

  • Sämtliche Anwendungen wurden einem Multithreading unterzogen, was unter anderem schnelleres Öffnen und Speichern von Dokumenten ermöglicht.
  • Beim Starten von Outlook werden mehrere Threads gleichzeitig gestartet, was dazu führt, dass parallel die Bedieneroberfläche aufgebaut, die Kalendereinträge geladen und die Voransicht der erhaltenen E-Mails angezeigt werden. Jeder Task bekommt also seinen eigenen Thread zugewiesen.
  • Word erledigt dank Multithreading die Paginierung im Hintergrund, was Raum für andere Aufgaben zur selben Zeit lässt.
  • In Excel werden Pivot-Tabellen parallel und damit deutlich schneller sortiert.
  • Multithreading wird in Excel aber auch dazu eingesetzt, Berechnungen in den Hintergrund zu schieben, während gleichzeitig grafisch orientierte Arbeiten wie das Ändern der Zeilenhöhe oder das automatische Anpassen der Zellenbreite an die Inhalte vorgenommen werden.

Allerdings stand Microsoft beim Optimieren von Office 2010 an Multicore-Rechner vor einem erheblichen Problem: Wie können Tools wie Word oder Excel so verbessert werden, dass sie die häufigen Wartezeiten, die sich bei der Mensch-Maschine-Interaktion ergeben, möglichst minimieren? Daher wurden diejenigen Flaschenhälse identifiziert, die sich beispielsweise beim Start der Anwendung oder beim Öffnen oder Speichern einer Datei ergeben und Wartezeiten verursachen. Daran wurde dann verstärkt gearbeitet.

Nur setzt Microsoft immer noch sehr auf das funktionale Multithreading, bei dem die unterschiedlichen Aufgaben der Software eigenen Threads zugewiesen werden. Das ist zwar nicht sehr effizient (da diese Methode nicht optimal skaliert), aber wohl angesichts der hohen I/O-Aktivitäten zu vernachlässigen.

Kategorien : Multicore Tags : , ,

Multicore-Guide, Teil 2 ist verfügbar

veröffentlicht von am 22. April 2010 (0) Kommentare

Mitte März hatte ich über eine ausführliche Sammlung gebloggt, in der es sehr ausführlich um das Thema Multicore-Programmierung geht. Und jetzt habe ich dazu passend eine E-Mail des Intel-Service “Software Dispatch” erhalten. Diese Mail verweist nämlich auf den zweiten Teil des großen Multicore-Guides. Darin geht es auf gut 50 Seiten unter anderem um folgende Dinge:

  • das richtige Speicher-Management beim Threaden von Anwendungen

und

Toll an diesem Programmier-Leitfaden ist die sehr ausführlich Darstellung möglicher Szenarien und wie sich diese richtig behandeln lassen. Dazu gibt es eine Menge nützlicher Diagramme und Code-Beispiele.

Allerdings hat Intel vor den Download dieser digitalen Broschüre eine kleine Registrierung gestellt, die aber nur aus einem Namen und einer E-Mail-Adresse besteht. Anschließend könnt ihr sogar auswählen, welche Themen und Broschüren euch besonders interessieren. Im Falle der Multithreading-Anleitungen solltet ihr “Intel Software Dispatch” anklicken. Viel Spaß beim Lesen!

Kategorien : Multicore Tags : , ,

Aus seriell mach parallel: Intel Parallel Advisor Lite

veröffentlicht von am 19. März 2010 (1) Kommentar

Kollege Preiss von Intel hat mal wieder fleißig geschrieben, und rausgekommen ist ein gedruckter Beitrag in der Elektronik Industrie, den es aber natürlich auch als PDF zum kostenlosen Download gibt. Thema des Artikels: Intel Parallel Advisor Lite, ein ziemlich mächtiges Tool zum Konvertieren von seriellem in parallelen Code. Der Advisor Lite ist übrigens Teil der Intel-Suite Parallel Studio, ein Plug-In für Visual Studio 2005 und 2008.

In dem ausführlichen Beitrag wird gezeigt, wie das Intel-Tool dabei helfen kann, serielle Codeabschnitte zu parallelisieren. Ach ja: Das betrifft ausschließlich C++-Programmierer. Toll an Advisor Lite ist sein schrittweises Herantasten an den möglichen Multithread-Code: Anstatt alles auf einmal umzustellen, erlaubt das Tool ein sukzessives Optimieren des seriellen Quellcodes. Hierzu setzt es vorhandene Debugger-Tools ein, mit denen der parallelisierte Quellcode sofort getestet und mögliche Fehler identifiziert und eliminiert werden können. Dazu zählen unter anderem Data-Sharing-Probleme, die sich beim Synchronisieren von Threads ergeben können.

Interessant an Edmunds Artikel ist übrigens die Vorgehensweise des Advisor Lite:

  1. Leistungsengpässe (Hotspots) identifizieren
  2. Annotationen in den seriellen Quellcode einfügen (eine Art von C-/C++-Makros)
  3. die  annotierten Quellcodes verifizieren
  4. parallele Datenzugriffe untersuchen
  5. Datenkonflikte auflösen, die unter Schritt 4 aufgespürt wurden
  6. Quellcodeänderungen testen

Ach ja: Wer noch nicht wissen sollte, was Annotationen sind: Sogar hierzu hält Edmund die passenden Antworten parat. Also alles in allem eine wirklich gelungene Abhandlung in Sachen Parallel Advisor Lite. Und, worauf wartet ihr noch?

Kategorien : Multicore Tags : , ,

Ausführliche Übersicht zur Multicore-Programmierung

veröffentlicht von am 18. März 2010 (0) Kommentare

Zugegeben, es ist auf diesem Blog ein wenig still geworden rund um das Thema Multicore-Programmierung. Das liegt daran, dass ich mich mit dem Thema hier schon ausführlich beschäftigt habe und sich die Themen grade ein wenig verschieben. Mit der Ankündigung des Intel AppUp Center während des letztjährigen Intel Developer Forum rückte das Netbook mit all seinen Facetten in den Mittelpunkt.

Das wird sicherlich auch noch ein wenig so bleiben, was aber nicht bedeutet, dass auf dem Software Dev Blog die parallele Verarbeitung von Programmcode keinen Platz mehr findet. Um dies unmittelbar zu belegen, möchte ich heute auf eine sehr ausführliche Übersicht aufmerksam machen. “Ultimativ” klingt immer ein wenig anbiedernd und angeberisch, aber in diesem Fall kommt der Begriff ziemlich nah an das heran, was die amerikanischen Kollegen unter dem Titel “Intel Guide for Developing Multithreaded Applications” zusammengetragen haben.

Diese wirklich umfangreiche Sammlung betrachtet sämtliche Aspekte der Parallelprogrammierung. Ob das das Multithreaden von Anwendungen im Allgemeinen ist oder spezielle Themen wie die Daten- und Ablaufsynchronisation oder das Speichermanagement – so detailliert konntet ihr euch dem Thema wohl selten widmen. Ok, das Ganze findet zwar auf Englisch statt, aber das sollte doch keine echte Hürde darstellen.

Ach ja, natürlich darf eine genaue Beschreibung sämtlicher Intel-Tools nicht fehlen, wenn es um das Multithreaden von Anwendungen geht. Also so Themen wie Intel Compiler, Parallel Inspector, OpenMP, Parallel Amplifier und viele mehr. Na, dann kann ich euch nur noch “Gut Stöber” wünschen und dass ihr möglichst viele Antworten auf eure parallelen Fragen findet. Die gibt es natürlich auch hier auf dem Software Dev Blog. Probiert doch einfach mal die Suchfunktion aus!

Kategorien : Multicore Tags : , ,

Antiviren-Software von Avast ist multicore-tauglich

veröffentlicht von am 22. Januar 2010 (1) Kommentar

Gerade habe ich auf Zdnet.de eine News entdeckt, die von der sofortigen Verfügbarkeit der kostenlosen Antiviren-Software Avast Free Antivirus 5.0 berichtet. Neben einer komplett neu gestalteten Bedieneroberfläche für mehr Komfort hat sich laut der Avast-Entwickler die Scan-Engine deutlich verbessert, was gemäß interner Benchmarks die Verarbeitungsgeschwindigkeit um bis zu 80 Prozent schneller machen soll. Daneben glänzt die Software mit Echtzeitüberprüfungen des Dateisystems sowie des gesamten E-Mail-, Internet- und Netzwerkdatenverkehrs.

So viel Verbesserung in Sachen Performance lässt sich unter anderem mit Multicore-Optimierungen seitens der Avast-Entwickler bewerkstelligen. Damit erfolgt beispielsweise der Echtzeit-Scan auf einem Prozessorkern, während die GUI von einem zweiten Kern ausgeführt wird, was die Software insgesamt performanter macht.

Was die Leute bei Avast alles dafür getan haben, um ihre Software multicore-tauglich zu machen, werde ich versuchen herauszufinden. Sobald ich die passenden Antworten habe, werden sie natürlich hier veröffentlicht.

PS: Falls ihr Avast Free Antivirus installieren wollt, solltet ihr vorher unbedingt die bereits installierte Antiviren-Software deinstallieren. Ansonsten legt ihr euch möglicherweise den PC selbst lahm.

Kategorien : Multicore,Visual Computing Tags : ,

Maxon setzt auf Intel Softwaretools für optimierte Apps

veröffentlicht von am 16. Dezember 2009 (1) Kommentar

Dass Maxon alles dafür getan hat, ihre Software-Anwendungen wie Cinema 4D für die aktuellen Intel-Prozessoren zu optimieren, darüber habe ich schon vor längeren gebloggt. Und wie es der Zufall wollte (ok, der natürlich keiner war), konnten wir mit Maxon höchstpersönlich darüber reden, wie sie es immer wieder schaffen, dass ihre Anwendungen besonders performant auf Rechnern mit Intel-Architektur laufen.

Ein wesentlicher Punkt ist unter anderem der Einsatz des Intel C++ Compilers, der laut Maxon schon mal ohne nennenswerte Änderungen am Code etwa 15 Prozent mehr Speed bringt. Aber auch der Intel Thread Profiler steht bei Maxon ganz oben auf der Liste, wenn es darum geht herauszufinden, wie sich das parallelisierte Programm verhält, ob also die anfallenden Threads möglichst gleichmäßig auf die vorhandenen Ressourcen verteilt werden (Skalierung ist hier das Zauberwort).

Darüber hinaus kommen VTune Performance Analyzer und Intel Threading Building Blocks zur Sprache. Ok, dann würde ich mal sagen, den Rest solltet ihr euch am besten selbst ansehen. Viel Spaß dabei!

Kategorien : Multicore Tags : , , ,

GDC09: Spieletitel für integrierte Grafikchips optimieren

veröffentlicht von am 19. August 2009 (0) Kommentare

Anlässlich der Game Developers Conference 2009 in Köln betrat Steve Hughes von Intel die Bühne, um über ein Tool zu sprechen, von dem hier schon öfter die Rede war: Intel Graphics Performance Analyzer. Mithilfe dieses kleinen Software-Werkzeugs können Spieleentwickler wie Sega ihre Titel so optimieren, dass sie nicht nur auf Desktop-PCs mit diskreter Grafikkarte vernünftig laufen, sondern auch auf Rechnern mit integriertem Grafikchip.

Um dabei eine optimale Balance aus flüssigem Gameplay und möglichst detail- und effektreichen Bildern zu garantieren, ermittelt Intel GPA vorhandene Hotspots eines Spieletitels wie in Empire: Total War. Hierfür haben die Software-Spezialisten der Sega Tech Group im Auftrag von Sega das komplette Spiel zu Testzwecken zweigeteilt: “Kampagnen” und “Schlachten”. Innerhalb dieser zwei Segmente wurden dann mithilfe des Intel GPA interessante Dinge identifiziert.

weiterlesen…

Kategorien : Visual Computing Tags : , , , ,

Warum Demigod auch auf Notebooks spielbar ist

veröffentlicht von am 29. Juli 2009 (0) Kommentare

Was ist der Traum aller Spiele-Publisher? Genau, dass ihre Spieletitel auf möglichst vielen Plattformen laufen. Daher sind sie stets in Sorge, dass ihre Games nicht nur auf einem Highend-PC gut aussehen, sondern auch auf einem Notebook mit integriertem Grafikchip, ohne dabei zu viele Kompromisse in Sachen 3D-Opulenz hinnehmen zu müssen. Klar ist aber, dass es vor allem um ein ausgewogenes Verhältnis von Spielbarkeit und realistischen Effekten geht.

Wer nun denkt, “man kann leider nicht alles haben”, liegt falsch. Wie das Video mit Gas Powered Games zeigt, konnten die Entwickler von Demigod mithilfe der Toolsuite Graphics Performance Analyzers (GPA) von Intel eine Leistungssteigerung von etwa 30 Prozent erzielen – ohne dabei auf wesentliche 3D-Effekte verzichten zu müssen. Denn gerade beim Rendern produzierten sie einen echten Flaschenhals, den sie mit GPA entdecken konnten. Dabei ging es vor allem um einen ganz speziellen Effekt auf einem einzigen Level, der sich als Störenfried entpuppte – und der für das Laptop-Gaming eliminiert wurde. Lieber ein Schimmern oder Gleißen weniger als 10 oder 20 Bilder pro Sekunde.

Das Gute aus GPG-Sicht war auch die Tatsache, dass sich dieser Effekt recht einfach entfernen ließ und dazu nicht die komplette Shader-Einheit umgeschrieben werden musste, was den Entwicklern natürlich eine Menge Zeit erspart hat. Auch dabei hat die Toolsammlung geholfen, da sie grafisch basiert arbeitet und sich somit Hotspots und andere Flaschenhälse ohne größeren Aufwand identifizieren lassen. Auf diesem Weg konnten die Männer rund um Chef-Entwickler Bart Kijanka auch einen nervigen Blur-Effekt-Fehler aufspüren, der zwar schön aussieht (der Effekt, nicht der Fehler), aber gerade auf Laptops mit integrierter Grafik eine Menge an Performance-Einbußen mit sich brachte. Also, weg damit!

Beide Probleme wurden übrigens in einem einzigen Durchlauf mit den Grafiktools gefunden, was die Möglichkeiten der GPA unterstreicht. Klar, dass Bart sehr euphorisch die Zusammenarbeit mit Intel und den Support preist, der Gas Powered Games zuteil wurde. Wer sich also angesprochen fühlt, die Graphics Performance Analyzers mal selbst auszuprobieren, wird entweder (kostenlos) Mitglied des Entwicklerprogramms “Visual Adrenaline” oder berappt 300 Dollar für die Toolsuite.

Kategorien : Visual Computing Tags : , ,

Colin McRae DiRT 2 unterstützt DirectX 11 und Multithreading

veröffentlicht von am 23. Juli 2009 (0) Kommentare

So weit ich mich noch erinnern kann, war Colin McRae eines der allerersten Rennspiele, das ich ausgiebig auf dem PC  “getestet” habe. Und es sah damals schon verdammt gut aus und ließ sich auch ganz passabel steuern.

Das ist mittlerweile viele Jahre her, und Anno Domini 2009 kommt Colin McRae DiRT 2 als weiteres PC-Highlight in die Regale, wenn auch mit Verspätung. Der Grund hierfür ist recht einfach: DiRT 2 benötigt für die volle Performance und Schönheit DirectX 11. Die Grafikschnittstelle steht erst mit Windows 7 auf PCs zur Verfügung und Window 7 erscheint am 22. Oktober. Zudem muss natürlich eine passende Grafikkarte im Rechner stecken, und auch die ist noch nicht verfügbar.

Dann geht`s aber richtig los mit Colin McRae DiRT 2. Dafür sollen Features wie Hardware-Tesselation, Shader Model 5.0 und Multithreading sorgen. Was sich genau dahinter verbirgt und was die McRae-Fans davon haben werden, will ich ganz genau wissen und habe beim zuständigen Produktmanager von Codemasters nachgefragt. Ich hoffe, seine Antwort lässt nicht zu lange auf sich warten – damit ihr bald wisst, wie es Codemasters schafft, Colin McRae DiRT 2 den angeblichen Fotorealismus einzuhauchen.

Kategorien : Multicore,Visual Computing Tags : , ,

Facebook-CTO ist mit aktuellen Prozessoren unzufrieden

veröffentlicht von am 26. Juni 2009 (0) Kommentare

Gestern fand im schönen San Francisco die von Gigacom Network organisierte Structure 09 statt, eine Eintageskonferenz, die sich dieses Mal mit dem Thema Cloud Computing beschäftigte.

Zu den Anwesenden und Vortragenden gehörte auch Jonathan Heiliger, seines Zeichens Vice President of Technical Operations der Social-Media-Plattform Facebook. Heiliger diskutierte mit Om Malik, Gründer von Gigacom Network, die Frage, wie viel Infrastruktur solch eine riesige Plattform wie Facebook benötigt und wie sich diese in Sachen Server- und Datenbankzugriffe beherrschen lässt.

In diesem Zusammenhang berichtete Mister Heiliger unter anderem darüber, dass sich Facebook aus Performance- und Skalierungsgründen neue Server mit den aktuellen Prozessoren angeschafft hat, um dem steigenden Ansturm von Facebook-Anwendern besser gerecht zu werden. Jedoch empfindet er die Mehrkosten wohl nicht als gerechtfertigt, da seinen Worten zufolge die Performance durch die neuen Chips zu wenig zugelegt hat. Außerdem merkte er an, dass Facebook die gegenüber der Presse propagierten Leistungsschübe bei der Performance ihrer Applikationen nicht sieht.

So weit, so gut. Dabei beschleicht mich das Gefühl, dass es sich Facebook damit ein wenig zu leicht macht. Denn die aktuellen Prozessoren skalieren nur dann wirklich, wenn die betreffenden Serveranwendungen das Leistungspotenzial der Rechnerfarm auch vernünftig ausnutzen. Ich gehe mal davon aus, dass sich Jonathan Heiliger und seine Mitarbeiter schon mal mit dem Thema HPC-konforme Anwendungen beschäftigt haben. Oder, Jonathan?!

(via computerworld.ch)

Kategorien : Multicore Tags : , ,

Reminder: Computerspiel optimieren und richtig abräumen

veröffentlicht von am 15. Juni 2009 (0) Kommentare

In gut 15 Tagen ist es soweit: Da wird sich eine prominente Jury der Spieleentwickler-Welt zusammensetzen und darüber befinden, welches der eingereichten Spiele einen der ersten drei Preise erhält.

Vergeben werden die Plätze eins, zwei und drei in den Kategorien “Bestes Multicore-Spiel”, “Bestes Notebook-Spiel” und “Bestes 3D-Chip-Game”. Zu gewinnen gibt es einen ganzen Haufen an Entwicklertools, Tickets zu großen Entwicklerkonferenzen und PCs im Wert bis zu 4.000 US-Dollar. Und, ist das nix?

Falls das für euch interessant ist, solltet ihr euch möglichst schnell für den Wettbewerb “Level Up 2009″ registrieren und euer optimiertes Computerspiel anmelden. Auf dass ihr zu den glücklichen Gewinnern zählt!

Kategorien : Multicore,Visual Computing Tags : , ,

Analysetool für DirectX-Games für mehr Laptop-Performance

veröffentlicht von am 25. Mai 2009 (0) Kommentare

Es soll Leute geben, die gehen davon aus, dass bis zum Jahr 2013 dreimal so viele Notebooks mit integriertem Grafikchipsatz wie mit diskreter Grafikkarte verkauft werden. Diese Grafikchips sind zwar leistungsschwächer als Highend-Grafikkarten von Nvidia und Konsorten, bringen aber genug 3D-Power und sind darüber hinaus sehr akkuschonend.

Und was hat das alles mit Software-Entwicklung zu tun? Nun, für Spieleentwickler ergibt sich daraus ein wichtiger Aspekt: Wie kann ich dafür sorgen, dass meine Spiele auf den verschiedenen Plattformen gleichermaßen gut laufen, also auf diskreten Grafikkarten genauso wie auf integrierten Grafikchips. Und genau an diesem Punkt kommt Graphics Performance Analyzers von Intel zum Einsatz. Mit dieser Toolsuite können Spieleprogrammierer recht schnell und unkompliziert herausfinden, an welchen Schrauben sie drehen müssen, um ihre Spieletitel für sämtliche Computerplattformen zu optimieren.

Graphics Performance Analyzers (GPA) umfasst drei Einzeltools: den System Analyzer, das Frame Capture Tool und den Frame Analyzer. Damit lassen sich verborgene Bottlenecks und andere Hemmschuhe aufspüren, die das Spiel davon abhalten, auf einem Notebook mit integrierter Grafikkarte vernünftig zu laufen. Toll an GPA ist die Tatsache, dass die Analyse auf einem separaten System läuft, während sich das zu untersuchende Spiel auf einem eigenen Laptop befindet. Beide Rechner werden mit einem Netzwerkkabel verbunden und tauschen auf diesem Weg die notwendigen Daten aus.

Derzeit unterstützt GPA lediglich die Intel-G45- und Mobile-Intel-GM45-Express-Chipsatz-Familien und untersucht nur DirectX-basierte Spiele. Aber wie man Intel kennt, werden wohl weitere Chipsätze in Zukunft folgen.

An die Toolsuite kommt man auf zwei Wegen heran: Entweder registriert man sich für das kostenlose Visual Adrenaline Program, das vom Intel Software Network betrieben wird. Oder man begibt sich in den Onlineshop Intel Business Exchange und kauft die Tools für rund 300 US-Dollar.

Video-Tipp: In einem Video-Interview live von der GDC’09 in San Francisco beantwortet Aaron Davies von Intel zahlreiche GPA-Fragen.

Kategorien : Visual Computing Tags : , , ,

Erfolgsgeschichten in Sachen Intel-Softwaretools

veröffentlicht von am 11. Mai 2009 (0) Kommentare

Gerade habe ich auf dem Intel Software Network eine interessante Liste von Anwendungsfällen gefunden, die zeigen sollen, bei welchen Applikationen Intel-Softwaretools erfolgreich zum Einsatz gekommen sind. Dazu gehören unter anderem:

  • Die Open-Source-Datenbank MySQL konnte dank der Intel C++ Compiler um 27 bis 42 Prozent schneller gemacht werden. Und zwar sowohl für Pentium-4- als auch Itanium-2-Prozessoren.
  • Mithilfe des Intel-Fortran-Compilers gelang es der australischen Swinburne-Universität für Astrophysik, ihre HPC-basierten Anwendungen auf dem zugehörigen Supercomputer nochmals um 22 bis 31 Prozent zu beschleunigen.
  • Die Datenbankanwendungen von Oracle laufen sowohl unter Linux als auch unter Windows schneller, da beide Versionen dank der Multicore-Optimierungen der entsprechenden Compiler noch mehr aus der Hardware herausholen.
  • Das Erstellen von MP3-Songs mithilfe der Kodierungssoftware Musicmatch Jukebox geschieht dank des Intel C++ Compilers um 37 Prozent schneller als zuvor. Hierzu hat die Profiling-Software VTune Performance Analyzer allerdings auch einen Teil beigetragen.

Neben diesen compiler-basierten Verbesserungen hilft VTune immer mehr Software-Anbietern, ihre Anwendungen für Intel-Prozessoren zu optimieren. Dazu gehört bespielsweise Kaspersky Lab, das seine Antiviren-Software mithilfe des Intel-Tools verbessern konnte. Ebenso konnte Abaqus Inc. dank VTune seiner Simulationssoftware neues Leben einhauchen.

Wer mehr wissen will zu den einzelnen Erfolgsgeschichten, begebe sich auf die zugehörige Webseite. Dort finden sich auch sämtliche Fallstudien in PDF-Form zum Download.

Kategorien : Multicore Tags : , ,

Reminder: Webinar zum Thema Parallel Studio

veröffentlicht von am 5. Mai 2009 (0) Kommentare

Ende Mai soll es soweit sein: Parallel Studio kommt auf den Markt und aus diesem Grund bietet Intel seit Anfang März eine ganze Reihe passender Webinars, die kostenlos sind, zirka eine Stunde dauern und euch mit interessanten Infos und Einblicken in die zukünftige Entwicklerumgebung für parallelisierte Anwendungen versorgen.

Am heutigen Dienstag ist um 18:00 Uhr MESZ ein Online-Seminar dran, das sich an C-/C++-Programmierer richtet, die mithilfe von Parallel Studio und Visual Studio ihren Softwareprodukten paralleles Leben einhauchen wollen. Dabei geht es um die Fragen, an welchen Stellen, in welchem Umfang und mit welchen Mitteln Quellcode multithread-tauglich gemacht werden kann, damit er auf Multicore-Systemen optimal skaliert. Ach ja: Es wird empfohlen, ergänzend am Webinar mit dem Titel  “Identify and Address Threading Opportunities” teilzunehmen, das für den 12. Mai anberaumt ist.

Also, dann nix wie zur Anmeldeseite hingesurft, schnell registrieren und für das Webinar eintragen. Dann könnt ihr heute Abend Punkt 18:00 Uhr am PC mehr zu Parallel Studio erfahren.

Kategorien : Multicore Tags : , ,