Cluster bauen

Hallo!
Folgendes: Ich möchte für eine Fachbereichsarbeit (eine Arbeit für die Matura, für alle die das nicht kennen:Abi :smile: ein Cluster mit Open Source Software aufbauen. Es stehen dafür an die 30 PC`s zur Verfügung, die sternförmig mit einem Cisco Catalyst 4006 verbunden sind. Also ein ganzer EDV Raum der Schule. bei der Matura selbst müsste ich das System dann live anhand von nur 2 oder 3 Rechnern präsentieren, also sollte es relativ einfach umzulegen sein. Auf diese Rechner habe ich natürlich vorher keinen Zugriff. Nun hab ich dazu einige fragen…

  1. Welches Betriebssystem? Am liebsten wäre mir ein Linux/Unix Life System von der CD. Habe bereits Erfahrungen mit FreeBSD gemaacht, also wäre das opti, aber ist das zu empfehlen?
  2. Wie kann ich alle Rechner von einer CD booten lassen? 30 CDs zu brennen ist wohl eher nicht die Lösung.
    3)Wie schlagt ihr vor könnte ich am besten die Vorteile dieses clusters präsentieren, nämlich so , dass es ein Laie versteht. Ich bräuchte also etwas das viel Rechenleistung erfordert und einen Vergleich zulässt, zB dass die benötigte Zeit sichtbar kürzer wird…

So weitere Fragen kommen nach den ersten Antworten.
mfg Alexander H.

Moien

  1. Welches Betriebssystem?

Wenn das Ding nur als Testcluster läuft kann dir das völlig wurscht sein. Ich persönlich würde für sowas auf das schon installierte System (windows ?) zurückgreifen.

Am liebsten wäre mir ein Linux/Unix
Life System von der CD. Habe bereits Erfahrungen mit FreeBSD
gemaacht, also wäre das opti, aber ist das zu empfehlen?

ja und nein: ein BSD oder Linux auf einer unbekannten, nur beschränkt testbaren Hardware zu installieren und sofort 100% Leistung erwarten ist so eine Sache. Eine exotische Netzwerkkarte, ein seltener SATA-Controller, ein BIOS das dich nicht von CD booten lässt und die Sache geht in die Hose.

OK, für einen Produktionscluster würd ich auch ein BSD nehmen. Aber für einen Test … bei dem die Jury meistens weniger Ahnung hat als der Prüfling … überhaupt … musst die eine exisitierende Clusterlib aufbauen oder darf´s was anderes sein ?

  1. Wie kann ich alle Rechner von einer CD booten lassen? 30
    CDs zu brennen ist wohl eher nicht die Lösung.

Fang an mit brennen.

Alternative wäre ein Boot-over-Ethernet. Aber alleine das Einrichten von sowas dauert meistens länger als das Brennen der CD´s.

3)Wie schlagt ihr vor könnte ich am besten die Vorteile dieses
clusters präsentieren, nämlich so , dass es ein Laie versteht.

Nimm was einfaches: Mandelbrot bei 1024x1024 Auflösung und zig-tausend Iternationen. Saubert programmiert in 4-5 Stunden, skaliert linear, realisierbar ohne irgendwelche Vorkenntnisse im Clusterbereich oder libs.

Wenn du dir richtig Arbeit machen willst: ein HA Cluster.

cu

Hallo!

Wenn das Ding nur als Testcluster läuft kann dir das völlig
wurscht sein. Ich persönlich würde für sowas auf das schon
installierte System (windows ?) zurückgreifen.

Auf den Pc`s ist sowohl Windows XP als auch Suse Linux 10.1

Eine exotische
Netzwerkkarte, ein seltener SATA-Controller, ein BIOS das dich
nicht von CD booten lässt und die Sache geht in die Hose.

Die Hardware ist auf allen 30 PC`s ident. Sie sind alle mit Level One Fast Ethernet Karten ausgerüstetn und sata ist noch kein Thema :smile:

Aber für einen Test … bei dem die Jury meistens weniger
Ahnung hat als der Prüfling …

Ich nehme an, dass ich sogar auf diesem Gebiet mehr Ahnung haben werde als mein Informatikprofessor, da er sich mit dem Thema noch kaum auseinandergesetzt hat.

überhaupt … musst die eine
exisitierende Clusterlib aufbauen oder darf´s was anderes sein
?

Alles was funktioniert und gut aussieht.

Alternative wäre ein Boot-over-Ethernet. Aber alleine das
Einrichten von sowas dauert meistens länger als das Brennen
der CD´s.

Jemand vor mir hat das zum Spaß mit dem Cluster auch schon mal probiert und er ist genau daran gescheitert sowie an der Verteilung der IP Adressen,da diese im EDV Raum per DHCP bezogen werden.Allerdings weiß ich nicht genau wo sein Problem lag, und er hats auch nicht geschafft es mit darzulegen:smile:

Nimm was einfaches: Mandelbrot bei 1024x1024 Auflösung und
zig-tausend Iternationen. Saubert programmiert in 4-5 Stunden,
skaliert linear, realisierbar ohne irgendwelche Vorkenntnisse
im Clusterbereich oder libs.

Ich hab aber auch keine Kenntnisse von Fraktalen :smile:

Wenn du dir richtig Arbeit machen willst: ein HA Cluster.

Darüber schreib ich und das wars, das wird mir zu heftig.
Danke für die Antworten
mfg Alexander H.

Hallo!

Hi,

Auf den Pc`s ist sowohl Windows XP als auch Suse Linux 10.1

Na dann… das Linux booten und

 # yast -i mpich

oder

 # yast -i lam

und dann hier weiter: http://www.verrall.demon.co.uk/mpipov/

Alternativ, falls Du keine zusaetzlichen Pakete auf „Deinem“ „Cluster“ installierden darfst wuerde ich ein nfs-rootfs bauen und die daraus booten lassen. Oder noch einfacher: 'ne mpich kann man auch in seinem $HOME bauen und benutzen.

Alternative wäre ein Boot-over-Ethernet. Aber alleine das
Einrichten von sowas dauert meistens länger als das Brennen
der CD´s.

Aber es skaliert besser.

Jemand vor mir hat das zum Spaß mit dem Cluster auch schon mal
probiert und er ist genau daran gescheitert sowie an der
Verteilung der IP Adressen,da diese im EDV Raum per DHCP
bezogen werden.Allerdings weiß ich nicht genau wo sein Problem
lag, und er hats auch nicht geschafft es mit darzulegen:smile:

Verstehe ich auch gerade nicht. Man muss natuerlich ein paar Optionen am DHCP-Server aendern, falls man PXE machen will. Alternativ kann man mit etherboot auch nur mit Disketten rumgehen und damit aus dem Netz booten.

Gruss vom Frank.

Moien

Wenn das Ding nur als Testcluster läuft kann dir das völlig
wurscht sein. Ich persönlich würde für sowas auf das schon
installierte System (windows ?) zurückgreifen.

Auf den Pc`s ist sowohl Windows XP als auch Suse Linux 10.1

OK, da läuft also schon ein Linux. Das ändert die Sache.

Aber für einen Test … bei dem die Jury meistens weniger
Ahnung hat als der Prüfling …

Ich nehme an, dass ich sogar auf diesem Gebiet mehr Ahnung
haben werde als mein Informatikprofessor, da er sich mit dem
Thema noch kaum auseinandergesetzt hat.

Eben. Selbst wenn du das ganze feinst ausbalanciert hinbekommst: er wird es nicht von einer normalen Lösung unterscheiden können.

überhaupt … musst die eine
exisitierende Clusterlib aufbauen oder darf´s was anderes sein
?

Alles was funktioniert und gut aussieht.

Clusterlibs sind meistens auf Performance getrimmte Monster. Sich da einzulesen und mit vertraut zu machen ist nicht so einfach. Das ist für viele der einfach verteilbaren Probleme ein Overkill.

Nimm was einfaches: Mandelbrot bei 1024x1024 Auflösung und
zig-tausend Iternationen. Saubert programmiert in 4-5 Stunden,
skaliert linear, realisierbar ohne irgendwelche Vorkenntnisse
im Clusterbereich oder libs.

Ich hab aber auch keine Kenntnisse von Fraktalen :smile:

Programmieren kannst du ?

http://en.wikipedia.org/wiki/Mandelbrot_set
Scroll runter bis „For Programmers“. Der Algo rechnet jeweils ein Pixel aus. Das Pixel hängt nicht von seinen Nachbarn ab. D.h. man kann jedem Clusterknoten einen Haufen Pixel geben und muss sich nicht über die Koordinierung oder Kommunikation der Knoten untereinander Gedanken machen. Wie lange an einem Pixel gerechnet werden muss kann man über maxiterations „einstellen“. Der Wert muss hoch sein, sonst macht das ganz keinen Sinn.

Bei vielen klassichen Clusteranwendungen (Wetter, Analyse von Gendaten, …) ist die Kommunikation unter den Knoten das grösste Problem. Die Knoten können immer nur kurz rechnen und müssen dann auf Resultate von anderen Knoten warten. Deshalb sind die Clusterlibs auch so komplex: sie versuchen diesen Datenfluss zu vereinfachen/beschleunigen. Das ist eine Wissenschaft für sich und für eine Matura ein bisschen komplex.

cu