Door Wouter Tinus

AMD kondigt dual-core Opteron en Athlon 64 X2 aan

Multithreading, (n)iets nieuws

AMD dual-core Opteron aankondigingVandaag heeft AMD twee nieuwe dual-core productseries aangekondigd; niet minder dan negen nieuwe leden voor de Opteron serverfamilie en een geheel nieuwe lijn 'Athlon 64 X2' voor desktops. Met name voor het bedrijf zelf - maar zeker ook voor de rest van de industrie - is dit een belangrijke mijlpaal, want mede door deze aankondiging wordt een heel nieuw hoofdstuk in de geschiedenis van x86-(server)processors ingeluid. In plaats van alle taken steeds sneller één voor één uit te voeren zoals vele jaren lang de trend is geweest, draait in het deze week aangebroken "multi-core tijdperk" alles om het verdelen van zwaar werk over meerdere cores, zodat verschillende taken tegelijk kunnen worden uitgevoerd. In dit artikel zal niet alleen worden ingegaan op de nieuwe producten van AMD, maar ook op de voor- en nadelen van dual-core in het algemeen en op de verschillende (technische en strategische) tactieken die Intel en AMD volgen op dit gebied.

* Multithreading

"Maar, mijn computer kan nu toch ook al meerdere dingen tegelijk doen?" zou waarschijnlijk de reactie van leek zijn wanneer hem voor het eerst het globale concept van dual-core wordt uitgelegd. De waarheid is dat dit slechts een illusie is, die al vele jaren geleden geschapen werd door de eerste generatie van operating systemen. Het globale idee is dat iedere actieve applicatie een deel van de tijd van de processor toegewezen krijgt. Ieder paar milliseconden werkt de computer voor een andere applicatie, en met allerlei slimmigheden zoals prioriteiten wordt zo het beeld geschept dat er vanalles tegelijk gebeurt. Het idee van de 'thread' is pas later geïntroduceerd op desktops, maar nog steeds vrij oud nieuws (Windows NT 3.0 / 95 en latere versies van Linux 1.3). Threading is het idee dat er niet alleen meerdere applicaties tegelijk kunnen draaien, maar dat deze applicaties intern ook nog eens uit meerdere semi-onafhankelijke subtaken kunnen bestaan. We noemen een applicatie "multithreaded" als van die mogelijkheid gebruikgemaakt wordt. Zelfs op een relatief simpel desktopsysteem kunnen makkelijk tweehonderd threads tegelijk actief zijn:

Windows XP taskmanager - threads

De laatste tijd wordt multithreading vaak beschreven alsof het iets compleet nieuws is waar het gros van de ontwikkelaars nu voor het eerst kennis mee maakt, maar dat is dus niet waar. Het probleem is alleen dat desktops altijd maar één thread tegelijk konden uitvoeren, en het dus weinig tot geen nut had om prestatiegevoelige onderdelen van desktopsoftware uit elkaar te rafelen en te verdelen over meerdere threads. Zeker niet wanneer het risico in acht wordt genomen dat de extra complexiteit juist een averechts effect heeft op de prestaties, en het bovendien vage (moeilijk te reproduceren) bugs kan veroorzaken. Threads worden op dit moment dus wel gebruikt op desktops, maar meestal meer om zaken gescheiden te houden (bijvoorbeeld om beveiligings- of modulariteitsredenen) dan om betere prestaties te krijgen.

Voor servers en workstations is het uiteraard een heel ander verhaal; systemen met twee, vier of nog meer processors (en dus cores) zijn in die markten namelijk heel gewoon. Omdat iedere processor op zijn minst één thread kan verwerken is software die gebruikmaakt van meerdere threads om de prestaties te verbeteren in deze segmenten volop aanwezig. Het is in dat opzicht dus logisch dat AMD zich in eerste instantie vooral op de servermarkt richt met zijn dual-core producten. Daar heeft men inmiddels allang het 'ecosysteem' klaarliggen om gebruik te kunnen maken van de extra cores, terwijl zich dat op de desktop nog voor een groot deel moet gaan vormen. Intel richt zich met de Pentium D in eerste instantie juist wél alleen op desktops. Dit heeft echter ook technische en tactische redenen, waar we verderop in dit artikel nog op in zullen gaan.

CeBIT 2005: MSI K8N Master 2 dual Opteron-plank
Twee losse sockets of één dual-core, vanuit de software gezien hetzelfde.

* HyperThreading vs. dual-core

Het ouderwetse idee dat iedere processor één thread tegelijk kan verwerken is sinds een paar jaar achterhaald. Om ontwikkelaars alvast wakker te schudden introduceerde Intel in 2003 een SMT (Simultanious MultiThreading) techniek genaamd HyperThreading. Er zitten echter nogal wat haken en ogen aan deze vorm van hardwarematige multithreading. Omdat bij deze techniek twee threads samen één core delen, kunnen ze niet tegelijk gebruikmaken van dezelfde rekeneenheden. Kort samengevat moet de tweede thread bij HyperThreading meer gezien worden als een manier om de vrije gaatjes die de eerste thread openlaat op te vullen, dan als een volwaardige thread die op volle snelheid meedraait. Alle beetjes zijn mooi meegenomen natuurlijk, maar het mag duidelijk zijn dat de tweede virtuele core die door een HyperThreading CPU aan het operating systeem wordt gepresenteerd veel minder effectief werkt dan een echte tweede core, en dus ook veel minder aantrekkelijk is om software voor te optimaliseren. Toch zijn Intels inspanningen niet voor niets geweest; behalve het feit dat ze het zelf blijven gebruiken, zal voor HyperThreading geoptimaliseerde software ook gebruik kunnen maken van de tweede core van dual-coreprocessors. Niet alleen die van Intel, maar ook AMD's Opteron en Athlon 64 X2 doen net alsof ze HyperThreading ondersteunen, om zo de 'opvulthread' op volle snelheid mee te laten draaien.

* Samengevat

Voor de functionaliteit van een programma met twee threads maakt het niets uit of deze op een single-core Athlon draait, de virtuele cores van een HyperThreading Pentium 4, een dual-core Opteron of op een serversysteem met twee Xeons. De prestaties verschillen natuurlijk, maar de programmacode is identiek. Wat dat betreft brengt dual-core dus niets nieuws; de meeste serversoftware en erg veel workstationtools zullen de overstap geruisloos maken. Het enige wat verandert is dat het nu ineens zinvol wordt om ook bij gewone desktopsoftware de rekenkundig zware delen te verdelen over meerdere threads, iets wat voorheen meestal niet de moeite waard was, zelfs met HyperThreading. Ook zonder op de juiste manier gebouwde multithreaded software kan de extra core nuttig worden ingezet, maar dan alleen door twee verschillende programma's tegelijk te draaien, multitasking dus.


Google Pixel 7 Sony WH-1000XM5 Apple iPhone 14 Samsung Galaxy Watch5, 44mm Sonic Frontiers Samsung Galaxy Z Fold4 Insta360 X3 Nintendo Switch Lite

Tweakers is samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer onderdeel van DPG Media B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee