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 : , ,

Visual Studio 2010 Beta zum kostenlosen Download

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

Seit Montag können alle registrierten MSDN-Mitglieder die Beta 1 von Visual Studio 2010 samt .NET 4 ausgiebig testen. Und ab heute Abend steht die Betaversion der künftigen Entwicklerumgebung aus dem Hause Microsoft allen anderen zum Download zur Verfügung. Für diejenigen, die noch nicht genau wissen, was es mit Visual Studio 2010 und .NET 4 auf sich hat, folgen hier ein paar Lesetipps:

  • Eine kleine Einführung in Sachen VS 2010 und .NET 4 von der Intel Software Conference 2009.
  • Microsoft und Intel veranstalten im Juni 2009 rund um das Thema parallele Programmierung diverse Seminare, in denen es auch um VS2010 und .NET 4 gehen wird.
  • Ein Dreiteiler in Sachen Multicore-Programmierung im .NET (4)-Umfeld (Teil 1, Teil 2, Teil 3).
  • Ein Workshop live von der Multicore-Konferenz anlässlich des prio.powerday. Thema: “Parallele Programmierung unter .NET 3.5″, was erahnen lässt, was später unter .NET 4 alles möglich sein wird.
Kategorien : Multicore Tags : , ,

ISC’09: Microsoft und die parallele Programmierung

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

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!”

weiterlesen…

Kategorien : Multicore Tags : , , ,

Microsoft und Intel zeigen paralleles Programmieren

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

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)!

Kategorien : Multicore Tags : ,

Infos rund ums Parallele Programmieren auf MSDN

veröffentlicht von Michael Hülskötter am 9. März 2009 (2) Kommentare

Heute Morgen habe ich nicht schlecht gestaunt, als mich Google Alert darüber informiert hat, dass es eine externe Verlinkung zu einem meiner Blogbeiträge gibt. Dabei handelt es sich um einen Workshop, der sich mit den Methoden der parallelen Programmierung mithilfe von OpenMP beschäftigt.

Besonders bemerkenswert daran fand ich übrigens die Seite, die den Beitrag verlinkt hat: Es handelt sich um niemand geringeres als MSDN, also das Entwicklerportal von Microsoft, die dem Thema Parallele Programmierung eine eigene Webseite spendiert haben. Und genau dort findet man den Link auf meinen OpenMP-Beitrag. Daneben gibt es noch weitere interessante Einstiege in die Welt der Multithreading-Entwicklung. Da erfährt man eine Menge über die Grundlagen der Parallelprogrammierung, aber auch Tools und Downloads werden dort vorgestellt.

Des Weiteren können interessierte Entwickler nützliche Artikel abgreifen, Webcasts und Videos angucken und Blogs lesen. Und klar, dass es auf der Webseite auch um die Themen Paralleles Programmieren mit .NET geht. Besonders bemerkenswert finde ich auch die Tatsache, dass MSDN für Intel eine eigene Sektion mit Namen “Intel Developer Network” spendiert hat. Dort findet man Wissenswertes zum Parallel Studio und zu anderen Themen.

Fazit: Parallel Computing auf MSDN ist eine bookmark-taugliche Webseite, wenn man in Sachen Parallele Programmierung auf dem Laufenden bleiben will.

Kategorien : Multicore Tags : , , ,

Ist für Windows 7 ein neuer Taskmanager notwendig?

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

Gerade eben habe ich einen interessanten Blog-Beitrag zum Thema Windows 7 und dessen Multicore-Fähigkeiten gefunden. Da das nächste Betriebssystem aus dem Hause Microsoft (das eigentlich gar nicht so richtig neu ist) mit bis zu 256 Prozessorkernen zurechtkommen wird, stellt sich Blog-Autor Doug Holland die Frage, ob der Windows Taskmanager noch das passende Tool ist für solch eine Fülle an CPUs.

Das ist sicherlich nicht ganz ernst gemeint, macht aber die Herausforderungen sehr anschaulich, vor der die Entwicklergemeinde stehen wird, sobald Windows 7 auf dem Markt ist und das Programmieren von neuer Software für maximal 256 Cores ansteht. Dann gibt es nämlich nur noch eins: die richtigen Tools kaufen und parallelisieren, was das Zeug hält. Andernfalls wird aus dem Multicore-Riesen ein lahmer Singlecore-Zwerg, der von der sequenziell programmierten Anwendung jämmerlich ausgebremst wird.

Wie gut, dass es hierfür schon einiges gibt und weitere Tools kommen werden. Die Rede ist beispielsweise von den Threading Building Blocks, Thread Checker, Parallel Studio, Visual Studio 2010 und weiteren nützlichen Hilfsmitteln, mit denen die Parallelprogrammierung zwar kein Klacks wird, vieles sich aber vereinfachen lässt.

Ach ja: Für das Problem mit dem unterdimensionierten Windows Taskmanager hat einer der Kommentatoren einen nützlichen Tipp parat: Virtualisierung. Soll heißen, dass sich einfach mehrere Prozessorkerne zu einem virtuellen Prozessor zusammenfassen lassen. Dann passt die Taskmanager-Anzeige auch wieder auf einen 19-Zöller und die Anschaffung eines 30-Zoll-Monitors kann noch einmal verschoben werden …

Kategorien : Multicore, Virtualisierung Tags : , , ,

Windows 7 und seine Multicore-Fähigkeiten

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

Während ich das hier schreibe, versuche ich (bis dato erfolglos) die Beta-Version von Windows 7 auf meinen Rechner zu laden. Ich will einfach mal mit eigenen Augen sehen – vor allem aus Entwicklersicht – was der Vista-Nachfolger alles so drauf hat. Das soll ja so einiges sein.

Die ursprüngliche Aussage, Windows Vista und Windows 7 würden sich unter der Haube kaum unterscheiden, hat man in Redmond mittlerweile revidiert. Denn das Win32-System ist vor allem für eine größere Zahl an Prozessoren nicht ausgelegt. Und genau hier musste etwas geschehen, um dem Multicore-Trend gerecht werden zu können.

Dies gilt vor allem für Serversysteme, die mehr als 32 Prozessorkerne nutzen. Hierfür ist nämlich der sogenannte Dispatcher, also Lastverteiler, von Windows Vista und Windows Server 2003 nicht ausgelegt. Diese Hürde kann Microsoft demnächst mithilfe eines dritten Thread-Zustands in Windows 7 überwinden: Pre-Waitung nennt sich das, was einzelne Aufgaben (Threads) in einen Zustand versetzt, der zwischen “Waiting” und “Execute” liegt. Damit lassen sich Wartezeiten zwischen zwei Threads natürlich erheblich reduzieren.

Aber auch die Abhängigkeiten, die sich beim parallelen Speicherzugriff unter Windows ergeben können, sollen laut Microsoft mithilfe von Windows 7 deutlich reduziert werden, sodass in Zukunft wohl weniger Race Conditions und Dead Locks zu erwarten sind. Vor allem, wenn man mit Tools wie dem Thread Checker dafür sorgt, dass die Anwendung störungsfrei auf mehreren Prozessorkernen ausgeführt wird.

Videotipp: Dass Microsoft das Thema Parallelprogrammierung auch aus Entwicklersicht sehr am Herzen liegt, zeigt das Video-Interview, das wir auf der Microsoft Tech-Ed Developers 2008 in Barcelona mit Steve Teixeira gedreht haben, der sich mit seinem Team um die Entwicklung von Visual Studio 2010 kümmert.

Kategorien : Multicore Tags : ,

Jetzt Beta-Tester des Intel Parallel Composer werden

veröffentlicht von Michael Hülskötter am 26. November 2008 (1) Kommentar

Ende Oktober hatte ich schon mal über das Intel Parallel Studio berichtet. Hierbei handelt es sich um eine komplette Entwicklungsumgebung für C++-Projekte, die mithilfe von Microsoft Visual Studio realisiert werden. Parallel Studio erlaubt es, vorhandenen oder neuen Code so zu tunen, dass er maximale Parallelität aufweist und somit optimal auf Multiprozessor-Systemen wie dem Intel Core i7 skaliert.

Einer der vier Teilprogramme von Parallel Studio nennt sich Parallel Composer, der es Software-Entwicklern dank vorgefertigter Bibliotheken, Funktionen und Programmschnipseln relativ einfach machen soll, ihrem Quellcode paralleles Leben einzuhauchen. Und mit dem gestrigen Tag wurde das Beta-Programm für den Parallel Composer gestartet. Wer also unter C++ programmiert, hierfür Windows Visual Studio 2005 oder 2008 einsetzt und seine Anwendungen für Intel-Multicore-CPUs optimieren will, sollte sich eine Beta-Version des Parallel Composers besorgen.

Neben dem Beta-Programm für den Parallel Composer stellt Intel eine Menge Hilfe, Tipps und Tricks rund um das parallele Programmieren mit dem neuen Tool zur Verfügung. Ob das Hilfestellungen bei Installationsproblemen sind oder nützliche Tipps, wie sich der Intel C++-Compiler innerhalb des Microsoft Visual Studio Team Foundation Server einsetzen lässt – hier findet man eine Menge Antworten auf seine Fragen rund um den Intel Parallel Composer.

Hinweis: Ich muss noch eines klar stellen: Die Beta-Phase des Intel Parallel Studio hat entgegen früherer Ankündigungen noch nicht begonnen, was aber nur einen kurzen Aufschub bedeutet. Daher wird das Ganze mit einem Teilprogramm, dem Parallel Composer, gestartet.

Videotipp: Wer mehr in Bild und Ton zum Intel Parallel Studio im Speziellen und zum parallelen Programmieren unter Windows im Allgemeinen lernen will, sollte sich mal die Videochats mit Ralph de Wargny von Intel und Steve Teixeira, Parallel-Guru von Microsoft, ansehen.

Kategorien : Multicore Tags : , , , ,

Intel auf der Microsoft Technical Summit 2008 [Upd]

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

Heute und morgen findet in Berlin eine große Entwicklerkonferenz von Microsoft statt, die auf den Namen Technical Summit 2008 hört. Wie es sich für ein solches Gipfeltreffen geziemt, werden viele neue Dinge zu hören und zu sehen sein.

Dazu gehört beispielsweise ein Blick in die parallele Zukunft, die Steve Teixeira während seiner heutigen Keynote gewähren wird (mit Steve durften wir letzte Woche während der Tech-Ed EMEA 2008 in Barcelona zu diesem Thema ein Video-Interview führen). Dabei geht es vor allem um die geplante Version 10 von Visual Studio, bei der das Thema paralleles Programmieren in den Vordergrund rücken wird.

Was liegt da also näher, als dass Intel auf der Tech Summit vertreten ist (und das sogar als Gold-Sponsor), um über seine eigenen Bemühungen hinsichtlich der Software-Entwicklung für Multicore-Plattformen zu sprechen. So wird Ralph de Wargny am morgigen Freitag über die verschiedenen Aspekte reden, die es zu beachten gilt, wenn man unter Windows seriellen Programmcode parallelisieren will. Er wird also über die Intel Softwaretools reden wie den Intel VTune Performance Analyzer, aber auch über die zukünftige Parallelisierungs-Suite Intel Parallel Studio, die als Plugin für Microsoft Visual Studio fungieren wird.

weiterlesen…

Kategorien : Multicore Tags : , ,