Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 65 reacties

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.


Lees meer over



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True