Software haalt op multicoreprocessor niet onderste uit de kan
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 dualcoresystemen. Op systemen met meer kernen zal het prestatieverlies door interne communicatieproblemen naar alle waarschijnlijkheid groter zijn.