Utvikling

Smart metode for raskere programvare

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

Harald BrombachHarald Brombach– Journalist
6. apr. 2010 - 11:17

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. Bilde: NCSU
(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.

Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.
Se flere jobber
Tre jobbtilbud 10 måneder før masteravslutning!
Les mer
Tre jobbtilbud 10 måneder før masteravslutning!
Få annonsen din her og nå frem til de beste kandidatene
Lag en bedriftsprofil
En tjeneste fra