Distcc
| Distcc | |
|---|---|
Distccmon näyttää työpöydällä graafisesti hajautetun käännöksen edistymisen. | |
| Tekijä(t) | Andrew Tridgell |
| Kehittäjä(t) | Distcc-yhteisö |
| Moottori | GCC, G++, Clang |
| Ensijulkaisu | 2002 |
| Vakaa versio | 3.4 / 11. toukokuuta 2021 |
| Ohjelmoitu | C |
| Käyttöliittymä | Komentorivi (CLI) ja GUI (Distccmon) |
| Tyyppi | Hajautettu käännösjärjestelmä |
| Lisenssi | GPLv2 |
| Kotisivu | distcc.github.io |
| Lähdekoodi | github.com/distcc github.com/distcc |
Distcc on avoin ja nopea hajautettu C/C++-kääntäjä. Sen avulla voit valjastaa verkossasi olevien koneiden prosessoritehot kääntämään vaikkapa kernelin. Distcc on oikeastaan GCC:n edusta (front-end), jolla käännösprosessi saadaan hajautettua verkkoon.
Toimintaperiaate
[muokkaa]Distcc toimii asentamalla proxy-kääntäjän (distcc) jokaiseen käännökseen osallistuvaan tietokoneeseen.
- 1. Hajautus: Kun käännös aloitetaan pääkoneella, Distcc ottaa kääntämistehtävät vastaan, mutta lähettää jokaisen yksittäisen lähdekooditiedoston käännöksen (yleensä esikäsiteltynä) verkossa oleville apukoneille suoritettavaksi.
- 2. Käytön optimointi: Työasemien prosessorikuorma on yleensä erittäin vähäinen. Tämän avulla verkon päässä työttömänä oleva laskentavoima saadaan klusteroitua käännöskäyttöön.
- 3. Käyttöystävällisyys: Kun distcc-prosessien prioriteetti asetetaan matalaksi, työasemakäyttäjälle hyötykäyttöön otettu tyhjäkäyntiteho ei edes näy koneen tahmaisuuden lisääntymisenä.
Käyttö
[muokkaa]Käyttö on suoraviivaista. Palvelimet on asennettava ensin, ja käännösympäristö määritellään kahdella askeleella.
1. Palvelimien määritys
Käytettävien käännöspalvelimien hostname-nimet tai IP-osoitteet määritellään ympäristömuuttujaan:
export DISTCC_HOSTS='localhost red green blue'
2. Kääntäminen
Tämän jälkeen käännös käynnistetään asettamalla C-kääntäjäksi (CC) distcc ja määrittelemällä rinnakkaisten säikeiden määrä (-j-parametri):
make -j8 CC=distcc
-j-parametrin perässä oleva numero tarkoittaa yhtäaikaisten säikeiden määrää. Tätä kannattaa tietysti soveltaa myös moniprosessorikoneilla.
Soveltuvuus
[muokkaa]Varsinkin Gentoo-käyttäjille Distcc on hyödyllinen, sillä lähdekoodipohjaisena jakeluna Gentoon asentaminen vaatii paljon kääntämistä. Distcc mahdollistaa näiden pitkien käännösaikojen merkittävän lyhentämisen. Työasemien prosessorikuorma on yleensä erittäin vähäinen, tämän avulla verkon päässä työttömänä oleva laskentavoima saadaan klusteroitua käännöskäyttöön. Kun distcc-prosessien prioriteetti asetetaan matalaksi, työasemakäyttäjälle hyötykäyttöön otettu tyhjäkäyntiteho ei edes näy koneen tahmaisuuden lisääntymisenä.