Testy Distcc
Mapa Europy (nakładka)

Testy Distcc

Benchmarki Kompilacji:

Porównanie czasu rzeczywistego (Real Time) na różnych architekturach z wykorzystaniem klastra Echse-Net Distcc.

SeaMonkey 2.53.23

SprzętCPUOSArchitekturaRAMMetodaCzas (Real)
EeePC 901Intel(R) Atom(TM) CPU N270 @ 1.60GHzGentoox86 (i686)2GBBez Distcc (-j2)21h 59min
EeePC 901Intel(R) Atom(TM) CPU N270 @ 1.60GHzGentoox86 (i686)2GBZ Distcc (-j10)3h 47min
ASUS G551Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHzGentoox86_6416GBBez Distcc (-j10)1h 13min
ASUS G551Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHzGentoox86_6416GBZ Distcc (-j10)0h 19min

LibreOffice 25.2.7.2

SprzętCPUOSArchitekturaRAMMetodaCzas (Real)
EeePC 901Intel(R) Atom(TM) CPU N270 @ 1.60GHzGentoox86 (i686)2GBBez Distcc (-j2)59h 34min
EeePC 901Intel(R) Atom(TM) CPU N270 @ 1.60GHzGentoox86 (i686)2GBZ Distcc (-j10)10h 20min
ASUS G551Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHzGentoox86_6416GBBez Distcc (-j10)4h 19min
ASUS G551Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHzGentoox86_6416GBZ Distcc (-j10)0h 57min
Raspberry Pi 3BBCM2837 ARM Cortex-A53 @1.20GHzRaspbianarm1GBZ Distcc (-j4)5h 15min
Raspberry Pi 3BBCM2837 ARM Cortex-A53 @1.20GHzGentooarm1GBZ Distcc (-j8)9h 1min
Raspberry Pi 3BBCM2837 ARM Cortex-A53 @1.20GHzRaspbianaarch641GBZ Distcc (-j4)5h 32min

Info: Czas Real to faktyczny czas oczekiwania na zakończenie zadania. Jak widać, dla architektury i686 zysk jest kolosalny.

Info: Porównanie czasu kompilacji: Gentoo vs Raspbian (Raspberry Pi) Mimo że w obu środowiskach proces kompilacji był wspierany przez klaster rozproszony distcc, odnotowano drastyczne różnice w czasie wykonania. Wynikają one bezpośrednio z flag przekazanych na etapie konfiguracji (configure) oraz założeń produkcyjnych: Gentoo (Pełna Funkcjonalność / Maksymalna Optymalizacja): Celem było zbudowanie kompletnego, produkcyjnego środowiska LibreOffice. Pakiet został skonfigurowany ze wszystkimi funkcjami, bibliotekami i rozszerzeniami. Zastosowano precyzyjne optymalizacje architektoniczne (-march=) zalecane w dokumentacji Gentoo dla danego procesora. Spowodowało to monstrualne zapotrzebowanie na pamięć RAM, zmuszając system do intensywnej wymiany danych (SWAP). Wolne operacje wejścia/wyjścia (I/O) doprowadziły do thrashingu pamięci, co drastycznie wydłużyło czas jądra systemowego (sys). Raspbian (Wersja Minimalna / Cel Demonstracyjny): Ten proces miał na celu jedynie demonstrację możliwości kompilacji klastrowej. Na etapie ./configure wyłączono absolutnie wszystko, co nie było niezbędne do uruchomienia podstawowego rdzenia programu (zastosowano m.in. flagi wyłączające interfejsy, języki czy dodatkowe moduły). W efekcie liczba linii kodu i zależności do przetworzenia przez distcc spadła do absolutnego minimum, eliminując problem wąskiego gardła w postaci pamięci RAM i SWAP-u.

Opcje konfiguracji autogen dla Raspberry Pi 3 (arm) z 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"
Opcje konfiguracji autogen dla Raspberry Pi 3 (aarch64) z 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: Kompilacja rozproszona (distcc) skraca czas budowania z wielu dni do zaledwie kilku godzin, przenosząc ciężkie obliczenia na wydajne serwery zewnętrzne. Rozwiązanie to chroni procesor ARM przed przegrzaniem oraz zapobiega wyczerpaniu pamięci RAM na urządzeniu docelowym.


Kompilacja Rozproszona distcc w Praktyce

Info: Poniższe nagranie przedstawia proces budowania projektu przy użyciu dedykowanego klastra Echse-Net Distcc. Zamiast obciążać wyłącznie lokalny procesor, zadania kompilacji poszczególnych modułów (.cpp) są bezpiecznie dystrybuowane i przetwarzane równolegle przez demony distccd na sparowanych węzłach sieci klastra Echse-Net, co drastycznie skraca całkowity czas generowania pliku wynikowego.

Wyjście z konsoli:

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.