Parrallelising Apache

Exjobbs-förslag (20p)

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.