# [OT] Alle Gentoo User kompilieren zusammen

## slick

Aufgrund der aufkommenden Diskussion unter https://forums.gentoo.org/viewtopic.php?t=141384 möchte ich hier mal dieses Thema mal extra zur Diskussion stellen.

Sinnvoll?

Praxisnah?

Realisierbar?

----------

## Carlo

Nein, da a) jeder ein anderes System hat und b) keiner dem anderen gegenüber vertrauenswürdig ist. Das Thema ist auch schon mehrfach durchgekaut worden.

Carlo

----------

## slick

Naja, nicht realisierbar in Bezug auf reines kompilieren würde ich ja noch verstehen. Aber ich denke mal wenn man eine Art p2p aufbaut, um kompilierte Files (incl. checksum) zu sharen, das ginge schon. Man müßte parallel dazu natürlich ein trustet-network haben damit nur vertrauenswürde User files einspielen können. Ich gehe mal davon aus das es viele sind, und schon haben wir eine Pool an fertigen Binaries für unterschiedlichste Plattformen. Jeder muss das Binarie mit einem Key signieren, und wer Mist macht dessen Key wird gesperrt. Also in meinem Kopf funktioniert das...  :Wink: 

Natürlich muss man die USE-Flags bedenken, aber es gibt ne Menge Pakete wo diese nicht benutzt werden, oder es nur 1 oder 2 gibt...

----------

## Gekko

Naja, wenn das in Deinem Kopf so gut funktioniert würde ich mal vorschlagen dass Du ein Testsystem mit sagen wir mal 4-5 Rechnern daheim aufbaust, und das ganze System entwickelst, testest und uns an Deinem Wissen teilhaben lässt  :Wink: 

Nee im Ernst: Wer auf sowas steht sollt sich vielleicht doch lieber eine Binärdistro installieren, da gibts die Binaries auf vielen Mirrors und überhaupt...... weis ich nicht was es bringen soll.

LG, Gekko

----------

## sputnik1969

 *slick wrote:*   

> Aufgrund der aufkommenden Diskussion unter https://forums.gentoo.org/viewtopic.php?t=141384 möchte ich hier mal dieses Thema mal extra zur Diskussion stellen.
> 
> Sinnvoll?
> 
> Praxisnah?
> ...

 

Sicher nicht, aus mehreren Gründen:

1) Bandbreite. Wenn ich den Source durch meinen DSL-Anschluß "quetsche" ist mein Rechner 5 mal schneller fertig, wenn er den Kram alleine macht, da ich (und die meisten anderen) nur 128kbit Upstream haben.

2) Kompatiblität: Es wäre nötig, das alle die selbe gcc-Version fahren, was jedoch nicht gewährleistet ist. Ein zusätzlicher Mechanismus wäre nötig um das zu gewährleisten

3) Sicherheit: Trau schau wem, mehr gibts da wohl nicht zu sagen  :Wink: 

4) Zuverlässigkeit: Selbst wenn ich dem Gegenüber trauen kann, das er sich nicht an meinen Sources vergreift, wer garantiert mit, das sein gcc nicht durch überladene Optimierungen kaputtoptimiert wurde und defekten Code sendet?

----------

## Carlo

 *slick wrote:*   

> Natürlich muss man die USE-Flags bedenken

 

Es sind nicht nur die use flags, sondern auch die compiler flags und unterschiedlichen Plattformen. Da gibt's schnell tausende von möglichen unterschiedlichen Kompilaten für ein einziges Ebuild. Wenn man sich auf einen mehr oder weniger gemeinsamen Nenner beschränkt, kann man gleich eine herkömliche Distro nehmen.

Carlo

----------

## Gekko

 *Carlo wrote:*   

>  *slick wrote:*   Natürlich muss man die USE-Flags bedenken 
> 
> Es sind nicht nur die use flags, sondern auch die compiler flags und unterschiedlichen Plattformen. Da gibt's schnell tausende von möglichen unterschiedlichen Kompilaten für ein einziges Ebuild. Wenn man sich auf einen mehr oder weniger gemeinsamen Nenner beschränkt, kann man gleich eine herkömliche Distro nehmen.
> 
> Carlo

 

Das meinte ich auch in meinem vorherigen Post hiezu....

Nur hast Du geschrieben was ich gedacht habe   :Laughing: 

LG, Gekko

----------

## slick

Versteht mich nicht falsch, aber bin sicher nicht der einzige der hier ein paar Gentoo-Boxen rumstehen hat welche sich zu 99% die Eier schauckeln  :Wink: . SetiAtHome und FoldingAtHome sind aus bekannten Gründen (siehe Link ganz oben) uninteressant. Aber irgentwie möchte ich den Strom nicht fürs Nix-Tun der Kisten bezahlen. (außer den paar kleinen Serverdiensten in LAN). Also wie kann ich die übrige Rechenzeit der Community zugute kommen lassen? (denn wenn man mal die "überschüssige" Leistung der Gentoo-User zusamenziehen könnte, wäre das 'ne gewaltige Ladung...)

----------

## toskala

du willst es grade nicht verstehen oder?

die probleme die sich aus einem verteilten rechnen ergeben sind mannigfaltig.

wie bereits erwähnt ist eines der hauptprobleme die faktorisierbarkeit der pakete.

das problem ist, das du nicht jedes paket verteilt kompilieren kannst, des weiteren würde ich einen teufel tun um pakete aus unvertrauten umgebungen zu bekommen und des weiteren einen teufel tun meine pakete auf vertrauensunwürdigen maschinen bauen lassen.

du brauchst einen unglaublichen overhead an verwaltung um den ganzen schotter sicherzustellen der daraus entsteht sowas durchzuziehen.

aber mein pers. tip an dich um strom zu sparen. "abschalten"... ist echt super

----------

## sputnik1969

 *slick wrote:*   

> Versteht mich nicht falsch, aber bin sicher nicht der einzige der hier ein paar Gentoo-Boxen rumstehen hat welche sich zu 99% die Eier schauckeln . SetiAtHome und FoldingAtHome sind aus bekannten Gründen (siehe Link ganz oben) uninteressant. Aber irgentwie möchte ich den Strom nicht fürs Nix-Tun der Kisten bezahlen. (außer den paar kleinen Serverdiensten in LAN). 

 

Dir ist bewusst, das der Rechner wenn er ein paar Serverdienste im LAN erledigt in etwas 75-85% des Stroms verbraucht, den er verbrauchen würde wenn zusätzlich Seti@Home läuft?? Denn das Mainboard, die CPU, die Disks und der ganze andere Kram schalten sich ja bei "Leerlauf" nicht wirklich ab sondern fressen weiterhin Strom...und nicht zu wenig wenn man die Leckströme mal mit einrechnet...Und die zusätzlichen 15-25W/h, die er für Seti "verschwendet" ist mir mein Hobby schon wert  :Wink: 

Ich jedenfalls lasse meinen Router nebenbei SETI@Home machen, wenn es etwas (für mich) sinnvolleres gäbe würde ich aber sicher umschalten..

Aber ein distcc übers netz ist für mich jedenfalls nicht sinnvoll, siehe meinen oberen Beitrag...

----------

## slick

 *Quote:*   

> du willst es grade nicht verstehen oder? 

 

Doch, habs verstanden. Muss ich die Frage umformulieren:

Gibt es irgendetwas außer Seti. und Folding. was ich laufen lassen kann um irgentjemand (bevorzugt Open-Source-Bewegungen) zu unterstützen?

 *Quote:*   

> Dir ist bewusst, das der Rechner wenn er ein paar Serverdienste im LAN erledigt in etwas 75-85% des Stroms verbraucht, den er verbrauchen würde wenn zusätzlich Seti@Home läuft?? 

 

Ja

----------

## tacki

zetagrid?

----------

## sputnik1969

 *slick wrote:*   

>  *Quote:*   du willst es grade nicht verstehen oder?  
> 
> Doch, habs verstanden. Muss ich die Frage umformulieren:
> 
> Gibt es irgendetwas außer Seti. und Folding. was ich laufen lassen kann um irgentjemand (bevorzugt Open-Source-Bewegungen) zu unterstützen?
> ...

 

Meines Wissens: NEIN

Davon abgesehen kann so ein Projekt mit OpenSource nicht richtig funktionieren, denn jeder kann an dem Source rumspielen. Das ist zwar Prinzipiell nicht schlecht, aber bedeutet auch, das man sich auf die Ergebnisse nicht verlassen kann, es reicht schon, wenn ich das Projekt mit einem alten GCC und P4-Optimierung compiliere um Müllergebnisse zu erzeugen. Und da man fehlerhafte Ergebnisse bei "nichtüberprüftbaren" Programmen nicht einfach aussortieren kann (wie denn auch? Mit MD5-Summe??? Kaum, selbst das kann ich manipulieren, wenn ich den Source habe) wär so ein Projekt quasi sofort zum scheitern verurteilt, eine "korrupte" Person reicht aus um das Projekt zu sabotieren...

----------

## mikkk

 *Quote:*   

> 
> 
> 1) Bandbreite. Wenn ich den Source durch meinen DSL-Anschluß "quetsche" ist mein Rechner 5 mal schneller fertig, wenn er den Kram alleine macht, da ich (und die meisten anderen) nur 128kbit Upstream haben. 
> 
> 

 

Ich hab's mal ausprobiert und kann das leider nur bestätigen  :Sad: :

Ich hab an der Uni einen kleinen distcc-Cluster aus vier Pentium4 3000 gebastelt (man muss dafür zum glück ja nicht root sein  :Wink: ). Dann hab ich versucht per DSL (768/128) das Kompilieren auf meinem Athlon 900 per Internet zu beschleunigen. Und tatsächlich waren die fünf rechner zusammen *wesentlich* langsamer als mein alter Athlon alleine!

Ich denke mal, dass es nicht nur an der Bandbreite liegt (die Leitung war in beide Richtungen nie komplett ausgelastet). Vor allem lange Response-Zeiten im Internet machen hier Probleme (und die sind wichtig, wenn man kleine Datenmengen schnell übertragen will).

Deshalb macht verteiltes Übersetzen ausserhalb von LANs IMHO keinen Sinn.

mikkk

----------

## sputnik1969

 *mikkk wrote:*   

>  *Quote:*   
> 
> 1) Bandbreite. Wenn ich den Source durch meinen DSL-Anschluß "quetsche" ist mein Rechner 5 mal schneller fertig, wenn er den Kram alleine macht, da ich (und die meisten anderen) nur 128kbit Upstream haben. 
> 
>  
> ...

 

Ich habe es mal im LAN mit 10MBit probiert und dabei erfahren dürfen, das selbst das nicht das Gelbe vom Ei ist. Zumindest war das kompilieren auf meinem Notebook (P166) subjektiv nicht wirklich schneller, obwohl mein XP1900+ mitkompiliert hat... Eher meistens mitgewartet hat würde ich sagen  :Wink: 

----------

## mikkk

 *Quote:*   

> 
> 
> Eher meistens mitgewartet hat würde ich sagen 
> 
> 

 

So eine Erfahrung hab ich mit einem PentiumPro 200 auch mal gemacht. Für distcc scheint man neben einer flotten Leitung auch eine Mindestleistung des Client-Rechners (damit meine ich den Rechner, auf dem das Übersetzen gestartet wird) zu brauchen:

Wenn ich das richtig verstanden hab, wird ja nur der eigentliche Compilier-Vorgang verteilt. Präprozessor und Linker müssen immer auf dem Client laufen (von "./configure" und "tar xfj ..." mal ganz zu schweigen). Für alte Kisten ist das wohl schon zu viel...

Wenn Netzwerk und Rechenleistung stimmen, hab ich allerdings auch sehr gute Erfahrungen mit dem distcc gemacht. In meinem oben beschriebenen Cluster hab ich z.B. schon mal einen Kernel in ca. 90 Sekunden übersetzt. Das war dann allerdings in einem 100MBit-LAN und ohne "Bremsklötze" im Cluster  :Wink: .

mikkk

----------

## sputnik1969

 *mikkk wrote:*   

> 
> 
> Wenn Netzwerk und Rechenleistung stimmen, hab ich allerdings auch sehr gute Erfahrungen mit dem distcc gemacht. In meinem oben beschriebenen Cluster hab ich z.B. schon mal einen Kernel in ca. 90 Sekunden übersetzt. Das war dann allerdings in einem 100MBit-LAN und ohne "Bremsklötze" im Cluster .
> 
> 

 

Jupp... Wenn die Rechner "was taugen" lohnt sich die Sache schon, mein Duron 700 hat jedenfalls bei einer 100MBit-Anbindung von der Rechenleistung meines XP1900+ profitiert, das kompilieren ging eindeutig schneller...

----------

## slick

 *Quote:*   

> z.B. schon mal einen Kernel in ca. 90 Sekunden übersetzt

 

Blöde Frage, wie geht as distcc beim Kernel? Habe distcc eingerichtet und läuft auch bei emerge. Im PATH ist der path zu dictcc auch vor dem zum gcc. Und für den kernel reicht dann ein make -jX bzImage ? Hat aber anscheinend nicht gefunzt...

----------

## tacki

```
make modules modules_install bzImage CC=distcc -j5
```

(-j5 = 5 Threads gleichzeitig)

----------

## slick

wieder was dazugelernt  :Smile:  TNX

----------

## lutzlustig

 *tacki wrote:*   

> 
> 
> ```
> make modules modules_install bzImage CC=distcc -j5
> ```
> ...

 

Vorher noch:

export DISTCC_HOSTS="localhost host1 host2 host3 host4"

dann klappt auch mit den distcc-nachbarn.  :Smile: 

Und ccache emergen und in make.conf bei "features" nicht vergessen, beschleunigt die sache nochmal.

Ciao

----------

## spitzwegerich

 *slick wrote:*   

>  *Quote:*   du willst es grade nicht verstehen oder?  Gibt es irgendetwas außer Seti. und Folding. was ich laufen lassen kann um irgentjemand (bevorzugt Open-Source-Bewegungen) zu unterstützen?

 

Mir fällt spontan noch GIMPS (Great Internet Mersenne Prime Search) ein. Das hat zwar nicht direkt was mit Open Source zu tun, aber dafür gibts was zu gewinnen: Wer als erster eine Primzahl mit mehr als 10 Millionen Ziffern findet, kriegt von der EFF 100.000$. Ich geh mal davon aus dass davon die GIMPS-Leute auch was bekommen, aber für denjenigen der das glückliche Los (bzw. den glücklichen Exponenten) gezogen hat, fällt sicher auch ein Batzen ab.

EDIT:

Hab grad entdeckt, dass es genaue Auszahlungsregeln für diese GIMPS-Lotterie gibt.

----------

## SnorreDev

 *sputnik1969 wrote:*   

> Jupp... Wenn die Rechner "was taugen" lohnt sich die Sache schon, mein Duron 700 hat jedenfalls bei einer 100MBit-Anbindung von der Rechenleistung meines XP1900+ profitiert, das kompilieren ging eindeutig schneller...

 Geht mir so mit meinem K6-II / XP2000+ gespann.

Der K6-II hat noch nie so schnell ein Packet erstellt.

Allerdings wenn der Job von meinem Ahlon aus gestartet wird, pennt der oft einfach weg, weil der K6-II einfach lahm ist. Dann nehm distcc aus der make.conf am Athlon raus, bei richtig dicken Packeten, denn da kommt die Gurke ( mein Server ) nicht nach. Wird Zeit fuer meinen Opteron - dann kann der den 3. Distcc Server stellen  :Very Happy: .

----------

