Das Programm verwendet alle zur Verfügung stehenden Prozessoren der CPU, um ein Fraktal zu berechnen.
Archivdatei mit diesem Beispielprogramm: Cpp-Qt-Fraktal006.tar.gz.
Die Bibliotheken für die Verwendung von C++ mit Qt 5 müssen bereitgestellt werden. Dies geschieht durch die Installation der folgenden Pakete:
sudo apt-get install qt5-default
Nach der Installation aller erforderlichen Pakete geschieht die Compilierung im Hauptverzeichnis des Projekts wie folgt:
qmake make
Der Befehl qmake erzeugt ein Makefile, das anschließend von make verwendet wird, um das Programm zu übersetzen. Das compilierte Programm wird im Hauptverzeichnis des Projekts abgelegt und mit dem Befehl
./fraktal
gestartet.
In zwei Comboboxen wählt der Anwender die Bildgröße und die Zahl der zu verwendenden Prozessoren. Durch Anklicken des Buttons Start wird die Rechnung gestartet. Der Fortschritt der Rechnung wird durch einen Indikator angezeigt. Nach dem Abschluss der Rechnung wird in einer Tabelle die Leistung aller verwendeten Prozessoren zusammengefasst. Für jeden Prozessor wird angegeben, wie viele Arbeitspakete er übernommen und wie viele Iterationsschritte er ausgeführt hat.
Für den Vergleich verwendete Betriebssysteme:
TinkerOS 1.8 für Tinker Board, Raspbian Jessie für Raspberry Pi.
Bei Verwendung von 4 Prozessoren ergeben sich die folgenden Ausführungszeiten:
Bildgröße | Raspberry Pi 2 Model B | Raspberry Pi 3 Model B | Tinker Board |
2000 x 2000 | s | 5,4 s | 3,05 s |
4000 x 4000 | s | 21,2 s | 11,7 s |
6000 x 6000 | s | 47,0 s | 29,8 s |
7000 x 7000 | 118.8 s | 64,0 s | 47,6 s |
Die Reproduzierbarkeit dieser Werte scheint allerdings nicht sehr groß zu sein.
Dieses Fraktal kann auch mit OpenGL ES 2.0 und mit OpenCL berechnet werden. Die Verwendung der GPU ermöglicht wesentlich kürzere Rechenzeiten.
Für die Installation von Java unter TinkerOS: Java installieren.
Archivdatei mit diesem Beispielprogramm: Cpp-Qt-Fraktal006.tar.gz.
Für die Compilierung werden openjdk-8-jdk und ant benötigt. Die erforderlichen Pakete werden installiert mit der Anweisung
sudo apt-get install openjdk-8-jdk ant
Für die Compilierung des Programms ist ins Projektverzeichnis zu wechseln und dort auszuführen
ant
Die Programmausführung kann im Projektverzeichnis mit dem Befehl
ant run
geschehen. Alternativ ist auszuführen:
java -jar build/jar/Fraktal05.jar
Bei Verwendung von 4 Prozessoren ergeben sich die folgenden Ausführungszeiten:
Bildgröße | Raspberry Pi Model 2 | Raspberry Pi Model 3 | Tinker Board |
2000 x 2000 | 13,7 s | 9,6 s | ? s |
4000 x 4000 | 55,3 s | 35,9 s | ? s |
6000 x 6000 | 129,9 s | 75,73 s | 45,2 s (openjdk: 34,1 s) |