Veelvuldige kernverwerkers: is meer altyd beter?

INHOUDSOPGAWE:

Veelvuldige kernverwerkers: is meer altyd beter?
Veelvuldige kernverwerkers: is meer altyd beter?
Anonim

Die byvoeging van verskeie kerns by 'n enkele verwerker bied aansienlike voordele danksy die multitasking-aard van moderne bedryfstelsels. Vir sommige doeleindes is daar egter 'n boonste praktiese limiet op hoeveel kerns verbeterings lewer relatief tot die koste om dit by te voeg.

Multi-Core Technology Advances

Image
Image

Meervoudige-kern-verwerkers is sedert die vroeë 2000's in persoonlike rekenaars beskikbaar. Multi-kern ontwerpe het die probleem aangespreek van verwerkers wat die plafon van hul fisiese beperkings tref in terme van hul klokspoed en hoe effektief hulle verkoel kan word en steeds akkuraatheid behou. Deur na ekstra kerns op 'n enkele verwerkerskyfie te beweeg, het vervaardigers probleme met die kloksnelhede vermy deur die hoeveelheid data wat deur die SVE hanteer kan word effektief te vermenigvuldig.

Toe hulle oorspronklik vrygestel is, het vervaardigers net twee kerns in 'n enkele SVE aangebied, maar nou is daar opsies vir vier, ses en selfs 10 of meer. Benewens die byvoeging van kerns, kan gelyktydige multithreading-tegnologieë – soos Intel se Hyper-Threading – die virtuele kerns wat die bedryfstelsel sien verdubbel.

prosesse en drade

'n Proses is 'n spesifieke taak, soos 'n program, wat op 'n rekenaar loop. 'n Proses bestaan uit een of meer drade.

'n Draad is bloot 'n enkele stroom data van 'n program wat deur die verwerker op die rekenaar gaan. Elke toepassing genereer sy eie een-of-veer drade, afhangende van hoe dit loop. Sonder multitasking kan 'n enkelkernverwerker net 'n enkele draad op 'n slag hanteer, sodat die stelsel vinnig tussen die drade wissel om die data op 'n oënskynlik gelyktydige manier te verwerk.

Die voordeel van veelvuldige kerns is dat die stelsel meer as een draad gelyktydig kan hanteer. Elke kern kan 'n aparte stroom data hanteer. Hierdie argitektuur verhoog aansienlik die werkverrigting van 'n stelsel wat gelyktydige toepassings laat loop. Aangesien bedieners geneig is om baie gelyktydige toepassings op 'n gegewe tydstip te laat loop, is die tegnologie oorspronklik vir die ondernemingskliënt ontwikkel - maar namate persoonlike rekenaars meer kompleks geword het en multitasking toegeneem het, het hulle ook baat gevind by ekstra kerns.

Elke proses word egter beheer deur 'n primêre draad wat slegs 'n enkele kern kan beslaan. Dus, die relatiewe spoed van 'n program soos 'n speletjie of 'n video-weergawe is moeilik beperk tot die vermoë van die kern wat die primêre draad verbruik. Die primêre draad kan absoluut sekondêre drade delegeer na ander kerne - maar 'n speletjie word nie twee keer so vinnig as jy die cores verdubbel nie. Dit is dus nie ongewoon vir 'n speletjie om een kern (die primêre draad) ten volle te maksimeer nie, maar sien slegs gedeeltelike gebruik van ander kerne vir sekondêre drade. Geen hoeveelheid kernverdubbeling kom om die feit dat die primêre kern 'n koersbeperker vir jou toepassing is nie, en programme wat sensitief is vir hierdie argitektuur sal beter presteer as programme wat dit nie doen nie.

sagtewareafhanklikheid

Terwyl die konsep van veelkernverwerkers aanloklik klink, is daar 'n groot voorbehoud vir hierdie tegnologie. Om die ware voordele van die veelvuldige verwerkers te geniet, moet die sagteware wat op die rekenaar loop geskryf word om multithreading te ondersteun. Sonder die sagteware wat so 'n kenmerk ondersteun, sal drade hoofsaaklik deur 'n enkele kern gevoer word en sodoende die rekenaar se algehele doeltreffendheid afneem. As dit immers net op 'n enkele kern in 'n vierkernverwerker kan werk, kan dit eintlik vinniger wees om dit op 'n dubbelkernverwerker met hoër basisklokspoed te laat loop.

Al die belangrikste huidige bedryfstelsels ondersteun multithreading-vermoë. Maar die multithreading moet ook in die toepassingsagteware geskryf word. Die ondersteuning vir multithreading in verbruikerssagteware het oor die jare verbeter, maar vir baie eenvoudige programme word multithreading-ondersteuning steeds nie geïmplementeer nie as gevolg van die kompleksiteit van die sagtewarebou. Byvoorbeeld, 'n e-posprogram of webblaaier sal waarskynlik nie groot voordele aan multithreading soveel sien as wat 'n grafiese of videoredigeringsprogram sou doen nie, waar die rekenaar komplekse berekeninge verwerk.

'n Goeie voorbeeld om hierdie neiging te verduidelik, is om na 'n tipiese rekenaarspeletjie te kyk. Die meeste speletjies vereis een of ander vorm van weergawe-enjin om te wys wat in die speletjie gebeur. Daarbenewens beheer 'n soort kunsmatige intelligensie gebeure en karakters in die speletjie. Met 'n enkelkern word albei take uitgevoer deur tussen hulle te wissel. Hierdie benadering is nie doeltreffend nie. As die stelsel veelvuldige verwerkers bevat het, kan die weergawe en KI elk op 'n aparte kern werk - 'n ideale situasie vir 'n veelvuldige verwerker.

Is 8 > 4 > 2?

Om verder as twee kerns te gaan, bied gemengde voordele, aangesien die antwoord vir enige gegewe rekenaarkoper afhang van die sagteware wat hy of sy tipies gebruik. Byvoorbeeld, baie klassieke speletjies bied steeds min prestasieverskil tussen twee en vier kerne. Selfs moderne speletjies - waarvan sommige na bewering agt kerns benodig of ondersteun - mag dalk nie beter presteer as 'n ses-kernmasjien met 'n hoër basisklokspoed nie, aangesien die doeltreffendheid van die primêre draad die doeltreffendheid van multidraadwerkverrigting beheer.

Aan die ander kant sal 'n video-enkoderingsprogram wat video transkodeer waarskynlik groot voordele inhou aangesien individuele raamweergawe na verskillende kerns oorgedra kan word en dan deur die sagteware in 'n enkele stroom saamgevoeg kan word. Om dus agt kerne te hê, sal selfs meer voordelig wees as om vier te hê. In wese het die primêre draad nie relatief ryk hulpbronne nodig nie; in plaas daarvan kan dit die harde werk uitbrei na dogterdrade wat die verwerker se kerne maksimeer.

Kloksnelhede

Image
Image

In algemene terme sal 'n hoër klokspoed 'n vinniger verwerker beteken. Klokspoed word meer vaag as jy spoed relatief tot veelvuldige kerns in ag neem, want verwerkers knars veelvuldige datadrade danksy die ekstra kerne, maar elkeen van daardie kerne sal teen laer spoed loop as gevolg van die termiese beperkings.

Byvoorbeeld, 'n dubbelkernverwerker kan basiskloksnelhede van 3.5 GHz vir elke verwerker ondersteun terwyl 'n vierkernverwerker slegs teen 3.0 GHz kan werk. Kyk net na 'n enkele kern op elkeen van hulle, die dubbelkernverwerker is 14 persent vinniger as op die vierkern. Dus, as jy 'n program het wat net enkeldraad is, is die dubbelkernverwerker eintlik meer doeltreffend. Dan weer, as jou sagteware al vier verwerkers kan gebruik, sal die vierkernverwerker eintlik ongeveer 70 persent vinniger as daardie dubbelkernverwerker wees.

Gevolgtrekkings

Vir die grootste deel is dit beter om 'n hoër kerntelling-verwerker te hê as jou sagteware en tipiese gebruiksgevalle dit ondersteun. Vir die grootste deel sal 'n dubbelkern- of vierkernverwerker meer as genoeg krag wees vir 'n basiese rekenaargebruiker. Die meerderheid verbruikers sal geen tasbare voordele sien om verder as vier verwerkerkernes te gaan nie, want so min nie-gespesialiseerde sagteware benut dit. Die beste gebruiksgeval vir verwerkers met 'n hoë kerntelling hou verband met masjiene wat komplekse take verrig, soos rekenaarvideoredigering, sommige vorme van luukse speletjies, of ingewikkelde wetenskap- en wiskundeprogramme.

Kyk na ons gedagtes oor hoe vinnig 'n rekenaar het ek nodig? om 'n beter idee te kry van watter tipe verwerker die beste by jou rekenaarbehoeftes pas.

Aanbeveel: