Interview: Visual Studio 2010 und seine Multicore-Fähigkeiten

veröffentlicht von am 6. Februar 2009

Während der OOP 2009 gab es die Möglichkeit, mit Microsoft zusammenzusitzen und ein wenig über Visual Studio 2010 und das zugehörige .NET Framework 4.0 zu plaudern. So der Plan! Leider kam es anders, was dazu führte, dass ich am vorigen Mittwoch via Festnetz mit einem der Technikgurus, Dariusz Parys, über diverse Aspekte der Parallelprogrammierung mithilfe des .NET-Framework in der Version 4.0 sprach. Und das ist dabei herausgekommen.

Wie unterstützt das .NET Framework 4.0 die parallele Programmierung?
Hierfür gibt es diverse Komponenten. Es wird sowohl für den Bereich “Managed Applications” – also C# und Konsorten – als auch für native Programmiersprachen (Fortran, C++ etc.) Bibliotheken und ähnliche Dinge geben. Für beide Programmiermodelle wurde die Concurrency Runtime entsprechend aufgebohrt.

Für die .NET-Entwickler gibt es dann zwei neue Modelle, und zwar die Task Parallel Library (TPL) und PLING. Mit der TPL lassen sich Aufgaben abstrahieren, was unter der Oberfläche und mithilfe der Concurrency Runtime zu Threads führt, um deren Verteilung auf die einzelnen Prozessorkerne sich der Entwickler nicht mehr kümmern muss. PLINQ stellt eine parallelisierte Erweiterung von LINQ dar. Und LINQ wiederum ist “eine Komponente von Microsofts .NET-Framework, mit der SQL-, XLink- und XQuery-Anfragen direkt in .NET-Programmiersprachen wie C# 3.0 oder VB.Net 9.0 als Code statt als String eingebunden werden können” (Quelle: Wikipedia).

Aber auch bei den nativen Sprachen gibt es neue Ansätze bezüglich der Concurrency Runtime: Dies ist zum einen die Parallel Pattern Library, die sich mit den Intel Threading Building Blocks vergleichen lässt. Zum anderen bietet Visual Studio 2010 eine Agent Library für C++ und Co, die bestimmte Aufgaben verwalten und ausführen kann.

Was sagen Sie Entwicklern, wenn Sie mit ihnen über die parallele Programmierung reden?
Das hängt davon ab, mit wem ich spreche. Entwickler, die sich zum Beispiel schon länger mit serviceorientierten Anwendungen beschäftigen, in denen separate Aufgaben durch Dienste erledigt werden, verstehen das Konzept der parallelen Programmierung oft schneller als Programmierer, die nur die rein serielle Entwicklung kennen. Wichtig dabei ist die Erkenntnis, dass es in den meisten Anwendungen Programmteile gibt, die man loslösen kann von der restlichen Programmlogik. Ein Beispiel hierfür ist die parallele Speicherung von Daten.

Für viele Entwickler stellt aber die Parallelisierung von Bedieneroberflächen ein großes Problem dar, da hier vieles noch vom Betriebssystem mithilfe von Nachrichtenschlangen verwaltet wird. Hierfür wird es in .NET 4.0 entsprechende Bibliotheken geben, die diese Aufgaben automatisch übernehmen.

Welche Anwendungsgruppen werden von der Parallelisierung hauptsächlich profitieren?
Da sind zum einen die algorithmus-basierten Anwendungen zu nennen (Bildbearbeitung, Encoder etc.), aber auch klassische Geschäftsanwendungen wie CRM-Systeme bergen viel paralleles Potenzial. Hier können beispielsweise Anfragen an das Backend simultan ausgeführt werden, was die Wartezeiten auf das Ergebnis verkürzt. Allerdings liegt allen parallelisierten Anwendungen eine bestimmte Arbeit vor dem eigentlichen Kodieren zugrunde: Welche Programmbereiche kann ich logisch zusammenfassen und daraus einzelne Aufgaben machen, die als Tasks abstrahiert werden können und sich dann von der Concurrency Runtime als separate Threads ausführen lassen.

Wie unterstützt Microsoft die Community in Sachen Visual Studio 2010, .NET 4.0 und Parallelprogrammierung?
Neben den kommerziellen Konferenzen wie der Microsoft Tech-Ed oder dem Tech Summit gibt es beispielsweise die Möglichkeit, über Microsoft in ein Early-Adopter-Programm hineinzukommen, um auf diesem Weg Betatester zu werden. Darüber hinaus kann man uns auch direkt auf gewünschte Workshops und ähnliche Dinge ansprechen. Und natürlich nutzen wir die gesamte Online-Vielfalt wie Webcasts und Blogs, um unsere Themen zu kommunizieren. Aber auch viele Microsoft-nahe Communities stehen derlei Themen offen gegenüber. Dort trägt Microsoft an und ab selbst zur Aufklärung in Sachen Multicore und ähnlichen Dingen bei.


Kategorien : Multicore Tags : , , ,

Kommentare
Beitrag kommentieren.

Sie müssen angemeldet sein um diesen Beitrag zu kommentieren. [Login | Registrieren]

(erforderlich)

(erforderlich)