Acties:
  • 0 Henk 'm!

  • zonderbloem
  • Registratie: September 2015
  • Laatst online: 27-07 21:21
Hoi Tweakers,

Ik zoek iemand die mij het verschil kan uitleggen tussen een threads en cores van een CPU. Ik heb zelf de E5-2620v4 processor in mijn server zitten. Volgens de Intel pagina zitten in deze processor 8 cores en 16 threads. Ik heb ook wel eens gehoord over de term vCPU. Betekent dit dat ik maximaal 8 vCPU's kan uitdelen aan virtuele machines?
Of kan ik (16 threads) 16x een vCPU uitdelen?

Acties:
  • 0 Henk 'm!

Verwijderd

Al eens 'hyperthreading' door google gehaald?

Acties:
  • +2 Henk 'm!

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Intel's processoren hebben vaak zogeheten Hyperthreading.
Met die techniek kan 1 CPU Core 2 Threads afhandelen. In essentie wordt die ene core effectief twee cores met een gedeeld cache geheugen en gedeelde databus.
Echter, dat werkt niet altijd.
De CPU Core bestaat uit een hele grote stapel van allerlei verschillende 'Execution Units', en hij grijpt er een aantal bij elkaar die hij nodig heeft voor de huidige opdracht. Is die opdracht heel complex, dan heeft hij heel veel Execution Units nodig voor één thread en blijft er niet voldoende over voor een tweede thread.

Om die reden geeft Hyperthreading geen boost die gelijkwaardig is aan een echte extra Core, maar meer ergens tussen 20 en 70%, afhankelijk van de het soort werk wat er gedaan wordt.


vCPU is weer een heel ander beestje.
In essentie is dat een vorm van TIme Division Multiplexing.
'De hoeveelheid opdrachten die de CPU kan verwerken in 1 seconde wordt verdeeld in stukjes.
Stel dat je 4 vCPU's wil hebben, dan mag vCPU 1 de eerste 0,25 seconde de fysieke CPU gebruiken en gaat dan op pauze.
Dan is vCPU 2 aan de beurt, die ook weer 0,25seconde van de fysieke CPU gebruikt en dan op pauze gaat. En zo voorts tot ze allemaal zijn geweest, en dan begint het verhaal weer opnieuw.

Op die manier kan je de rekenkracht van je systeem verdelen over meerdere VM's, ookal heb je maar één singlecore CPU, en denken ze allemaal dat ze hun eigen CPU hebben.

Uiteraard is dat vrij simplistisch uitgelegd en zijn daar wel geavanceerdere technieken voor, maar effectief kan je dus CPU rekenkracht herverdelen in virtuele CPU's, onafhankelijk van hoeveel cores of CPU's er daadwerkelijk aanwezig zijn. Je zit dan dus niet vast aan het statisch toewijzen van een fysieke CPU of Core aan een VM.

[ Voor 10% gewijzigd door McKaamos op 03-09-2016 09:39 ]

Iemand een Tina2 in de aanbieding?


Acties:
  • 0 Henk 'm!

  • SG
  • Registratie: Januari 2001
  • Laatst online: 09-09 18:17

SG

SG surft naar info hardewaren

Moderne Core zijn out of order. En kunnen dus onafhankelijke instruktie in ander volgorde afhandelen. Dat is omdat door afhankeljk heden of wachten en of excecutie duur ander de pijp wordt opgehouden. Een extentie daarop is hyperthreading. Als je toch out of order bezig bent en de code mix niet zo out of order wilt en dus te vaak rxecutie units idle zijn kunnen ze met andere thread bezig zijn.
Er zijn ook niet x86 CPU die 4 threads per core kunnen.

Maar er is ook keer zijde aan. Als thread 1 goed de executie units gebruikt dan blijft er weinig over voor thread 2 en Hyperthreading geeft ook wat overhead en kan het dus ook slechter dan 1 core presteren.
Met de tijd zijn er extra veel executie units in core gekomen dus deze situatie kan mindervaak voorkomen . Maar bij eerste HT Cpu van intel hadden deze isue. OS detecteerde dat en disablde SMP. Nu met multicores wordt SMP niet disabled.
Tja als16 cores 32 thread een hit geven zal SMP disablen een extreme hit geven.
In princiepe spreekt men van logical en virtual cores slimme OS verdelen de threads. Eerst over de real cores logical en dan pas virtuele HT.
Dus eerst 1 thread voor alle cores en dan 2 er bij.
Op game console is thread beheer in dev handen op windows OS shedular en daar heb je beperkte invloed op.

X399 Taichi; ThreadRipper 1950X; 32GB; VEGA 56; BenQ 32" 1440P | Gigbyte; Phenom X4 965; 8GB; Samsung 120hz 3D 27" | W2012SER2; i5 quadcore | Mac mini 2014 | ATV 4g | ATV 4K