OODSM i Python

Specialeforsvar ved Rune Rude Selknæs 

Abstract 

I dette projekt beskrives, designes og implementeres et objektorienteret distribueret delt hukommelses system til Python.

Systemet kaldes pyOODSM.

Motivationen for at udvikle DSM systemer, kommer fra udviklingen inden for high performance computing, hvor man i stigende grad baserer sig på hardware, der ikke har delt hukommelse. Ved at introducere et objektorienteret DSM system, vil programmører kunne arbejde i et delt hukommelsesmiljø, selv om den fysiske hukommelse er distribueret.

Dette er en stor fordel, da det vil give programmører mulighed for at arbejde i en model, der ligger tættere på en rent objektorienteret, delt-hukommelses arkitektur, som de fleste softwareudviklere er fortrolig med.

Systemet pyOODSM udvikles iterativt, således at en primitiv, minimal men fungerende løsning udvikles. Denne udgaves ydevene måles og analyseres ved at bruge pyOODSM til at udvikle parallelle udgaver af beregningskrævende, videnskabelige programmer. Ud fra køretidsdata, samt profileringsdata, opsamlet under kørslerne af disse programmer, kan eventuelle uhensigtmæssigheder afdækkes.

Efter ydeevnetesten, udvælges en række forbedringer, der har god chance for at give betydelige forbedringer af ydeevnen for pyOODSM.

Disse indarbejdes i designet, og implementeres. Slutteligt afvikles ydeevnetesten igen, for at opnå en evaluering af effekten af de valgte forbedringer. De valgte forbedringer er: Skift til en homebased distributions model, implementering af mulighed for pinning af objekter samt udvikling af et prefetching modul.

Resultaterne viser at der kan opnås hæderlige speedups, for de fleste problemer der er testet for. Ydermere viser resultaterne at de valgte forbedringer giver bedre resultater for de valgte problemer. Dog er det ikke alle forbedringer, der giver bedre resultater for alle problemerne.

.............................................................................

Eksaminator: Brian Vinter, DIKU

Censor: Morten Frank, Nordea