View previous topic :: View next topic |
Author |
Message |
Mihashi Tux's lil' helper
Joined: 08 Apr 2005 Posts: 98 Location: Wroclaw, Poland
|
Posted: Mon Apr 25, 2005 1:36 pm Post subject: [PORTAGE] distcc - kompilacja przełączana, a nie równoleg |
|
|
Mam takie pytanie - nie do końca - retoryczne: czy distcc z definicji zachowuje się tak jak u mnie i nie ma szans na poprawę?
A zachowuje się nastepująco: mam m.in dwa prawie identyczne kompy (Duron 1.2 i 1.1, po 256 RAMu itd. podobne dyski). więc nic nie stoi na przeszkodzie aby sobie wzajemnie pomagały w kompilacji (ten sam gcc, binutils itd.) skoro i tak stoją w domowej sieci 10Mbps praktycznie non stop włączone.
Konfiguruję sobie więc distcc i distccd odpowiednio, właczam distcc do FEATURES make.conf i generalnie działa. ale sposób w jaki działa, dalece mnie nie statysfakcjonuje:
jeżeli kompiluję coś na kompie A, to distcc przerzuca jakieś 2/3 zadań kompilacji na B, podczas gdy A się regularnie nudzi.
czasem też niczego nie przerzuca, ale z tego co czytałem, niektóre paczki rozmyślnie wyłączają distcc ze względu na integralność, więc się nie czepiam,
ale prze wszystkim nigdy nie kompiluje na dwóch kompach naraz - zawsze A albo B.
Wpływ na to zachowanie ma oczywiście zmienna MAKEOPTS, która steruje - z moich obserwacji i lektury - ilością procesów kompilacji. Ponieważ źródła się różnią co do optymalnego ustawienia jej przy distcc wypróbowałem wszystkie od -j2 po -j7. Rezultat jest ten sam: komilacja jest najszybsza jeżeli wyłączę distcc ( i dam -j2). Przy ustawieniach wyższych (np. -j5) zaczyna zamulać, bo odpala naraz 4 procesy komilacji (oczywiście na jednym kompie, a co...)
W grę nie wchodzi ani zapchanie sieci (zresztą distcc jest nieco odporne na takie subtelności), ani obciążenie kompów. Po prostu distcc kompiluje sobie kolejne pliki raz na A raz na B, albo naraz kilka na A lub B. Może się zanadto rozmarzyłem, ale chciałbym aby komilował jednoczesnie na obu, bo transfer na podobny procek jest generalnie bez sensu.
Czy więc algorytm distcc nie jest przypadkiem dedykowany sytuacji, że A=x MHz a B=10*x MHz? _________________ Mihashi |
|
Back to top |
|
|
nelchael Retired Dev
Joined: 20 Mar 2004 Posts: 1948 Location: /dev/drzewo
|
Posted: Mon Apr 25, 2005 1:44 pm Post subject: |
|
|
Poczytaj o okreslaniu ile zadan ma sie wykonywac na danym hoscie. Podpowiem:
Code: | export DISTCC_HOSTS="localhost/2 maszyna_inna/3" |
_________________ [color=gray:17697d0166]http://dev.gentoo.org/~nelchael/[/color:17697d0166]
[size=14:17697d0166]>> [b:17697d0166]Zasady na f.g.o->Polish[/b:17697d0166] <<[/size:17697d0166] |
|
Back to top |
|
|
Mihashi Tux's lil' helper
Joined: 08 Apr 2005 Posts: 98 Location: Wroclaw, Poland
|
Posted: Mon Apr 25, 2005 1:46 pm Post subject: |
|
|
Próbowałem: pracuje znowu albo A, albo B (choć zadeklarowanej ilości procesów nie przekracza) _________________ Mihashi |
|
Back to top |
|
|
nelchael Retired Dev
Joined: 20 Mar 2004 Posts: 1948 Location: /dev/drzewo
|
Posted: Mon Apr 25, 2005 1:47 pm Post subject: |
|
|
cpp musi dzialac na hoscie glownym, sama kompilacja dopiero jest rozpraszana. _________________ [color=gray:17697d0166]http://dev.gentoo.org/~nelchael/[/color:17697d0166]
[size=14:17697d0166]>> [b:17697d0166]Zasady na f.g.o->Polish[/b:17697d0166] <<[/size:17697d0166] |
|
Back to top |
|
|
Mihashi Tux's lil' helper
Joined: 08 Apr 2005 Posts: 98 Location: Wroclaw, Poland
|
Posted: Mon Apr 25, 2005 1:55 pm Post subject: |
|
|
Hmm... Ale ja nie mam problemów z działeniem tego ustrojstwa - to działa, kompilacje są udane i wogóle. Chodzi mi o efektywnośc wykorzystania dwóch procków naraz w trakcie kompilacji.
Mam w tej chwili przed oczami dwa topy (z A i B) i dość wyraźnie widzę, że kompilując kdebase na A, 3/4 czasu zapieprza mi B, podczas gdy A tylko czasem pomyśli co by mu tu podesłać. A jak gdyby czekał aż B skończy, zanim sam coś skompiluje.
Oczywiście przy linkowaniu itp pracuje A. _________________ Mihashi |
|
Back to top |
|
|
nelchael Retired Dev
Joined: 20 Mar 2004 Posts: 1948 Location: /dev/drzewo
|
Posted: Mon Apr 25, 2005 1:58 pm Post subject: |
|
|
To jest wada distcc - nie ma mozliwosci idealnie rownoleglej kompilacji. _________________ [color=gray:17697d0166]http://dev.gentoo.org/~nelchael/[/color:17697d0166]
[size=14:17697d0166]>> [b:17697d0166]Zasady na f.g.o->Polish[/b:17697d0166] <<[/size:17697d0166] |
|
Back to top |
|
|
Mihashi Tux's lil' helper
Joined: 08 Apr 2005 Posts: 98 Location: Wroclaw, Poland
|
Posted: Mon Apr 25, 2005 2:01 pm Post subject: |
|
|
Buuu
Czyli jednak na prawie identycznych procka to nie ma sensu, co? Te 100 MHz więcej na jednym zostaniew skutecznie zniwelowane przez opóźnienie wywołane przesy łem, działaniem distcc itd. Przykro... _________________ Mihashi |
|
Back to top |
|
|
nelchael Retired Dev
Joined: 20 Mar 2004 Posts: 1948 Location: /dev/drzewo
|
Posted: Mon Apr 25, 2005 2:06 pm Post subject: |
|
|
Ja mam taka sytuacje:
host na ktorym instaluje gentoo - p166mmx + 32mb ramu
host dla distcc: p4 1.8GHz + 256 ramu
przy czyms takim sie oplaca _________________ [color=gray:17697d0166]http://dev.gentoo.org/~nelchael/[/color:17697d0166]
[size=14:17697d0166]>> [b:17697d0166]Zasady na f.g.o->Polish[/b:17697d0166] <<[/size:17697d0166] |
|
Back to top |
|
|
mbar Veteran
Joined: 19 Jan 2005 Posts: 1990 Location: Poland
|
Posted: Mon Apr 25, 2005 2:20 pm Post subject: |
|
|
Ja mam laptopa z PIII 1200 MHz i gentoo na Athlonie XP 2000 MHz (2800+) i mam wrażenie, że kompilacja emerge -e system trwa dłużej, niż na samym laptopie... Laptop to tylko klient, distccd jest tylko na Athlonie. |
|
Back to top |
|
|
Mihashi Tux's lil' helper
Joined: 08 Apr 2005 Posts: 98 Location: Wroclaw, Poland
|
Posted: Mon Apr 25, 2005 2:29 pm Post subject: |
|
|
A ja jak na złość mam Durony 700, 950, 1100 i 1200. Poza tym jeszcze P133, K6-300 i K6-250 i Celka 350@500). No i służbowego Athlona 2200, z WinXP na jednej partycji (nie mam jak tam doinstalować Linuksa, a w cygwin się chyba bawić nie będę)
A już mi się widziały Xy w 20 minut po zaprzęgnięciu 4 Duronów do roboty...
BTW Fajnie mam w domu, nie? Jak w laboratorium Dextera... W moim pokoju do pracy (3 durony i k6) temperatura bez ogrzewania zimą nie spada poniżej 20 stopni _________________ Mihashi |
|
Back to top |
|
|
lazy_bum l33t
Joined: 16 Feb 2005 Posts: 691
|
Posted: Wed Apr 27, 2005 11:11 am Post subject: |
|
|
Mihashi wrote: | No i służbowego Athlona 2200, z WinXP na jednej partycji (nie mam jak tam doinstalować Linuksa, a w cygwin się chyba bawić nie będę) |
Partition Magic -> Resize Partition i stawiasz Gentoo od stage1. (-: |
|
Back to top |
|
|
Mihashi Tux's lil' helper
Joined: 08 Apr 2005 Posts: 98 Location: Wroclaw, Poland
|
Posted: Wed Apr 27, 2005 11:25 am Post subject: |
|
|
Niestety, mam zakaz zabawy partycjami Kiedyś mi siadło w trakcie repartycjonowania, (myślałem, że zasilacz jest włączony), coś tam poginęło i teraz mam zakaz _________________ Mihashi |
|
Back to top |
|
|
qermit Veteran
Joined: 02 Feb 2005 Posts: 1032
|
Posted: Wed Apr 27, 2005 4:39 pm Post subject: |
|
|
Mihashi wrote: | No i służbowego Athlona 2200, z WinXP na jednej partycji (nie mam jak tam doinstalować Linuksa, a w cygwin się chyba bawić nie będę) | To może Linux pod Windows -> CooperativeLinux <- bardzo ciekawy projekt. _________________ "A co ty masz w swoim LinuXie?" - Dr Qermit |
|
Back to top |
|
|
lazy_bum l33t
Joined: 16 Feb 2005 Posts: 691
|
Posted: Thu Apr 28, 2005 3:23 pm Post subject: |
|
|
Mihashi wrote: | Niestety, mam zakaz zabawy partycjami Kiedyś mi siadło w trakcie repartycjonowania, (myślałem, że zasilacz jest włączony), coś tam poginęło i teraz mam zakaz |
Czysty CD -> Nagrywrka -> Backup. (-:
Swoja droga to chyba zeszlismy z tematu. (-; Co do DISTCC to mialem nadzieje, ze to dziala troche inaczej... Dobrze, ze mam wiekszy rozrzut sprzetowy (MHz'owy) w domu.
Przy okazji samego DISTCC to jak sobie radzi np. PeCet odwalajacy ,czarna robote' za MACa? |
|
Back to top |
|
|
syndrom windziarza n00b
Joined: 04 Oct 2005 Posts: 1
|
Posted: Tue Oct 04, 2005 6:49 pm Post subject: |
|
|
przepraszam za archeologię, ale zwrócono mi na ten temat uwagę na innym forum więc wtrącam swoje 0.03 pln:
1. distcc jak wiadomo dystrybuuje zadania kompilacji na różne maszyny.
2. zwykle odbywa się to 'spod' procesu make, który bez parametrów wykonuje zadania szeregowo
3. z parametre -j n stara się zrównoleglić n zadań. tak więc dysponując większą ilość maszyn bądź procesorów można przyspieszyć proces budowania.
4. i tu uwaga: bardzo zależy to od konstrukcji makefile. jeśli makefile jest napisane źle (tzn. kolejne 'targety' zależą od siebie łańcuchowo) to opcja -j nic nam nie da.
5. jednak jeśli makefile jest napisane odpowiednio to stosując distcc można uzyskać znaczące przyspieszenie procesu budowania.
6. żeby nie być gołosłownym oto link do filmiku który jest zrzutem okna programu distccmon, który pokazuje obciążenie różnych maszyn oferujących budowanie przez distcc. kompilowane jest jądro linux 2.6.11 z flagą -j 4. całkowity czas kompilacji na trzech maszynach z procesorami celeron 1.7ghz, piv 2.0ghz oraz piv 2.6ghz wynosi coś koło 7 minut. jak widać z filmu żadna maszyna podczas budowania się nadmiernie nie nudzi
a oto obiecany link: distccmon |
|
Back to top |
|
|
|