Wissenswertes über Erlang

12.08.2007

Während die Chipindustrie parallel rechnende Mehrkern-Prozessoren in den Massenmarkt drückt, fehlt es im Hintergrund an Werkzeugen, Konzepten und Sprachen, mit denen die Kraft der neuen CPUs ausgereizt werden könnte. Einen Ausweg bietet die freie Programmiersprache Erlang.

Um ihre Probleme mit Energieverbrauch und Überhitzung von Prozessoren in den Griff zu bekommen, orientiert sich die Hardware-Industrie zunehmend an der Architektur von Großrechnern.

Sie nennen ihre neuen Systeme "MultiCore": Statt einem Prozessor mit hoher Taktfrequenz werden mehrere niedriger getaktete Prozessorkerne in einem Hauptprozessor-Chip [CPU] integriert.

DualCore verdoppelt die Probleme

Was fehlt, sind jedoch die Programme, die mit einer derartigen Architektur umgehen können. Selbst die derzeit am Markt erhältlichen Prozessoren mit zwei Rechenkernen werfen in der Programmierung zahlreiche Probleme auf.

Manche Programme ignorieren schlichtweg ihre Existenz und können daher ihre Vorteile nicht nutzen. Schließlich wurden sie dafür geschrieben, Prozesse seriell abzuarbeiten, nicht parallel, wie es die neuen Prozessoren eigentlich verlangen würden.

Die nächste Rechnergeneration wird als jene bekannt werden, bei der die meisten Programme abstürzen.

Programmieren für 80 Rechenkerne

Dabei sind DualCore-Prozessoren erst der Anfang der Entwicklung. In Zukunft sollen CPUs mit 80 und mehr Kernen auf den Markt kommen, sagt Joe Armstrong. In Fachkreisen diskutiert man derzeit viel über seine Programmiersprache Erlang. Sie zählt zu den wenigen, die mit der neuen Rechner-Architektur keine Probleme haben.

Armstrong hat Erlang in den 80er Jahren für die Programmierung komplexer Telefonanlagen eines schwedischen Konzerns entwickelt. In diesen Geräten mussten sehr viele Kommunikationsprozesse gleichzeitig abgearbeitet werden.

Der Trick, so meint er, bestehe darin, in der Lage zu sein, alle vorhandenen Prozessoren auch wirklich zu nutzen. Auch eine moderne Grafikkarte habe bereits mehrere Prozessoren und die Software müsse damit umgehen können.

Heute in "matrix"

Ein Bericht über die neuen Herausforderungen an die Software-Entwickler von der ECOOP, der 21. Europäischen Konferenz für objektorientiertes Programmieren in Berlin.

Um 22.30 Uhr in Ö1.

Der neue Frühling des parallelen Rechnens

Wenn MultiCore tatsächlich das wichtigste Konzept für die CPU der Zukunft sein sollte, dann bleibt der Softwareindustrie nicht viel übrig, als ihre Programmierumgebungen und -methoden zu ändern.

Das ist mit ein Grund dafür, warum Sprachen wie Erlang, die bisher eher ein Schattendasein führten, plötzlich so große Aufmerksamkeit geschenkt wird. Erlang beherrscht etwas, das anderen Sprachen erst beigebracht werden muss: Das gleichzeitige verteilte Abarbeiten von Prozessen.

Sprachen wie Erlang ignorieren dabei Konzepte, die Programmierern in den letzten Jahren zunehmend Kopfzerbrechen bereitet haben: "Shared memory" etwa - gemeinsam genutzter Arbeitsspeicher - und "mutable state".

Open Source und kommerziell

Es gibt zwei Varianten von Erlang. Eine kommerzielle, die vom schwedischen Ericsson-Konzern angeboten wird, und eine Open-Source-Variante, die unter einer auf das schwedische Recht angepassten Mozilla Public License steht [Erlang Public License].

Der Unterschied zwischen den beiden Varianten besteht laut Erlang-FAQ darin, dass Ericsson für sein kommerzielles Erlang Support bietet und umfangreichere Tests mit neuen Versionen macht.

Geteilte Gehirne

Armstrong: "Mit mutable state bezeichnet man Zustände, die sich verändern können; Dinge, die zu etwas anderem mutieren können. So etwas gibt es in der realen Welt nicht. Dieser Stuhl hier wird sich nie in ein Auto verwandeln. Er wird immer ein Stuhl bleiben. In meiner Programmiersprache können die Variablen, die einen Stuhl repräsentieren, nie für ein Auto verwendet werden, aber in objektorientierten Sprachen kann das der Fall sein.

Im gewissen Sinn gehen wir zurück zu den Anfängen der Programmierung und versuchen es auf eine Art zu tun, die mit der realen Welt übereinstimmt. Ich denke, das erleichtert das Programmieren ungemein. Sie und ich haben ja auch keinen gemeinsamen Speicher. Dafür müssten wir als siamesische Zwillinge auf die Welt gekommen sein, die sich noch dazu ein Gehirn teilen."

(matrix | Mariann Unterluggauer)