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

veröffentlicht von Michael Hülskötter 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 Michael Hülskötter 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 : , ,

dotnet Cologne 2010 war ein voller Erfolg!

veröffentlicht von Michael Hülskötter am 31. Mai 2010 (1) Kommentar

Die letzte Woche war für mich mal wieder sehr event-haltig: Mittwoch und Donnerstag war ich auf der Droidcon 2010 in Berlin, am Freitag verschlug es mich dann nach Köln der dotnet Cologne 2010 wegen, und kaum war ich von meiner Reise zurück, unternahm ich am Samstag noch einen kurzen Abstecher in Richtung GamesCamp Munich 2010, die vom lieben Kollegen Flo Bergmann organisiert wurde.

Da es auf diesem Blog ja um das Thema Multicore-Programmierung geht, widmet sich dieser Blogbeitrag der dotnet Cologne 2010. Zunächst einmal möchte ich den Organisatoren rund um Albert Weinert, Roland Weigelt und all den anderen ein großes Kompliment aussprechen: Ihr habt da wirklich ein tolles Event mit tollen Themen, Sessions und Sprechern organisiert. Ok, dass der Kaffee nicht immer warm war und die Technik gleich mal am Anfang nicht so recht wollte, übersehe ich gerne. Wichtig ist doch, dass die Inhalte stimmen und gut rübergebracht werden. Und das war auf jeden Fall so. Also zumindest kann ich das von den Vorträgen behaupten, die ich besucht habe.

Meine persönliche Sessionplanung umfasste vier Vortragende: Rami Radi und Mario Deilmann von Intel, den sehr unterhaltsamen Oliver Sturm und zu guter Letzt den werten Bernd Marquardt, der auf solch einer Veranstaltung natürlich nicht fehlen darf (und den ich im Juni auf den dotnetpro powerdays wieder erleben werde).

weiterlesen…

Kategorien : Multicore Tags : , ,

dotnet Cologne 2010 inkl. Parallelprogrammierung

veröffentlicht von Michael Hülskötter am 21. Mai 2010 (1) Kommentar

Auf dem IT-techBlog hab ich’s schon verraten: Nächste Woche bin ich so richtig auf Achse. Mit den Stationen Berlin, Hamburg und Köln komme ich ganz gut rum in der Republik. Hoffen wir mal, dass der isländische Vulkan nix dagegen hat (ok, einen Teil der Strecken fahre ich ohnehin Zug).

In Köln bin ich, weil Intel dort einen Teil des Sponsorings übernommen hat und ich live aus dem Holiday Inn berichten werde, in dem die dotnet Cologne 2010 stattfindet. Das Programm habe ich ja schon in großen Teilen vorgestellt. Allerdings haben sich seitdem zwei Änderungen ergeben, die vor allem Intel betreffen. Und die will ich euch natürlich nicht vorenthalten.

Zum einen wird Mario Deilmann nicht über Intel Parallel Studio mit .NET und Visual Studio sprechen, sondern im Rahmen einer Lunch-Session die bekanntesten Windows-Modelle der Parallelprogrammierung vorstellen. Dabei geht es sicherlich um Multithreading-Konzepte wie OpenMP, APIs und Intel TBB. Und sicherlich wird auch Parallel Studio seinen Platz finden, alleine schon wegen der Unterstützung seitens Visual Studio 2010.

Zum anderen wird Kollege Rami Radi von Intel eine Stunde lang über Windows 7, .NET 4 und die Multicore-Programmierung sprechen. Wer sich hier schon länger tummelt, wird sich möglichweise daran erinnern, dass Rami diesen Vortrag schon mal gehalten hat. Womit er allerdings nicht minder aktuell wäre, denn das Thema Parallelprogrammierung hat mit Visual Studio 2010 und .NET 4 ja schließlich gerade erst begonnen.

Für alle, die der dotnet Cologne 2010 leider nicht beiwohnen können, folgt hier die gute Nachricht: Ich werde für euch von dort einen ganzen Tag lang über die wichtigsten und interessantesten Sessions in Sachen Parallelprogrammierung berichten. Macht euch schon mal einen dicken, roten Kringel um den 28. Mai 2010!

Kategorien : Multicore Tags : , ,

Dotnet Cologne 2010 nimmt Konturen an

veröffentlicht von Michael Hülskötter am 31. März 2010 (0) Kommentare

Wer sich für die Themen .NET, C#, Parallelprogrammierung und andere Dinge interessiert, sollte jetzt unbedingt weiterlesen (allen anderen empfehle ich diese Lektüre). Denn am 28. Mai 2010 findet in Köln die zweite Community-Konferenz Dotnet Cologne 2010 statt. Das Gute daran: Das Programm dieser Veranstaltung steht zu weiten Teilen schon. Und es sind viele interessante Vorträge dabei. Kleiner Auszug gefällig?

  • Funktionale Programmierung in C# 3.0 (Oliver Sturm)
  • Anpassbare Anwendungen mit Windows Workflow 4 (Dariusz Paris von Microsoft)
  • Intel Parallel Studio mit .NET und Visual Studio (Mario Deilmann von Intel)
  • Debugging in Deep mit VS2010 und WinDbg (Gregor Biswanger)
  • Parallelprogrammierung mit der TPL (Bernd Marquardt)
  • und viele andere

Das ist nur das vorläufige Programm. Der ganze Tag besteht aus vier parallelen Teilen, in denen insgesamt 24 Vorträge plus Auftaktrede und fünf Lunch-Sessions stattfinden sollen. Da könnt ihr euch auf einiges gefasst machen.

Und damit der Tag nicht nur aus Arbeit besteht, beginnt um etwa halb sieben der unterhaltsame Teil der Dotnet Cologne mit Verlosung und anschließender Grillparty (hoffentlich passt das Wetter). Müst ihr da nicht dabei sein? Doch, ich finde schon. Ihr solltet euch allerdings beeilen, denn so richtig viele Plätze gibt es nicht mehr (es ist von etwa 50 die Rede). Also, wir sehen uns, oder?!

Kategorien : Multicore Tags : , , ,

Buchrezension: Parallelprogrammierung unter dotNET

veröffentlicht von Michael Hülskötter am 18. Dezember 2009 (1) Kommentar

Das Thema Paralllel Computing beschäftigt mich hier auf diesem Blog schon seit mehr als einem Jahr. Und so kurz vor Weihnachten hab ich die perfekte Geschenkempfehlung für alle dotNET-Entwickler, die sich selbst oder andere in Form eines Buches eine Freude machen wollen.

Sein Titel (also der des Buches): “Parallel Computing in .NET”. Sein Autor: Marc André Zhou. Sein Umfang: rund 360 Seiten. Seine ISBN: 978-3-86802-038-0. Seine Mission: Wie mache ich dotNET-Entwicklern klar, dass sie von der sequentiellen Programmierung umsteigen sollten auf die parallele. So gesehen finde ich den Titel ein wenig unglücklich gewählt, wenngleich es in dem Buch natürlich auch um Parallel Computing geht. Doch zuvorderst sollen die Leser dieses gedruckten Leitfadens etwas über Multithreaden und Co. lernen.

Und hierfür hat der Autor wirklich sehr viel an Informationen zusammengetragen. Das beginnt mit einer kleinen Aufklärungsrunde in Sachen Parallel Computing (sic!), die sogar die parallelen Programmiermodelle betrachtet. Anschließend wird es ein wenig theoretisch, indem Zhou so Dinge wie das Amdahlsche und das Gustafson-Gesetz betrachtet. Das hilft auf jeden Fall für ein grundsätzliches Verständnis, wann die Parallelprogrammierung sinnvoll ist – und wann nicht.

Nach weiteren allgemeinen Informationen rund um die Regeln des Parallel Computing, aber auch des Projektmanagement und den Modellierungsmöglichkeiten geht es dann nahtlos über in das Basiswissen rund um Threads unter .NET. Dies ist jedoch schon wieder fast veraltet, denn mit der Einführung von .NET 4.0 wird kein Mensch mehr von .NET-Threads und deren manuellem Erstellen reden.

weiterlesen…

Kategorien : Multicore Tags : , ,

Wie .NET-Entwickler mit VTune Bottlenecks finden können

veröffentlicht von Michael Hülskötter am 17. November 2009 (0) Kommentare

Vergangene Woche auf der Microsoft TechEd Europe 2009 hatten wir die Gelegenheit, uns von Rami Radi zeigen zu lassen, wie .NET-Entwickler mithilfe des Profiling- und Samplingtools VTune Performance Analyzer Schwachstellen in ihren Anwendungen aufspüren und beheben können. Dabei geht es beispielsweise sehr oft um Schleifenkonstrukte, die unverhältnismäßig viel CPU-Zeit in Anspruch nehmen, was mit den richtigen Tricks gar nicht notwendig wäre. Für alle, die also in Zukunft mehr aus ihrer Software herausholen wollen, sei dieser Video-Workshop wärmstens empfohlen.

Kategorien : Multicore Tags : , , ,

Screencasts zur Parallelprogrammierung unter .NET 4

veröffentlicht von Michael Hülskötter am 30. Juli 2009 (0) Kommentare

Der Name Dariusz Parys ist regelmäßig wiederkehrenden Besuchern dieses Blogs ein bekannter Name: Entweder stellt er sich unseren Fragen oder veranstaltet gemeinsam mit Intel TechTalks oder nimmt Screencasts auf, die er zum Wohle aller online stellt. Und genau die haben es mir besonders angetan, da man in relativ kurzer Zeit eine Menge über das parallele Programmieren unter .NET 4 mithilfe von Visual Studio 2010 lernen kann.

Daher hat’s mich sehr gefreut, dass ich heute Morgen zwei “neue” Screencasts” auf Channel 9 gefunden habe. Das erste beschäftigte sich mit der Frage, wie sich die Klasse Parallel dazu nutzen lässt, mehrere Funktionsblöcke gleichzeitig auf mehreren Prozessorkernen ablaufen zu lassen. Hierzu stellt die Parallel-Klasse ein Methode zur Verfügung, die sich Invoke nennt.

Praktisch an dieser Form der Parallelisierung ist die Tatsache, das die gleichzeitig ablaufenden Funktionen nicht synchronisiert werden müssen. Der Mainthread wird nämlich erst dann fortgesetzt, wenn die parallelen Threads fertig sind. Darum kümmert sich die Concurrency Runtime.

Screencast Nummer 2 zeigt in nur sechs Minuten, wie sich Tasks definieren lassen, die einen Rückgabewert liefern. Auch das hat den großen Vorteil, dass der Mainthread nicht unnötig warten muss, bis ein oder mehrere parallel ablaufende Aufgaben fertig sind. Die Übergabe des Returnwertes sorgt nämlich für die Synchronisation des Programmablaufs. Schön daran ist zudem, dass sich auf diesem Weg mehrere Tasks verknüpfen lassen und so ein Folgetask mit dem Rückgabewert des Vorgängertasks “gefüttert” werden kann. Es lassen sich aber nicht nur einfache Werte, sondern auch Objekte übergeben.

Kategorien : Multicore Tags : , ,

Screencasts zur Parallelen Programmierung unter .NET 4

veröffentlicht von Michael Hülskötter am 24. Juni 2009 (0) Kommentare

Auf Channel 9 habe ich gerade drei sehr interessante Screencasts entdeckt, die Dariusz Parys dort eingestellt hat. Anhand sehr anschaulicher Beispiele zeigt Dariusz folgende Dinge:

Task Parallel Library: Tasks

In diesem Screencast geht es vor allem um eine Kernaussage: Vergesst Threads und denkt ab sofort in Tasks, also in einer abstrahierten Form von Threads. Warum das so ist und welche Mechanismen der Threadpool des .NET-4-Frameworks hierfür bereithält, lernt ihr in dem Sechsminüter.

Task Parallel Library: Task Continuations

Dieser Screencast behandelt die Frage, wie sich einzelne Aufgaben (Tasks) mithilfe der Task-Klasse verketten lassen, um weitere Ereignisse möglichst einfach zu parallelisieren. Dies geschieht mithilfe des Aufrufs task.ContinueWith().

Task Parallel Library: Exception Handling

In diesem Screencast geht es um die Fehlerbehandlung innerhalb von Tasks. Hierzu gibt es die Möglichkeit, per AggregateException mögliche Fehler zur Laufzeit abzufangen.

Ihr seht also: drei gute Gründe, euch die Screencasts anzusehen. Viel Spaß dabei!

Kategorien : Multicore Tags : , ,

Zurück zum Multicore-Blogging: Post-Konferenzing

veröffentlicht von Michael Hülskötter am 27. April 2009 (0) Kommentare

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.

weiterlesen…

Kategorien : Multicore Tags : , ,