Vorheriger Beitrag: Parallel programmieren und Preise abgreifen
dotnet Cologne 2010 #3: Noch mehr Infos und Präsentationen
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.
Bernd Marquardt beschäftigte sich dann mit einem ganz ähnlichen Thema, wenngleich aus einer anderen Richtung kommend: “Parallelprogrammierung mit der TPL”. TPL steht für Task Parallel Library, mit deren Hilfe das Parallelisieren von Managed Code vereinfacht werden soll. Natürlich zeigte auch Bernd zunächst einmal, dass die Prozessoren nicht mehr schneller werden, sondern “nur” noch mehr. Und dass Software-Entwickler aus diesem Grund eine ganze Menge Hirnschmalz auf die Optimierung ihrer Anwendungen verwenden müssen, damit diese auch optimal skalieren (die Anwendungen, nicht die Entwickler!).
Bernd stellte einstiegsweise die verschiedenen Parallelisierungsmodelle vor, über die Mario ja schon gut zwei Stunden vorher geredet hatte. Das erste praktische Beispiel war die parallele Erweiterung von LINQ, also PLINQ, die Microsoft seinem .NET-4-Framework spendiert hat. Damit lassen sich parallel ausführbare Datenbankabfragen generieren, die automatisch auf die vorhandenen Prozessorkerne und Threads verteilt werden. Aber auch das Parallelisieren von Schleifenkonstrukten mit neuen Funktionen wie Parallel.For() und Parallel.ForEach() waren Bernd ausführliche Erläuterungen wert.
Und so ging es dann lustig weiter: Codeblöcke parallelisieren mit Parallel.Invoke(), Task-Klassen einsetzen (vergleichbar mit der Threadpool-Klasse), Concurent Exceptions verwenden, Synchronisierungsprobleme erkennen und einiges mehr. Und wer das alles genauer wissen will, sollte sich einfach die Folien von Bernds Session auf seinen Rechner laden.


Kommentare
Keine Kommentare vorhanden.