# Cluster - Welche Lösung?

## 72_6f_6c_61_6e_64

Hallo,

ich hab ein Netbook das nicht gerade so schön zum kompilieren ist (1,66 GHz SingleCore)

Ich daheim 1 PC, 2 Laptops, 1 Netbook zusätzlich rumstehen (Eltern, Schwester, usw.)

Und auch beim meinem Vater im Büro stehen ungebrauchte Rechner, die ich nutzen kann, wenn ich dort bin.

Mein Anliegen:

Ich möchte die Rechenleistung meines Netbooks erhöhen. Wann oder Wo muss egal sein.

Ich hätte also gerne einen USB-Stick (und CDs) mit einem minimalen System, dass eine IP hat, oder per DHCP zugewiesen bekommt und meinem Netbook die Rechenleistung zur Verfügung stellt. 

Jetzt ist die Frage was nehm ich als Cluster?

Baut man das am besten selbst oder nimmt man was fertiges?

Ich hab Icecream am Netbook installiert (Weil angeblich leichter als DistCC, Habs mangels zweiter Linux-Installation mit laufendem IceCream nie getestet.)

Ich hab auch CHAOS OS gefunden. Das basiert auf OpenMosix, erkennt aber out of the box meine Netzwerkkarten nicht.

Ist Openmosix noch aktuell? Macht das überhaupt das was ich will?

Ich hätte im Endeffekt gerne dass mein Netbook arbeitet wie ein Gamer PC (Viel Leistung).

Ich hoffe das kommt so halbwegs rüber was ich vorhabe.

LG Roland

----------

## forrestfunk81

Also mit einem Gamer PC kannst dein Netbook auch mit verteiltem Kompilieren nicht vergleichen. Viele Aktionen werden trotzdem noch lokal ausgeführt, wie z.B. das Ermitteln der Pakete bei emerge -uDNva world oder Configure für die Pakete. Aber es bringt bei schwachen Maschinen schon gute Geschwindigkeitsvorteile.

Ich hatte hier schon Icecream und DistCC. Momentan kompilieren meine 3 Rechner mit DistCC. 

Man kann auch DistCC auf Windows-Rechnern mit cygwin laufen lassen (siehe HowTo). Ich hab das aber nie ausprobiert. 

Es sollte auch möglich sein auf den Windows Rechnern eine VM mit Gentoo oder ähnlichem zu installieren und diese VM dann als DistCC Host zu nutzen.

Von LiveCDs mit DistCC würd ich eher abraten, außer du willst nach jedem gcc-, glibc-, binutils- oder linux-headers Update eine neue CD mit diesen Paketen brennen bzw. bei den entsprechenden Versionen bleiben.

----------

## 72_6f_6c_61_6e_64

Was ist der Unterschied von DistCC/Icecream?

Ich würde USB-Sticks verwenden (CDs nur im Sonderfall, oder wenns viel sein soll.)

Was macht z. B. OpenMosix?

----------

## forrestfunk81

DistCC

Der Rechner auf dem die Jobs gestartet werden verteilt die Jobs an die Clients welche in /etc/distcc/hosts eingetragen sind. Anzahl der Jobs kann pro Rechner angegeben werden, Reihenfolge der Rechner wird berücksichtig. Auf jedem Rechner muss die gleiche Version der Toolchain Pakete (gcc, glibc, binutils oder linux-headers) installiert sein. Bei Crosscompiling (i386 <-> amd64 oder auch i386 <-> i686) muss die Toolchain für die Zielarchitektur auf den Rechnern installiert sein. Klingt alles kompliziert, aber es gibt gute Gentoo Howtos.

Icecream

Das ist von Suse und ist iirc ein Fork von DistCC. Es wird ein zentraler Server benutzt um die Aufgaben an die Clients zu verteilen. Hier baut man auf dem Rechner, auf welchem die Jobs gestartet werden eine Icecream Umgebung, die wird dann an die teilnehmenden Clients übertragen und dort werden die Jobs in so ner Art chroot Umgebung mit der übertragenen Umgebung gestartet. Es ist egal welche GCC Versionen auf den Rechnern installiert sind.

OpenMosix

Kenn ich nicht.

Ich hab keine Zeit- / Geschwindigkeits- Vergleiche zwischen DistCC und Icecream, da ich die mit längeren Pausen zwischendurch benutzt hab. Bei DistCC ging es mir auf die Nerven die Toolchain auf dem richtigen Stand zu halten. Darum bin ich auf Icecream gewechselt. Das hab ich dann (nach ca einem Jahr) zerschossen, habs auf die schnelle nicht mehr hinbekommen und habs erst mal liegen gelassen. Jetzt ist seit knapp zwei Jahren wieder DistCC mit crosscompiling im Einsatz und es funktioniert wunderbar (Versionen der Toolchain Pakete > installierte Version in package.mask und nach n paar Monaten mal auf allen Rechner updaten).

----------

## 72_6f_6c_61_6e_64

Aha,

distcc schaute mir anfangs zu kompliziert aus, deshalb hab ich vor längerer Zeit Icecream installiert.

Mit Icecream braucht ja nur die Icecream-Version gleich sein oder?

Ist das dann wieder mit einer LiveCD realisierbar (LiveUSB)?

Merkt man überhaupt einen Geschwindigkeitsunterschied zwischen LiveCD mit Icecream und Cyqwin mit Icecream?

LG Roland

----------

## Genone

 *72_6f_6c_61_6e_64 wrote:*   

> Was macht z. B. OpenMosix?

 

 *http://openmosix.sourceforge.net/ wrote:*   

> The openMosix Project has officially closed as of March 1, 2008.

 

Hätte dir aber eh nicht geholfen da auch dein Netbook u.a. einen Openmosix Kernel gebraucht hätte (und das wurde nie richtig auf 2.6 portiert).

----------

## 72_6f_6c_61_6e_64

 *Genone wrote:*   

> The openMosix Project has officially closed as of March 1,
> 
> 2008.

 

Aha, bin nicht auf die Idee gekommen dort zu schauen.

Aber ganz allgemein, was machen solche Cluster anders als Icecream/DistCC?

Ich kenn nur OpenMosix, daher die Fragestellung.

LG Roland

----------

## Genone

Naja, IceCream/DistCC sind halt speziell für gcc ausgelegt, während OpenMosix und Co eher generische Lösungen sind. Wobei ich mangels Erfahrung nicht weiss ob man die Anwendungen dafür nicht auch anpassen muss.

----------

## 72_6f_6c_61_6e_64

Also helfen Icecream und DistCC zum kompilieren.

Aber sonst nicht?

----------

## Genone

 *72_6f_6c_61_6e_64 wrote:*   

> Also helfen Icecream und DistCC zum kompilieren.
> 
> Aber sonst nicht?

 

Richtig. Sagt bei DistCC ja schon der Name.

----------

## forrestfunk81

 *72_6f_6c_61_6e_64 wrote:*   

> Also helfen Icecream und DistCC zum kompilieren.
> 
> Aber sonst nicht?

 

Richtig.

----------

## 72_6f_6c_61_6e_64

Und wie bekomm ich dann fuer alles hoehere Leistun?

Da brauch ich dan so ein Cluster?

Waehre Beowulf sowas?

Kann man Distcc und ein Cluster gleichzeitig haben?

Vor allem: Wenn ich z. B. einen Beowulf-cluster baue, wo installier ich distcc dann? am master, oder auch auf den nodes?

LG Roland

----------

## forrestfunk81

Lies doch die Beschreibung und FAQ auf der Beowulf Seite und vorallem Punkt 4 dort und du wirst merken, dass soetwas nicht für Desktop PCs und standard Desktop Anwendungen gedacht ist.

----------

## 72_6f_6c_61_6e_64

Aha, also ich kann mit DistCC auf dem Netbook akzeptabel schnell kompilieren. (sogar über ssh).

Sind Cluster also nur für Wissenschaft und Forschung?

Was für Cluster verwendet der Otto-Normal-Gentoo-User?

Unter anderem währe mir da DVD-Rippen und John-The-Ripper eingefallen, die am Netbook halt "länger" brauchen.

LG Roland

----------

## AmonAmarth

 *72_6f_6c_61_6e_64 wrote:*   

> Aha, also ich kann mit DistCC auf dem Netbook akzeptabel schnell kompilieren. (sogar über ssh).
> 
> Sind Cluster also nur für Wissenschaft und Forschung?
> 
> Was für Cluster verwendet der Otto-Normal-Gentoo-User?
> ...

 

ich glaub sowas was du suchst ist sowas wie MPI (zb. MPI patch für john: http://www.bindshell.net/tools/johntheripper). dvds rippen sollte sich auch parallelisieren lassen, allerdings vermute ich das I/O bei deinem dvd laufwerk der limitierende faktor ist. finde eine rip software oder bibliothek welche MPI unterstüzt und du kannst das einrichten.

allgemein kannst du nur anwendungen parallelisieren welche problemstellungen behandeln, die auch wirklich parallelisierbar sind (zb verschlüsseln, packen, etc). im wissenschaftlichen umfeld werden superrechner verwendet um problemstellungen, welche sich in kleinere probleme aufsplitten lassen, über "high performance cluster" (HPC) gelöst. was du nicht so einfach kannst ist jede beliebige (desktop) operation auf einem cluster parallelisieren.

mit openMOSIX hab ich auch noch nicht gearbeitet. bin aber dadurch auf das openPMI projekt gestoßen: http://en.wikipedia.org/wiki/LinuxPMI

klingt auf jedenfall sehr vielversprechend, aber auch sehr komplex. wenn ich mal zuviel zeit habe werde ich mir das wohl auch mal näher ansehen. dir muss aber klar sein, dass du dadurch keine "automagische" prozess parallelisierung erlangst. du verteilst lediglich prozesse auf verschiedenen rechnern und schaffst so eine art von "Transzendenz".

----------

## 72_6f_6c_61_6e_64

Klingt interessant, aber mit der Seite fang ich nicht viel an.

Im wikipedia schaut das aus wie OpenMosix.

Ich kenn mich aber allgemein mit sowas nicht aus, da wäre eine Doku ganz nützlich.

Ich glaub auf sowas wollte ich hinaus. Dass man nicht einfach so tun kann, als wäre es ein supercomputer, aber wenn zum Beispiel John the Ripper mit mpi läuft wäre das sicher effizienter.

Ich hab auch mal was von dem paket lam-mpi gelesen, was macht da?

LG Roland

----------

## Robmaster

Wenn du einen Cluster errichten möchtest, kann ich dir diese (http://www.mcsr.olemiss.edu/bookshelf/articles/how_to_build_a_cluster.html) Anleitung empfehlen.

----------

