Betere benutting multicore CPU's ontwikkeld

Een viertal onderzoekers van de North Carolina State University heeft een manier gevonden om programmacode beter gebruik te laten maken van de meerdere rekenkernen waar de hedendaagse processors over beschikken. De titel van de publicatie luidt "MMT: Exploiting Fine-Grained Parallelism in Dynamic Memory Management" en zal tijdens het IEEE International Parallel and Distributed Processing Symposium gepresenteerd worden.

Hoewel het gemiddeld aantal rekenkernen per processor de afgelopen jaren almaar toegenomen is, blijft de kennis en kunde van veel softwareprogrammeurs achter om deze ook daadwerkelijk op een nuttige manier aan te spreken. Bij veel software blijkt het bovendien erg lastig de lineariteit te doorbreken en op een zinnige manier gebruik te maken van parallellisme. De onderzoekers constateerden dat dit soort software doorgaans ook veelvuldig geheugen toewijst en weer vrijgeeft en dat deze bewerkingen voor een vertraging van de feitelijke uitvoer zorgen. Zodoende kwamen ze op het idee om dit soort bewerkingen af te splitsen naar een aparte thread, een memory management thread (MMT).

Samengevat beschrijft het wetenschappelijke paper een nieuwe methode om snelheidswinst te behalen door het dynamische geheugenmanagement uit te laten voeren door een aparte thread. Op deze manier kan de feitelijke programmacode en het geheugenmanagement vrijwel simultaan plaatsvinden, waardoor een minimale vertraging optreedt. Software die hiervan gebruikmaakt zou tot 20% sneller uitgevoerd kunnen worden door multicore processors. Gunstig is bovendien dat programmacode niet volledig herschreven hoeft te worden om deze techniek te kunnen gebruiken; er kan verwezen worden naar een losse memory management library. De techniek kan zowel client- als serversoftware versnellen, aldus een van de auteurs van het paper.

Door het geheugenmanagement af te splitsen naar een aparte thread valt tot 20% aan snelheid te winnen

Bronnen: InformationWeek, Paper (PDF)

« Vorig bericht Volgend bericht »
0