Multicore und Parallelprogrammierung Softwarefirma Intel

Heute weiß noch niemand so genau, wie zukünftige Prozessoren aussehen werden. Die heutige Zusammenarbeit einer Universal-CPU mit kleinen Beschleunigungseinheiten (Manycore) für Spezialaufgaben bezeichnet Intel als »attached Processing«. Wer heute seinen Code mit Intel-Entwicklungstools paralllelisiert, muss seinen Quellcode in Zukunft nicht ändern, wie auch immer die Prozessoren aussehen – verspricht Intel.

Längst schon stellt Intel nicht nur Prozessoren her, sondern bietet »Plattformen« an – also auch das gesamte Umfeld, das zu einem Prozessor gehört. Um die Leistung von Multicore-Prozessoren voll ausgeschöpfen zu können, gewinnt die Software immer mehr Bedeutung. Für Intels Plattform-Strategie bedeutet das, dass neben den Hardware- auch die Software-Bausteine immer wichtiger werden.

Die Investitionen Intels in Software-Firmen haben in der Vergangenheit bereits verdeutlicht, dass Software für den Chip-Hersteller von hoher Bedeutung ist. Einer der großen Meilensteine war dabei die Übernahme des Embedded-Softwareherstellers Wind River durch Intel. Es war jedoch nie so richtig klar, welche strategischen Ziele Intel damit verfolgt. Wollte man mit der Übernahme Wind Rivers besseren Zugang zum Militärmarkt haben, in dem Wind River in den USA besonders stark ist? Wollte Intel sich ein eigenes Embedded-Betriebssystem kaufen? Oder sollte durch die Investition in diverse kleinere Linux-Firmen und -Projekte die Marktmacht Microsofts eingegrenzt werden? – Nichts davon war ausschlaggebend für die Investitionen. Für Intel ist es relativ unerheblich, was die Software-Anbieter machen. Einzig und allein die Ankurbelung des Prozessorgeschäfts ist die Triebkraft, die Aktivitäten Intels antreibt.

Das zeigte sich auf einer Veranstaltung der Intel-Abteilung für Software-Entwicklungswerkzeuge, die vor einem kleinen Kreis wichtiger Key-Account-Kunden und einer Pressevertreter in Barcelona stattfand. Das Motto: »Parallelism is here to stay«. Die Umsetzung und Nutzung der Parallelverarbeitung geht Intel aber offenbar nicht schnell genug. Ähnlich wie mit Chipsätzen, die Intel selbst herstellt, damit zeitgleich mit den Prozessoren die passende Bauelemente-Infrastruktur auf den Markt kommt, zeichnet sich dies auch bei bestimmten Software-Komponenten ab. Deshalb wird Intel aber nicht gleich zum Lieferanten für Betriebssysteme oder gar Anwendungen. Vielmehr wird Intel auch mit der Software »inside« bleiben und Entwicklungswerkzeuge, Bibliotheken und Middleware für Betriebssystemhersteller und Anwendungsentwickler anbieten.

Paradigmenwechsel beim Programmieren

Bereits vor fünf Jahren hat ein Paradigmenwechsel bei den Prozessoren stattgefunden: weg von der Beschleunigung der seriellen Verarbeitung hin zur Parallelverarbeitung. In der Software-Entwicklung vollzieht sich dieser Wechsel nur ganz langsam. Heutige Ansätze laufen vielfach noch darauf hinaus, einfach nur mehrere serielle Programme gleichzeitig ablaufen zu lassen, z.B. im Rahmen der Virtualisierung. Echte Parallelität und »paralleles Denken« bei der Konzeption von Anwendungen stehen hingegen noch ganz am Anfang. James Reinders, Chief Software Evangelist und Director für Software Development Products bei Intel sagt: »Heute sprechen wir noch von serieller und paralleler Programmierung. Die Zukunft ist parallel. Eines Tages wird nur noch von »programmieren« die Rede sein, und das wird ganz selbstverständlich parallel sein.

Reinders gibt zu bedenken, das keineswegs nur Intel mit seinem Schwenk zu Multicore-Prozessoren die »Schuld« an der Notwendigkeit trägt, auf Parallelverarbeitung umstellen. »Wir alle sind schuld. Wir lieben Daten. Und wir produzieren immer mehr Daten«. Als Beispiel nannte er den Bereich der Bildverarbeitung: Wenn sie die Auflösung einer Kamera verdoppelt, vervierfacht sich das Datenvolumen. Videos in 3D verdoppeln die Menge der anfallenden Daten erneut. Auch in anderen Bereichen, im Handel, der Industrie, der Medizin oder im Verkehrssektor explodiert die Menge der Daten. Laut einer IDC-Studie soll diese Menge von 2007 bis 2012 um das zehnfache steigen.

Mit dem Erzeugen der Daten ist es nicht getan – sie wollen ausgewertet, bearbeitet oder verändert werden. Computer stehen im Mittelpunkt der Verarbeitung von Daten. Deshalb ist die Nachfrage nach Computerleistung nach wie vor enorm und Computer, die nur eine Sache allein machen können, sind diesen Aufgaben nach Meinung von James Reinders nicht gewachsen. »Mehrere Dinge zur gleichen Zeit zu tun, ist die Zukunft.« Die Software-Entwickler stehen vor die Aufgabe, die Software entsprechend zu programmieren. Um dies zu erleichtern, beschäftigt sich Intel auch mit den Tools, die dazu nötig sind.