abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 2
    včera 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | Nová verze

    Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2023. Vybráni byli Bruno Haible za dlouhodobé příspěvky a správu knihovny Gnulib, nováček Nick Logozzo za front-end Parabolic pro yt-dlp a tým Mission logiciels libres francouzského státu za nasazování svobodného softwaru do praxe.

    Fluttershy, yay! | Komentářů: 0
    včera 13:11 | IT novinky

    Před 10 lety Microsoft dokončil akvizici divize mobilních telefonů společnosti Nokia a pod značkou Microsoft Mobile ji zanedlouho pohřbil.

    Ladislav Hagara | Komentářů: 2
    6.5. 21:33 | Komunita

    Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.

    Ladislav Hagara | Komentářů: 5
    6.5. 21:11 | IT novinky

    Stack Overflow se dohodl s OpenAI o zpřístupnění obsahu Stack Overflow pro vylepšení OpenAI AI modelů.

    Ladislav Hagara | Komentářů: 1
    6.5. 17:55 | Nová verze

    AlmaLinux byl vydán v nové stabilní verzi 9.4 (Mastodon, 𝕏). S kódovým názvem Seafoam Ocelot. Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    6.5. 17:11 | IT novinky

    Před 50 lety, 5. května 1974 v žurnálu IEEE Transactions on Communications, Vint Cerf a Bob Kahn popsali protokol TCP (pdf).

    Ladislav Hagara | Komentářů: 0
    6.5. 13:44 | Zajímavý článek

    Bylo vydáno do češtiny přeložené číslo 717 týdeníku WeeklyOSM přinášející zprávy ze světa OpenStreetMap.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (8%)
     (14%)
     (16%)
    Celkem 133 hlasů
     Komentářů: 9, poslední včera 22:07
    Rozcestník

    Gentoo Linux - rýchlosť kompilácie (ccache a distcc)

    22. 2. 2006 | Matej Gagyi | Systém | 8648×

    Ako dlho sa na vašom počítači kompiluje nová verzia prehliadača Mozilla Firefox, prehrávača MPlayer alebo celé KDE, či Gnome? Pár minút? Tak to už asi poznáte programy ccache a distcc.

    ccache

    ccache dokáže zrýchliť opakované kompilovanie 5 až 10krát. Je výtvorom Andrewa Tridgella z projektu Samba, ktorý sa inšpiroval ideou projektu compilercache.

    Pred každým spustením gcc sa ccache pozrie do svojej databázy a pokúsi sa v nej nájsť skompilovaný súbor. Ak výsledok kompilácie nenájde, spustí gcc a jeho výsledok vloží do databázy. Pri vývoji aplikácií sa medzi dvoma verziami aplikácie často mení iba zopár súborov a ostatné zostávajú nedotknuté. Pri kompilovaní novšej verzie už raz kompilovaného programu má ccache veľkú šancu usporiť čas potrebný pre kompiláciu už raz skompilovaných súborov.

    Portage dokáže ccache používať automaticky. Stačí ho len nainštalovať:

    # emerge ccache

    a pridať do súboru /etc/make.conf do premennej FEATURES:

    FEATURES="ccache"

    Ak chcete ccache používať mimo Portage (v inej distribúcii alebo pri programovaní), musíte dať cestu k binárkam ccache do premennej prostredia PATH (pred cestou ku gcc):

    # export PATH=/usr/lib/ccache/bin:$PATH

    Databáza ccache bude rásť a rásť, preto je dobré stanoviť jej nejaký limit:

    # ccache -M 1G

    Používatelia Gentoo si tento údaj môžu nastaviť aj v súbore /etc/make.conf:

    CCACHE_SIZE="1G"

    distcc

    Z dielne Samby pochádza aj program distcc, tentokrát je jeho autorom Martin Pool. Distcc distribuuje kompiláciu medzi viacerými počítačmi. To sa oplatí hlavne, pokiaľ chcete inštalovať Gentoo na pomalý počítač a máte k dispozícii jeden, alebo viac rýchlejších strojov.

    Program distcc najprv spracuje vstupný zdrojový súbor preprocesorom (gcc -E). Vznikne tak zdrojový súbor, ktorý obsahuje všetky hlavičkové súbory, ktoré sú potrebné na jeho skompilovanie. Program distcc tento súbor pošle na niektorý zo vzdialených počítačov, kde sa spustí kompilácia. Skompilovaný súbor s príponou .o (object), sa vráti späť na klientsky počítač a distcc sa ukončí.

    Aby tento postup kompiláciu urýchlil, musí byť kompilovaných viacero zdrojových súborov naraz. Program make podporuje paralelnú kompiláciu. Počet súčasne spustených kompilácií sa nastavuje parametrom -jN (N - počet paralelných kompilácií). Používatelia Gentoo si tento parameter môžu nastaviť v súbore /etc/make.conf:

    MAKEOPTS="-j2"

    S počtom paralelných kompilácií sa musíte trochu pohrať. Začať môžete s hodnotou rovnou počtu procesorov na kompilovanie plus jeden (napríklad ak kompilujete na dvoch dvoj-procesorových počítačoch nastavte MAKEOPTS="-j5"). Tento počet vám pomôže doladiť grafický monitor distccmon-gui.

    Distcc treba samozrejme nainštalovať, v Gentoo jednoducho:

    # emerge distcc

    Portage vie používať distcc automaticky, len ho musíte pridať do súboru /etc/make.conf do premennej FEATURES:

    FEATURES="distcc"

    Ak nepoužívate Gentoo, musíte si binárky distcc pridať do premennej PATH ešte pred cestou ku gcc. Ale pozor, ak používate aj ccache, najprv musí ísť cesta k ccache, potom k distcc a až potom všetko ostatné:

    # export PATH=/usr/lib/ccache/bin:/usr/lib/distcc/bin:$PATH

    Na vzdialených počítačoch musíte buď spustiť démona distccd, nakonfigurovať initd server alebo sprístupniť počítač cez ssh. Odporúčané je spustiť démona distccd:

    # distccd --allow 192.168.1.0/24

    Používatelia Gentoo budú mať po inštalácii k dispozícii rc skript:

    # rc-update add distccd default
    # /etc/init.d/distccd start

    Parameter --allow je veľmi dôležitý. Určuje, ktoré IP adresy budú mať prístup k distccd serveru. Používatelia Gentoo si tento a ďalšie parametre distcc môžu nastaviť v súbore /etc/conf.d/distccd.

    Nakoniec na klientskom počítači nastavte zoznam a limity pre vzdialené servery. To sa robí pomocou premennej prostredia DISTCC_HOSTS:

    # export DISTCC_HOSTS="localhost/2 192.168.1.1/2 superserver.com/8"

    V Gentoo použite konfiguračný nástroj distcc-config:

    # distcc-config --set-hosts "localhost/2 192.168.1.1/2 \
    superserver.com/8"
    # env-update
    # source /etc/profile

    Záver

    Ešte musím upozorniť, že ccache je citlivý na to, či používate distcc alebo nie. Ak ste prvú verziu kompilovali distribuovane a pri kompilácii novej verzie už nemáte k dispozícii viac počítačov a distcc vymažete za súboru /etc/make.conf, ccache si bude myslieť, že ste zmenili verziu gcc a medzivýsledky kompilácie vo svojej databáze jednoducho nenájde.

    Ak hrozí, že nebudete môcť kompilovať na viacerých počítačoch pomocou distcc, je lepšie distcc do súboru /etc/make.conf nedávať a spúšťať distribuované kompilovanie nasledovne:

    # FEATURES="distcc" emerge parametre

    Nejčtenější články posledního měsíce

    Jaderné noviny – přehled za březen 2024
    Týden na ScienceMag.cz: V kvantovém materiálu objevili částici podobnou gravitonu
    Jarní výprodej s až 91% slevou: originální a permanentně aktivovaný OS Windows 10 jen za €14, Office za €24!

    Nejkomentovanější články posledního měsíce

    Týden na ScienceMag.cz: Kosmologové se opět zkouší vypořádat se s problémem Hubbleovy konstanty
    Týden na ScienceMag.cz: Upřesnili limity pro klidovou hmotnost neutrin
    Jaderné noviny – přehled za duben 2024
      všechny statistiky »

    Seriál Gentoo Linux (dílů: 4)

    Gentoo Linux - majstrovská inštalácia (první díl)
    <—« Gentoo Linux - optimalizácie
    »—> Gentoo Linux - Prelink a Psyco
    Gentoo Linux - Prelink a Psyco (poslední díl)

    Související články

    Gentoo Linux - majstrovská inštalácia
    Gentoo Linux - optimalizácie
    Gentoo Linux - Prelink a Psyco
    Seriál: Moderní souborové systémy
    Na co se často ptáme: Organizácia disku
    Na co se často ptáme: /etc/fstab
    Seriál: Súborové systémy
    Gentoo Linux 1.4
    Balíčkovací systém Gentoo Linuxu - I
    Balíčkovací systém Gentoo Linuxu - II
    Arch Linux
    Nebojíme se kompilace - I (teorie)
    Nebojíme se kompilace - II (praxe)
    Nebojíme se kompilace - III (ladíme)

    Další články z této rubriky

    Úvod do Dockeru (1)
    Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Unixové nástroje – 26 (triky pro práci v Bashi)
    Unixové nástroje – 25 ((s,c)fdisk, gdisk, parted a findmnt)
    Linux: systémové volání splice()
           

    Hodnocení: 87 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    22.2.2006 09:05 Pet
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    A co kdyz mam pomaly pocitac x686 a rychly amd64? Nestalo by za alespon zminku, ze v takovychto pripadech je to o neco slozitejsi?
    22.2.2006 09:15 Wolf | skóre: 7
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Je potreba pri pouziti distcc aby na obou pocitacich byl x86 procesor? Nebo se da nejak zaridit abych mohl na AMD64 kompilovat pres distcc pro Durona? Diky
    22.2.2006 09:25 Pet
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Samozrejme to jde, ale musite instalovat kroskompiler :-( http://www.gentoo.org/doc/en/cross-compiling-distcc.xml
    Vykook avatar 22.2.2006 09:30 Vykook | skóre: 23 | blog: Tomas
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    na kompilaci i686 - i586 predpokladam taky potrebuju crosscompiler, ze?
    Nejde nám o dobro druhých. Nejde nám o bohatství. Jde o čisté opojení mocí.
    22.2.2006 09:36 lizard
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    ne. je to stejna architektur x86... jedine co je potreba jsou parametry -march, -mcpu nebo -mtune
    22.2.2006 17:52 Radek Podgorny | skóre: 16
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Omyl, na kompilace i586 vs. i686 je potreba crosscompiler.
    Luboš Doležel (Doli) avatar 22.2.2006 22:37 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Podle mě je to taky jen otázka CFLAGS...
    22.2.2006 22:41 Radek Podgorny | skóre: 16
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    To jsem si taky myslel, ale mam vyzkouseno, ze to tak nejde. (Nebo jsem prilis hloupy :-) )
    Yin avatar 25.2.2006 21:14 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Verzie gcc musia byť pri distribouvanom kompilovaní rovnaké na všetkých strojoch. Osobne som mal s týmto problémi, ale neviem, prečo som sa o probléme a riešení nezmienil v článku. Ospravedlňujem sa.
    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
    22.2.2006 22:44 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    22.2.2006 09:34 lizard
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Zapomel jste zminit jednu velice dulezitou vec. A to ze k provozu distcc si musite hlidat verze kompilatoru (gcc) na masinkach na ktere budete distcc postvavat (DISTCC_HOSTS). Tam kde se pouzivaji stejna Linuxova distra (popr. FreeBSD) je to celkem jedno. Ale tam kde je kazdy pes jina ves to nemusi fungovat. Odzkouseno :).

    viz. : http://distcc.samba.org/faq.html#mixed-gcc

    Nebylo by na skodu rici ze je to jen pro trusted site a ze se to da pouzit i cez ssh... ale to si asi kazdy najde sam :)
    22.2.2006 10:19 j3nda | skóre: 14 | ostrava/brno
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    jak je to s verzemi gcc? musi byt pri pouziti distcc stejne verze gcc a knihoven? (ono je to dost logicke, aby byly. jen se chci zeptat, zda v tom neni jeste nejak podrobneji zakopana bota?) diky.
    ___---==~[ uxunilcba | baclniuxu ]~==---__sevrer_pnly_liunx-lkie_hcaricku__/libGDX-rulez-the-W0R7D!___
    22.2.2006 10:20 j3nda | skóre: 14 | ostrava/brno
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    predchozi komentar uz mi dopovedel, diky.
    ___---==~[ uxunilcba | baclniuxu ]~==---__sevrer_pnly_liunx-lkie_hcaricku__/libGDX-rulez-the-W0R7D!___
    22.2.2006 14:18 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    knihovny nemusi byt stejne (distcc s knihovanmi vubec nepracuje) a u prekladace je dobre mit stejne verze - obcas to zlobi
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    22.2.2006 10:31 Kodl
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Databáza ccache bude rásť a rásť, preto je dobré stanoviť jej nejaký limit

    Jak se bude ccache chovat az se databaze naplni? Nejstarsi soubory budou postupne odmazavany tak, jak budou prichazet nove, nebo se zobrazi nejake chybove hlaseni a bude nutno databazi promazat nejakym "primazavacim prikazem"? Diky. Karel
    22.2.2006 10:51 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Wikipedia:cache

    Pravdepodobne tam pouziji LRU algoritmus, ale je to celkem jedno. Dulezite je, ze se to "nezablokuje".

    Doporucuji mit ccache na samostatnem oddilu o velikosti stejne, jako ma samotna ccache. Vytuneny filesystem je nutnosti. Je to pak opravdu bleskove.
    22.2.2006 11:32 Z
    Rozbalit Rozbalit vše distcc -> icecream
    Daleko lepsi nez distcc je icecream

    - ma centralni scheduler, takze na rozdil od distcc rozdeluje ulohy na jine pocitace inteligentne (nepouziva zatizene pocitace, snazi se pouzivat nejrychlejsi nejdrive, sam hleda ostatni pocitace,...)

    - dokaze jednoduse mixovat ruzne druhy gcc a pocitacu (mit treba i686+gcc-3.x a nechat si prekladat na amd64+gcc-4.x neni problem)

    22.2.2006 12:45 lizard
    Rozbalit Rozbalit vše Re: distcc -> icecream
    a nezastavil se vyvoj? posledni verzi tam vidim z 13. 04. 2005 :/
    22.2.2006 15:26 EiFFeL | skóre: 27 | blog: EiFFeL | Vranovská Ves
    Rozbalit Rozbalit vše Re: distcc -> icecream
    nechci nic rikat, ale uz jen to ze mam sys-devel/icecream masked by mohlo o necem vypovidat...
    David Watzke avatar 23.2.2006 02:52 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: distcc -> icecream
    O čempak?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    23.2.2006 12:34 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: distcc -> icecream
    O nepochopeni manualu:
    slon ~ # emerge -pv sys-devel/icecream
    
    These are the packages that I would merge, in order:
    
    Calculating dependencies
    !!! All ebuilds that could satisfy "sys-devel/icecream" have been masked.
    !!! One of the following masked packages is required to complete your request:
    - sys-devel/icecream-0.6.20040829 (masked by: ~x86 keyword)
    
    For more information, see MASKED PACKAGES section in the emerge man page or
    refer to the Gentoo Handbook.
    
    David Watzke avatar 24.2.2006 20:57 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: distcc -> icecream
    Jasně, ale vůbec nechápu co tím autor příspěvku myslel... o čem to asi může vypovídat :/
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    27.2.2006 09:22 J
    Rozbalit Rozbalit vše Re: distcc -> icecream
    No, zamaskovany balicky sou bud v nejakem velmi brzkem alpha nebo dokonce prealpha stadiu vyvoje, nebo naopak ve stadiu kdy uz zadny vyvoj neexistuje. Takze to vypovida o tom, ze asi neni zrovna doporucovano je pouzivat, protoze bud nejsou moc odladene nebo mohou obsahovat bugy, ktere nikdo neopravi.
    27.2.2006 18:19 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: distcc -> icecream
    Ale ty ebuildy nejsou zamaskovany. RTFM, link mas nahore.
    22.2.2006 22:44 Z
    Rozbalit Rozbalit vše Re: distcc -> icecream
    Ten download link je asi drobet out-of-date, ale v README tam jsou instrukce, jak to prelozit z KDE SVN. A tady je navod na anonymni KDE SVN pristup, icecream je v trunk/kdenonbeta/icecream. Nebo se to vsechno da vytahnout z src.cpm pro SUSE :-).
    22.2.2006 19:10 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Je skoda, ze ackoli jsem k tomuto clanku posilal 9. unora mailem komentar, autor se jim neridil. Inu zde je:
    Limit ccache nastaveny pres `ccache -M 1G` *neovlivni* Portage, protoze Portage pouziva jiny $CCACHE_DIR nez root (defaultne je to "~/.ccache" iirc). Reseni je pri *kazdem* spusteni cehokoliv, co saha na ccache, at uz velikosti cache nebo monitory, nastavit spravnou $CCACHE_DIR (nekde pod /var/portage asi, nevim, nepouzivam, jsem liny zjistovat).

    Jinak u "distcc" je dobry zminit, ze se ma pouzivat jenom tehdy, pokud bychom uzivatelum kompilujicim z danych klientu poskytli na dalsich distcc nodech shell access, viz http://distcc.samba.org/security.html :

    "Anyone who can connect to the distcc server port can run arbitrary commands on that machine as the distccd user. If you are not using SSH, you must use the --allow rule and/or firewall rules to limit access to port 3632."

    Dale mi neni jasne, co autor minil doporucenim pouzivat `FEATURES="distcc" emerge foo` misto adekvatni zmeny make.conf, zejmena v kontextu predchoziho odstavce.
    1.7.2008 09:52 rellix
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    odporucam skor pouzivat na kompilovanie s distcc alias pre emerge

    alias demerge="FEATURES='$FEATURES distcc' emerge"
    12.7.2008 18:51 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    ...a nebo si precist manual a zjistit, ze se $FEATURES nastavuji v /etc/make.conf, ze...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.