Lesetipp: Elektroniknet.de über die “Softwarefirma Intel”

veröffentlicht von am 17. Juni 2010 (2) Kommentare

Ok, die jährlich stattfindende Intel-Software-Konferenz iSTEP ist schon wieder eine ganze Weile her, aber nichtsdestotrotz hat es sich Kollege Joachim Kroll von elektroniknet.de nicht nehmen lassen, die Veranstaltung und seine Lehren und Erkenntnisse daraus auf drei Seiten zusammen zu fassen. Es ist ein sehr gelungener Beitrag geworden, dessen Kernaussagen ich ein wenig kommentieren möchte.

Einer der großen Meilensteine war dabei die Übernahme des Embedded-Softwareherstellers Wind River durch Intel.

Absolut richtig. Allerdings ist die Schlussfolgerung des Kollegen Kroll nicht ganz zutreffend:

Einzig und allein die Ankurbelung des Prozessorgeschäfts ist die Triebkraft, die die  Aktivitäten Intels antreibt.

Das stimmt im Falle des Wind-River-Deals so nicht ganz, wenn man sich die derzeitige Embedded-Strategie Intels ansieht. Denn mit der Akquisition des Embedded-Spezialisten hat man nicht nur in Sachen Multicore und Parallelisierung viel Expertise eingekauft, sondern auch eine Menge Know-how im Bereich Mobile Linux und Mobile Gadgets ins Haus geholt. Und das kann Intel hinsichtlich seiner Moorestown-MeeGo-Smartphone-Aktivitäten ganz gut gebrauchen.

Vielmehr wird Intel auch mit der Software »inside« bleiben und Entwicklungswerkzeuge, Bibliotheken und Middleware für Betriebssystemhersteller und Anwendungsentwickler anbieten.

Diesen Passus finde ich ein wenig verwirrend. Klingt so, als ob Intel gerade dabei ist, zur Beschleunigung bestehender Software-Titel Tools auf den Markt zu bringen, die Software-Entwickler dabei unterstützen sollen, ihre Apps zu parallelisieren. Dass das so nicht stimmt, weiß der Autor allerdings schon, nur an dieser Stelle könnte der Eindruck entstehen, als ob Intel mit Software-Tools bis dato nix am Hut hat.

Echte Parallelität und »paralleles Denken« bei der Konzeption von Anwendungen stehen hingegen noch ganz am Anfang.

Hm, wie soll man diese Aussage bewerten? Sicher, viele Entwickler verlassen sich nach wie vor darauf, dass ihre Anwendungen von schneller werdenen Prozessoren und Architekturen beschleunigt werden, was natürlich nicht stimmt. Allerdings sind vor allem die größeren Entwicklerschmieden schon längst auf den Parallel-Zug aufgesprungen. Da kann man einfach mal bei DivX, Nik Software, Crysis, Exasol, Maxon, Nero und all den anderen nachfragen.

Eine fest codierte Verteilung (z.B. mit pthreads oder Windows threads) ist aber wenig zukunftssicher.

Absolut richtig! Der daraus resultierende Rat, den Software-Spezialisten wie Mario Deilmann oder andere geben, lautet: “Denkt in Tasks, nicht in Threads!”. Denn das thread-basierte Programmieren läuft bei vielen Anwendungen auf eine schlecht skalierende Programmausführung hinaus und ist zudem sehr fehleranfällig. Viel besser und effizienter ist es hingegen, seine Anwendung von Anfang an so zu strukturieren, dass eine Abstraktion des Quellcodes möglich ist. Und mit den richtigen Frameworks wie Intel TBB oder .NET 4 von Microsoft muss sich der Programmierer um das Verteilen der Tasks auf die zugehörigen Threads gar nicht mehr kümmern.

Allerdings ist eine neue Programmiersprache für die Parallelverarbeitung nicht in Sicht [...]

Tja, eine gewagte Aussage. Denn mit funktionalen Programmiersprachen wie F#, die mit dem Erscheinen von Visual Studio 2010 Bestandteil der Microsoft-Entwicklungsumgebung ist, lässt sich die Parallelprogrammierung durchaus vereinfachen. Inwieweit sich F# und andere funktionale Sprachen durchsetzen werden, ist natürlich fraglich.

Viele Entwickler suchen allerdings nach weniger anspruchsvollen Erweiterungen [wie OpenMP und die MPI-Bibliothek], mit denen sich in C/C++ geschriebene Desktop- und Embedded-Anwendungen parallelisieren lassen [wie mit Intel TBB].

Es stimmt natürlich, dass OpenMP nicht so mächtig ist wie die C++-Bibliothek Intel TBB. Aber OpenMP als anspruchsvolle Erweiterung zu bezeichnen, ist ein bisschen übertrieben. Gerade mit OpenMP lassen sich mit wenigen Handgriffen vor allem Schleifen parallelisieren. Hierzu bedient man sich lediglich einiger, weniger Pragmas, die in den bestehenden Quellcode eingefügt werden müssen. Der Rest geschieht dann quasi von selbst.

Kategorien : Multicore Tags : , ,

Intel Software-Konferenz 2010 hat begonnen

veröffentlicht von am 13. April 2010 (0) Kommentare

Vorige Woche hatte ich es ja bereits angekündigt, heute ist es tatsächlich soweit: Im offensichtlich verregneten Barcelona scharrt Intel wie jedes Jahr Software-Entwickler aus ganz Europa um sich. Der Zweck dieser Zusammenkunft: Welche Veränderungen in Sachen Multicore-Programmierung sind in diesem Jahr zu erwarten und was tun andere, um diesen Trend mitzugehen? Zwar bin ich selbst nicht vor Ort, aber die KollegInnen des SoftTalk-Blogs sind auf der Konferenz und werden ausführlich darüber berichten. Und hier erfahrt ihr alles Wissenswerte über das Intel-Event in komprimierter Form.

Wie sich das auf solchen Veranstaltungen gehört, gebührt das erste Wort dem Gastgeber, und das ist nun mal Ober-Parallel-Guru James Reinders, der gleich allen Anwesenden die Schuld für die Notwendigkeit der Parallelprogrammierung gab: “We are all guilty! We love data!” Und diese Sammelwut führt laut Reinders zwangsläufig dazu, dass sich die zu verarbeitende Datenmenge in den den nächsten Jahren exponentiell vervielfachen wird (Experten denken heute schon in Exabyte, also einer Trillion Byte). Und dieser Datenwust macht es unumgänglich, dass Daten möglichst parallel verarbeitet werden sollten. Hierfür benötigt man aber nicht nur schnelle Rechner und leistungsfähige Infrastrukturen, sondern auch hochoptimierte Anwendungen.

>> Den Rest des Originalbeitrags lesen …

Im zweiten Teil seines einleitenden Vortrags wurde James ein gutes Stück konkreter: Es ging im einzelnen um Parallel Studio, Cilk, Ct und daten-optimierte Intel-Compiler. Zu Parallel Studio hat er wohl nur so viel verraten, dass die nächste Version der Parallelisierungssuite für das gestern vorgestellte Visual Studio 2010 optimiert sein wird.

Mit der Übernahme von Cilk im Sommer 2009 hat sich Intel großes Know-how in Sachen task-basiertes Multithreading ins Haus geholt. Gerade sind Cilk- und Intel-Ingenieure dabei, ihre Produkte mehr und mehr zu verschmelzen, sodass in Zukunft noch eine ganze Menge aus dieser gemeinsamen Schmiede zu erwarten ist.

Aber auch mit der Ct-Technik geht es weiter voran, wie Reinders in seinem Vortrag darstellte. Ct basiert auf einem daten-konzentrischen Ansatz und soll die Methoden der Parallelprogrammierung in diesem Bereich maßgeblich verändern. Dazu gehören neue Techniken wie SWAR-Vektorisierung (SIMD within a register), die Unterstützung künftiger Hybridprozessoren und vieles mehr.

>> Den Rest des Originalbeitrags lesen …

Kategorien : Multicore Tags : , ,