View previous topic :: View next topic |
Author |
Message |
sl0815 n00b
Joined: 30 Mar 2003 Posts: 38 Location: Germany
|
Posted: Tue Aug 05, 2003 11:02 am Post subject: OpenMosix mit verschiedenen Rechnerarchitekturen |
|
|
Ich will einen OpenMosix Cluster bauen und habe ein Problem, welches ich nirgendwo in den Dokus finden kann. Ich habe 5 Rechner:
AMD Athlon XP 2200+
AMD Athlon 900
AMD Duron 700
AMD K6-2 500
AMD K6-2 450
Ich koennte auf alle Rechner ein Gentoo installieren nur weiss ich nicht welche Optimierungen ich einschalten sollte. Also -O3 ist klar aber wie sieht es z.B. mit dem -march=... flag aus? Wenn ein Prozess z.B. vom Athlon XP zum Duron (oder gar zum K6) migriert wird, koennte dieser Rechner doch dann unter Umstaenden den Prozess gar nicht ausfuehren, weil er ja die Maschinenbefehle des Athlon XP gar nicht kennt (die der gcc beim kompilieren benutzen sollte und damit auch in der binary des Programms stehen). Die selbe Frage stellt sich dann auch bei dem CHOST flag.
Muss ich nun, damit die Prozesse von jedem Rechner zu jedem Rechner migriert werden koennen, auf jedem Rechner die flags fuer den kleinsten Rechner setzen (also CHOST auf 586 und -march vielleicht sogar durch ein mcpu ersetzen)?
MfG |
|
Back to top |
|
|
Beforegod Bodhisattva
Joined: 10 Apr 2002 Posts: 1494 Location: Frankfurt/Main
|
Posted: Tue Aug 05, 2003 11:14 am Post subject: |
|
|
Also meines Wissens nach muss der Prozessor die jeweiligen Optionen nicht beim übersetzen wissen (das hat der GCC schon in seinen Bibliotheken), allerdings wird der Befehlssatz dann beim Ausführen verwendet. Also solange Du nur zum übersetzen Deiner Programme diesen Cluster verwendest ist alles in Ordnung (wie gesagt, ohne Gewähr!)
Cheers,
BeforeGod |
|
Back to top |
|
|
sl0815 n00b
Joined: 30 Mar 2003 Posts: 38 Location: Germany
|
Posted: Tue Aug 05, 2003 12:09 pm Post subject: |
|
|
Danke fuer die schnelle Antwort. Das uebersetzen bezog sich nur auf die Installation von Gentoo. Der Cluster selbst soll einfach aus 4 Rechnern (und einem Router) in einer WG bestehen und es sollten auch alle ganz normal daran arbeiten koennen.
Die Antwort bestaetig allerdings meine Befuerchtungen. Kann mir jemand sagen wie hoch der Performanceverlust ist, wenn ich auf allen Rechnern CHOST auf 586 setze und -march weglasse? Also ist es vielleicht besser OpenMosix wegzulassen und die Gentoos voll zu optimieren oder ist OpenMosix trotz der schlechten Optimierung besser?
MfG |
|
Back to top |
|
|
phixom Apprentice
Joined: 07 Jan 2003 Posts: 224
|
Posted: Thu Aug 07, 2003 10:03 am Post subject: |
|
|
Also march musst du nicht weglassen. Du musst nur den kleinsten gemeinsamen Nenner finden, in deinem Falle K6-2 450. March ist nix weiter als ein Makro, das durch entsprechende Parameter ersetz wird. D.h. du musst eigentlich nur auf die athlonspezifischen Erweiterungen verzichten. Ich glaube der K6-2 konnte schon 3dnow? Also wird der Performanceverlust nicht so gross sein, da die wenigsten Programme etwas mit z.b. sse anfangen können. Die meisten Distris sind oft nur mit -mcpu=i586 und -02 kompiliert. Evtl sollte bei dir sogar nen -march=k6-2 gehen, da die Athlonbefehlsmenge die Befehlsmenge von k6-2 beinhalten sollte.
Du solltest dich mal erkundigen, ob dies so ist. Ausserdem ist der k6-2 nicht schon ein i686 oder irre ich mich da? |
|
Back to top |
|
|
tacki Guru
Joined: 29 Jun 2002 Posts: 418 Location: Germany
|
Posted: Sat Aug 09, 2003 12:39 am Post subject: |
|
|
ich hab in den letzten tagen mit openmosix rumgespielt und empfehle dir DRINGEND openmosix nur mit dem <gcc2.95.3 zu verwenden. ansonsten haste arge probleme mit segfaults usw. ausserdem ist es extrem wichtig dass du überall den gleichen kernel verwendest (also gleiche version, nicht das gleiche image). ich hab leider zu spät gemerkt dass der 2er gcc verwendet werden sollte und hab dann versucht downzugraden.. bin jämmerlich an diversen gcc3 angepassten programmen gescheitert
mit den optimizations hatte ich keine probleme, da ich das glück hatte, 4 identische server zur verfügung gestellt zu bekommen.
also tip von mir: gleich bei der installation 2.95.3 installieren und den gcc3 erst garnicht auf den rechner lassen |
|
Back to top |
|
|
sl0815 n00b
Joined: 30 Mar 2003 Posts: 38 Location: Germany
|
Posted: Sat Aug 09, 2003 8:43 am Post subject: |
|
|
Also ich hatte auch schon mal mit openMosix rumgespielt (damals aber auf zwei identischen Rechnern) und hatte keine Probleme mit dem 3er gcc.
Zurück zu der Optimierungsgeschichte: Ich habe die letzten Tage ein wenig in anderen Foren rumgestöbert und auch eine Nachricht an die openMosix mailingliste geschrieben. Ergebnis:
1. Der AMD K6-2 gehört zur Familie der i586, weil ihm u.a. die "conditional move instruction" fehlt
2. Die CFLAGS sollten wohl in etwa so aussehen: -O3 -mcpu=i686
Das i686 erzeugt keinen Code, der nicht auf einem i386 läuft und ist wohl schon in Richtung Duron/Athlon (oder auch irgendwelche Intels) optimiert.
In einem Forum stand sogar man sollte -march=i586 -mcpu=i686 zusammen verwenden. Ob das geht weiß ich allerdings nicht.
MfG und Danke für Eure Hilfe |
|
Back to top |
|
|
|