Andreas Heß // Apfel

Apfel

Ausprobieren

Technik

Zu Demonstrationszwecken habe ich zwei Versionen einer Visualisierung der Mandelbrot-Menge implementiert. Der mathematische Hintergrund der Mandelbrot-Menge ist hier nicht Thema, denn vielmehr geht es bei diesen zwei Implementierungen darum, zu zeigen, wie sich moderne Systemarchitekturen nutzen lassen, um bestimmte Berechnungen um Größenordnungen zu beschleunigen.

Die Berechnung der Visualisierung der Mandelbrot-Menge lässt sich sehr leicht parallelisieren, da die Farbe jedes Pixels getrennt von allen anderen berechnet werden kann. Es können also im Extremfall so viele Berechnungen parallel laufen wie die zu berechnende Visualisierung Bildpunkte hat. Mit Prozessoren, die gewöhnliche Single-Instruction-Single-Data-Kerne besitzen, ist es jedoch nur sehr begrenzt möglich, diese Parallelität auszunutzen, da jeder Kern eben nur eine Instruktion mit einem Datum zu einer Zeit abarbeiten kann.

Die JavaScript-Version des "Apfelmännchens" ist daher nicht besonders schnell.

Moderne Graphikkarten verfügen jedoch über eine Vielzahl unabhängiger programmierbarer Recheneinheiten. Die Quartz Composer-Version des "Apfelmännchens" benutzt die OpenGL Shading Language, um die Berechnung der Visualisierung an den Graphikprozessor auszulagern. Dadurch sind Berechnungen von Animationen und "Flüge" in Echtzeit möglich.

Diese Version kann als Bildschirmschoner unter Mac OS X installiert werden, in dem die Datei ins Verzeichnis /Library/Screen Savers gespeichert wird.


Andreas Heß, mail at andreas-hess dot info