|
Bakgrund: Det har på senare tid visat sig att den enda
vägen att fortsatt kunna öka prestanda på datorer är ökad
parallellism. I stort sett alla nya processorer erbjuder idag
möjlighet att köra flera trådar per kärna och/eller flera kärnor per
fysisk processor. På så sätts erbjuds programmeraren ett flertal
logiska processorer som kan köra varsin programtråd parallellt med de
andra. För att kunna utnyttja denna potentiella datorkraft måste
programmen konstrueras med multitrådsteknik. Dessutom måste trådarna
kunna arbeta på gemensam data, för att kunna lösa en större uppgift
och verka utåt som ett enda program. För att det skall fungera att
tillåta flera trådar att arbeta på gemensam data, måste dessa data
vara multitrådsäkra. Den konventionella metoden att få gemensam data
eller datastrukturer multitrådsäkra är att använda lås-mekanismer som
mutex, semaphore med mera. Dock har lås-mekanismer visat sig ge låg
skalbarhet och dåligt utnyttjande av den potentiella parallellismen.
Inom forskningsgruppen Distributed Computing and Systems på Chalmers
har man länge forskat på alternativa sätt att konstruera
multitrådsäkra datastrukturer, där man inte låser data och på så sätt
kan uppnå mycket högre skalbarhet och parallellism. Företaget Parallel
Scalable Solutions AB har vidareutvecklat dessa kunskaper och
utvecklat praktiska produkter för användning inom
programvaruindustrin, bland annat i form av parallella multitrådsäkra
versioner av de flesta vanliga datastrukturer som stackar, köer,
listor med
mera.
Uppgift: Målet är att kunna utveckla en avsevärt mer
effektiv och skalbar version av webbservern Apache med hjälp av
icke-blockerande datastrukturer.
Apache är en webbserver med öppen källkod. Med hjälp av källkoden
skall utredas var flaskhalsar i designen finns med avseende på
multitråd och parallellism. Nästa steg är att utreda vilka
konstruktioner i källkoden som kan ändras till att använda
icke-blockerande datastrukturer, samt även se om det finns möjligheter
att förändra designen så att icke-blockerande kan användas. Med hjälp
av våra färdiga komponenter innehållande icke-blockerande
datastrukturer skall det byggas en körbar version av webbservern.
Denna skall testas och jämförande tester i fråga om prestanda och
skalbarhet skall göras i jämförelse med standard versionen.
Övrigt: Arbetet skall påbörjas snarast möjligt. Examensarbetet
skall bedrivas som ett internt arbete på Chalmers. Huvudhandledare
blir Dr.
Philippas Tsigas från Chalmers, och stöd i vissa frågor kommer även
att ges av Dr. Håkan Sundell från Parallel Scalable Solutions AB.
Lämplig bakgrund är ett stort intresse/kunskap i
multitrådsprogrammering och parallellism, stor förmåga att kunna
förstå och arbeta med stora programkoder i C.
Skicka information med beskrivning av din relevanta
kunskap/erfarenhet till Dr. Philippas Tsigas, "tsigas *AT*
cs.chalmers.se" . Lämpliga kandidater kontaktas därefter av oss.
|