Share via


Parallel Computing Developer Center gestartet

Der Trend ist eindeutig: parallelen Systemen gehört die Zukunft, und wir fangen heute bescheiden, aber nachdrücklich damit an. (Beweis? Es ist heute schwierig, einen neuen PC oder Laptop mit Single-Core-CPU zu kaufen, und das wird sich in andere Bereiche wie mobile und Embedded-Geräte fortsetzen.) Das massivst parallele System, das wir kennen, haben wir eh im Kopf, also wird es Zeit, dass auch die von uns geschaffenen Systeme sich in diese Richtung bewegen.

Leider sind unsere heutigen Programmiermethoden konsequent auf sequentielle Abläufe ausgelegt - weil unser Bewußtsein (und damit unser Denken, das ja immer noch mit Softwareentwicklung verbunden ist) so tickt. Die Werkzeuge, die wir uns geschaffen haben, um mit (pseudo-)parallelen Tasks umzugehen - Threading, Locking usw. - sind grauenhaft schlecht zu verwenden und höchst fehleranfällig. Ein eindeutiger Flaschenhals also - was nutzt uns ein 1024-Core-Prozessor, wenn die Software ihn nicht vernünftig ausreizen kann.

Und hier kommen verschiedene Ansätze ins Spiel, die Parallelisierung geeigneter Tasks und Algorithmen einfacher, ja sogar automatisierbar zu machen. Ich erinnere mich da bspw. an meine Zeit an der Uni, als ich für meine quantenmechanischen Transportsimulationen PVM verwendet habe. In der C++ -Welt wird von Visual Studio bspw. OpenMP unterstützt.

Interessant wird es, wenn man eine Anwendungsplattform wie das .NET Framework betrachtet - dieses kann potentiell dem Programmierer viel mehr Arbeit bei der Parallelisierung abnehmen als "low-level"-Sprachen wie C++. Und so finden sich hier interessante Lösungen wie z.B. die Concurrency and Coordination Runtime (CCR) des Microsoft Robotics Studio.

Eine allgemeiner verwendbare Lösung strebt Microsoft mit den "Parallel Extensions to the .NET Framework" an, Erweiterungen für das .NET Framework 3.5, die frühere experimentelle Funktionalitäten wie die Task Parallel Library (TPL) und PLINQ umfassen. Da das Thema von immenser Wichtigkeit im Hinblick auf die Zukunft ist, widmet Microsoft ihm jetzt ein eigenes Developer Center, und auch ein Blog dazu existiert schon. Man darf gespannt sein, wohin und wie schnell sich das entwickelt.