Overslaan en naar de inhoud gaan

Software haalt op multicoreprocessor niet onderste uit de kan

De oorzaak van deze schijnbaar onverklaarbare verschillen ligt in de wijze waarop delen van de programmatuur verdeeld worden over de verschillende kernen. Besturingssysteem en hardware doen dat op nogal willekeurige wijze, waardoor van een optimale verdeling van de werklast over de processorkernen geen sprake is, concluderen onderzoekers van de Amerikaanse universiteit Virginia Tech.
Carriere
Shutterstock
Shutterstock

Dat kan resulteren in frictie bij de verwerking van de werklast. Zo kan de afhandeling van interrupts vertraging oplopen als deze dynamisch over de processors verdeeld worden. Dat kan namelijk extra communicatie uitlokken wanneer de afhandeling van een interrupt toevertrouwd wordt aan een kern die op dat moment niet betrokken is bij de afhandeling van het programma waarvan de interrupt deel uitmaakt. Ook bij de geheugentoegang kunnen vertragingen optreden, bijvoorbeeld doordat data opgeslagen blijken te zijn in de cache van een andere kern. Ook komt het voor dat een kern niet direct toegang kan krijgen tot een relevant deel van het gedeelde geheugen, omdat een andere kern dat in gebruik heeft.De manier waarop programmeurs hun applicaties geschreven hebben, kan ook van invloed zijn. Bij het programmeren voor parallelle systemen handig gebleken praktijken – zoals het gebruik van het Message Passing Interface – kunnen op multicoreprocessors tot een scheve verdeling van de uitvoering van programma’s leiden. Daardoor kunnen onbedoeld asynchrone communicatiepatronen ontstaan die de prestaties van de chip drukken.Deze factoren kunnen de prestaties met zeker 10 tot 15 procent drukken, concluderen de onderzoekers. Ze komen tot die schatting na proeven met een door henzelf ontwikkeld tool, de Systems Mapping Manager (SyMMer). Die tool kan het optreden van de geïdentificeerde stoorfactoren in kaart brengen en de verdeling van de processen over de kernen zo wijzigen dat ze zo efficiënt mogelijk worden uitgevoerd.De prestatiewinst van 10 tot 15 procent heeft overigens betrekking op tests op dual­coresystemen. Op systemen met meer kernen zal het prestatieverlies door interne communicatieproblemen naar alle waarschijnlijkheid groter zijn.

Lees dit PRO artikel gratis

Maak een gratis account aan en geniet van alle voordelen:

  • Toegang tot 3 PRO artikelen per maand
  • Inclusief CTO interviews, podcasts, digitale specials en whitepapers
  • Blijf up-to-date over de laatste ontwikkelingen in en rond tech

Bevestig jouw e-mailadres

We hebben de bevestigingsmail naar %email% gestuurd.

Geen bevestigingsmail ontvangen? Controleer je spam folder. Niet in de spam, klik dan hier om een account aan te maken.

Er is iets mis gegaan

Helaas konden we op dit moment geen account voor je aanmaken. Probeer het later nog eens.

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in