Seite 1 von 2
Virtualisierung ? mehre Kerne für eine VM ? [Erledigt]
Verfasst: Sa 11. Apr 2015, 14:47
von matze79
Weiss jemand ob es Virtualisierer gibt die mehre CPUs nutzen können um einen einzigen Nachzubilden ?
um Ggf. eine Applikation zu Beschleunigen die nur 1 Thread unterstützt ?
Also die x86 Instructionen auf 8x Cores verteilt ausführt, von einer Virtuellen CPU.
Grüsse
Matthias
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 15:00
von Solarstorm
Ich denke das gibt es nicht und ist nicht moeglich. Lasse mich aber gerne eines besseren belehren.
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 15:02
von matze79
Warum soll das nicht möglich sein ?
Aktuelle Emulatoren tun das doch schon.
Z.b. PS2 Emulator.
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 15:10
von Solarstorm
Weil es schwer bis unmoeglich ist eine als singlethread programierte Anwendung aufzusplitten auf mehrere Threads.
Wenn die Anwendung das nicht kann, no chance.
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 15:12
von matze79
Es wird ja keine Anwendung aufgesplittet ;)
Es sollen CPU Instruction auf 8x Kernen parallel abgearbeitet werden, von einer Virtuellen Maschine die die Anwendung + Betriebsystem ausführt.
JAVA kann das ja auch, wundert mich nur das man für X86 nichts gleichartiges findet sondern nur für andere Architekturen.
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 15:15
von Solarstorm
Das geht ja eben nicht, wenn die Anwendung(oder deine Instructions) nicht dafuer ausgelegt sind aufgesplitted zu werden.
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 15:33
von Shockwav3
matze79 hat geschrieben:Warum soll das nicht möglich sein ?
Aktuelle Emulatoren tun das doch schon.
Z.b. PS2 Emulator.
Da wird pro Core aber eher ein Teilbereich vom Spezial-IC nachgebildet (Emotion Engine).
Zitat Wikipedia: "The Emotion Engine consists of eight separate "units", each performing a specific task, integrated onto the same die. These units are: a CPU core, two Vector Processing Units (VPU), a graphics interface (GIF), a 10 channel DMA unit, a memory controller, an Image Processing Unit (IPU) and an input output interface."
Also nichts was sich einfach auf x86 übertragen lässt.
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 16:14
von Dosenware
matze79 hat geschrieben:Es wird ja keine Anwendung aufgesplittet ;)
Öhm, doch... du willst dass die Befehle, die als einzelner Strang vorliegen, auf mehrere Prozessoren verteilt werden -> geht nicht. Zwischen den Befehlen sind Abhängigkeiten die du nicht auf mehrere Prozessoren verteilen kannst:
z.b. Add AX,CX;CMP AX,BX;JGE End.
@End.
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 16:23
von matze79
Das heisst eben das man eine Art Prediction braucht die entscheidet was wo ausgeführt werden darf und was zusammenbleiben muss.
Ich hab tatsächlich sowas gefunden, allerdings für eine eigene Architektur...
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 16:35
von Dosenware
matze79 hat geschrieben:Das heisst eben das man eine Art Prediction braucht die entscheidet was wo ausgeführt werden darf und was zusammenbleiben muss.
Ich hab tatsächlich sowas gefunden, allerdings für eine eigene Architektur...
Problem: Der eine Pozessor weiß nicht was der andere macht und ein Abgleich der Daten, z.b. für die Sprungvorhersage, frisst Zeit.
Im Grunde genommen willst du ein Programm zur Laufzeit neu Compilieren...
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 16:41
von Hypnosekröte
Ähm, ein Prozessor hat nur einen Kern und soll dann einen Prozessor mit 8 Kernen emulieren?
Erhoffst du dir dadurch, dass die VM schneller wird oder habe ich da etwas falsch verstanden?
Hört sich für mich an wie dieser eine Suchbegriff "hochemulieren".
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 16:48
von matze79
Urgs... bitte lesen.
@Dosenware, ja bei x86 scheint das wohl nicht so einfach zu sein wie Gedacht.
Die Aufteilung endet wohl tatsächlich damit das es wohl langsamer wird weil man die Caches nicht mehr sinnvoll nutzen kann :/
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 16:48
von S+M
Hypnosekröte hat geschrieben:Ähm, ein Prozessor hat nur einen Kern und soll dann einen Prozessor mit 8 Kernen emulieren?
Umgekehrt
Und wie schon von anderen gepostet dürfte sich das mehr als schwierig gestalten.
Viele Programmierer kriegen es schon selbst nicht hin, ihr Programm auf mehrere CPU-Kerne vernünftig aufzusplitten, wäre zu schön, wenn es einfach so möglich wäre
Was erhoffst du dir dadurch?
Die Single-Thread-Leistung eines AMD-FX8xxx steigern?
(Worauf sonst sollte 8Kerne -> 1Kern abzielen)
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 16:52
von matze79
Einen Prozess der nur von einen Kern abgearbeitet werden indirekt mit mehren Kernen abarbeiten.
Es gibt schon solche Projekte, hab jetzt was von AMD gefunden (Eine Art umgedrehtes Hyperthreading in Hardware)
Früher oder später wird sowas schon kommen.
Re: Virtualisierung ? mehre Kerne für eine VM ?
Verfasst: Sa 11. Apr 2015, 16:56
von Shockwav3
matze79 hat geschrieben:Früher oder später wird sowas schon kommen.
Da bin ich aber gespannt, ob das vor meinem Lebensabend noch der Fall sein wird - wenn ich mir so anschaue wie Parallelisierung im Desktopbereich immer noch mit Vorsicht eingesetzt wird.
EDIT: Grade durch Zufall gefunden und für gut befunden:
http://imgur.com/gallery/EEdKeXN