Meerdere kernprocessors: is meer altijd beter?

Meerdere kernen aan een enkele toevoegen verwerker biedt aanzienlijke voordelen dankzij het multitasking-karakter van moderne besturingssystemen. Voor sommige doeleinden is er echter een praktische bovengrens aan het aantal kernen dat verbeteringen oplevert in verhouding tot de kosten om ze toe te voegen.

Vooruitgang in multi-coretechnologie

PAE-NX-SSE2-CPU-Windows
TobiasD / Pixabay

Multiple-core processors zijn beschikbaar in persoonlijke computers sinds het begin van de jaren 2000. Multi-core ontwerpen losten het probleem op van processors die het plafond van hun fysieke bereiken beperkingen in termen van hun kloksnelheden en hoe effectief ze kunnen worden gekoeld en toch onderhouden nauwkeurigheid. Door over te stappen op extra cores op een enkele processorchip, vermeden fabrikanten problemen met de kloksnelheden door de hoeveelheid gegevens die door de processor.

Toen ze oorspronkelijk werden uitgebracht, boden fabrikanten slechts twee kernen in een enkele CPU, maar nu zijn er opties voor vier, zes en zelfs 10 of meer. Naast het toevoegen van cores, kunnen gelijktijdige multithreading-technologieën, zoals Intel's Hyper-Threading, de virtuele cores verdubbelen die de

besturingssysteem ziet.

Processen en threads

EEN Verwerken is een specifieke taak, zoals een programma, dat op een computer wordt uitgevoerd. Een proces bestaat uit een of meer threads.

EEN draad is gewoon een enkele gegevensstroom van een programma die door de processor op de computer gaat. Elke toepassing genereert zijn eigen een of meerdere threads, afhankelijk van hoe deze wordt uitgevoerd. Zonder multitasking kan een single-coreprocessor slechts één thread tegelijk aan, dus het systeem schakelt snel tussen de threads om de gegevens schijnbaar gelijktijdig te verwerken.

Het voordeel van meerdere cores is dat het systeem meer dan één thread tegelijk kan verwerken. Elke core kan een aparte datastroom aan. Deze architectuur verhoogt de prestaties van een systeem waarop gelijktijdige toepassingen worden uitgevoerd aanzienlijk. Aangezien servers de neiging hebben om veel gelijktijdige applicaties tegelijkertijd te draaien, is de technologie oorspronkelijk ontwikkeld voor de zakelijke klant - maar naarmate personal computers complexer werden en multitasking toenam, profiteerden ook zij van het hebben van extra kernen.

Elk proces wordt echter bestuurd door een primaire thread die slechts één kern kan bezetten. De relatieve snelheid van een programma zoals een game of een video-renderer is dus moeilijk beperkt tot het vermogen van de kern die de primaire thread verbruikt. De primaire thread kan absoluut secundaire threads delegeren naar andere cores, maar een game wordt niet twee keer zo snel als je de cores verdubbelt. Het is dus niet ongebruikelijk voor een game om één kern (de primaire thread) volledig te benutten, maar slechts gedeeltelijk gebruik te maken van andere kernen voor secundaire threads. Geen enkele hoeveelheid kernverdubbeling gaat om het feit dat de primaire kern een snelheidsbegrenzer is voor uw applicatie, en apps die gevoelig zijn voor deze architectuur zullen beter presteren dan apps die zijn niet.

Software-afhankelijkheid

Hoewel het concept van multi-coreprocessors aantrekkelijk klinkt, is er een belangrijk voorbehoud bij deze technologie. Om van de echte voordelen van de meerdere processors te kunnen genieten, moet de software die op de computer draait, worden geschreven om multithreading te ondersteunen. Zonder de software die een dergelijke functie ondersteunt, worden threads voornamelijk door een enkele kern geleid, waardoor de algehele efficiëntie van de computer afneemt. Immers, als het alleen op een enkele kern in een quad-coreprocessor kan draaien, kan het zelfs sneller zijn om het op een dual-coreprocessor met hogere basiskloksnelheden te draaien.

Alle belangrijke huidige besturingssystemen ondersteunen multithreading-mogelijkheden. Maar de multithreading moet ook in de applicatiesoftware worden geschreven. De ondersteuning voor multithreading in consumentensoftware is in de loop der jaren verbeterd, maar voor veel eenvoudige programma's, is multithreading-ondersteuning nog steeds niet geïmplementeerd vanwege de complexiteit van de software bouwen. Een e-mailprogramma of webbrowser zal bijvoorbeeld waarschijnlijk niet zoveel voordelen zien van multithreading als een grafisch of videobewerkingsprogramma, waarbij de computer complexe berekeningen verwerkt.

Een goed voorbeeld om deze tendens te verklaren is door naar een typisch computerspel te kijken. De meeste games hebben een vorm van rendering-engine nodig om te laten zien wat er in de game gebeurt. Bovendien bestuurt een soort kunstmatige intelligentie gebeurtenissen en personages in het spel. Met een single-core worden beide taken uitgevoerd door ertussen te schakelen. Deze aanpak is niet efficiënt. Als het systeem meerdere processors zou hebben, zouden de weergave en AI elk op een aparte kern kunnen draaien - een ideale situatie voor een meerkernige processor.

Is 8 > 4 > 2?

Verder gaan dan twee kernen biedt gemengde voordelen, aangezien het antwoord voor een bepaalde computerkoper afhangt van de software die hij of zij gewoonlijk gebruikt. Zo bieden veel klassieke games nog steeds weinig prestatieverschil tussen twee en vier cores. Zelfs moderne games, waarvan sommige naar verluidt acht cores nodig hebben of ondersteunen, presteren mogelijk niet beter dan een machine met zes cores en een hogere basiskloksnelheid, aangezien de effectiviteit van de primaire thread de efficiëntie van multithreaded bepaalt uitvoering.

Aan de andere kant zal een videocoderingsprogramma dat video transcodeert waarschijnlijk enorme voordelen zien als: individuele frameweergave kan worden doorgegeven aan verschillende kernen en vervolgens worden verzameld in een enkele stream door de software. Het hebben van acht cores zal dus nog voordeliger zijn dan het hebben van vier. In wezen heeft de primaire thread geen relatief rijke bronnen nodig; in plaats daarvan kan het het harde werk uitbesteden aan dochterthreads die de processorkernen maximaal benutten.

Kloksnelheden

Taakbeheer toont cpu-gebruik

Over het algemeen betekent een hogere kloksnelheid een snellere processor. Kloksnelheden worden vager als je kijkt naar snelheden ten opzichte van meerdere kernen, omdat processors meerdere gegevens verwerken threads dankzij de extra cores, maar elk van die cores zal op lagere snelheden draaien vanwege de thermische beperkingen.

Een dual-coreprocessor kan bijvoorbeeld basiskloksnelheden van 3,5 GHz voor elke processor ondersteunen, terwijl een quad-coreprocessor alleen draaien op 3,0 GHz. Gewoon kijkend naar een enkele kern op elk van hen, is de dual-coreprocessor 14 procent sneller dan op de quadcore. Dus als je een programma hebt dat alleen single-threaded is, is de dual-coreprocessor eigenlijk efficiënter. Maar nogmaals, als je software alle vier de processors kan gebruiken, dan zal de quad-coreprocessor eigenlijk ongeveer 70 procent sneller zijn dan die dual-coreprocessor.

conclusies

Voor het grootste deel is het hebben van een processor met een hoger aantal cores over het algemeen beter als uw software en typische gebruiksscenario's ondersteunen het. Voor het grootste deel zal een dual-core of quad-core processor meer dan genoeg vermogen hebben voor een eenvoudige computergebruiker. De meerderheid van de consumenten zal geen tastbare voordelen zien van verder gaan dan vier processorkernen, omdat zo weinig niet-gespecialiseerde software hiervan profiteert. De beste use case voor processors met een hoog aantal cores heeft betrekking op machines die complexe taken uitvoeren, zoals desktopvideobewerking, sommige vormen van high-end gaming of gecompliceerde wetenschappelijke en wiskundige programma's.

Bekijk onze gedachten over Hoe snel heb ik een pc nodig? om een ​​beter idee te krijgen van welk type processor het beste bij uw computerbehoeften past.