Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

virtueller PC: Cores zusammenfassen möglich?

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

Moderator: Moderatoren

Antworten
Benutzeravatar
Roland Gentner
1000 working lines a day
1000 working lines a day
Beiträge: 816
Registriert: Fr, 24. Nov 2006 9:30
Wohnort: Neresheim
Kontaktdaten:

virtueller PC: Cores zusammenfassen möglich?

Beitrag von Roland Gentner » Mo, 19. Jun 2017 12:50

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?
Gruß
Roland

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10487
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von AUGE_OHR » Mo, 19. Jun 2017 16:19

Roland Gentner 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

Benutzeravatar
Roland Gentner
1000 working lines a day
1000 working lines a day
Beiträge: 816
Registriert: Fr, 24. Nov 2006 9:30
Wohnort: Neresheim
Kontaktdaten:

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von Roland Gentner » Mo, 19. Jun 2017 16:46

@ 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.
Gruß
Roland

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1910
Registriert: Fr, 08. Feb 2008 22:29

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von georg » Mo, 19. Jun 2017 17:25

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

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10487
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von AUGE_OHR » Mo, 19. Jun 2017 18:35

Roland Gentner hat geschrieben:
Mo, 19. Jun 2017 16:46
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.
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: 10487
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von AUGE_OHR » Mo, 19. Jun 2017 18:51

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

Benutzeravatar
Roland Gentner
1000 working lines a day
1000 working lines a day
Beiträge: 816
Registriert: Fr, 24. Nov 2006 9:30
Wohnort: Neresheim
Kontaktdaten:

Re: virtueller PC: Cores zusammenfassen möglich?

Beitrag von Roland Gentner » Di, 20. Jun 2017 1:16

@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 :-)
Gruß
Roland

Antworten