Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[PORTAGE] distcc - kompilacja przełączana, a nie równoległa
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish)
View previous topic :: View next topic  
Author Message
Mihashi
Tux's lil' helper
Tux's lil' helper


Joined: 08 Apr 2005
Posts: 98
Location: Wroclaw, Poland

PostPosted: Mon Apr 25, 2005 1:36 pm    Post subject: [PORTAGE] distcc - kompilacja przełączana, a nie równoleg Reply with quote

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
View user's profile Send private message
nelchael
Retired Dev
Retired Dev


Joined: 20 Mar 2004
Posts: 1948
Location: /dev/drzewo

PostPosted: Mon Apr 25, 2005 1:44 pm    Post subject: Reply with quote

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
View user's profile Send private message
Mihashi
Tux's lil' helper
Tux's lil' helper


Joined: 08 Apr 2005
Posts: 98
Location: Wroclaw, Poland

PostPosted: Mon Apr 25, 2005 1:46 pm    Post subject: Reply with quote

Próbowałem: pracuje znowu albo A, albo B (choć zadeklarowanej ilości procesów nie przekracza)
_________________
Mihashi
Back to top
View user's profile Send private message
nelchael
Retired Dev
Retired Dev


Joined: 20 Mar 2004
Posts: 1948
Location: /dev/drzewo

PostPosted: Mon Apr 25, 2005 1:47 pm    Post subject: Reply with quote

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
View user's profile Send private message
Mihashi
Tux's lil' helper
Tux's lil' helper


Joined: 08 Apr 2005
Posts: 98
Location: Wroclaw, Poland

PostPosted: Mon Apr 25, 2005 1:55 pm    Post subject: Reply with quote

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
View user's profile Send private message
nelchael
Retired Dev
Retired Dev


Joined: 20 Mar 2004
Posts: 1948
Location: /dev/drzewo

PostPosted: Mon Apr 25, 2005 1:58 pm    Post subject: Reply with quote

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
View user's profile Send private message
Mihashi
Tux's lil' helper
Tux's lil' helper


Joined: 08 Apr 2005
Posts: 98
Location: Wroclaw, Poland

PostPosted: Mon Apr 25, 2005 2:01 pm    Post subject: Reply with quote

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
View user's profile Send private message
nelchael
Retired Dev
Retired Dev


Joined: 20 Mar 2004
Posts: 1948
Location: /dev/drzewo

PostPosted: Mon Apr 25, 2005 2:06 pm    Post subject: Reply with quote

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
View user's profile Send private message
mbar
Veteran
Veteran


Joined: 19 Jan 2005
Posts: 1990
Location: Poland

PostPosted: Mon Apr 25, 2005 2:20 pm    Post subject: Reply with quote

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
View user's profile Send private message
Mihashi
Tux's lil' helper
Tux's lil' helper


Joined: 08 Apr 2005
Posts: 98
Location: Wroclaw, Poland

PostPosted: Mon Apr 25, 2005 2:29 pm    Post subject: Reply with quote

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
View user's profile Send private message
lazy_bum
l33t
l33t


Joined: 16 Feb 2005
Posts: 691

PostPosted: Wed Apr 27, 2005 11:11 am    Post subject: Reply with quote

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
View user's profile Send private message
Mihashi
Tux's lil' helper
Tux's lil' helper


Joined: 08 Apr 2005
Posts: 98
Location: Wroclaw, Poland

PostPosted: Wed Apr 27, 2005 11:25 am    Post subject: Reply with quote

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
View user's profile Send private message
qermit
Veteran
Veteran


Joined: 02 Feb 2005
Posts: 1032

PostPosted: Wed Apr 27, 2005 4:39 pm    Post subject: Reply with quote

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
View user's profile Send private message
lazy_bum
l33t
l33t


Joined: 16 Feb 2005
Posts: 691

PostPosted: Thu Apr 28, 2005 3:23 pm    Post subject: Reply with quote

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
View user's profile Send private message
syndrom windziarza
n00b
n00b


Joined: 04 Oct 2005
Posts: 1

PostPosted: Tue Oct 04, 2005 6:49 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum