PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 PCs = kleiner Supercomputer?



baumi_da_phreac
16.12.04, 13:41
Wollte mal wissen ob bei ich 2 PCs (siehe Sig, der Athlon 2000+ und der P4 2.66, 100Mbit Ethernet), nicht einfach die Rechenkraft 'zusammenlegen' kann?
Grosse Supercomputer werden ja auch so benutzt...

Mfg,
Baumi

hunter
16.12.04, 13:47
Das nennt man einen Cluster -> SuFu, Google (eher Google)

Die Frage ist nur was du damit anstellen willst. Bringt ja nur was für große, kontrollierte Berechnungen. Z.B. Video Encoding oder die Berechnung von Pi.

klo8
16.12.04, 13:48
Es gibt das sog. Cross-Compiling, wo du mit mehreren Computern ein Programm kompilieren kannst. Ich kenn mich da aber nicht wirklich aus, afaik steht da was in der Gentoo-Doku.

hakker82
16.12.04, 13:53
Das Programm, das dir dabei hilft ist DistCC. Ein Kumpel von mir hat damit auf einem P233 Gentoo draufgemacht und hat die Rechenpower eines Ibook gentutzt.
Im Gentoo Forum gibt's auch noch einen anderen thread, in dem das über samba oder nfs gemacht wird. suche einfach nach oma + zoo + tageskarte, die wörter kommen in dem Text vor. (forums.gentoo.org)

irbaboon
16.12.04, 14:02
Wie mein vorgänger schon sagte kannst du mit DistCC ein "kompiliercluster" aufbauen alternativ wäre
da noch openmosix damit kannst du ein richtiges Cluster bauen ist aber auch komplizierter.

Kannst ja mal nach clusterknopix suchen....

RedEdison
16.12.04, 14:08
Cross-Compiling hat imho nichts damit zu tun, das heißt nur, z.B. auf einem x86-System ein Programm für Palm zu kompilieren.

Überhaupt wird es beim Zusammenschalten mehrerer Rechner so viele "Reibungsverluste" geben, daß ich nicht weiß, ob Du einen Geschwindigkeitsgewinn spürst. Schon Mehrprozessorsysteme bringen ja nicht selbstverständlich doppelte oder auch nur annähernd doppelte Leistung. Wenn beide Rechner an einem Thread arbeiten, müssen die Datensätze ja außerdem konsistent gehalten werden. Wenn Du das alles dann über Netzwerk übertragen willst, und sei es auch Gigabit, wird alles eher langsamer werden!

Wenn überhaupt, dann kann es funktionieren, wenn beide Rechner auf ihre eigenen Datensätze zugreifen können und sich nur wenig "absprechen" müssen.

Blackhawk
16.12.04, 14:15
Allerdings kann man mit 4096 Aldi-PCs schon einen netten Zeichentrickfilm rendern.

hunter
16.12.04, 14:25
Das geht auch mit nur einem Rechner. Wie lange das allerdings dauert ist die Frage. ;)

OGC
16.12.04, 14:27
Da brauchst du mind 3pcs weil dann eine rPc nur fürs booten des CLusters da ist!!!

Flightbase
16.12.04, 14:30
Überhaupt wird es beim Zusammenschalten mehrerer Rechner so viele "Reibungsverluste" geben, daß ich nicht weiß, ob Du einen Geschwindigkeitsgewinn spürst. Schon Mehrprozessorsysteme bringen ja nicht selbstverständlich doppelte oder auch nur annähernd doppelte Leistung. Wenn beide Rechner an einem Thread arbeiten, müssen die Datensätze ja außerdem konsistent gehalten werden. Wenn Du das alles dann über Netzwerk übertragen willst, und sei es auch Gigabit, wird alles eher langsamer werden!

Wenn überhaupt, dann kann es funktionieren, wenn beide Rechner auf ihre eigenen Datensätze zugreifen können und sich nur wenig "absprechen" müssen.

nix da.

http://www.linuxforen.de/forums/showpost.php?p=662291&postcount=2

so geht das ;)
das war nur nen 100mbit lan. man beachte den unterschied...
ich hab auch nen rechner mit 75mhz - da hab ich alles selbst kompiliert - dank distcc gings rasend schnell.

distcc ist in verbindung mit cachecc wahnsinnig genial. dummerweise eigenen sich einige makefiles gar nicht zum distributed compiling - aber die kann man ja anpassen, wenn man es braucht.

greets, Nik

baumi_da_phreac
16.12.04, 14:31
Also danke, ich probier grad ein wenig mom OpenMosix Kernel rum :-)

Mfg,

Baumi

irbaboon
16.12.04, 14:38
OpenMosix ist eine extrem Leistungsfähige Lösung und es lohnt auf jeden Fall.
Sollte nur mindestenz 100Mbit ethernet sein ....
Der einzigste Hacken ist meiner Meinung nach das man keinen 2.6er Kernel benutzen kann.
Aber das wird schon noch ....

HEMIcuda
16.12.04, 14:46
Da brauchst du mind 3pcs weil dann eine rPc nur fürs booten des CLusters da ist!!!
Schwachsinn.

'cuda

RedEdison
16.12.04, 14:56
@Flightbase:

in der Tat beeindruckend. Ich frage mich nur, welche Strategie dahintersteckt(e), die Aufgaben auf mehrere Rechner zu verteilen. Steckt diese Intelligenz im Kernel? Und wie sieht es mit Applikationen wie z.B. einer Windows-Emulation aus? Worauf ich hinaus will: müssen die Programme nicht speziell für den Betrieb auf mehreren Rechnern angepaßt sein!?!

Ich habe mich dem Thema mal von der Hardwareseite genähert: Gemeinsamer Speicher oder verteilter Speicher? Schreib- Leserechte der CPUs in fremdem Speicher? Write-Through oder Copy-Back? Snoopy Cache? "Dirty" und "Valid"-Flags? Synchronisation und Datenkonsistenz?
Es ist nun mal so, daß die Übertragungsrate zwischen Prozessor (also den Registern) und L1-Cache mehrere GByte/s hoch ist und sein muß. Wenn ich die Prozessorregister, also das Ergebnis der einen Berechnung, über Netzwerk zu einer anderen CPU schicken und dann wiederum auf deren Ergebnis warten muß - sorry, da muß mindestens die Software mitspielen und die Prozesse sinnvoll verteilen, sonst kann das nichts werden. Und über die Software hat baumi_da_phreac ja noch nichts verlauten lassen...

irbaboon
16.12.04, 15:19
@Flightbase:

in der Tat beeindruckend. Ich frage mich nur, welche Strategie dahintersteckt(e), die Aufgaben auf mehrere Rechner zu verteilen. Steckt diese Intelligenz im Kernel? Und wie sieht es mit Applikationen wie z.B. einer Windows-Emulation aus? Worauf ich hinaus will: müssen die Programme nicht speziell für den Betrieb auf mehreren Rechnern angepaßt sein!?!

Ich habe mich dem Thema mal von der Hardwareseite genähert: Gemeinsamer Speicher oder verteilter Speicher? Schreib- Leserechte der CPUs in fremdem Speicher? Write-Through oder Copy-Back? Snoopy Cache? "Dirty" und "Valid"-Flags? Synchronisation und Datenkonsistenz?
Es ist nun mal so, daß die Übertragungsrate zwischen Prozessor (also den Registern) und L1-Cache mehrere GByte/s hoch ist und sein muß. Wenn ich die Prozessorregister, also das Ergebnis der einen Berechnung, über Netzwerk zu einer anderen CPU schicken und dann wiederum auf deren Ergebnis warten muß - sorry, da muß mindestens die Software mitspielen und die Prozesse sinnvoll verteilen, sonst kann das nichts werden. Und über die Software hat baumi_da_phreac ja noch nichts verlauten lassen...

Das alles sind probleme auf die spezielle software wie z.b.: openmosix eingeht und versucht mehr oder weniger erfolgreiche lösungen zu finden... und natürlich überträgt eine cluster lösung die über tcp/ip arbeitet nicht die daten aus dem cache .... schau mal auf openmosix.org da werden alle deine Fragen beantwortet

baumi_da_phreac
16.12.04, 15:24
Schwachsinn.

'cuda


Bei ClusterKnoppix stimmt das schon, laut Seite (nich böse sein wenn ich mich irre :-) )

Ich mach das ja eh nich wegen der Performance, sondern just4fun, weil mir sonst vl langweilig wär oder ich auf die Sinnlose Idee kommen könnte, für die Schule zu lernen oder zu Zoggn :-)

Baumi

RedEdison
16.12.04, 15:32
Das alles sind probleme auf die spezielle software wie z.b.: openmosix eingeht und versucht mehr oder weniger erfolgreiche lösungen zu finden... und natürlich überträgt eine cluster lösung die über tcp/ip arbeitet nicht die daten aus dem cache .... schau mal auf openmosix.org da werden alle deine Fragen beantwortet

Alles klar, finde ich ja faszinierend, daß Lösungen dafür entwickelt werden. Ich hatte, wie gesagt von der Hardware-Seite kommend, damals den Eindruck, als ob diese Hardware-Hindernisse für brauchbare Lösungen zu schwerwiegend wären. Danke für die Infos!

Boost3D
16.12.04, 15:33
@Flightbase:

in der Tat beeindruckend. Ich frage mich nur, welche Strategie dahintersteckt(e), die Aufgaben auf mehrere Rechner zu verteilen. Steckt diese Intelligenz im Kernel? Und wie sieht es mit Applikationen wie z.B. einer Windows-Emulation aus? Worauf ich hinaus will: müssen die Programme nicht speziell für den Betrieb auf mehreren Rechnern angepaßt sein!?!

Ich habe mich dem Thema mal von der Hardwareseite genähert: Gemeinsamer Speicher oder verteilter Speicher? Schreib- Leserechte der CPUs in fremdem Speicher? Write-Through oder Copy-Back? Snoopy Cache? "Dirty" und "Valid"-Flags? Synchronisation und Datenkonsistenz?
Es ist nun mal so, daß die Übertragungsrate zwischen Prozessor (also den Registern) und L1-Cache mehrere GByte/s hoch ist und sein muß. Wenn ich die Prozessorregister, also das Ergebnis der einen Berechnung, über Netzwerk zu einer anderen CPU schicken und dann wiederum auf deren Ergebnis warten muß - sorry, da muß mindestens die Software mitspielen und die Prozesse sinnvoll verteilen, sonst kann das nichts werden. Und über die Software hat baumi_da_phreac ja noch nichts verlauten lassen...

Ganz naiv würde ich einfach sagen, sie behandeln nicht das Selbe. Z.B. macht einer Modul xy, der Andere Modul za.
Das Ganze ist wohl aber noch um einiges komplizierter.

RedEdison
16.12.04, 15:41
Ganz naiv würde ich einfach sagen, sie behandeln nicht das Selbe. Z.B. macht einer Modul xy, der Andere Modul za.
Das Ganze ist wohl aber noch um einiges komplizierter.

Genau das würde ich auch erwarten, dann macht es natürlich Sinn. Aber vor weiteren Kommentaren will ich mich lieber erstmal in openmosix einlesen... ;-)))

geronet
16.12.04, 20:44
Ich hatte mal einen Cluster mit Mosix laufen, mit den Rechnern
1x 750 Mhz Workstation
1x 300 Mhz Cluster-Server
4x P133 Client
1x P120
1x P100
1x P60
1x 486

Die Clients wurden ohne Festplatte per Netzwerk vom Cluster-Server gebootet, alle hatten das /-Verzeichnis gemeinsam (auch der Server).
Auf der Workstation lief dann das Mosixview (hiess das so?) und die Programme migrierten alle lustig umher, man konnte ziemlich viele hungrige Prozesse starten und trotzdem blieb die Last niedrig. Auch z.B. der Opera war dann irgendwo auf dem Cluster verschwunden ;)

Ob das jetzt noch Sinn macht, bei einer 2,8 Ghz Workstation die anderen dranzuhängen? Wohl kaum.
Auf jeden Fall war es interessant das mal einzurichten, für fast jeden Client einen eigenen Kernel kompiliert, dann das NFS-Root-Filesystem so eingerichtet dass jeder seine Client die eigene Konfiguration erkennt, mit NFS-Swap etc...

Windi
31.12.04, 16:04
Hallo, *thread ausgrab*

wie funktioniert denn das openmosix Cluster mit MySQL bzw. Apache Instanzen? Funktioniert das da auch, oder eher schlecht?

HEMIcuda
31.12.04, 17:56
Was soll das bringen? Was Du willst, duerfte wohl eher unter die Kategorie "Load Balancer" fallen.

'cuda

Windi
31.12.04, 18:28
Hallo,

naja für MySQL gibts ja keinen richtigen Loadbalancer (außer für Lesezugriffe).
Da könnte ja Mosix Abhilfe schaffen.

frankpr
31.12.04, 21:19
Wollte mal wissen ob bei ich 2 PCs ... nicht einfach die Rechenkraft 'zusammenlegen' kann?
Grosse Supercomputer werden ja auch so benutzt...
Ja, dann hast Du zwar nur einen klitzekleinen Supercomputer, aber jeder hat mal klein angefangen.