Performance Windows 7 auf XEN Server Farm

Um ein verstaendliches Beispiel zu bringen mit Pseudo-Code:

Code:
var position = bestimme_position();
var horizont = bestimmt_horizont(position.z,position.z.angle);
struct landschaft = berechne_landschaft(position,horizont);
animiere_landschaft(landschaft);

Dieser "Code" MUSS von oben nach unten der Reihe nach ausgefuehrt werden und kann somit hoechstens in den Funktionen aber nicht so wie er ist aufgeteilt werden - was beim Programmieren und nicht zur Laufzeit vorgenommen werden muesste.
Es ist naemlich nicht moeglich animiere_landschaft() also Autos, ... zu benutzen wenn die Landschaft (Strassen, Wald, Fluesse, ...) nicht bekannt ist. Diese ist aber wiederum erst bekannt wenn der Horizont und die Position bekannt sind wo wiederum der Horizont nicht vor der Hoehe und dem Sichtwinkel bekannt sein kann.

Zu deiner Serverwahl: zum angegeben Preis habe ich nur diesen gefunden:
Link
Die CPU bringt 497 Punkte im CPUBenchmark.
Die Intel i7 970 (zirka 500Euro) ist mit 10,021 Punkten gelistet und die billigere i7 2600K mit 9,266 Punkten.

Wenn man rein rechnerisch davon ausgehen wuerde dass es geht und ein Overhead von nur 10% besteht muesstest du 23 entsprechende Systeme aufsetzen um die Leistung einer einzelnen i7 970 zu erhalten; du waerst also bei einem Gesamtpreis von 2047 Euro fuer dein Cluster aus veralteten Machinen waehrend die gleiche Leistung im Neuwert zirka 1/3 kostet.
 
Den mehrfach höheren Energieverbrauch und Platzbedarf sollte man auch nicht unterschätzen.

Heutzutage kann man schlicht 3D Berechnungen nicht mehr mit vertretbarem Aufwnad auf CPUs ausführen lassen.

Du kannst gerne auf EINER Maschine mehrere Grafikkarten zusammenschalten, das geht sogar. Mehrere schwache Grafikkarten haben jedoch gegenüber einer starken Grafikkarte immer einen Performancenachteil und höheren Energieverbrauch und höhere Abwärmeproduktion.

Es gibt schon einen Grund, warum "Gameboliden" so aufgebaut sind wie sie sind. Und 2000€ braucht man heute wirklich nicht mehr für einen ordentlichen Spielerechner. Mit 1000-1200€ kommt man schon sehr weit.
 
@d4f Danke für das verständliche Beispiel.
Wir virtualisieren mit heutigen Hypervisoren mehrere Systeme auf einer Blechkiste, warum also nicht andersrum? Ein Host auf mehreren Blechkisten. Geht sicher gegen den Trend ( Energie Abwärme ) aber es müßte machbar sein. Mir ist klar das ich durch das Zerlegen der Programmstücke einen Leistungsverlust haben werde und nochmal wenn diese wieder synchronisiert werden muss, doch denke ich dabei an max. 20 % Overhead pro Maschine.
Der RX300 S1 ist zu schwach, der S2 ist ein 64bit XEON bis 3,2GHz und davon zwei. Ok, wer etwas mehr Geld investieren möchte, kann ja etwas aktuellere Gebrauchte nehmen, z.B. eine F&S S3 oder DELL...teilweise mit Quadcore.
Ob nun 2 aktuelle Quadro Fromagi oder 4 von meinen erdachten, spielt am Ende doch keine Rolle, es geht um die nahtlose Fusion der Geräte und das für alltäglichen Gebrauch wie eben MS FS 2010 oder einem 3D Spiel.
Ist es denn wirklich ein solches Problem einzelne Threads zu unterteilen, auf Knoten zu verteilen und wieder zu synchronisieren?
Wenn das vor 2 Jahren möglich war
http://www.heise.de/open/meldung/Linux-Flugsimulator-fuer-die-australischen-Streitkraefte-753837.html
geht heute noch viel mehr...für viel weniger...:cool:
 
sve, vielleicht kommst du von deiner Idee mal ein Stück weg und überlegst dir erstmal was wir hier schreiben. Denn scheinbar hast du rein gar nichts davon verstanden. :rolleyes:

Bei dem Flugsimulator kommen 2 Sachen zusammen:
  1. Da wird das Bild in sich geteilt und über Bildschirme an den Cluster Nodes ausgebeben, siehe dazu den unteren Teil meines Beitrages. Dadurch ergibt sich eine wesentlich größere Bildfläche, welche den hohen grafischen Anforderungen genügt. Das trifft für dich aber wohl kaum zu, ausser du willst dein Flugsimulator mit 20 Bildschirmen betreiben.
  2. Wird dort nicht irgendein Flugsimulator verwendet, sondern ein speziell für diesen Fall entwickelter. Siehe dazu d4f's Beispiel.

Klar ist sowas heute immer noch möglich und wird auch eingesetzt. Aber eben mit Software die speziell für diesen einen Zweck entwickelt wurde. Das ist keine Software wie sie ein privater Anwender zu kaufen bekommt oder jemals bezahlen könnte.
 
sve, vielleicht kommst du von deiner Idee mal ein Stück weg und überlegst dir erstmal was wir hier schreiben. Denn scheinbar hast du rein gar nichts davon verstanden.
;)
he,he...ist schon ok, Ihr seit die Profis, deshalb bin ich hier...
hier noch ein Link als Bettlektüre für die Nacht an alle Interessierten...
http://www.kerrighed.org/wiki/index.php/Main_Page
schaut mal
dann genauer in die Liste hier
http://kerrighed.org/php/clusterslist.php
da wird virtualbox aufgeführt. Ja, ich weiß,stöhn, was soll das, noch ne Performance Bremse...ja, aber wenn ich nun in virtualbox ein MS OS installiere habe ich erstmal grob das was ich haben will ;)
Ist sicherlich dann noch ein weiter Weg bis zum Flugsimulator, aber ich kann ihn zumindest schonmal installieren...Gute Nacht...
 
Last edited by a moderator:
schaut mal dann genauer in die Liste hier http://kerrighed.org/php/clusterslist.php

Alle Virtualisierungsloesungen -wie auch VIrtualbox- erstellen pro virtueller CPU einen Prozess/Thread im Hostsystem wie bereits gesagt.
Wenn du nun 100 Hosts hast auf welchen 1000 vServer gehostet sind, so ist ueblicherweise immer eine Machine mehr ausgelastet als eine andere. Um dies aus zu gleichen und somit die moegliche Dichte sowie die Leistungsausschoepfung zu erhoehen wird durch solche SSI (Single System Image) der jeweilige Prozess auf andere Machinen geschoben und ist somit nicht unterschiedlich zu Live Migration.
(Ich beschreibe hier nicht das Setup des angegebenen Provider sondern eine uebliche vServer-Cluster Infrastruktur; dieser Provider kann es anders geloest haben)

Allerdings waere es -zumindest theoretisch- moeglich die verschiedenen vCPU-Prozesse des vServers auf verschiedenen Hostmachinen zu betreiben, ob dies allerdings praktikabel ist muesste man testen.
Zu beachten ist aber weiterhin dass dein Spiel nur maximal 2-3 Core wirklich benutzen kann; alle 23 weiteren sind unbrauchbar. Deine Leistung hielte sich somit mehr als nur in Grenzen.

NB: Du bist sicherlich nicht der Erste der sich entsprechende Gedanken gemacht hat, allerdings sterben SSI's vermehrt aus da eine sauberere Programmierung Leistung und Skalierbarkeit verbessert gegenueber einer "gehackten" Prozessverteilung.

Wenn du aber unbedingt mit Cluster experimentieren willst wuerde ich dir skalierbare Software vorschlagen statt eines kaum oder gar nicht praktikabelen Experimentes. Wenn du dir dann noch billig einen Cisco Switch auf eBay ersteigerst hast du somit im Netzinformatik-Bereich quasi "nebenbei" eine huebsche Erfahrungssammlung fuer Cluster.
 
Die ganze Diskussion hat mich allerdings auf eine Idee gebracht.
OpenVZ + SSI könnte eine interessante Kombination werden, weil die einzelnen Prozesse der VEs im HPC sichtbar wären.

Allerdings gibts wohl keinen Kernel der einen Patch für eine der unterschiedlichen SSI Lösungen und gleichzeitig den OpenVZ Patch drin hat.
Zum selbstbauen war ich nun zu faul. Vielleicht später mal. :)

Nach allen zusammengetragenen Theorien sollte das möglich sein. Falls jemand sowas schon praktisch ausprobiert hat, immer her mit den Infos. :)

Edit:
Das ist natürlich keine Lösung für das eigentliche Problem/Ziel von sve.
 
Testaufbau wie folgt:
1 PC mit kerrighed installiert ( natürlich ohne Cluster Tätigkeiten ) und Virtualbox. Dann eine Windows 7 Installation, patchen und Benchmark.
dann
2 PC wie oben mit Performance Clustering an, dann Benchmark in der VM
3 PC ...
4 PC ...
Da ich erst einen Synergy RX300 zur Verfügung habe, werde ich als zweiten PC einen Desktop nehmen und zuletzt mein Notebook anhängen. Ein "wilder" Cluster sozusagen...
Keine Ahnung ob ich kerrighed zum Laufen bekomme, insbesondere das Notebook macht mir da Sorgen....
Sobald Zeit, probiere und berichte ich ausführlich...wer schneller ist, darf gerne auch berichten...
Ich denke, so kommt man der Lösung zumindest etwas näher...oder auch nicht? :confused:

Hier nochmal der Link zur kerrighed Downloadseite,sogar mit einer Live CD ISO...
http://kerrighed.org/wiki/index.php/Download
 
Last edited by a moderator:
Alle derartigen Cluster setzen aber, wie man hier sehen kann, auf parallele Datenverarbeitung optimierte Software ein. Dann funktioniert die Geschichte und man kann mit einer (parallelisierbaren) Aufgabe alle Hosts auslasten.

Wenn Du etwas derartiges mit der richtigen Software ausprobieren willst, dann ist das sicher ein interessantes Projekt. Viel Spaß dann dabei.

Die ursprüngliche Idee hakt wie gesagt an gleich mehreren Punkten und ist somit nicht umsetzbar: Windows, DirectX, mehrere Hosts zu einer VM machen, nicht parallelisierbare Prozesse, all das verhindert eine Umsetzung.
 
Mich interessiert die Frage an diesem Punkt ob es aber dennoch moeglich ist die virtuellen CPU's, welche im Hostsystem ja als Prozess abgebildet sind, auf verschiedenen Hosts (nutzfaehig) zu betreiben. Einen direkten Anwendungszweck sehe ich zwar nicht aber trotzdem...

Was mir erst eben eingefallen ist und was deine Idee veraltete Technik zu nutzen ebenfalls kaputt macht; der Prozessor muss zwingend Paravirtualisierung (VT) unterstuetzen um Gastbetriebssysteme auf Basis von KVM laufen zu lassen. Andere Loesungen wie VmWare setzen es zwar nicht zwingend voraus jedoch ist der Leistungsverlust dann durch Emulierung enorm.
 
Was mir erst eben eingefallen ist und was deine Idee veraltete Technik zu nutzen ebenfalls kaputt macht; der Prozessor muss zwingend Paravirtualisierung (VT) unterstuetzen um Gastbetriebssysteme auf Basis von KVM laufen zu lassen. Andere Loesungen wie VmWare setzen es zwar nicht zwingend voraus jedoch ist der Leistungsverlust dann durch Emulierung enorm.

Huh, stimmt! Daran denkt man ja heute gar nicht mehr, weils eh drin ist. Aber die alten Kisten haben das ja noch gar nicht.
 
VT ist ein Thema. Ich habe bereits daran gedacht aber wen man bei der Hardware spart, ist VT nicht drin. Sollte natürlich für ein einfaches Experiment kein Beinbruch sein, will ja erstmal nur sehen ob überhaupt ein Steigerung erkennbar ist. Wenn, kann man immer noch optimieren.
kerrighed braucht nicht zwingend VT, alles andere kann ich bis dato nur vermuten...mir fehlt die Zeit, wie immer, aber kerrighed hat mein notebook bereits erfolgreich beherbergen können, morgen schau ich im Keller nach zusätzlicher Hardware.
 
Die Lizenz und Architektur von Windows 7 erlaubt maximal 2 CPUs, also vergiss Windows 7 für Dein Experiment.
Danke für den Hinweis Joe User, aber das war mir auch schon bekannt...Da ich aber hoffe, dass der Hypervisor die Hardware "verschleiert" könnte es zumindest funktionieren...
denn in den Lizenzrechten steht auch
Windows 7 was designed to work with today's multi-core processors. All 32-bit versions of Windows 7 can support up to 32 processor cores, while 64‑bit versions can support up to 256 processor cores.
Schade das hier im Forum alle sehr schnell sind mit der Aussage...vergiß es, dass geht nicht!...aber trotzdem vielen Dank für den Beitrag.;)
 
Lieber sve. Meinst Du nicht, dass Du mit Deiner letzten Aussage etwas ungerecht gegenüber den Helfern hier im Forum bist?

Wir haben uns hier in 35 Posts damit auseinandergesetzt was möglich ist und was nicht und WARUM Dein Vorhaben nicht gelingen wird / kann. Es hilft nichts, die Augen vor genannten Aspekten zu verschließen. Meinst Du nicht, dass es vielleicht auch sein könnte, dass die anderen Helfer Recht haben könnten?

Das einzige was Microsoft zu bieten hat, was sinnvoll mit mehreren Rechnern im Verbund arbeitet ist http://www.microsoft.com/hpc/en/us/product/cluster-computing.aspx . Schau Dir die Case Studies an und Du wirst erneut sehen, dass die SOFTWARE auf verteiltes Computing angepasst sein muss, das Betriebssystem alleine reicht nicht. Das ist auch bei MS HPC so. Zu jedem Zeitpunkt ist der Anwender-Software bewusst, dass mehrere Knoten bedient werden (müssen).

Ein beliebiges Spiel kann das alles nicht und DirectX ist wie gesagt dafür nicht ausgelegt. Und wie gesagt gibt es keine uns bekannte Lösung, die die Emulation eines Rechners aus mehreren unterstützt. So ist es nunmal und fertig.

Schau Dir wie gesagt SLI oder Crossfire an, das wird unterstützt und bringt bedeutend mehr als Softwarerendering. Softwarerendering ging vielleicht noch halbwegs vor 10-12 Jahren, heute ist es kein gangbarer Weg mehr, da die spezialisierten Grafikprozessoren schlicht gegenüber CPUs um mehrere Größenordnungen schneller sind.
 
sve, CPUs und Cores sind zwei vollkommen verschiedene Dinge, welche nicht miteinander verwechselt werden dürfen. Beim Virtualisieren werden CPUs simuliert und nicht Cores, desweiteren bedeutet jede einzelne Node eines Clusters automatisch mindestens eine weitere CPU.
Zusätzlich verbietet jede Windows Lizenz für Consumer die gleichzeitige Ausführung von Windows auf mehreren Computern, wovon auch Cluster betroffen sind. Vielleicht solltest Du die entsprechenden Lizenzen erstmal lesen und verstehen, bevor Du daran denkst, dagegen zu verstossen (ab jetzt so gar wissentlich und somit vorsätzlich). Solche Verstösse nimmt Microsoft zu Recht sehr ernst und verfolgt sie auch aktiv, was sehr teuer für Dich werden kann.

Auf die technischen Limits wurde ja bereits ausführlich genug eingegangen, die rechtlichen sind nun ebenfalls abgedeckt, also vergiss es einfach...
 
Vielen Dank Joe User für die rechtliche Beleuchtung meines Vorhabens. Die Unterschiede zwischen realen Prozessoren und Kernen sind bekannt, dennoch freu ich mich über Deine Erklärung, ich denke nicht nur ich, sondern auch für die anderen stillen Zuschauer, die fleißig dieses Thema auf 1500 Hits befördert haben. Das Interesse ist wohl da und wo Interesse besteht, sollte man weiter machen. Was Lizenzen betrifft, würde, Gesetz dem Fall ich setze meine Überlegungen auch tatsächlich um, eine vorhandene xp Lizenz zum Einsatz kommen, die in einer virtuellen Maschine installiert wird. Soweit ja doch alles legitim. Wie wir mittlerweile ja ausführlich besprochen haben, ist das Aufsetzen eines Betriebssystemes auf einem Cluster zur Performancesteigerung unmöglich. Wie definiert also Microsoft diese Einschränkung genauer? Generelles Installationsverbot auf Cluster? Bei Server 2008 R2 kann ich es absolut verstehen, aber wenn als Beispiel XP installiert wird, gibt es keine Vorteile...
Als Alternative kann immer noch ein Linux Derivat virtualisiert werden und damit Benchmarken...dann bin ich wohl rechtlich abgesichert bei meinem Experiment :rolleyes:
 
Wenn die Windows Lizenz zwei CPUs erlaubt, dann darf der Cluster aus maximal zwei Nodes mit jeweils maximal einer CPU bestehen.
Gleiches gilt auch beim Virtualisieren: Die VM darf nur mit maximal zwei virtuellen CPUs ausgestattet werden.
 
Back
Top