Summary: | Rekonfigurerbar maskinvare er en teknologi som kan få potensielt stor innvirkning på mange fagfelt, deriblant bioinformatikk. Ved bruk av FPGA-teknologi, eller andre former for rekonfigurerbar maskinvare, kan man løse store, beregningsintensive oppgaver uten nødvendigvis å ha tilgang til svært kostbare dataanlegg. Men for å få en slik ytelse stilles det krav til algoritmen og implementasjonen. FPGA-teknologien har store fordeler, som for eksempel parallellisering av oppgaver, men også store svakheter, hvor to som kan nevner er båndbredde ut av brikken og at konstruksjon av spesialtilpasset maskinvare kan være svært komplisert. Dette er noe som kommer i fokus i oppgaven. Oppgaven tar for seg utvikling av en modul i et større system. Denne modulen bruker post-prosessering av resultater til å velge ut mer relevant data for presentasjon. I tillegg søkes også en ytelsesøkning gjennom å forhindre overdreven bruk av begrenset båndbredde og problemer forbundet med kommunikasjon mellom FPGA og CPU. Utviklingen av denne modulen, i to varianter, skal implementeres som en fungerende modul i et system for søk i DNA. En ytelsesøkning vil bli tydelig, og bakgrunnen for denne blir forklart. Oppgaven ser på muligheten for å utnytte parallellisering ved en flerkjerne-variant av systemet, og eventuelle forbedringer som kan gjøres i enkjerne-implementasjonen for best å utnytte tilgjengelige ressurser på FPGA-brikken, da utredningen tar utgangspunkt i at flerkjerne-implementasjonen blir tuftet på enkjernevarianten. En eksisterende modul blir implementert på nytt for å øke arealeffektiviteten til systemet, og en rekke forslag til forbedringer av andre moduler vil også bli gitt. Tilslutt vil en diskusjon rundt oppbygningen av en slik flerkjerne-variant bli gitt, og også en diskusjon rundt arealeffektivitet og ytelse. Fordeler og ulemper ved denne fremgangsmåten i forhold til en implementasjon som parallelliserer over flere noder vil også bli gitt. Oppgaven dokumenterer også videreutviklingen av rammeverket rundt systemet for å gjøre dette klart for bruk. I dette inngår overføring av data til og fra systemet og tilpasning til eventuelle problemer forbundet med dette. Utfordringer er å takle store datamengder, konvertere data til systemets format og håndtere utdata fra systemet. Hensikten er å gjøre systemet fullt fungerende. Begrensninger i rammeverket som påvirker ytelse vil bli tydelige, og disse blir forklart. I tillegg vil resultater fra kjøringer med DNA-strenger og vektingsmatriser vises og tendenser i disse vil bli forklart.
|