Skip to content

Meerdere kernprocessors: is meer altijd beter?

30 de juni de 2021
001 832453 5b9848d7c9e77c0050ec9b39

Het toevoegen van meerdere kernen aan een enkele processor 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

Sinds het begin van de jaren 2000 zijn er meerkernprocessors beschikbaar in personal computers. Ontwerpen met meerdere kernen losten het probleem op van processors die het plafond van hun fysieke beperkingen bereikten in termen van hun kloksnelheden en hoe effectief ze konden worden gekoeld en toch de nauwkeurigheid konden behouden. Door over te stappen op extra cores op een enkele processorchip, vermeden fabrikanten problemen met de kloksnelheden door de hoeveelheid gegevens die door de CPU kon worden verwerkt, effectief te vermenigvuldigen. 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 kernen, kunnen gelijktijdige multithreading-technologieën, zoals Intel’s Hyper-Threading, de virtuele kernen die het besturingssysteem ziet, verdubbelen.

Processen en threads

EEN werkwijze 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 op een schijnbaar gelijktijdige manier 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. Omdat servers de neiging hebben om veel gelijktijdige applicaties op een bepaald moment te draaien, werd 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 cores. 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 naar andere cores delegeren, 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 dat niet zijn.

Software-afhankelijkheid

Hoewel het concept van multiple-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-build. Een e-mailprogramma of webbrowser zal bijvoorbeeld waarschijnlijk niet zoveel voordelen zien aan 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 afzonderlijke 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 met een hogere basiskloksnelheid, aangezien de effectiviteit van de primaire thread de efficiëntie van multithreaded-prestaties bepaalt. Aan de andere kant zal een videocoderingsprogramma dat video transcodeert waarschijnlijk enorme voordelen hebben, aangezien individuele frameweergave kan worden doorgegeven aan verschillende kernen en vervolgens door de software in een enkele stream kan worden verzameld. 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 datathreads verpletteren dankzij de extra kernen, maar elk van die kernen zal op lagere snelheden werken vanwege de thermische beperkingen. Een dual-coreprocessor kan bijvoorbeeld basiskloksnelheden van 3,5 GHz voor elke processor ondersteunen, terwijl een quad-coreprocessor alleen op 3,0 GHz mag werken. Kijkend naar een enkele kern op elk van hen, is de dual-coreprocessor 14 procent sneller dan op de quad-core. 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 dit ondersteunen. 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 mening over Hoe snel heb ik een pc nodig? om een ​​beter idee te krijgen van welk type processor het beste bij uw computerbehoeften past.