Improving distributed compilation efficiency for large-scale C++ projects

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis

Department

Mcode

Language

en

Pages

67

Series

Abstract

This thesis investigates how large-scale C++ projects can reduce build latency by tuning two open-source distributed compilation systems: Icecream and Distcc. A three-node Ubuntu 22.04 LTS testbed compiled a 400-file Nokia system component using both default and optimised configurations. Results show that an optimised Icecream setup shortens total build time by up to 23 % under high load compared to an equally tuned Distcc setup, while sustaining near-linear scalability up to 16 concurrent jobs per node. The analysis also explores network overhead, fault tolerance during simulated node failure, and task distribution efficiency. The findings are distilled into a configuration model and a set of practical recommendations for engineering teams aiming to improve build throughput in continuous integration environments.

Tämä diplomityö tutkii, kuinka suuret C++‑projektit voivat lyhentää käännösaikoja hyödyntämällä kahta avoimen lähdekoodin hajautettua käännösjärjestelmää: Icecream tai Distcc. Kolmesta Ubuntu 22.04 LTS ‑palvelimesta koostuva testialusta käänsi 400‑tiedoston Nokia‑systeemikomponentin sekä oletus- että optimoiduilla asetuksilla. Tulokset osoittavat, että optimoitu Icecream‑kokoonpano lyhensi koko projektin käännösaikaa jopa 23 % verrattuna vastaavasti säädettyyn Distcc‑konfiguraatioon raskaassa kuormituksessa, säilyttäen samalla lähes lineaarisen skaalautuvuuden 16 rinnakkaiseen käännöstyöhön per solmu. Työ analysoi lisäksi verkkokuormitusta, vikasietoisuutta solmuvian simuloinnissa ja tehtävien jakautumista solmujen välillä. Tulosten pohjalta esitetään konfiguraatiomalli ja käytännön suositukset ohjelmistotiimeille, jotka haluavat nopeuttaa käännösprosessia jatkuvan integraation ympäristöissä.

Description

Supervisor

Jäntti, Riku

Thesis advisor

Banijamali, Ahmad

Other note

Citation