Sämtliche Beiträge des Monats April 2009
Das war der April in Sachen Multicore-Programmierung
Der Monat April neigt sich dem Ende entgegen, und das ist ein willkommener Anlass, die letzten 30 Tage Revue passieren zu lassen.
Los ging’s mit der Eurographics 2009, auf der ich live von der Techsession Larrabee und Raytracing gebloggt habe. Richtig komplexe Themen, aber auch sehr interessant. Nach dem Wochenende hab ich dann ein Video online gestellt, das die Vorzüge des Concurrency Checker verdeutlicht. Das ist sogar für C#-Entwickler relevant. Den Tag drauf habe ich auf eines der vielen Webinars in Sachen Parallel Studio verwiesen, die Intel bis Mitte des Jahres anbietet. In diesem Fall ging es um den Parallel Inspector, das Debugger-Tool des C++-Plugins für Visual Studio.
Am 8. April begegnete mir eine News, die mich als Apple-Anwender besonders interessierte: Apple hat es geschafft, die Multithread-Leistung seines XServe zu erhöhen, indem der Server ab sofort Nehalem-basierte Prozessoren nutzt, die pro Kern zwei Threads parallel verarbeiten können.
Nach einer systembedingten Pause ging es dann weiter mit den fünf Bedingungen, die ein Schleifenkonstrukt erfüllen muss, um per OpenMP parallelisiert zu werden. Tags drauf fuhr ich fort mit meinen OpenMP-Betrachtungen; diesmal waren die Aufgaben an der Reihe, die man als Entwickler erledigen muss, damit Schleifen überhaupt parallelisierbar sind. Und klar, dass mir gemeinsame Workshops von Microsoft und Intel in Sachen parallele Programmierung eine Meldung wert waren.
Intel-Softwaretools kostenlos 30 Tage lang testen
Über was hab ich hier nicht schon alles berichtet:
- Intel C++ Compiler 11.0
- Intel VTune Performance Analyzer 9.1
- Intel Thread Checker 3.1
- Intel Thread Profiler 3.1
- Intel Threading Building Blocks 2.1
- Intel Integrated Performance Primitives 6.0
und über vieles andere mehr.
Das Praktische an all diesen Entwicklerwerkzeugen: Ihr könnt sie völlig kostenlos testen, und das 30 Tage lang. Und zwar nicht nur die Linux- und Mac-OS-Varianten, sondern auch die komplette Windows-Suite. Daneben gibt es auch Linux-Tools, die gar nichts kosten und keiner zeitlichen Beschränkung unterliegen. Einzige Bedingung hierfür: Die Linux-Anwendungen, die damit geschrieben werden, dürfen nicht zu kommerziellen Zwecken eingesetzt oder gar verkauft werden.
Und falls ihr euch den kostenlosen Intel-Support während des Testmonats nicht entgehen lassen wollt, müsst ihr euch einmal einen Premier Support Account zulegen. Und schon könnt ihr Intel mit euren Fragen zutexten, bis die DSL-Leitung glüht.
Ach ja: Bevor ihr die Tools auf euren Rechner packt, solltet ihr einen Blick auf die Softwarevoraussetzungen werfen. Damit ihr die Werkzeuge auch ohne Probleme einsetzen könnt.
Webcast-Reminder: Anwendungen optimal parallelisieren
Die Parallelisierung von Software beginnt schon beim Design der Anwendung. Und genau da hapert es in vielen Fällen. Das Multithreaden bestehender Anwendungen ist ebensowenig ein einfaches Unterfangen. Dass das Ganze aber trotzdem keine Hexerei ist, soll das Webinar mit dem originellen Titel “The Good, the Bad, and the Ugly: Improve Parallel Application Quality and Performance” zeigen.
Eric Moore wird auf die bekanntesten Fehler eingehen, die man bei der Parallelisierung von Software machen kann, und zeigt, wie sich diese vermeiden oder auch eliminieren lassen. Hierzu zieht er bekannte und unbekannte Software-Titel zu Rate, anhand derer die Optimierung von Multithread-Code demonstriert werden soll.
Falls das also interessant scheint, solltet ihr euch möglichst schnell für das kostenlose Webinar anmelden und den Worten Erics lauschen. Viel Spaß dabei!
Zurück zum Multicore-Blogging: Post-Konferenzing
Die vorige Woche stand ganz im Zeichen der Multicore-Konferenzen. Los ging’s am Montagabend in Salzburg bei Bier und Brez’n im Pitterkeller des ehrwürdigen Crown Plaza, wo ich mit netten Kollegen zusammensaß und über dies und das geplaudert habe. Das Dienstagsprogramm rankte sich dann um das Thema Multicore-Programmierung und Parallel Studio, aber auch um andere Dinge wie das Nero-Engagement und Microsoft-Bemühungen.
Mittwoch ging es dann wieder nach München, damit ich am Donnerstag auch ja pünktlich auf der .NET-Multicore-Konferenz sein konnte, um von dort aus live zu bloggen. Was auch gut geklappt und zudem viel Spaß gemacht hat. Und es war nicht nur informativ, sondern auch sehr unterhaltsam, Ralf Westphal und Bernd Marquardt gemeinsam auf der Bühne zu erleben. Denn neben der geballten fachlichen Kompetenz konnten die zwei auch mit Entertainment-Qualitäten überzeugen. Stellenweise habe ich mich an meine Jugend erinnert gefühlt, in der Statler und Waldorf auf dem Muppet-Show-Balkon Ähnliches abgeliefert haben.
prio.powerday: Microsoft Concurrency Coordination Runtime
Direkt nach Bernds Vortrag ist Ralf Westphal wieder dran und erzählt etwas zur Concurrency Coordination Runtime (CCR). Im Gegensatz zu Bernd geht es bei Ralfs Vortrag weniger um die Leistungssteigerung parallel programmierter Anwendungen als vielmehr um die optimale asynchrone Datenverarbeitung im parallelen .NET-Umfeld.
Die CCR ermöglicht ein neues Programmiermodell für parallel laufende Anwendungen. Ein sehr schöner Ausspruch von Ralf lautet übrigens: “Vergesst Threads!”, da Threads synchronisiert werden müssen, was Ralf nicht wirklich mag. Um das besser verdeutlichen zu können, schreibt er in Echtzeit verschiedene kleinere Programme. Sehr schlau!
Das Besondere an der CCR ist das Warteschlangenprinzip: Jeder Befehl oder jedes Datum wird im Hintergrund aus der Warteschlange ausgelesen und verarbeitet, sobald eine Ressource frei ist. Damit müssen keine expliziten Threads erzeugt und wieder beendet werden, da sich die CCR automatisch darum kümmert. Hierfür steht die DispatcherQueue-Klasse zur Verfügung.
Die CCR erlaubt sowohl den Einsatz des Standard-Threadpools als auch eigene Threadpools auf Dispatcher-Basis.
prio.powerday: Parallele Programmierung unter .NET 3.5
Nach der Mittagspause ist Bernd Marquardt ohne sein Alter Ego an der Reihe. Sein Thema: Parallele Programmierung mithilfe des .NET-Frameworks 3.5, und zwar per TPL.
Folgende Elemente kommen zum Einsatz:
- Parallele Erweiterungen für LINQ = PLINQ
- Schleifen parallelisieren: Die hierzu gehörige Klasse heißt System.Threading.Parallel. Schleifen werden auf mehrere Threads aufgeteilt werden, aber nur, wenn die einzelnen Schleifendurchläufe unabhängig voneinander sind. Dabei müssem die Indezies alle gleich sein. Am Ende der Schleife werden alle Threads synchronisiert. Fazit: Schleifenparallelisierung lohnt sich nur bei komplexen und großen Schleifen! Wichtig ist auch die richtige Verteilung einer Schleife auf die vorhandenen Prozessorressourcen. Dies gelingt, indem die einzelnen Schleifendurchläufe in kleinen Portionen verarbeitet werden.
- Aggregationen: Hierbei geht es um das Zusammenfassen von Ergebnissen. Dabei ist Locking meist erforderlich. Zwischenwerte werden über sogenannte ThreadLocateState weitergegeben. Der Ablauf sieht folgendes vor: Initialisierung, Zwischenspeichern der einzelnen Thread-Ergenisse und das abschließende Zusammenführen der Zwischenwerte inklusive Locking. Übrigens: Aufgrund des Zusammeführens der einzelnen Thread-Zwischenergebnisse kann ist bei der parallelen Ausführung zu Rundungsfehlern kommen und das Ergebnis weicht vom sequentiellen Programm ab.
prio.powerday: Multithreading mit .NET-Bordmitteln
Und weiter geht’s. Bernd und Ralf gehen jetzt näher auf das Thema Multithreading mit .NET-Bordmitteln ein. Hierbei gibt es verschiedene Aspekte:
- Statisches Threading birgt vor allem ein Problem: Es gibt statische Variablen, die von mehreren Threads gleichzeitig schreibend genutzt werden können.
- Threading mit instanzierten Klassen: Jeder Thread hat seine eigene Instanz, also zum Beispiel seine eigenen Variablen, was natürlich ein wenig mehr Ressourcen kostet.
- Steuerung von Threads: Hierbei geht es um die Priorisierung von Threads sowie das Starten, Pausieren und Stoppen von Threads. Die Herausforderung ist hier der jeweils richtige Zeitpunkt, ein Thread zu manipulieren. Außerdem muss man feststellen können, ob ein Thread gewollte beendet wurde. Dies kann per Bool’scher Variable erreicht werden.
prio.powerday: Einführung in die parallele Programmierung
Jetzt sind mit kaum einer halben Stunde Verspätung Ralf Westphal und Bernd Marquardt dran. Sie wollen uns erst mal erzählen, was parallele Programmierung eigentlich bedeutet.
Zunächst geht es um echte Basics wie Multithreading mit Single- und Multicores. Fakt ist: Multithreading allein bringt gar nichts, dafür sind mehrere Prozessoren und die Zerlegung eines Programms in parallel zu verarbeitenden Bereiche notwendig.
Eine weitere Herausforderung sind Latenzzeiten, die sich aus asynchroner Prozessorverarbeitung ergeben. Das lässt sich mithilfe einer Kombination aus Multithreading und Multitasking auf mehreren Prozessoren optimieren.
Es gilt aber zugleich, den Durchsatz zu erhöhen. Dies gelingt ausschließlich auf Multicore-Systemen.
Es gibt ein grundsätzliches Problem bei der Parallelverarbeitung: den Zugriff auf gemeinsame Ressourcen. Diese Herausforderung meistern Zugriffskontrollen mithilfe explizierter Sperren. Hierfür sperren zum Beispiel einzelne Tasks gemeinsamen Speicher. Allerdings müssen die Zeitspannen und die Granularität dieser Sperren genau passen. Ein große Gefahr hierbei sind übrigens mögliche Deadlocks, die gerade bei parallel programmierten Anwendungen erst zur Laufzeit auftreten. Deadlocks lassen sich durch dieselbe Sperrreihenfolge vermeiden.
prio.powerday: Multicore-Programmierung unter .NET
Kaum dass ich aus Salzburg zurück bin, sitze ich hier im Konferenzhaus in der Lazarettstraße, München, und nehme an der Multicore-Konferenz für .NET-Entwickler teil, die im Rahmen der prio.powerdays stattfindet.
Den Anfang macht Rami Radi von Intel, der die Einführungsrede hält und die Anwesenden auf das Thema Multicore einstimmen will.
Rami beginnt seinen Vortrag mit Hardware, nicht mehr Software. Namentlich spricht er über den Core i7-Prozessor, der ja im höchsten Maße multithreading-tauglich ist. Core i7 verarbeitet nämlich pro Prozessorkern zwei Threads simultan.
Die nächste Folie zeigt die ganze Vielfalt der Intel-Entwicklertools, über die ich hier schon ausführlich berichtet habe, also über Compiler, VTune etc.
So, jetzt wird’s ernst. Rami spricht über die Parallelprogrammierung im .NET-Umfeld, was seiner Meinung nach nicht einfach ist (wären wir sonst hier?). Zu den Herausforderungen gehören unter anderem falsch genutzter Speicher, zu viele und zu wenige Threads, gemeinsam genutzte Speicherbereiche, Load Balancing und viele andere. Wie gut, dass es für diese “Issues” die passenden Tools gibt wie den VTune Performance Analyzer.
Nach der Konferenz ist vor der Konferenz
Sodala, jetzt bin ich wieder im Büro, nachdem ich mich zwei Tage lang in Salzburg herumgetrieben habe, um auf der Intel Software Conference 2009 die Trends und Tools des Jahres 2009 aus Intel-Sicht kennenzulernen. Ok, Parallel Studio war hier schon das ein oder andere Mal Thema, aber aus erster Hand Infos rund um die geplante Entwickler-Suite präsentiert zu bekommen, ist schon ein Unterschied.
Auf der Konferenz habe ich auch James Reinders zum ersten Mal live erlebt, und in Echt ist er noch authentischer als in seinen Videos. Zu erzählen hat er sowieso eine ganze Menge über Parallel Studio, das übrigens am 26. Mai 2009 auf den Markt kommen soll. Zunächst zwar ohne Parallel Advisor, aber dafür inklusive Parallel Composer, Parallel Inspector und Parallel Amplifier. Und was es mit dem ominösen Ct-Projekt auf sich hat, haben wir von James ebenfalls erfahren.
Ansonsten gab es detaillierte Infos zu den Tools (samt Demos, die ich hoffentlich noch nachliefern kann) sowie eine kleine Einführung in Visual Studio 2010. Und warum Nero pro Jahr rund 50 Millionen Software-Titel verkauft, haben wir ebenfalls gelernt.
Ach ja: Nicht, dass es mir langweilig würde diese Woche. Am morgigen Donnerstag findet hier in München der prio.powerday zum Thema Multicore-Programmierung im .NET-Umfeld statt. Ich werde auch von dort Livebloggen und bin schon sehr gespannt, was Rami, Don, Bernd und Ralf zu erzählen haben. So, stay tuned …
ISC’09: die Zukunft der parallelen Programmierung
Wie im richtigen Leben gehört dem Chef das letzten Wort. Daher kommt James Reinders nochmals auf die Bühne und wagt einen Blick in seine Glaskugel.
Status quo aus Intel-Sicht sind die HPC-basierten Tools der Gegenwart, die permanent weiterentwickelt werden. Daneben wird es sehr bald (wohl im Mai) Parallel Studio geben für den Mainstream-Entwickler. Und drittens sind die vorhandenen Tools einer ständigen Evolution unterworfen (so kommt ein verbesserter Compiler irgendwann im Juni auf den Markt).
Die Evolution des Parallel Studio umfasst folgende Dinge:
- der Parallel Advisor wird wichtiger Bestandteil der Suite
- beste Kompatibilität mit Windows 7 und Visual Studio
- Unterstützung der nächsten Microsoft Concurrency Runtime
- Ergänzungen (was immer das bedeutet)
Den dritten Teil seines Vortrags leitet James mit einem Traum ein:
If you focused on “data parallel programming”, could you make it easier for the program to be deterministic and scale?
ISC’09: Intel Parallel Amplifier im Detail
So, genug genetzwerkt, jetzt wird es wieder ernst auf der Intel Software Conference 2009 in Salzburg. Vor der Pause hat Akyil Levent eine Menge über Parallel Inspector erzählt, jetzt ist er mit Parallel Amplifier dran.
Ein sehr schöner Einstieg in das Thema Tuning ist folgendes Zitat: “Ich weiß, wie ich vier Pferde dazu bringe, einen Wagen zu ziehen. Wie aber geht das mit 1024 Hühnern?” Das ist eine wirklich passende Analogie zur Optimierungsarbeit beim parallelen Programmieren. Denn es gibt so viele Fallen, in die man beim Multithreading tappen kann: nicht-skalierender Code, Deadlocks oder Data Races zur Laufzeit und vieles mehr.
Dafür gibt es den Parallel Amplifier, der Flaschenhälse findet, die Skalierbarkeit der Anwendung ermittelt und mehr. Es hilft also Entwicklern und Programmierern, die parallele Struktur und das parallele Verhalten ihrer Anwendung besser zu verstehen.
Wie schon der Composer und Inspector, integriert sich Parallel Amplifier in Visual Studio und findet folgende Probleme:
- Wo verbraucht meine Anwendung die meiste Zeit?
- Wann gehen die Prozessoren in den Idle-Modus?
- Wo gibt es ungewollte Wartezeiten?
Sobald Amplifier die möglichen Fehler gefunden hat, lassen sich die entsprechenden Quellcode-Stellen per Mausklick öffnen und auf die Fehler hin überprüfen.
ISC’09: Intel Parallel Inspector im Detail
Nach Heinz Basts sehr interessantem Beitrag über Parallel Composer ist Levent Akyil von Intel dran, um zunächst über Parallel Inspector zu reden, später dann über Parallel Amplifier.
Parallel Inspector ist, einfach gesagt, eine Kombination aus Threading- und Speicher-Checktool, und das sogar “proaktiv”. Proaktiv bedeutet in diesem Zusammenhang eine Fehlersuche zur Laufzeit der Anwendung. Darüber hinaus integriert sich der Inspector in Visual Studio und macht damit die Bedienung ziemlich einfach. Der Programmierer muss sich nur für eine der beiden Optionen entscheiden: Finde Threadfehler oder Speicherfehler.
Speicherfehler: Hier geht es um so unschöne Dinge wie Memory Leaks, Speicherüberläufe und Zeigerprobleme. Schön daran ist die Möglichkeit, irrelevante gefundene Probleme auszublenden. Dies macht das Aufspüren der wichtigen Fehler einfacher.
Threading-Fehler: Stichworte sind Deadlocks, Data Races und andere Synchronisationsprobleme, und das zur Laufzeit der Anwendung. Auch hier lassen sich unwichtige Probleme direkt ausblenden.
ISC’09: Warum Intel und Nero gut harmonieren
Erst mal gibt’s ein paar Nero-Zahlen: insgesamt 300 Millionen verkaufte Software-Pakete (50 Mio. pro Jahr), 120 Millionen Besucher pro Jahr auf Nero.com.
Die ersten Multithread-Erfahrungen hat Nero mit seiner Brennsoftware vor vielen Jahren gemacht, was der Firma heute noch dabei hilft, neue Software-Titel für die aktuelle Hardware-Generation so zu schreiben, dass sie möglichst gut skalieren.
Nach einer ganzen Menge an marketinglastigen Infos wird’s endlich technisch. Zunächst geht es um die Frage, welchen Herausforderungen sich ein Entwickler gegenüber sieht, wenn er Multimedia-Software möglichst leistungsfähig schreiben will. Dazu gehört unter anderem Realtime-Encoding (und das natürlich parallel) – in möglichst vielen Datenformaten. Aber auch hoch komplexe Codecs, HD-Inhalte, große Datenmengen und DRM-/Sicherheitsaspekte stellen Herausforderungen dar.
Doch wie schafft es Nero, in Multicore-Dimensionen zu denken? Nun, hierfür sind laut Charly Lippoth neue Kenntnisse und ein neues Denken erforderlich. Dazu gehört beispielsweise die Erkenntnis, dass Funktionen möglichst gut auf den vorhandenen Prozessorkernen skalieren müssen.
Aber auch die Programmierung auf Maschinencode-Ebene hilft Nero beim Optimieren der Software, indem beispielsweise SSE-Befehle optimal eingesetzt werden. Ein weiterer Aspekt ist aber natürlich der Einsatz der richtigen Tools.
ISC’09: Microsoft und die parallele Programmierung
Die Pause ist vorbei und auf der Bühne steht Eric Vernié von Microsoft und präsentiert sehr launig das Thema “Microsoft und Multicore-Programmierung”.
Den Anfang macht eine Demo mithilfe einer Mandelbrot-Berechnung, die auf einem Prozessor und auf 24 Prozessorkernen läuft – und das signifikant schneller! Das überrascht nicht wirklich …
Eines der Hauptprobleme beim parallelen Programmieren ist laut Eric – und das ist nicht nur seine Ansicht – die bestehende Ausbildung der aktuellen Studentengeneration, da diese nicht entsprechend ausgebildet werden.
Die Integration von Intel Parallel Studio in Visual Studio 2010 hat laut Eric diverse Vorteile: Load Balancing und Task Scheduling geschehen sehr ausgewogen. Außerdem werden die vorhandenen Ressourcen wie Intel TBB und Microsoft PPL optimal gemeinsam genutzt.
Eine weitere Demo zeigt den Unterschied zwischen LINQ und PLINQ, mit deren Hilfe ein Datensatz in einer Datenbank gefunden werden kann. Überraschung: Dank der Parallelisierung von PLING wird derselbe Datensatz in vier Sekunden identifiziert anstatt in 27 Sekunden auf LINQ-Basis.
Interessante Aussage: “The manycore is a disruption for developers but also a high opportunity!”
ISC’09: Parallele Programmierung für den Mainstream
James Reinders widmet sich dem Thema Parallelprogrammierung aus Intel-Sicht. Das hat vor allem mit den Tools zu tun, die der Chiphersteller seit vielen Jahren im Programm hat, seinerzeit vor allem auf HPC spezialisiert.
Ohne große Umschweife kommt James auf Parallel Studio zu sprechen. Das Feedback der Beta-Tester ist wohl sehr gut. Gleichzeitig ist es aber wichtig, so Reinders, dass die Segmentierung der Tools klar ist: Parallel Studio wird in Zukunft den Mainstream der C++-Programmierer adressieren, während sich die anderen Softwarewerkzeuge eher an Highend-Entwickler wenden – unter anderem an diejenigen, die nicht in C++ unter Windows programmieren.
Klar, dass James auch über geplante Produkte redet. Zum einen über die nächsten Multicore-Prozessoren, die ein Vielfaches an Threads wie die aktuellen CPUs parallel verarbeiten können. Aber auch Larrabee kommt kurz ins Gespräch.
Jetzt liegt gerade eine interessante Folie auf, die das ganze Dilemma vieler Programmierer aufzeigt: Mehr Prozessorkerne bedeuten nicht zwangsläufig mehr Leistung, da die Taktraten nicht weiter nach oben gehen und aus diesem Grund die Anwendungen für parallel ablaufende Threads optimiert werden müssen. Und zwar so, dass die Software auch dann skaliert, wernn die Hardware nicht nur vier Prozessorkerne bietet, sondern 8, 16, 32 oder mehr.
Auf die Bühne kommt – Intel Threading Building Blocks, übrigens Teil des Parallel Studio.
Intel Software Conference: erste Worte
Ziel der Veranstaltung hier:
- Was ist Parallel Studio?
- Intels zukünftige Pläne
Das erinnert mich gerade ein wenig an die Verleihung der bekannten Hollywood-Statue: Anwesende werden begrüßt, Special Guests werden erwähnt und kleine Geschichten werden ausgetauscht. Ein sehr launiger Auftakt für solch eine Veranstaltung …
Dann wird’s aber doch technisch und die geplanten Redner werden vorgestellt: Microsoft, Nero und Intel werden den heutigen Tag inhaltlich gestalten. Daneben wird das Intel Software Network vorgestellt, die Plattform für technische Informationen rund um Intel-Softwareprodukte. Goparallel.com wird kurz erwähnt sowie die MSDN-Verlinkung, die geplante Microsoft-Intel-Roadshow und diverse Veranstaltungen.
Jetzt gibt Christian ein kurzes Update in Sachen Parallel Studio und dass es sogar auf der weltweiten Marketing- und Sales-Konference im Januar Erwähnungen gefunden hat. Weitere Tools werden im Juni vorgestellt, die vor allem für Apple- und Linux-Entwickler interessant sein werden.
Ein Video lässt verschiedene Menschen zu Wort kommen (Citrix, Microsoft, Novell, Red Hat, Autodesk etc.), die Intel-Tools wie VTune Performance und Intel Compiler Analyzer in den höchsten Tönen loben.
Und jetzt heißt es: Bühne frei für James Reinders!
Onsite-Blogging: Intel Software Conference 2009
Jetzt sitze ich also in Salzburg in einem netten Kaffeehaus an der Salzach und warte darauf, dass heute Abend um Punkt 18:00 MESZ die Intel Software Conference 2009 für die anwesende Journaille aus ganz Europa offiziell eröffnet wird. Ok, richtig beginnen wird die Veranstaltung erst morgen früh, aber der heutige Abend steht ganz im Zeichen des Netzwerkens. Und das ist ja genauso wichtig wie die Entwicklerkonferenz selbst.
Für alle, die bisher noch nicht mitbekommen haben, was hier am morgigen Dienstag in der Geburtsstadt Mozarts im Namen von Intel stattfinden wird, folgt jetzt die ultimative Stichwortsammlung:
James Reinders, Obersoftwareguru bei Intel, wird zeigen, dass sich Multicore-Plattformen vom Nischendasein emanzipiert haben und im Massengeschäft angekommen sind. Und dass es für Softwareentwickler noch ein Menge zu tun gibt, um ihre oftmals sequenziell programmierten Anwendungen an die aktuellen und zukünftigen Prozessorgenerationen anzupassen, die es gerne parallel mögen.
Eric Vernié, Softwarevordenker bei Microsoft in Frankreich, macht sich dann daran, die gemeinsamen Anstrengungen von Intel und Microsoft in Sachen Multicore-Programmierung vorzustellen. Stichworte sind Visual Studio 2010 samt .NET 4.0 einerseits und Parallel Studio andererseits. Es wird aber auch um künftige Programmiersprachen wie F# gehen, die für noch mehr automatischen Parallelismus in Anwendungen sorgen sollen.
Optimierte Spieletitel können doppelt und dreifach gewinnen
Gerade hoch komplexe 3D-Spiele wie Crysis oder Sacred 2 sehen auf einem Multicore-System nur dann wirklich gut aus, wenn die Entwickler dafür auch einiges getan haben (Mark Atkinson von Crytek hatte mir schon mal dazu einiges erzählt). Denn mit Tools wie OpenMP, Parallel Studio, VTune Performance Analyzer, Laptop Gaming TDK und anderen Werkzeugen können Spieleentwickler ihren 3D-Titeln erst richtig viel Leben einhauchen – für noch mehr Spielspaß, atemberaubende Szenen und intelligente Gegner.
So, und falls jetzt einer von euch aufspringt und schreit “Ja, hier, ich, ich habe mein Spiel multithread-tauglich gemacht und habe ihm mobile Features verpasst und habe es sogar noch für integrierte Intel-Grafikchips optimiert”, dann sollte sich der- oder diejenige ganz schnell für einen Wettbewerb anmelden, der sich “Level Up 2009″ nennt und der im Rahmen der “Intel Visual Adrenaline Game Demo Challenge” stattfindet.
Der Anmeldeschluss ist übrigens der 1. Juli 2009. Ihr solltet also möglichst schnell das zugehörige Online-Formular ausfüllen, damit ihr auch bis zum 1. Juli von Besuchern der Wettbewerbsseite beurteilt werden könnt (das hat allerdings keinen Einfluss auf das Endergebnis). Solltet ihr für den Level-up-Contest zugelassen werden, bekommt ihr von Intel erst mal eine Menge an Software kostenlos zur Verfügung gestellt. Das sind im einzelnen:
- Intel C++ Compiler 11.0
- Intel VTune Performance Analyzer 9.1
- Intel Thread Checker 3.1
- Intel Thread Profiler 3.1
- Intel Threading Building Blocks 2.1
- Intel Integrated Performance Primitives 6.0
Zwar umfassen diese Werkzeuge eine limitierte Lizenz, die bis zum 14. September läuft. Aber gerade für die Kategorie “Bestes Multithread-Game” leisten diese Tools sehr gute Dienste.
Microsoft und Intel zeigen paralleles Programmieren
Der Juni 2009 kann für alle Software-Entwickler, die mehr zum Thema Multithreading und Co. wissen wollen, ein sehr schöner Monat werden: Denn neben den regelmäßig erscheinenden Beiträgen auf diesem Blog bieten Microsoft und Intel insgesamt sechs gemeinsame, kostenlose Techtalks an, die sich mit dem Thema Paralleles Programmieren beschäftigen werden.
Dabei geht es um das Multithreaden von Anwendungen, die sowohl mittels nativer Programmiersprachen wie C++ als auch in C# geschrieben wurden oder werden. Hierbei soll ja ab Mitte dieses Jahres die Entwicklungssuite Parallel Studio von Intel helfen und wohl ab Ende dieses Jahres Visual Studio 2010 von Microsoft.
Aus diesen zwei Gründen werden Darius Parys von Microsoft und Mario Deilmann von Intel vier Stunden lang über ihre zukünftigen Entwicklertools reden und natürlich alle Fragen dazu beantworten.
Ach ja: In den Genuss dieser abendlichen Workshops kommen primär alle Softwareentwickler, die in Karlsruhe, München, Köln, Hamburg, Berlin oder Dresden zu Hause sind respektive dort arbeiten. Die genauen Daten und weitere Infos zu den Veranstaltungen gibt es auf MSDN.
Man sieht sich (zumindest in München)!


