Benchmarki Kompilacji:
Porównanie czasu rzeczywistego (Real Time) na różnych architekturach z wykorzystaniem klastra Echse-Net Distcc.
SeaMonkey 2.53.23
| Sprzęt | CPU | OS | Architektura | RAM | Metoda | Czas (Real) |
|---|---|---|---|---|---|---|
| EeePC 901 | Intel(R) Atom(TM) CPU N270 @ 1.60GHz | Gentoo | x86 (i686) | 2GB | Bez Distcc (-j2) | 21h 59min |
| EeePC 901 | Intel(R) Atom(TM) CPU N270 @ 1.60GHz | Gentoo | x86 (i686) | 2GB | Z Distcc (-j10) | 3h 47min |
| ASUS G551 | Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz | Gentoo | x86_64 | 16GB | Bez Distcc (-j10) | 1h 13min |
| ASUS G551 | Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz | Gentoo | x86_64 | 16GB | Z Distcc (-j10) | 0h 19min |
LibreOffice 25.2.7.2
| Sprzęt | CPU | OS | Architektura | RAM | Metoda | Czas (Real) |
|---|---|---|---|---|---|---|
| EeePC 901 | Intel(R) Atom(TM) CPU N270 @ 1.60GHz | Gentoo | x86 (i686) | 2GB | Bez Distcc (-j2) | 59h 34min |
| EeePC 901 | Intel(R) Atom(TM) CPU N270 @ 1.60GHz | Gentoo | x86 (i686) | 2GB | Z Distcc (-j10) | 10h 20min |
| ASUS G551 | Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz | Gentoo | x86_64 | 16GB | Bez Distcc (-j10) | 4h 19min |
| ASUS G551 | Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz | Gentoo | x86_64 | 16GB | Z Distcc (-j10) | 0h 57min |
| Raspberry Pi 3B | BCM2837 ARM Cortex-A53 @1.20GHz | Raspbian | arm | 1GB | Z Distcc (-j4) | 5h 15min |
| Raspberry Pi 3B | BCM2837 ARM Cortex-A53 @1.20GHz | Gentoo | arm | 1GB | Z Distcc (-j8) | 9h 1min |
| Raspberry Pi 3B | BCM2837 ARM Cortex-A53 @1.20GHz | Raspbian | aarch64 | 1GB | Z 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./configurewyłą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 przezdistccspadł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 demonydistccdna sparowanych węzłach sieci klastraEchse-Net, co drastycznie skraca całkowity czas generowania pliku wynikowego.
Wyjście z konsoli:

⚠️ 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.


