OOP 2012: die interessantesten Präsentationen auf einen Blick

veröffentlicht von am 25. Januar 2012 (0) Kommentare

Zwar geht die diesjährige OOP, die unter dem Motto “Sustainability: Empowering the next generation” abgehalten wird, erst morgen zu Ende, trotzdem wollen wir einen kurzen Blick zurückwerfen auf die ersten drei Tage und  zeigen, was noch an interessanten Präsentationen auf Sie wartet, falls Sie noch kurzfristig auf die Entwicklerveranstaltung der SIGS Datacom GmbH gehen wollen.

Montag, 23. Januar 2012

Star des ersten Tages war unter anderem der Android-Einsteiger-Kurs von und mit Lars Vogel, der von 10 bis 17 Uhr alles Wissenswerte über Android und seine Programmierung verraten hat.

Nicht minder spannend war der Vortrag “Cloud ohne Hype”, in dem Halil-Cem Gürsoy und Eberhard Wolff drei Stunden lang ihre Zuhörer in die Welt der Internet-Dienste entführten und anhand geeigneter Anwenderberichte Nutzen und Stolpersteine des Cloud Computing aufzeigten.

Wer wissen wollte, wie das Google Web Toolkit genau funktioniert, konnte sich von 18:30 bis 20:00 Uhr von Kai Tödter darüber aufklären lassen. Es ging unter anderem um deklarative GUIs mit UI-Binder, GUI-Builder GWT-Designer, Cell-Widgets und Model-View-Presenter Pattern.

Dienstag, 24, Januar 2012

Tag 2 auf der OOP 2012 hatte für alle Mobile-Entwickler den Vortrag “Plattformübergreifende Entwicklung von mobilen Anwendungen” von Peter Friese parat. Der werte Kollege machte klar, dass mobile Apps ganz unterschiedliche Ansätze kennen: von nativ über hybrid bis hin zu mobilen Webanwendungen auf Basis von HTML5.

Dass auf der OOP nicht nur die Technik, sondern auch der Mensch eine Rolle spielt, macht die Entwicklerkonferenz so besonders. So waren wieder zahlreiche Präsentationen am Start, die sich den zwischenmenschlichen Dingen der Software-Entwicklung beschäftigten. Dazu gehörte unter anderem der Vortrag von Jörg Dirbach und Markus Flückiger, die unter dem Titel “Software entwickeln mit Verstand” aufzeigten, wie sich individuelle und Teamprobleme richtig lösen lassen, was jedem Projekt zu gute kommt.

Und wer am Montag nicht die Gelegenheit bekam, den Android-Einsteigerkurs von Lars Vogel zu besuchen, der konnte das von 17:45 bis 18:45 Uhr nachholen. Allerdings in der verkürzten Fassung.

Mittwoch, 25. Januar 2012

Von 9 bis 10:30 referierte Michaël Chaise von Adobe ausführlich darüber, wie sich die unterschiedlichen mobilen Plattform mithilfe eines einzigen Tools adressieren lassen – nämlich mit Adobe Flex. Mit diesem Opensource-Framework können Sie Crossplattform-Apps entwickeln – und zwar für iOS, Android und Blackberry Tablett OS.

Auch sehr beachtenswert (vor allem aus Sicht dieses Blogs) war der Vortrag von Urs Gleim von der Siemens AG, der unter dem zweideutigen Titel “Des Pudels Kerne: was bedeutet Multicore für den Softwarearchitekten?” darüber referierte, warum Mehrkern-Prozessor-Systeme für die Software-Entwicklung wichtig sind und wie dies in der Praxis umgesetzt wird.

Donnerstag, 26. Januar 2012

Neben all den programmierlastigen Referaten werden aber auch Business-Aspekte auf der OOP angesprochen. So wie dies Torsten Winterberg von 11:00 bis 11:45 getan hat, der in seinem Vortrag die Frage stellte, ob mobile Lösungen und BPM (Business Process Management) überhaupt zusammenpassen und welche Lösungen hierfür bereits bestehen.

Wer sich für die Programmiersprache Erlang interessiert, sollte heute Abend zwischen 18:30 und 20 Uhr den Vortrag von Pavlo Baron besuchen, der anhand eines typischen Beispiels zeigt, wie Erlang funktioniert und wie sich diese Programmiersprache richtig einsetzen lässt. Und das alles geschieht live!  Interessante Aspekte dabei sind die Multicore-Entwicklung, die Verteilung, Bitstrings, die funktionale Programmierung, Message Passing und Location Transparency.

Freitag, 27. Januar 2012

Der letzte Tag der OOP 2012 ist traditionell recht kurz, dafür nicht minder interessant. Sehr empfehlenswert ist der Vortrag von Nicolai Josuttis, der von 9 bis 16 Uhr den neuen Standard C++ 11 vorstellen wird. So mit allem Zip und Zap. Dazu gehört zum Beispiel eine Concurrency-Bibliothek, die eine portable Unterstützung von Multithreading bietet.

Kategorien : Mobile,Multicore Tags : , ,

Neue Konferenz für Parallelprogrammierer: parallel 2012

veröffentlicht von am 28. Oktober 2011 (0) Kommentare
Das neue Konferenzformat für Parallelprogrammierer: parallel 2012

Das neue Konferenzformat für Parallelprogrammierer: parallel 2012

Entwicklerkonferenzen gibt es viele. Ob dass die OOP in München ist, die Game Developers Conference in Köln oder die Intel-eigene Software Conference, die heuer im schönen Dubrovnik stattfand – stets geht es um zahlreiche Aspekte der Software-Entwicklung, aber selten um ganz spezielle Themen wie beispielsweise die Parallelprogrammierung.

Dieses Manko haben jetzt der Heise Verlag und der dpunkt.Verlag erkannt und ein neues Konferenzformat ins Leben gerufen, das sich genau diesem Spezialthema der Software-Entwicklung widmen wird. Hierbei ist der Name Programm: parallel 2012 nennt sich die erste Ausgabe dieser Fachveranstaltung und bezeichnet sich selbst als Softwarekonferenz für Parallel Programming, Concurrency und Multicore-Systeme. Die parallel will sich mit folgenden Dinge auseinandersetzen:

  • Es sollen typische Fallstricke bei der Entwicklung für Multicore-Architekturen aufgezeigt und Methoden zur Lösung von zu erwartenden Problemen vorgestellt werden.
  •  Die Vorträge sollen auf Basis konkreter Projektbeispiele Konzepte und Techniken erläutern, die im Rahmen spezifischer Anwendungsfelder vorgestellt werden.
  • Die Teilnehmer der parallel 2012 sollen wertvolle Ratschläge über den Einsatz von Produkten, Techniken und Mechanismen zum Ausschöpfen des Potenzials parallelisierter Softwarearchitekturen in ihren Unternehmen erhalten.
  • Aber auch um Tools und Dienstleistungen soll es auf der Konferenz gehen. Und klar, dass genug zum Zeit zum Networken, Kontakten und Wissen austauschen zur Verfügung stehen wird.

Falls Sie oder Ihr Unternehmen als Sprecher auf der parallel 2012 aktiv werden wollen, können Sie ab sofort Ihre Vortragsvorschläge auf der zugehörigen Webseite einreichen. Der Stichtag ist hierfür der 31. Dezember 2011. An diesem letzten Tag des Jahres endet die Call-for-Paper-Frist. Gesucht werden übrigens Langvorträge mit einer Dauer von 90 Minuten und Kurzsessions, die 40 Minuten nicht überschreiten sollten. Darüber hinaus sind Ganztags-Workshops geplant.

Ach ja: die parallel 2012 findet am 23. und 24. Mai 2012 in Karlsruhe in den Räumen der Industrie- und Handelskammer statt. Wir halten Sie auf dem Laufenden.

Kategorien : Multicore Tags : ,

Kostenloser Microsoft C++ Tag: Experten von Microsoft und Intel berichten über News & Trends

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

Am 19. Oktober 2011 (13:00 bis 18:00 Uhr) findet der  C++ Tag im schicken MACE Restaurant in Unterföhring bei München statt. Hier erfahren 50 C++-Developer exklusiv alles zu den Angeboten und Neuerungen von Microsoft und Intel im Bereich C++.

Die Teilnahme ist kostenlos aber es sind nur 50 Plätze verfügbar!

Unter anderem erwarten Sie die folgenden Sessions:

Keynote: Visual Studio 11 and Windows – Powering the Next Wave of Innovation
Visual Studio C++ Program-Manager Boris Jabes und Visual Studio Architect Jean-Pierre Duplessis stellen die neuesten Entwicklungen und Ausblicke für C++ in Visual Studio und auf der Microsoft-Plattform vor.

Effective C++ Programming with Visual Studio 11 Ultimate
Programmer productivity in the era of agile development is no longer something we can count with lines of code. Visual Studio brings together a slew of lifecycle management tools—from architecture analysis to unit testing—that dramatically improve the productivity of C++ developers everywhere. Come learn how the next version Visual Studio will help you embrace agile methodologies like never before!

Unleash Parallel Performance with C++ in Visual Studio 11
Parallelism is everywhere. The upcoming version of Visual C++ enables native developers to remain the kings of performance across all form-factors. With new compiler technology, we will show how every developer can take advantage of multi-core CPUs. With C++ AMP, we bring the cheap & awesome power of GPUs to every C++ programmer. Finally, we bring it all together with enhancements to the debugging and profiling experiences across VS.

Graphics & Game development tools in Visual Studio 11
Visual Studio 11 brings the most significant set of improvements for developing graphics-intensive apps in over a decade. Whether you are just getting started with 2D/3D games or a self-proclaimed “Guru”, there’s something for you in this talk. We will walkthrough a slew of new tools integrated into Visual Studio that will make your life better.

Für Intel ist Bev Bachmayer am Start, Senior Software Engineer der Software and Solutions Gruppe. Nutzen Sie die Gelegenheit, mit einer erfahrenen Entwicklerin über aktuelle Trends und Herausfoderungen der C++-Programmierung zu diskutieren.

Melden Sie sich umgehend an, um das Event nicht zu versäumen.

Kategorien : Multicore,Visual Computing Tags : , , ,

GDC Europe 2011: Vorher informiert – doppelt profitiert (II)

veröffentlicht von am 12. August 2011 (0) Kommentare

Heute der versprochene zweite Teil meiner Vorberichterstattung zur GDC Europe 2011. Gestern ging es um die Sessionvon Leigh Davies unter dem Titel „Efficient Scaling in a tasked based Game Engine“.

Heute stelle ich die beiden Dienstags-Sessions in den Vordergrund.

Dienstag, 16.8.2011: Ab 9:30 Uhr spricht Levent Akyil zum Thema “Hotspot Flops & uOps”.  Levent wird verdeutlichen, wie sich seriell und parallel programmierte Anwendungen durch eine recht simple Optimierung auf Registerebene weiter beschleunigen und Fehler wie Bottlenecks in Quellcode aufspüren und beheben lassen. Dabei geht Levent detailliert auf die Möglichkeiten der aktuellen Sandy Bridge-Architektur mit AVX ein – von der sowohl Programmierer als auch Spieler erheblich profitieren.

Wenn Sie sich zuvor über die Advanced Vector Extension, eine verbesserte Vektorisierung von Gleitkomma- und Ganzpunktzahlen, informieren möchten, empfehlen wir Ihnen unseren Grundlagenartikel „Sandy Bridge: Schnellere Apps dank breiteren AVX-Registern“.  Zudem lohnt ein Streifzug durch diesen Blog, denn AVX im Zusammenhang mit der Programmierung und der verbesserten Grafikleistung von 3D-Games war sehr häufig Thema bei uns.

Levent habe ich übrigens im Mai beim Black Belt Event in München getroffen, wo er die aktuellen Programmier- und Analyse-Tools vorgestellt hat, allen voran natürlich Intel Parallel Studio XE mit dem Composer, dem Inspector und dem VTune Amplifier. Anhand der Amplifier-Werkzeuge zeigte Levent, wie sich typische Speicherprobleme im Code ausfindig machen lassen und wie Entwickler feststellen können, wo sich im Code Performance-Schwachstellen verbergen.

Hierzu empfehle ich auch meinen Report von der Intel Software Conference in Dubrovnik vom April dieses Jahres: Intel Software Developer Conference 2011 (II): Intel VTune Amplifier XE in Action.
Levent ist nicht nur ein hervorragender Redner, sondern auch sehr sympathisch. Sie sollten die Chance nutzen, seine Session zu besuchen und vielleicht auch ein paar Worte mit ihm am Intel-Stand zu wechseln.

Die offizielle Ankündigung zu seiner Session können Sie auf der GDCE-Seite abrufen.

Dienstag, 16.8.2011: Ab 17:40 Uhr kommt dann Philipp Gerasimov zu Wort. Er wird in seiner Session zeigen, wie sich der Action-RPG-Titel Darkspore mit Hilfe des Analyse-Toolsets Intel GPA für Notebooks optimieren lassen konnte. Hierzu gehört detailliertes Wissen über die Version 4.0 des Tools, aber auch die Neuerungen der Version 4.1 wie der verbesserte Platform Analyzer und das In-Game-HUD werden vorgestellt. Im Einzelnen wird Philipp auf den Frame Analyzer näher eingehen und außerdem zeigen, wie sich mit dem Platform Analyzer der eigene Spieletitel auf die Multicore-Fähigkeiten hin untersuchen lässt.

Die offizielle Ankündigung zu seiner Session können Sie auf der GDCE-Seite abrufen.

Intel GPA war und ist ebenfalls immer wieder Thema dieses Blogs, so dass Sie über diese Seiten sehr gut vorbereiten oder auch einiges nachlesen können. Empfehlenswert auf jeden Fall die Beiträge: „Das sagen bekannte Spieleentwickler über Intel Graphics Performance Analyzers“ und „Wie LEGO Univers mithilfe von Intel GPA optimiert wurde“ . Letzter Tipp für alle, die die neue Version GPA 4.1 selbst ausprobieren möchten: Auf dieser Seite finden Sie eine kostenlose Download-Option.

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

GDC Europe 2011: Vorher informiert – doppelt profitiert (Teil I)

veröffentlicht von am 11. August 2011 (0) Kommentare

Noch viermal schlafen, dann geht es endlich los! Die GDCE 2011 öffnet in Köln ihre Tore. Dort werden zahllose Experten, Programmierer, Spieledesigner und auch Anwender über die technischen Möglichkeiten und Trends der kommenden Jahre diskutieren.

Intel als Sponsor und Veranstaltungs-Partner übernimmt dabei eine zentrale Rolle. Auf den Info-Stand und die Techsessions habe ich bereits gestern hingewiesen. Heute und morgen möchte die Inhalte der Vorträge kurz anreißen und Ihnen die Möglichkeit geben, sich im Vorfeld der Konferenz bereits über den technischen Background der wichtigsten Sessions zu informieren. Das wird keine Schnitzeljagd durchs Internet. Alle Facts finden Sie auf dieser Seite und bei ISN.

Montag 15.8.2011: Ab 17.40 Uhr erläutert Leigh Davies unter dem Titel „Efficient Scaling in a tasked based Game Engine“, wie sich task-basierte Spieletitel so optimieren lassen, dass sie auf einem Multicore-System die vollen Performancemöglichkeiten ausschöpfen. Dafür sind unter Umständen Änderungen im Code notwendig. Leigh wird aber verdeutlichen, dass das kein Hexenwerk ist.

Zur Person: Leigh ist derzeit bei Intel beim Intel Visual Computing Software Enabling Team und berät Programmierer, die ihre Spiele hinsichtlich Grafik und Multithreading auf den aktuellen Stand der Möglichkeiten bringen wollen. Er verfügt über eine langjährige Erfahrung als Entwickler von 3D-Spielen und kann Ihnen vermutlich jeden Rendering-Trick verraten.

Der Name kommt Ihnen bekannt vor? Auch im letzten Jahr war Leigh als Intel-Experte und Speaker auf der GDCE. Damals erklärte er, wie sich PC-Games für Netbooks optimieren lassen. Den ganzen Artikel dazu lesen Sie hier. Und mein Vorgänger Michael hatte damals die Möglichkeit genutzt, Leigh zu interviewen. Das YouTube-Video ist immer noch sehenswert, denn seine Aussagen und Prognosen haben nichts an Aktualität und Gültigkeit verloren.

Mehr Infos zur kommenden Session von Leigh erhalten Sie von ihm selbst. Auf der ISN-Seite erläutert er kurz, warum alle Entwickler task-basierter Games die Session nicht verpassen sollten und ermöglicht einen Download des im Vortrag verwendeten Code-Beispiels.

Abschließend lohnt sicherlich auch ein Blick auf die offizielle GDCE-Seite, wo Sie alle Speaker-News, die genauen Orte und Zeiten finden.

Morgen werde ich über die weiteren Sessions berichten!

Kategorien : Multicore Tags : , , ,

Intel Software Developer Conference 2011 (II): Intel VTune Amplifier XE in Action

veröffentlicht von am 13. April 2011 (0) Kommentare

Mein persönlicher Favorit in den durchweg sehr interessanten und dankenswerterweise sehr praxisbezogenen Vorträgen war die Präsentation “Discover the hidden Gems” von Levent Akyil, seines Zeichens selber Entwickler für Intel.

Levent Akyil während der Intel Software Developer Conference 2011

Levent Akyil während der Intel Software Developer Conference 2011

Levent demonstrierte am Beispiel des Simulations- und Aufbauspiels „Total War: Empire“, wie Developer mit Hilfe des VTune Amplifier XE die beiden wesentlichen Ziele der Spieleprogrammierung sicherstellen: Performance und Skalierbarkeit.

Hierzu bietet der Amplifier sowohl statistische als auch visuelle Daten und Analysen, um Hotspots und Locks sehr schnell im Quellcode aufzuspüren und damit die wichtige Frage zu beantworten: „Wo verschwendet meine Anwendung wichtige Rechenzeit und Ressourcen?“

Amplifier identifiziert die „faulen“ Threads sehr schnell (und dank intuitiver Bedienung auch sehr komfortabel) und ermöglicht eine schnelle Navigation im Sourcecode.

Dafür misst das Tool:

  • CPU-Nutzung
  • gleichzeitiger Zugriff mehrerer Threads (Thread Concurrency)
  • Frame-Rate

Vor allem die neue Frame-Analyse ist herauszuheben: Spiele-Entwickler können damit bestimmen, welche Frames im Einzelnen die Performance verringern. VTune Amplifier ermittelt selbstverständlich auch, welche Funktionen diesen Frame initiieren und welche davon als Blockade wirken.

Das ist angesichts des Farbcodes in der sehr übersichtlichen grafischen Darstellung selbst für Einsteiger ohne weiteres machbar: Grüne Balken bedeuten, dass die Threads bereits das volle Parallelisierungspotenzial ausgeschöpft haben, bei roten oder orangenen Markierungen sollte der Code geprüft und ausgebessert werden. Als Entwickler haben Sie die Option, in die grafische Darstellung hineinzuzoomen, um die betroffenen Frames und deren Start- und Endzeitpunkte exakt zu bestimmen.

In der Folge lassen sich die Threads optimal aufeinander ausrichten. Das beschleunigt nicht nur das Game, sondern ermöglicht auch eine höhere Detailtiefe bei der grafischen Darstellung. Levent führte aus, dass „Total War:Empire“ mit Hilfe der Thread-Optimierung pro Frame bis zu 10.000 Spielfiguren detailliert rendern kann – und das nahezu ohne Performanceverlust.

Ein wesentlicher Erfolgsfaktor waren dabei die Intel Threading Building Blocks, die mit ihren C++-Bibliotheken die Skalierbarkeit des parallelen Codes verbessern und damit Threads in Tasks verwandeln. Hierzu ein Zitat eines Spieleprogrammierers von „War Total“:

Ohne den Einsatz von Intel TBB hätten wir das Spiel niemals rechtzeitig veröffentlichen können.

Übrigens: Detaillierte Informationen zum VTune Amplifier und den Threading Building Blocks finden Sie natürlich auch in diesem Blog!

Kategorien : Multicore,Visual Computing Tags : , , ,

Intel Software Conference 2011 (I) – Erste Eindrücke und Ausblicke [Upd]

veröffentlicht von am 12. April 2011 (0) Kommentare

Vor wenigen Stunden ist die Intel Software Conference 2011 in Dubrovnik gestartet. Für die wohl wichtigste Intel-eigene, europaweite Veranstaltung für Reseller und Software-Entwickler wurde eine wunderbare Location direkt am Meer mit Blick auf die Altstadt von Dubrovnik ausgewählt. Wohl dem, der die Möglichkeit hat, hier noch ein paar Tage Urlaub dranzuhängen. Ich werde später ein paar Bilder einstellen, die hoffentlich die tolle Atmosphäre rund um die Konferenz rüberbringen.

Kaffeepause

Nun aber zum Inhalt der Konferenz: Zu Beginn hat Aaaron Coday, Intel-Experte für Visual Computing, Graphics and Gaming, einen erweiterten Überblick zu den aktuellen Prozessorgenerationen gegeben und die Vorteile für Entwickler verdeutlicht. Eine kleine “Überraschung” zu Beginn: Von „Sandy Bridge“ will Intel künftig nicht mehr sprechen, sondern nur noch von der offiziellen Bezeichnung „2nd Generation Intel Core Processor Family“. Das finde ich ein „bisschen“ sperrig und bleibe dann doch lieber bei der geläufigen Bezeichnung „Sandy Bridge“.

Sandy Bridge ist zu Beginn des Jahres mit den Zielen gestartet, energieeffizienter zu arbeiten, mehr Leistung bereitzustellen (nicht nur, aber vor allem für grafisch anspruchsvolle Anwendungen) und Multimedia-Inhalte wie Videos schneller und besser zu en- und dekodieren, indem das Preprocessing und Encoding nicht mehr software-basiert, sondern von der Hardware vorgenommen wird.

Aus Developer-Sicht ist in diesem Zusammenhang auch die Bedeutung des Intel Media SDK hervorzuheben. Es gibt Codeschreibern die Möglichkeit, über nunmehr nur noch eine API auf die optimierten Libraries des Intel Compilers zuzugreifen und Videos damit schneller und vor allem einfacher zu berechnen.

Aaron verdeutlichte, dass der SSE-Nachfolger AVX mit der doppelten Registerbreite (nun 256 Bit gegenüber 128 Bit bei SSE 4.0) sowohl Spielern als auch Game-Programmierern deutlich mehr Komfort und Möglichkeiten eröffnet. So lassen sich grafisch sehr anspruchsvolle Spiele auch auf ressourcenschwachen Netbooks flüssiger abspielen, weil dank AVX die einzelnen Bilder schneller geladen und synchronisiert werden. Zu diesem Thema habe ich ja in der Vergangenheit ebenfalls sehr ausführlich berichtet.

Interessant in diesem Zusammenhang: Aaron prophezeite, dass schon im übernächsten Jahr die Zahl der Single-Core-Systeme fast auf null sinken werde, hingegen werde jeder zweite, weltweit eingesetzte PC vier oder mehr Prozessor-Kerne besitzen.

Einen Blick in die Zukunft wagte auch James Reinders in seinem Vortrag über „Software Ecosystems“. Im kommenden Jahr werde Intel eine Reihe neuer Tools veröffentlichen, die den aktuellen und kommenden technischen Standard der Prozessortechnologie berücksichtigen und damit bereits auf Knight Ferry/Knighs Corner ausgerichtet werden. Dazu gehören:

Am morgigen Mittwoch werde ich ein Video-Interview mit James Reinders führen und sicherlich noch das eine oder andere Detail zu den künftigen Tools erfahren.

Update: Das Videointerview mit James steht ab sofort zum Anschauen bereit.

Kategorien : Multicore Tags : , ,

Early-Bird-Rabatt für die C++ Advanced Developer Conference

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

Die ppedv AG veranstaltet am 5. und 6. Mai 2011 die  C++ Advanced Developer Conference (ADC). Tagungsort wird das beschauliche Prien am Chiemsee sein.

Für ISVs und Software-Entwickler ist dieser Termin eine gute Gelegenheit, sich vor Ort detailliert über aktuelle Entwickler-Tools zu informieren, in Trainings, Workshops und Schulungen das eigene Wissen zu erweitern und Lösungen für typische Programmierprobleme zu finden. Und da das Ganze in einer der der schönsten Regionen Deutschlands stattfindet, lässt sich der Termin prima mit einem Kurzurlaub in die bayerischen Alpen verbinden.

Die Advanced Developers Conference bietet 20 (zumeist deutsche) Vorträge hochkarätiger C++-Experten von Intel, Microsoft und weiteren Firmen. Das Motto der Veranstaltung lautet “aus der Praxis für die Praxis“ und verknüpft die traditionellen Vorteile von C++ mit den heutigen Anforderungen in Entwicklungsprojekten.

Zu den Topthemen zählen das Erstellen leistungsstarker Software mit nativem C++-Code, Performancesteigerung sowie Möglichkeiten der Fehlersuche und -behebung in C++-Programmen. Weitere Schwerpunkte bilden Design und Einsatz von MFC-Anwendungen und die Frage, wie sich durch die Ausnutzung der seriellen und parallelen Prozessoreigenschaften eine maximale Leistung erzielen lässt. Ein Highlight wird dabei sicherlich die Session “Parallelprogrammierung mit native C++ und OpenMP 3.0” von und mit Bernd Marquardt sein.

Übrigens: Am Vortag der Veranstaltung (4.5.) vermittelt Dr. Michael Klemm von Intel in dem ganztägigen Hands-on-Training  “C/C++ Code-Performanceoptimierung für Intel-Prozessoren“ tiefgreifendes Wissen mit praktischen Beispielen an bereitgestellten PCs mit Multicore-CPUs.

Hier die weiteren Infos zur Veranstaltung:

Sichern Sie sich bis 8. April Ihre Teilnahme und sparen Sie dabei bis zu 250 Euro, indem sie sich den Frühbucherrabatt mit dem Promocode „Cpp-i0411X“ sichern. Bei gleichzeitiger Anmeldung zur Konferenz mit zwei weiteren Kollegen bekommen Sie auch noch einen 10-prozentigen Kollegenrabatt on top!

Und hier geht es zur Anmeldung. Wir sehen uns…

Kategorien : Multicore Tags : , , ,

Anmelden und Geld sparen: dotnet Cologne 2011

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

Das Erfolgsgeheimnis: Eine Handvoll Software-Entwickler setzen sich zusammen und organisieren eine Konferenz, die sie selbst gerne besuchen würden.

Diesen Satz habe ich auf der Webseite der Entwicklerkonferenz dotnet Cologne 2011 gefunden. Der sagt wohl eine Menge aus über das Konzept und die Absicht, eine Veranstaltung “von Entwicklern für Entwickler” zu konzipieren und umzusetzen. Und da das Ganze letztes Jahr schon ziemlich gut geklappt hat, kann man für die diesjährige Ausgabe der dotnet Cologne Ähnliches erwarten.

So wird es wohl nicht bei den 300 Teilnehmern vom letzen Jahr bleiben. Daher hat sich das Orga-Team rund um Albert Weinert, Stefan Lange und Roland Weigelt um eine neue Location umgesehen und wurde im Mediapark zu Köln fündig (es handelt sich dabei um das Komed). Und da auch einige neue Leute erwartet werden, gibt es diesmal auch 300- und 400-Level-Vorträge, die noch tiefer in diverse Themen einsteigen. Aber natürlich kommen auch fundierte Einführungen nicht zu kurz.

Toll ist auch die Idee, zwischen den einzelnen Sessions (von denen es immerhin 25 geben wird, aufgeteilt in fünf parallel laufende Tracks) etwas längere Pausen zu machen. Damit hat man auch mal die Gelegenheit, nach einem Vortrag mit den Referenten zu reden, einen der Sponsorenstände zu besuchen oder sich einfach einen Kaffee zu holen. Das reduziert den Stress und erhöht sicherlich die Zufriedenheit der Teilnehmer während der dotnet Cologne 2011.

Auf der zugehörigen Webseite gibt es auch schon erste Vorträge zu bewundern, und erfreulicherweise wird es auch etwas zu Windows Phone 7 geben (Peter Nowak erzählt etwas über Silverlight für mobile Geräte). Das hatte ich ja erst kürzlich hinsichtlich der .NET DevCon 2011 etwas bemängelt.

So, und worauf warten Sie jetzt noch, sich anzumelden? Hierbei ist vor allem Schnelligkeit oberstes Gebot, denn die ersten hundert Anmelder erhalten einen Rabatt von 30 Euro und bezahlen schlappe 25 Euro. Die nächsten 100 Konferenzwilligen werden aber auch noch belohnt und zahlen 15 Euro weniger, also 40 Euro. Alle anderen müssen leider den Standardpreis von 55 Euro zahlen. Aber auch das ist für eine Eintages-Konferenz für Software-Entwickler immer noch ein ziemlich gutes Angebot. Allerdings können Sie sich erst ab dem 14.3. um 14:00 Uhr anmelden.

Dass dieser sehr faire Eintrittspreis überhaupt möglich ist, hat auch mit den zahlreichen Sponsoren zu tun, die auch dieses Jahr die dotnet Cologne finanziell und sonstwie unterstützen. Zu ihnen gehört auch Intel, für die ich auf die dotnet Cologne fahren werde, um vor Ort über die wichtigsten Dinge zu berichten. Also schon mal vormerken: 6. Mai, Berichterstattung von der dotnet Cologne 2011 auf dem Software Dev Blog.

Kategorien : Allgemein,Multicore Tags : , ,

Programm für Entwickler-Event “.NET DevCon 2011″ fast fertig

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

Wirft man einen Blick auf die Webseite der .NET DevCon 2011, die am 6. und 7. Juni in Nürnberg stattfinden wird, sieht man, dass das Programm schon ziemlich weit fortgeschritten ist. Am zweiten Tag gibt es nachmittags noch ein paar Lücken, ansonsten wirkt das Ganze schon recht rund.

Zunächst einmal gilt festzuhalten, dass die Programmverantwortlichen acht Themenschwerpunkte definiert haben, vier am ersten Tag und vier am zweiten. Tag 1 umfasst die Rubriken “Sprachen”, “Architektur”,  ”SharePoint & Daten” sowie “ALM/Produktion”, an Tag 2 geht es um “Visual Studio & Add-Ins”, “Code & UI”, “Web-Ready Desktop” sowie “Soft Skills & Agile Methoden”. Zu meinen persönlichen Highlights zählen folgende Sessions:

Was mir noch ein wenig fehlt, ist das Thema Windows Phone 7, da es auf eine ordentliche .NET-Veranstaltung durchaus passt (immerhin hat die dotnetpro WP7 schon einen kompletten Schwerpunkt spendiert). Außerdem kann ich keinen Slot für eine Keynote-Session entdecken. Das wäre wirklich schade, schließlich gibt solch eine Eröffnungsrede die Richtung für die gesamte Veranstaltung vor. Na, mal sehen, ob es sich die Verantwortlichen der .NET DevCon – Tilman Börner und Florian Bender – in dieser Sache noch einmal anders überlegen.

Falls Sie das Ganze auch ohne Keynote interessant finden, können Sie sich natürlich gleich mal anmelden. Wenn Sie das noch bis zum 19. April erledigen, sparen Sie 100 Euro und zahlen nur 690 Euro. Danach sind für zwei Tage .NET-Konferenz 790 Euro fällig. Hierin enthalten ist ein gemütliches Get-together am ersten Abend und ein separater Ausstellungsbereich, in dem diverse Firmen ihre Lösungen und Produkte in Sachen Software-Entwicklung präsentieren werden. Für das passende Socializing ist also auch gesorgt.

Kategorien : Multicore Tags : , ,

Vorschau auf die OOP 2011, AVX-Codebeispiel und ein Video zu Sandy Bridge

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

In aller Kürze noch einen interessante Fundstelle zu dem AVX-Codebeispiel “Cloth”, über das ich bereits in der vergangenen Woche berichtet habe .

Arti Gupta hat im Rahmen des Intel Software Network-TV eine neue Folge der Reihe „Visualize this!“ eingestellt. Das Thema ist erneut AVX Cloth. Stan Melax, ein erfahrener Graphics Software Engineer, erläutert hier seine Erfahrungen bei der Code-Entwicklung, spricht über Stolpersteine und gibt Tipps zur Grafikprogrammierung in 3D-Spielen. Sehenswert!

In der kommenden Woche werde ich von der OOP 2011 berichten – teilweise auch live!

Die internationale Messe für Softwarearchitekten und Entscheider findet vom 24. – 28. Januar 2011 zum nunmehr 20. Mal im Kongress Center München statt. Hier werden zahlreiche Experten Vorträge und Tutorials zu aktuellen und praxisnahen Software-Themen halten. Multicore-Programming ist dabei eines der Schlüssel-Themen.

Und natürlich gibt es eine Ausstellung mit Messe-Ständen. Von Dienstag bis Freitag können Sie sich zu Sandy Bridge und neuen Dev-Tools auf dem Intel-Stand 7.1 informieren.

Übrigens können wir uns da auch gerne auf einen Kaffee treffen, wenn Sie über Ihre Erfahrungen als Entwickler berichten möchten, interessante Projekte zu Visual Computing oder Multicore-Programmierung vorstellen wollen oder auch einfach nur Ihre Meinung zum Software Dev Blog loswerden möchten. Mailen Sie mir doch einfach Ihre Kontaktdaten und einen Terminvorschlag: Ich setze mich dann gerne mit Ihnen in Verbindung: ibelshaeuser[at]text-vision.com, Stichwort: OOP.

Unabhängig davon sollten Sie sich schon jetzt folgende Termine auf der OOP reservieren:

  • Intel-Keynote: Software entwickeln für die Many-Core-Zukunft
    Montag, 24.1.2011; 16:45 – 17:30 (Ralph de Wargny)
  • Introducing parallelism into legacy code: Three case studies
    Dienstag, 25.1.2011; 14:15 – 15:00 (Stephen Blair-Chappell)
  • Multi-core und Echtzeit – Böse Überraschungen vermeiden
    Dienstag, 25.1.2011; 16:30 – 17:30 (Fridtjof Siebert)

Wir sehen uns…

So, und jetzt gibt’s noch ein kleines Wochenend-Bonbon: Viel Spaß mit dem Video zu Sandy Bridge, das die Rendering- und Grafikfeatures sehr eindrucksvoll belegt. Wetten, dass Sie sich den Clip mehr als einmal anschauen werden?

Kategorien : Multicore,Visual Computing Tags : , , ,

Sandy Bridge gestartet & Windows auf SoC

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

Der Startschuss für die CES in Las Vegas ist erfolgt, und es gab gleich zu Beginn den erwarteten Paukenschlag von Intel: Gestern wurde die „2nd Gen Core-Generation“ (Sandy Bridge) offiziell präsentiert. Und mit der neuen Prozessor-Familie auch die ersten Notebooks mit den neuen Core-i-Chips gezeigt.

An der Namensgebung der bisherigen Baureihen Core i3, Core i5 und Core i7 wird sich nichts ändern. Dafür aber an der Leistung. Einen Geschwindigkeitszuwachs garantieren die Intel Turbo Boost Technik 2.0. Und die Intel Hyper-Threading Technik wird das Multitasking weiter verbessern, da ja jeder Prozessorkern zwei Aufgaben verarbeiten kann.

Das Besondere aber ist die neue Grafikleistung: Prozessor und Grafikprozessor (GPU) sitzen auf einem Chip und sind so direkt mit dem PCI-Controller verbunden. Die Verbesserung von Rechenleistung und Darstellungsqualität sind enorm – vor allem beim Video-Encoding. Wenn Sie die Gelegenheit haben, dann schauen Sie mal einen HD-Film auf einem Sandy-Bridge-PC. Gestochen scharfe Bilder ohne Aussetzer und Wartezeiten – selbst wenn Sie die Filme vom PC auf den Fernseher streamen. Dafür verantwortlich ist eine Reihe integrierter Grafiktechnologien wie Clear Video HD, HD-Grafik und Intel InTru. Kein Wunder, dass schon jetzt die Unterhaltungsindustrie reges Interesse zeigt.

Ein paar kritische Stimmen gibt es aber auch zur GPU – diese habe maximal die Leistung einer Grafikkarte aus dem unteren Preissegment und ersetze für Spieler keine externe Grafikkarte mit einem höheren Datendurchsatz. Das stimmt nur teilweise. In einem meiner nächste Beiträge werde ich gezielt auf Mythen und Fakten zu Sandy Bridge eingehen. Denn in diesen Tagen wird auch viel Unsinn zu den Intel Core-Prozessoren der zweiten Generation verbreitet.

Und noch ein Thema von der CES, das Software-Entwickler interessieren dürfte:

Während seiner Keynote hat Microsoft-Chef Steve Ballmer angekündigt, dass die nächste Windows-Generation, also der Nachfolger von Windows 7, nicht mehr nur für x86-Prozessoren designt werde, sondern auch für System-on-a-Chip (SOC)-Plattformen. Hintergrund: Die „Ein-Chipsysteme“ integrieren möglichst alle Teile der Systemfunktionen auf einem einzigen Prozessor und werden deshalb bislang vor allem als Embedded Systems in der Steuerungselektronik oder auch in portablen Devices mit begrenztem Funktions- und Speicherumgang eingesetzt.

Hierzu zeigte Steven Sinofsky, President, Microsoft Windows and Windows Live Division, dass auch Windows künftig mit den „kleinen“ Chips zufrieden sein wird und ließ eine Vorabversion des neuen Windows auf unterschiedliche System-on-a-Chip-Prototypen von Intel, Qualcomm, Texas Instruments, Nvidia und AMD laufen – inklusive hardware-beschleunigter Grafik-Unterstützung, Web-Funktionalität, USB-Treiber-Support und Druckerunterstützung. Spannende Sache! Zumal Micorosoft den Ball gleich weiterspielt: Jetzt sind die Hardware-Hersteller gefragt, neue clevere Formfaktoren für Mobile Computing zu finden. Auch für Software-Entwickler ergeben sich dadurch natürlich neue Chancen und Anforderungen. Wir bleiben dran.

Kategorien : Multicore,Visual Computing 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 : , , , , , , , ,

GDCE 2010: Erster Tag mit Intel GPA, Netbook-Games und Havok Physics-Engine

veröffentlicht von am 16. August 2010 (0) Kommentare

Der erste Tag hier auf  der Game Developers Conference Europe 2010 ist schon wieder fast Geschichte. Daher folgt eine Zusamenfassung der ersten Sessions, Erkenntnisse und der Havok-Demo.

Die erste Intel Techsession hielt Steve Hughes, der über Intel Graphics Performance Analyzers sprach. Diese Toolsuite hilft Entwicklern, ihre Spiele und Anwendungen zu analysieren und mögliche Flaschenhälse und andere nervige Dinge aufzuspüren und zu eliminieren. Steve sprach auch über die neuen Features vin Intel GPA 3.0, zeigte, wie sich die drei Werkzeuge (System Analyzer, Frame Analyzer, Platform View) richtig einsetzen lassen und wie man mit diesen Tools Veränderungen an einzelnen Frames unmittelbar sehen kann

Darüber hinaus haben wir gelernt, dass Intel GPA ein SDK und ein Capture-Tool umfasst, dass Intel GPA als Client-Server-Anwendung läuft, um die Testplattform so wenig wie möglich mit den notwendigen Berechnungen zu belasten und dass man mit Intel GPA einfach und schnell ganz tief in sein Spiel blicken kann.

Techsession Nummer zwei hielt Leigh Davies, der ebenfalls für Intel arbeitet. Sein Vortrag nannte sich “Building Games for Netbooks” und war randvoll mit interessanten Erkenntnissen wie diesen:

Darüber hinaus hatten wir die Gelegenheit, mit den Jungs von Havok zu reden, die sich den Demostand mit Intel teilen. Zu diesem Zweck haben wir unsere Videokamera aufgebaut und uns die Havok-Demo zeigen lassen, die aus drei Teilen besteht: die Havok Physics im Allgemeinen, zu “Zerstörungszwecken” und für das Rendern von Kleidung und Ähnlichem in Echtzeit. So, dann einfach nur auf den jeweiligen Link geklickt und das Video angeschaut. Viel Spaß dabei!

Kategorien : Visual Computing Tags : , ,

Review: Multicore-Programmierung auf den dotnetpro.powerdays, Teil 2

veröffentlicht von am 1. Juli 2010 (0) Kommentare

Zugegeben, die dotnetpro.powerdays sind schon wieder eine Woche her, was mich aber nicht davon abhalten soll, den zweiten Teil meiner Rückschau zu veröffentlich. Sorry Leute, ich bin einfach nicht früher dazu gekommen. War ziemlich viel los seitdem.

Nach der Keynote-Session von Mario Deilmann (mit dem ich übrigens gestern zusammen saß, neuer Geschichten wegen) waren Bernd Marquardt und Volker Jungbluth an der Reihe, die eine Menge über PPL, TPL und OpenMP zu erzählen hatten.

Bernd begann mit seiner PPL-Session, die sich mit der Parallel Pattern Library beschäftigte. PPL richtet sich an native Programmierer und soll die Parallelprogrammierung deutlich vereinfachen, da sich Entwickler nicht um das Verteilen des parallelisierten Quellcodes auf die zugehörigen Threads kümmern müssen. Dabei sollte man laut Bernd aber trotzdem sicher stellen, dass der seriell erstellte Code fehlerfrei läuft, bevor man sich ans Parallelisieren macht. Ach ja: Die PPL lässt sich nur mit Visual Studio 2010 einsetzen.

Die PPL besteht vor allem aus thread-sicheren Algorithmen, Containern, Objekten und der Task-Parallelisierung. Ein wesentlicher Bestandteil dabei sind sogenannte Lambda-Funktionen, mit denen Code als Parameter in einem Methodenaufruf übergeben werden kann. Dies geschieht mithilfe spezieller Funktionen wie parallel_for() und parallel_for_each(). Besonders interessant ist die Funktion parallel_invoke(), mit der sich bis zu 10 Lambda-Funktionen parallelisieren lasssen, die allerdings alle möglichst gleich lang sein sollten.

Es gibt darüber hinaus Methoden wie try() und throw(), mit denen parallele Schleifen unterbrochen werden können. Und mit der combinable-Klasse erlaubt die PPL den gemeinsamen Zugriff auf eine Variable, ohne dass Data Races entstehen. Schließlich machte Bernd noch darauf aufmerksam, dass die Task-Parallelität das asynchrone Ausführen von Anwendungen erlaubt, indem Task-Gruppen definiert werden. Und ein wichtiger Tipp lautete abschließend: Fehlerfreie Parallelprogrammierung hat sehr viel mit lokalen Variablen zu tun, auf die man nicht von außen zugreifen darf.

Anschließend gab Volker Jungbluth sein Wissen ins Sachen Task Pattern Library (TPL) zum Besten. TPL entspricht in vielen Aspekten der PPL, ist allerdings für die Parallelisierung von Managed Code entwicklelt worden. Ein wichtiger Bestandteil des .NET4-4-Frameworks ist übrigens PLINQ, mit dem man sich als Programmierer laut Volker unbedingt beschäftigen sollte. So sind beispielsweise mit der Methode AsParallel() parallele Abfragen auf Datenstrukturen recht einfach möglich. Interessant fand ich auch die Feststellung, dass Parallel_for-Konstrukte mit dem Partitioner deutlich schneller laufen als ohne.

Weitere Erkenntnisse der Jungbluth’schen Techsession:

  • Mit parallel_invoke() lassen sich mehrere Aufgaben auf Threads verteilen, ohne dass man sich explizit darum kümmern muss
  • Mit Futures lassen sich task-basierte Ergebnisse im Hintergrund berechnen
  • Mit continuation() lassen sich Task-Ketten erstellen, die dank der Lambda-Funktionen Ergebnisse übergeben können.

Nach soviel Parallelprogrammierung unter .NET 4 kam Bernd nochmals auf OpenMP zu sprechen, dass sich zwar am Thread-Konzept orientiert, aber gerade für das Parallelisieren von einfachen Schleifenkonstrukten prima geeignet ist. Daher ist OpenMP vor allem für mathematische Algorithmen eine gute Alternative zu TPL oder PPL, die in der Anwendung doch recht kompliziert sind.

Das Gute an OpenMP ist der Schalter /openmp, der beim Compileraufruf verwendet wird – oder auch nicht. Das erleichtert das Parallelisieren von seriellem Code erheblich, da beim Auftreten von Problemen der OpenMP-Schalter einfach nicht zum Einsatz kommt und die Anwendung zu Testzwecken seriell ausgeführt wird. Ach ja: Auf Basis des Intel-C++-Compilers lassen sich mit dem richtigen Switch fehlerhafte OpenMP-Konstrukte aufspüren.

Toll an OpenMP sind aber auch andere Aspekte:

  • Für nicht-ausgewogene Schleifen verteilt OpenMP mit der Mehtode parallel_for_schedule() ganze Schleifenteile gleichmäßig auf auf jeden Thread. Das garantiert eine effiziente Ausführung von parallelen Schleifen.
  • Mithilfe der OpenMP-API open_set_num_threads(int) wird die Anzahl der vorhandenen Thread-Ressourcen bestimmt und somit optimal genutzt.
  • OpenMP-Variablen sind standardmäßig “shared”. Private-Variablen müssen daher explizit deklariert werden.
  • Was für die TPL/PPL der Invoke-Befehl ist, heißt bei OpenMP “sections”.
  • Mit dem OpenMP-Pragma omp parallel for if(Anweisung) lassen sich bedingte OpenMP-Schleifen bauen.
Kategorien : Multicore Tags : , ,

Review: Multicore-Programmierung auf den dotnetpro.powerdays, Teil1

veröffentlicht von am 25. Juni 2010 (2) Kommentare

Kaum sind die dotnetpro.powerdays vorbei, sitze ich schon wieder im Zug, auf dem Weg nach Frankfurt am Main, um mich auf dem dort stattfindenden Samsung Developer Day ein wenig über das samsung-eigene Mobil-OS Bada zu informieren. Die Zeit hier im ICE will ich mir mit dem ersten Teil meiner persönlichen Multicore-Event-Rückschau vertreiben.

Der Multicore-Programmierungs-Track auf den dotnetpro.powerdays 2010 wurde von Mario Deilmann eröffnet, der sich bei Intel u.a. um das Thema Compiler kümmert. Aber nicht nur das: Mario weiß auch eine Menge zu erzählen über die passenden Multithreading-Konzepte, was er auf der Entwicklertageskonferenz auch tat.

Seine Keynote fing mit einem grundsätzlichen Statement an: Die Multicore-Programmierung unterscheidet sich unter anderem in Sachen Abstraktionsebenen Das beginnt bei den eher komplizierten Thread-APIs, geht über OpenMP und Intel TBB und endet bei Tasks und den zugehörigen parallel-tauglichen Architekturen. Dabei gilt festzuhalten, dass je nach Abstraktionsgrad das Parallelisieren mithilfe der jeweiligen Methode mal mehr oder mal weniger kompliziert ist. So stellt sich das Parallelisieren mithilfe von POSIX-Threads kompliziert und fehleranfällig dar und skaliert darüber hinaus sehr schlecht.

Daneben sind Konzepte wie OpenMP ein guter Schritt in die richtige Richtung, allerdings basiert OpenMP immer noch auf expliziten Threads, was möglichst unter allen Umständen vermieden werden sollte. Jedoch konnten die Anwesenden später von Bernd Marquardt lernen, dass OpenMP vor allem für mathematische Anwendung oftmals eine gute, weil einfach anzuwendende Alternative ist.

Die beste Methode ist in vielen Fällen allerdings das Abstrahieren von Threads auf Basis von Tasks. Dies erfordert aber den Einsatz des passenden Frameworks inklusive der entsprechenden Entwicklungsumgebung. Solch ein Framework ist .NET 4 samt Visual Studio 2010, das ja noch recht jung ist. So hilft .NET 4 mithilfe von speziellen Funktionen, Klassen und Methoden, Anwendungen zu parallelisieren, ohne dass der Entwickler sich um das Erstellen, Verwalten und Anhalten/Löschen von Threads kümmern muss. Zudem helfen Thread-Pools beim optimalen Verteilen der Tasks auf die erforderlichen Threads. Dabei kommen Techniken wie Thread Stealing zum Einsatz, was ein effizientes Ausnutzen der vorhandenen Ressourcen garantiert.

Ein weiteres in Frage kommendes Parallel-Konzept befindet sich derzeit im Beta-Status und nennt sich Cilk, es ist einem Projekt des MIT entsprungen. Cilk wird Teil der nächsten C++-Compiler-Version von Intel sein. Mit Cilk bekommen Programmierer und Software-Entwickler ein mächtiges Tool zum nahezu automatisierten Parallelisieren von Anwendungen an die Hand. Cilk lässt sich laut Mario an einem Nachmittag erlernen und erfordert keine Änderungen am vorliegenden Quellcode. Allerdings sollte man sich vor dem Parallelisieren ein paar Gedanken darüber machen, wie der vorhandene Code möglichst effizient strukturiert werden kann, so dass Cilk seinen Job optimal erledigt.

Natürlich bietet Cilk Konstrukte wie parallel_for-Loops und beherrscht auch das Worker Stealing. Daneben reduzieren Hyperobjects die Gefahr von Data Races, ohne dass der Quellcode per Locks “serialisiert” werden muss. Sehr cool ist auch der Einsatz eigener Reducer, die deutlich flexibler als unter OpenMP und Intel TBB arbeiten Zudem generiert das Erstellen von Tasks mithilfe von Cilk deutlich weniger Overhead als das Erstellen von Threads bei vergleichbaren Konzepten wie OpenMP.

So, und wen Cilk jetzt so richtig neugierig gemacht hat, sollte dieses Blog in den nächsten Tagen immer wieder besuchen. Denn ich werde kommenden Dienstag mit Mario zusammensitzen und alles über Cilk aus ihm herausquetschen. Und die nächsten Teile meiner Multicore-Miniserie anlässlich der dotnetpro.powerdays gibt es natürlich auch sehr bald. See you then!

Kategorien : Multicore Tags : , ,

dotnetpro.powerdays: Multicore-Programmierung

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

Morgen ist es also soweit: Da geht es im Holiday Inn um 9:00 Uhr los, und das übergeordnete Thema heißt “Multicore-Programmierung”. Klar, dass ich auch dort sein werde, um in gewohnter Manier darüber zu berichten – in Form von Tweets und Blogbeiträgen. Es geht dabei um folgende Sessions:

  • Parallel-Programmierung – wie geht’s und das bringt’s
  • Parallelisierung von nativem Code
  • Parallelisierung mit Managed Code
  • Parallelisierung im OLTP-Alltag
  • Parallelisierung von Berechnungen mit OpenMP
  • Abschlussdiskussion | CUDA – Die etwas andere Art schnell zu rechnen

Also, ich freu’ mich drauf! Dann bis morgen…

Kategorien : Multicore Tags : , ,

Tech-Ed 2010: Jetzt anmelden und 500 Euro sparen

veröffentlicht von am 10. Juni 2010 (0) Kommentare

Anfang Mai habe ich schon darüber gebloggt: die Microsoft Tech-Ed Europe findet auch in diesem Jahr wieder in Berlin statt, und zwar vom 8. bis 12. November. Ich hoffe ja, dass ihr alle den Termin schon mal im Kalender vorgemerkt habt. Und ab sofort solltet ihr euch nicht nur darauf freuen, sondern euch auch für die Microsoft-Konferenz anmelden. Und wenn ihr ganz besonders schnell seid, könnt ihr satte 500 Euro sparen. Dieses “Early-Bird”-Angebot gilt genau bis zum 5. Juli und reduziert den All-Inclusive-Pass von 1.895 Euro auf 1.395 Euro.

Das Geld scheint wohl ziemlich gut angelegt zu sein, denn es werden wieder rund 370 Techsessions und  mehr als 150 so genannte Hand-on-Workshops angeboten, also mehr als 100 Sessions pro Tag. Da sollte schon das eine oder andere dabei sein, was für euch relevant und interessant ist. Aber natürlich ist solch eine Konferenz auch zum Netzwerken gut und zum Kennenlernen und zum Feiern am Abend.

Und falls ihr wissen wollt, mit welchen Themen wir uns hier auf dem Software Dev Blog während der letztjährigen Tech-Ed Europe beschäftigt haben: ein Mausklick genügt.

Kategorien : Multicore Tags : , ,

dotnet Cologne 2010 #3: Noch mehr Infos und Präsentationen

veröffentlicht von am 4. Juni 2010 (0) Kommentare

Ja doch, ich geb’s ja zu, ich bin mit meinem dritten Teil der dotnet Cologne 2010 (Teil 1 und Teil 2) ein wenig in Verzug. Und da ich dies natürlich wieder gutmachen möchte, gibt es heute neben den Infos zu den zwei noch ausstehenden Sessions von Oliver Sturm und Bernd Marquardt ein Schmankerl (bayerisches Idiom für “Leckerbissen”) dazu: Es sind nämlich schon ganz viele Präsentationen der Techsessions online, die man sich von dort einfach auf seinen Rechner laden kann. Ein toller Service für alle, die nicht dabei sein konnten oder durften oder sonst was.

So, und was gibt es abschließend noch zu Olivers und Bernds Vorträgen zu sagen? Nun, beide waren (a) sehr unterhaltsam und (b) sehr informativ. Aber gut, das war ja auch nicht anders zu erwarten.

Oliver Sturm ist bestimmt vielen von euch ein Begriff: er ist unter anderem C#-MVP, betreibt ein eigenes Blog und twittert sogar ab und an. Seine Session trug den Titel “Parallelisierung mit funktionalen Ansätzen in C#”. Dabei ging es – grob gesagt – um den Multicore-Shift (“Wie übersetzt man das eigentlich?!”), um das Parallelisieren von Quellcode mithilfe der Parallel Extensions in .NET und um entsprechende funktionale Ansätze, demonstriert anhand zweier Beispiele (das Filtern von Namenslisten und die parallelisierte Erzeugung von Mandelbrotbäumen). Interessant fand ich übrigens Olivers Versuch, die Begriffe “Multithreading”, “Concurrency” und “Parallelism” voneinander abzugrenzen, da diese im englischen Sprachraum äußerst oft synonym verwendet werden. Tja, und den Rest seiner Präse schaut ihr euch am besten selbst an.

weiterlesen…

Kategorien : Multicore Tags : , ,

dotnet Cologne 2010, ein voller Erfolg – Teil 2

veröffentlicht von am 1. Juni 2010 (1) Kommentar

Wie ich bereits berichtete, habe ich mich letzte Woche auf der dotnet Cologne 2010 herumgetrieben und mir dabei die Sessions von Rami Radi, Mario Deilmann, Oliver Sturm und Bernd Marquardt zu Gemüte geführt. Auf die Session von Rami bin ich ja bereits ausführlich eingegangen, und jetzt folgen noch die von Mario, Oliver und Bernd.

Dr. Mario Deilmann (so sein vollständiger Name) ist bei Intel für Compiler und ähnlich geartete Software-Tools zuständig. Mit seiner Lunch-Session ging er der Frage nach, welches Programmier- bzw. Thread-Modell für skalierende Anwendungen das beste sei. Skalierend bedeutet in diesem Zusammenhang, dass parallelisierter Quellcode nicht nur optimal auf zwei Prozessorkerne verteilt wird, sondern auch auf vier, sechs, acht oder 256 Kernen läuft – und zwar ohne Leistungseinbußen.

Hierfür ist laut Mario zunächst einmal ein passendes Profiling-Tool wie der Intel VTune Performance Analyzer erforderlich, mit dem man diejenigen Funktionen, Module und andere Stellen des Quellcodes aufspürt, die für die meiste Rechenleistung und -zeit verantwortlich sind. Denn das sind oft die Stellen, an denen man als Software-Entwickler ansetzen sollte. In vielen Fällen sind das zum Beispiel Schleifenkonstrukte, die sich bestens zum Parallelisieren eignen.

Eine der passenden Programmiermodelle wusste Mario natürlich gleich darzustellen: OpenMP. Allerdings weist diese pragma-basierte Parallelisierung von seriellen Anwendungen auch diverse Nachteile auf: Man denkt als Programmierer in Threads anstatt in Tasks (was laut Mario eigentlich ein absolutes No-Go sein sollte), es lassen sich keine eingebetteten Parallelkonstrukte realisieren und mit lokalen Daten geht OpenMP ebenfalls nur suboptimal um. Aber für die schnellen ersten Ergebnisse für parallel ausführbare Programme ist OpenMP laut Mario eine gute Wahl.

weiterlesen…

Kategorien : Multicore Tags : , ,