Technical Summit 2008: Parallel Computing

Ein für mich sehr interessanter Beitrag mit einem Blick in die Zukunft bringt einer der besten Sprecher der Teched nach Berlin.

Steve Teixeira "Bringing Parallel Computing to the Masses" beginnt mit dem Problem des Leistungsverbrauchs und der Abwärme von CPUs, die deutlich zeigen, dass der Erhöhung Taktfreqzenzen begrenzt ist (es sei denn man will Eier auf seiner CPU braten). Auch wenn ich Steve nicht zustimmen kann, dass Multi-Thread Programmierung schwierig ist, hat er doch recht, dass dies nur begrenzt verbreitet ist. Allein die Probleme, die bei Animationen in WPF entstehen (Events auf Objekten die von der Garbage Collection schon eingesammelt sind), kann durchaus nervös machen.

In einem deutlichen Beispiel zeigt Steve den Vorteil von parallelen LINQ Abfragen über ein großes XML File auf einem 24 Core Rechner (6 Quad-Core). Er zeigt in einem Chart die Möglichkeiten mit Microsoft Parallelcomputing zu betreiben und geht dann auf die Programmiermodelle von Visual Studio 2010. Steve warnt vor der manuellen Verwaltung von Threads (wobei er irgendwie den Threadpool auslässt, den es ja jetzt schon gibt) und zeigt aber deutlich, wie einfach Parallelisierung von LINQ funktioniert.

Die Task Parallel Library hilft bei Funktionen, die parallelisierbar sind (was eine wichtige Voraussetzung ist). Exceptions werden in einem Container gefangen und können so behandelt werden. Über Parallel.Invoke (funk1(), funk2(), funk3()) lassen sich die Funktionen parallelisieren. In einem Morphing Demo zeigt Steve, das bereits schon mit einem Quadcore deutlicher Gewinn an Geschwindigkeit möglich ist.

Obwohl durch den Overhead innerhalb der Parallel Patterns auch Zeit verloren geht, erhält man in einem Mutli-Core System deutliche Vorteile. Ein Dualcore mag noch mit "normalen" Threading einen Vorteil haben, aber die Skalierbarkeit von Parallelcomputing ist deutlich besser, da die Menge der Cores automatisiert einbezogen werden. Im normalen Handling ist die Anzahl der Threads meist festgelegt.

Die Abstrahierung der Hardware durch Dynamic Resource Management ist ein Teil der Kooperation zwischen Intel und Microsoft in der Arbeit an der Concurrency Runtime. In der Concurrency Runtime können sich Anwendungen munter um die Hardware streiten und einigen. Und umgekehrt kann sich durch Dynamic Load Balancing CPUs um die Arbeit streiten (Steve nennt das "Work Stealing"). In dem Raytraycing Sample zeigt Steve die Threads verteilt auf die CPUs.

Insgesamt ist die Parallelisierung von Datenzugriffen und Rechenoperationen ein wichtiges Feature für die nahe Zukunft. Die Menge an Dual- und Quadcore Rechnern nimmt deutlich zu und sollte nicht nur dazu dienen, dass man Hintergrundanwendungen starten kann.

Comments

# technetbloggers.de » Blog Archive » Kurzes Review, Microsoft Technical Summit 2008 said:

Pingback from  technetbloggers.de  » Blog Archive   » Kurzes Review, Microsoft Technical Summit 2008

Samstag, 22. November 2008 19:47

Leave a Comment

(required) 
(required) 
(optional)
(required)