Smart metode for raskere programvare

Enkelt for utviklere å øke ytelsen med opptil 20 prosent.

Selv om systemer med flerkjernede prosessorer nærmest har blitt allemannseie, er det fortsatt mye programvare som ikke er i stand til å utnytte mer enn én kjerne om gangen.

Nå har forskere ved North Carolina State University (NCSU) kommet fram til en metode som kan gi en betydelig forbedring i ytelsen til programvare som kjøres på systemer med flere prosessorkjerner.

Forskerne har kommet fram til at ved å skille ut den dynamiske minnehåndteringen, som er blant mest ytelseskrevende operasjonene i mange C/C++-applikasjoner, i en egen tråd, kan programvaren kjøres omtrent 20 prosent raskere på et system med en firekjernet Intel Core 2-prosessor.

Den separate tråden, som forskerne kaller Memory Management Thread (MMT), kjøres på en annen kjerne enn resten av programvaren. Dette gjør det mulig for hovedtråden til applikasjonen å utføre andre oppgaver mens minnehåndteringen utføres.

Forskerne har testet to mye brukte minnetilordnere, PHKmalloc og Doug Leas malloc (dlmalloc), som i snitt ga en ytelsesøkning på 19 prosent, uten at verken applikasjonen eller malloc-bibliotekene ble modifisert eller var oppmerksomme på parallelliseringsordningen.

(a) Tradisjonell minnehåndtering, (b)Fork-join-tilnærming for MMT, (c) Klient-server-tilnærming for MMT.
(a) Tradisjonell minnehåndtering, (b)Fork-join-tilnærming for MMT, (c) Klient-server-tilnærming for MMT. Bilde: NCSU

For å oppnå dette har forskerne tatt i bruk en klient-server-tilnærming for MMT. MMT-funksjonaliteten er delt i opp i en klientdel og en serverdel. MMT-klienten befinner seg i hovedtråden til applikasjonen og opptrer overfor applikasjonen som et minnehåndteringsbibliotek som kan motta vanlige forespørsler om tilordning og fraordning av minne. I en annen tråd finnes MMT-serveren, som generere kallene til minnehåndteringsbibliotekets rutiner for tilordningen og fraordningen av minne.

Klienten og serveren kommuniserer og synkroniserer for å koordinere hvilke forespørsler som skal sendes til biblioteket.

Flere detaljer om metoden er tilgjengelig i dette dokumentet.

Til InformationWeek sier Yan Solihin, førsteamanuensis ved NCSU, MMT-teknikken har blitt innkapslet i et bibliotek. For å bruke det, trenger utvikleren bare å lenke til det fra sitt program.

Forskningen viser også at ytelsestapet som vanligvis oppstår med bruk av sikkerhetsfunksjonaliteten i PHKmalloc kan reduseres fra i snitt 21 prosent til bare 1 prosent.

Til toppen