namespace cpp

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


parallel:udoo

Ein Linux-Cluster aus Udoo Quad

Raspberry Pi Cluster Udoo Quad parallel

Nach dem erfolgreichen Nachbau eines Linux-Clusters aus 3 Raspberry Pi im Lego-Gehäuse habe ich einen Debian-Cluster aus Udoo Quad zusammengestellt. Das "Gehäuse" wurde aus Plexiglasscheiben realisiert. Die einzelnen Platinen wurden zum Schutz vor mechanischen Beanspruchungen über Schrauben und Kontermuttern auf je eine Plexiglasscheibe montiert. Distanzbolzen schaffen genügend Abstand für Luftzirkulation und den Zugang zu den Peripherie-Anschlüssen und MicroSD-Karten.

Mit den Udoo Quad sind die Parallelisierungs-Techniken

auf einer Hardware-Plattform vergleichbar.

Messungen und Ergebnisse

Zeit in s Beschleunigung
1 CPU 293 -
OpenMP 4 CPU 146 2,0 < 4
OMP dynamic 4 CPU 73 4,0 = 4
std::thread 4 CPU, g++4.9 76 3,85 < 4
OpenMPI 12 CPU 30 9,8 < 12
OpenCL 16 GPU Shader 24 11,6 < 16

Die Messungen fanden auf Udoo Quad unter Debian Wheezy 1.1 hardfloat statt. Als Compiler diente g++ mit Option -O3. Für den Test der OpenCL-Variante wurde eine GPU-beschleunigte Beta-Version von Debian Jessie eingesetzt.

:300

  • Die OpenMP-Version leidet unter der festen, grobgranularen Aufteilung der zu berechnenden Bildzeilen. Das obere und das untere Viertel sind lange vor den beiden mittleren Vierteln fertig. Durch die ungleiche Dauer der vier Teile werden die 4 CPU nur zu etwa 50% ausgelastet. Mit der Option schedule(dynamic) wird die Rechenlast gleichmäßiger verteilt.
  • Durch feingranulare, zeilenweise Aufteilung ist die std::thread-Implementierung fast optimal. Der Abgleich von Threadanzahl und Prozessoranzahl muss aber bewerksteeligt werden (Rückgriff auf OpenMP?).
  • OpenMPI ist gut skalierbar: weitere Prozessoren können eingebunden werden.
  • OpenCL steckt noch in den Kinderschuhen. Eine Kombination mit Open MPI konnte mit den GPU-Treibern in der Debian-Beta-Version noch nicht getestet werden, verspricht aber die größtmögliche Beschleunigung für solche massiv-parallelen Aufgaben.
parallel/udoo.txt · Zuletzt geändert: 2016-03-28 10:55 (Externe Bearbeitung)