virtueller PC: Cores zusammenfassen möglich?

Alles was nicht wirklich Programmierung ist, aber auch nicht Plaudereien im Raucherraum

Moderator: Moderatoren

Antworten
DelUser01

virtueller PC: Cores zusammenfassen möglich?

Beitrag von DelUser01 »

Hallo

um irgendwelche rechenintensive Programme die nur einen Kern nutzen schneller zu machen könnte es doch möglich sein, diese über einen virtuellen PC laufen zu lassen welcher in der Lage ist, seinerseits mehrere Cores anzusteuern, dem eigentlichen (End-)Programm aber nur einen (zusammengefassten) Kern vorzuschwindeln.
Das müsste die Rechenleistung des Userprogramms dann deutlich erhöhen.

Kann das VMWare, VirtualBox oder ein anderes Programm?
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von AUGE_OHR »

DelUser01 hat geschrieben: Mo, 19. Jun 2017 12:50 Kann das VMWare, VirtualBox oder ein anderes Programm?
Nein ...

Apps die mehrere CPU nutzen gibt es noch nicht viele was hauptsächlich daran liegt das die "Aufgabe verteilt" werden muss. Gerne würden Gamer die vielen Cores einer AMD Ryzen CPU nutzen aber auch in dem Gebiet gibt es nur wenige "Engine" die das nutzen können.

Xbase++ arbeitet IMMER nur mit 1 x CPU.
gruss by OHR
Jimmy
DelUser01

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von DelUser01 »

@ Jimmy
da hast Du natürlich Recht, die meisten Programme arbeiten nur mit einer CPU.
Genau deshalb bin ich ja am schauen, ob es bereits eine Virtualisierungs-Software gibt welche den 1-Core-Betrieb eines (beliebigen) Programms automatisch auf mehrere CPUs gleichzeitig verteilt und damit (viel) mehr Leistung bereitsteht.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von georg »

Hallo, Roland -


echtes Multithreading ist deshalb (zumindest erwarten wir das) schneller, weil die Arbeitslast aufgeteilt wird und dann an mehrere Prozessoren verteilt wird. Das setzt aber entsprechende Programmierung voraus, denn die meisten Programme sind in sich linear, und meist ist eine Anweisung abhängig vom Ergebnis der vorhergehenden Anweisung, so dass man diese nicht parallelisieren kann.

Wenn Du mehrere Kerne "zusammenfasst", erhältst Du dann aber nicht das erwartete Ergebnis: 2 Kerne von 3 GHz ergeben nicht einen Kern von 6 GHz, sondern eben wieder nur einen Kern von 3 GHz. Und ein Kern wird sich wohl "zu Tode" langweilen.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von AUGE_OHR »

DelUser01 hat geschrieben: Mo, 19. Jun 2017 16:46Genau deshalb bin ich ja am schauen, ob es bereits eine Virtualisierungs-Software gibt welche den 1-Core-Betrieb eines (beliebigen) Programms automatisch auf mehrere CPUs gleichzeitig verteilt und damit (viel) mehr Leistung bereitsteht.
ich würde es so sehen:

Step 1 : multi-Usern (Netzwerk)
Step 2 : multi-threading (auf einem PC)
Step 3 : multi-CPU (echt,virtuell,Netzwerk)

wie Georg schon sagte sind die meisten Apps ja linear aufgebaut wo schon Step 2 "nicht passt" da ich nur an "einer" Sache arbeite.

Step 2 "könnte" man z.b. verwenden beim importieren von Daten wobei die sich gegenseitig nicht beeinflussen sollten.

bei Step 3 käme es darauf an ob die sich Daten "teilen" (Zwischenergebnisse) denn dann bräuchte man einen gemeinsamen "Cache"

---

angenommen ich hätte 10 Workstation und lasse jeweils die App laufen die einen "Teil" bearbeiten kann und keine Info von den anderen 9 Workstation braucht ... die App "könnte" dann auch auf einem PC mit 10 virtuellen PCs arbeiten.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von AUGE_OHR »

es geht dir doch im Prinzip um die Ausnutzung der CPUs da Xbase++ nur auf einer CPU läuft.

man kann ja, mit SmpSetCPU() , die CPU umschalten. wenn man dann CMD.EXE aufruft läuft die auf "der" CPU

Code: Alles auswählen

PROCEDURE Main(cExe,cPara,nCPU)

   DEFAULT cExe  TO "CMD.EXE"
   DEFAULT cPara TO ""
   DEFAULT nCPU  TO 2

   IF SmpSetCPU(nCpu) = 0
      SmpSetCPU(1)
   ENDIF

   cEXE := "/C START "+cEXE
   RunShell(cPara,cExe,.T.)

   IF nCpu = SmpGetCPU()
      SmpSetCPU(1)
   ENDIF
RETURN
nun läuft dann (fast) jede App, die man unter "der" CMD starte, auf "der" CPU ... nur Xbase++ Apps nicht :banghead:
gruss by OHR
Jimmy
DelUser01

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von DelUser01 »

@Yimmy
Deine Antwort
AUGE_OHR hat geschrieben:Nein
ist das genau das was ich mit miner Frage einfach erneut hinterfragen/überprüfen möchte.
Könnte ja durchaus sein, dass ich eine bahnbrechende Neuerung verschlafen habe und nur ich mich mit elend langsamen Programmabläufen herumschlage...
Wenn nicht...IST ALLES GUT :-)
Antworten