Distcc Tests
Mapa Europy (nakładka)

Distcc Tests

Kompilierungs-Benchmarks:

Vergleich der Echtzeit (Real Time) auf verschiedenen Architekturen mit und ohne Echse-Net Distcc.

SeaMonkey 2.53.23

GerätCPUOSArchitekturRAMMethodeZeit (Real)
EeePC 901Intel(R) Atom(TM) CPU N270 @ 1.60GHzGentoox86 (i686)2GBOhne Distcc (-j2)21h 59min
EeePC 901Intel(R) Atom(TM) CPU N270 @ 1.60GHzGentoox86 (i686)2GBMit Distcc (-j10)3h 47min
ASUS G551Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHzGentoox86_6416GBOhne Distcc (-j10)1h 13min
ASUS G551Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHzGentoox86_6416GBMit Distcc (-j10)0h 19min

LibreOffice 25.2.7.2

GerätCPUOSArchitekturRAMMethodeZeit (Real)
EeePC 901Intel(R) Atom(TM) CPU N270 @ 1.60GHzGentoox86 (i686)2GBOhne Distcc (-j2)59h 34min
EeePC 901Intel(R) Atom(TM) CPU N270 @ 1.60GHzGentoox86 (i686)2GBMit Distcc (-j10)10h 20min
ASUS G551Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHzGentoox86_6416GBOhne Distcc (-j10)4h 19min
ASUS G551Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHzGentoox86_6416GBMit Distcc (-j10)0h 57min
Raspberry Pi 3BBCM2837 ARM Cortex-A53 @1.20GHzRaspbianarm1GBMit Distcc (-j4)5h 15min
Raspberry Pi 3BBCM2837 ARM Cortex-A53 @1.20GHzGentooarm1GBMit Distcc (-j8)9h 1min
Raspberry Pi 3BBCM2837 ARM Cortex-A53 @1.20GHzRaspbianaarch641GBMit Distcc (-j4)5h 32min

Info: Die Real-Zeit ist die tatsächliche Wartezeit. Besonders bei der i686-Architektur ist der Zeitgewinn enorm.

Info: Kompilationszeitvergleich: Gentoo vs. Raspbian (Raspberry Pi) Obwohl in beiden Umgebungen der Kompilationsprozess durch ein verteiltes distcc-Cluster unterstützt wurde, gab es drastische Unterschiede in der Ausführungszeit. Diese sind die direkte Folge der in der Vorkompilationsphase (configure) übergebenen Flags und der jeweiligen Projektziele: Gentoo (Voller Funktionsumfang / Maximale Optimierung): Das Ziel war der Workspace einer vollständigen, produktionsbereiten LibreOffice-Suite. Das Paket wurde mit allen verfügbaren Funktionen, Bibliotheken und Erweiterungen konfiguriert. Es wurden die in der Gentoo-Dokumentation für den jeweiligen Prozessor empfohlenen spezifischen Architektur-Optimierungen (-march=) angewendet. Dies führte zu einem enormen RAM-Bedarf, der das System zu einer intensiven Nutzung des Auslagerungsspeichers (SWAP) zwang. Langsame I/O-Zugriffe verursachten ein Speicher-Thrashing, was die Systemzeit (sys) drastisch in die Höhe trieb. Raspbian (Minimale Version / Demonstrationszweck): Dieser Prozess diente lediglich als Technologiedemonstration der Cluster-Kompilation. In der Phase ./configure wurde der Quellcode auf ein absolutes Minimum reduziert, indem jede nicht essenzielle Funktion deaktiviert wurde (z. B. zusätzliche Sprachen, Benutzeroberflächen und optionale Module). Infolgedessen sank die Gesamtmenge des von distcc zu verarbeitenden Codes und der Abhängigkeiten auf ein Minimum, wodurch die RAM- und SWAP-Engpässe vollständig vermieden wurden.

Autogen-Konfigurationsoptionen für Raspberry Pi 3 (arm) mit distcc
./autogen.sh --host=arm-linux-gnueabihf --build=arm-linux-gnueabihf \
--disable-gui --without-java --disable-pch --with-system-libs \
--without-system-orcus --without-system-zxing --without-system-coinmp \
--without-system-lpsolve --without-system-abseil --without-system-poppler \
CC="distcc arm-linux-gnueabihf-gcc" CXX="distcc arm-linux-gnueabihf-g++" \
CFLAGS="-mfloat-abi=hard -mfpu=vfpv3-d16" CXXFLAGS="-mfloat-abi=hard -mfpu=vfpv3-d16"
Autogen-Konfigurationsoptionen für Raspberry Pi 3 (aarch64) mit distcc
./autogen.sh --host=aarch64-linux-gnu --build=aarch64-linux-gnu \
--disable-gui --without-java --disable-pch --with-system-libs \
--without-system-orcus --without-system-zxing --without-system-coinmp \
--without-system-lpsolve --without-system-abseil --without-system-poppler \
CC="distcc aarch64-linux-gnu-gcc" CXX="distcc aarch64-linux-gnu-g++"

Info: Verteiltes Kompilieren (distcc) verkürzt die Bauzeit drastisch von mehreren Tagen auf nur wenige Stunden, indem rechenintensive Aufgaben auf leistungsstarke externe Server ausgelagert werden. Diese Lösung schützt den ARM-Prozessor vor Überhitzung und verhindert den RAM-Mangel auf dem Zielgerät.


Verteilte distcc-Kompilierung in der Praxis

Info: Das folgende Video zeigt den Projekterstellungsprozess unter Verwendung des Echse-Net Distcc-Clusters. Anstatt nur die lokale CPU zu belasten, werden die Kompilierungsaufgaben einzelner Quelldateien (.cpp) sicher verteilt und parallel von distccd-Daemons auf den gekoppelten Netzwerkknoten des Echse-Net-Clusters verarbeitet, was die gesamte Build-Zeit drastisch verkürzt.

Konsolenausgabe:

Caveman with a club and a dinosaur. Symbol of old technology.

⚠️ Old Device, New Technology!

We are sorry, but your device (e.g., an older iPad or browser) does not support the latest standards required to load this scenario.

Please use a newer device or update your browser.