Distributed Computing Stefan Saxén Department of Computer Science Åbo Akademi University, FIN-20520 Åbo, Finland e-mail: ssaxen@abo.fi URL: http://www.abo.fi/~ssaxen Sammanfattning Detta papper presenterar Distributed Computing och ger en förklaring på vad det är samt jämför det med andra motsvarande innovationer. En beskrivning på historien och utvecklingen av Distributed Computing ges samt en insikt på nutiden. Vidare presenteras användningen och områdena för utnyttjandet av Distributed Computing. En presentation på några tillämpningar av Distributed Computing ges. 1
Klassificering ACM: SIG-ACM: C.2.4 F.1.2 SIGMOD SIGAPP 1. Introduktion Distributed Computing tog sina första steg redan på 80-talet. Sedan dess har en enorm utveckling skett inom området och Distributed Computing har under de senaste åren blivit ett mycket populärt område. Distributed Computing växte mycket i popularitet på grund av det stora intresset för peer-to-peer system. Distributed Computing är en form av distribuerade system där data administreras av en central server som sedan behandlas av flera kundmaskiner, servern och kundmaskinerna kommunicerar över någon typ av nätverk. Distributed Computing kallas på ett mindre seriöst sätt till den fattiga mannens superdator. Distributed Computing är dock en mycket viktig del av forskning i dagens läge. Denna utveckling har gjort det möjligt att utföra mycket stora och tunga uträckningar på ett kostnadseffektivt och tidseffektivt sätt. 2
Fördelarna med Distributed Computing [ENT] Distributed Computing blandas ofta med Grid Computing. Båda dessa är en form av distribuerade system och Distributed Computing kan ses som en del av Grid Computing. Grid Computing strävar till att skapa ett stort och flexibelt nätverk av maskiner där resurserna är fritt tillgängliga för den som behöver dem. Till detta system kan höra vanliga arbetsstationer, PCn, men oftast är det fråga om stora och effektiva servrar och superdatorer. Distributed Computing utnyttjar samma grundprinciper men riktar sig mera mot att samla ihop ett mycket stort nätverk av vanliga användares maskiner. Dessa kundmaskiner är ofta av låg prestanda och körs långt på kundens villkor. Arkitekturen för Distributed Computing måste således göra det möjligt att exekvera små delar av projektet på ett sådant sätt att 3
användaren av kunddatorn inte störs i sitt dagliga arbete av uträckningarna. Distributed Computing projekt fungerar alla långt med samma principer. Denna princip går ut på att man har ett centralt organ som bestämmer vad som skall beräknas och vad man vill nå med beräkningarna. Detta organ har hand om en central server som sköter om att den datan man vill ha beräknad delas upp i små lämpliga storleks block som sedan delas ut åt de kundmaskiner som deltar i projektet. Dessa kunddatorer utför sedan beräkningarna med hjälp av sådan processorkraft som annars skulle gå outnyttjad. Efter att kunden slutfört beräkningarna på ett block returnerar den datan till den centrala servern som sedan ser till att alla resultat slås samman till en helhet. Kommunikationen mellan den centrala servern och kundmaskinerna sker över nätverk, oftast över Internet. Konceptet med Distributed Computing grundar sig på det faktum att en persondator största delen av tiden inte utnyttjar mer än en bråkdel av sin processkraft. Persondatorer används främst till såna saker som ordbehandling, skrivandet och läsandet av elektronisk post samt för tillgång till Internet. Alla dessa användningar kräver inte någon hög prestanda av persondatorn och en hög procent av dens resurser blir outnyttjade. Distributed Computing utnyttjar denna resurs av outnyttjad processkraft för beräkningar. Distributed Computing har också sina gränser, inte all data kan beräknas på detta sätt. Det finns data som är mycket svårt att dela upp i mindre block och detta gör det omöjligt att inom rimlig tid skicka det över 4
nätverk. Dagens nätverk har en mycket begränsad kapacitet och sådana beräkningar som kräver mycket stor nätverks kapacitet kan därför inte utnyttja detta koncept. Beräkningar som till exempel 3D rendering hör till detta område och är därför inte möjliga användare av Distributed Computing i dagens läge. En annan begränsande faktor för utnyttjande av Distributed Computing är säkerhetsorsaker. Eftersom konceptet grundar sig på en öppen distribution av blocken över Internet till kunddatorer runt om i världen kan inte säkerheten och integriteten av blocken garanteras. Detta faktum gör att man inte kan utnyttja Distributed Computing till sådana projekt som till exempel kärnvapenforskning 2. Historia och utveckling Distributed Computing tog sina första steg på 80-talet då Intel började utnyttja sina arbetsstationer för att beräkna ritningar till nya halvledarchips. Intel förstod att utnyttja enstaka arbetsstationers tomgångstid och deras interna nätverk för att distribuera och samla ihop dessa beräkningar. Lokaliserad Distributed Computing har sedan dess använts till en stor del av tillämpningar. Till dessa tillämpningar hör bland annat rendering av 3D animationer, Väderleksprognoser och andra tillämpningar som kräver hög beräkningsförmåga. Med utvecklingen av Internet blev det möjligt att skapa större distribuerade projekt, det blev möjligt att på en massiv skala utföra 5
beräkningar. De första Distributed Computing projekten som var öppna för allmänheten var matematik relaterade. De första projekten marknadsfördes som tävlingar för att locka användare. Till en början var det nästan endast matematik och dataintresserade personer som deltog i dessa projekt. Till dessa första projekt hörde bland annat faktoriseringen av tal med 129 siffror, sökning efter stora primtal och försök att bryta enkrypteringar. 3. Några av dagens tillämpningar Distributed.net var en av de första tillämpningarna som fick massorna bakom sig. Detta projekt fick vanliga datoranvändare att ge sin dators beräkningstid för projektet. Projektet grundades 1997 för att dekryptera enkryptionsalgoritmer och har sedan dess löst många så kallade utmaningar gjorda av enkryptionsalgoritmtillverkare. [DIST] SETI@home är det Distributed Computing projekt som blivit kändast bland allmänheten. Projektet grundades på Berkeley universitet i Californien, USA. SETI@home projektets mål är att analysera data samlat av ett radioteleskop i Arecibo, Puerto Rico. Från dessa analyser hoppas man hitta signaler som härstammar från utomjordisk intelligens, det vill säga man söker efter signaler skickade av andra civilisationer i universum. Det är fråga om en otroligt stor mängd data som skall analyseras och Distributed Computing har visat sig vara mycket användbart för att på ett billigt och effektivt sätt utföra analyser på denna data. Data som fås från Arecibo delas upp i små stycken som sedan kan delas ut åt deltagare i 6
projektet. En representation av datauppdelningen kan ses i figuren nedan. [SETI] Uppdelning av den stora datamängden i SETI@home projektet [SETI] Projektet har cirka en miljon deltagande datorer med en sammanlagd processkraft av cirka 60 TeraFLOPS, detta kan jämföras med en av dagens kraftigaste superdatorer, IBMs ASCI White, som har en processkraft på 12 TeraFLOPS. SETI@home projektets stora popularitet har skapat ett stort intresse i Distributed Computing och har lett till att många nya projekt har skapats. Berkeley Open Infrastructure for Network Computing, eller BOINC, är ett relativt nytt projekt som har vuxit fram från den stora framgången av SETI@home. BOINC är efterträdaren till SETI@home och projektet kommer att fortsätta på denna plattform. BOINC gjordes från första början till en öppen plattform som även kunde utnyttjas till andra projekt. Många av de erfarenheter man fått med det tidigare SETI@home projektet har utnyttjats i planeringen av denna nya plattform. Redan nu körs flera projekt med hjälp av BOINC, som tidigare nämnts så körs fortsättningen till SETI@home projektet med denna, utöver detta använder sig projekt inom områdena för klimatforskning, medicin och fysik också av den öppna BOINC plattformen. 7
4. Framtiden Framtiden för Distributed Computing ses som mycket god för forskning. Konceptet grundar sig på att den dagliga användaren av datorer vill delta och ge av sin dators kapacitet till projektet. Det projekt som kommer att ha framgång inom detta område är då med andra ord det som kommer att vinna mest användare, och därmed deras datorer, till sig. Antalet beräkningskraft projekten har är direkt bundet till mängden deltagare i det. Det hittills största Distributed Computing projektet, SETI@home, har fått så många deltagare på grund av att det erbjuder samtidigt en intressant screensaver. I många fall vet inte ens deltagarna vad de ger sin beräkningstid åt, det tycker endast att screensavern är intressant. Screensavers kommer dock inte att räcka till för att hålla användare intresserade av projekt. Det finns flera företag som har planer för projekt där användarna skulle få betalt för den beräkningstid de ger åt projektet. När Distributed Computing blir en konventionell och vardaglig sak tror många att det kommer att finnas en ekonomi som grundar sig på beräkningskraft. I dessa visioner får datoranvändare betalt för beräkningstid på basen av utbud och efterfrågan. Distributed Computing ses som en lösning till många av dagens komplexa problem. Det ses som en lösning till AIDS, cancer och andra svåra sjukdomar. Det beräknas att varje sjukdom vi känner till idag har ett botemedel men datamängden för att kunna hitta dessa botemedel är så ofantligt stor att vi inte på något sätt nu kan hitta dem. Distributed 8
Computing tros kunna lösa många av just de problemen som har ofantligt stora datamängder. Det tros att genombrott inom nästan vilka områden som helst kan ske med hjälp av Distributed Computing. Distributed Computing är en del av utvecklingen av datamaskiner. Man visste redan för hundra år sedan att datorer kunde analysera all denna data men man kunde inte förvänta sig att det skulle ske då miljoner människor tillsammans gör det. Distributed Computing ses inte som ett kontroversiellt område men som med all teknologi så finns det även här rum för missbruk. Databeräknings förmåga ses som ett tecken på välfärd och som ett övertag över länder med mindre databeräkningsförmåga. Världen blir allt digitalare och beräkningsförmåga blir ett vapen som kan riktas mot tävlande länder och organisationer. Så gått som alla regeringar använder sig av Internet för att kommunicera, denna kommunikation skyddas med hjälp av enkryptering. Med hjälp av Distributed Computing kan man möjligen skapa sätt att bryta dessa krypteringar. Möjligheten till detta utgör ett stort hot mot sekretessen för alla regeringar. Många av världens dilemman, så som till exempel människokloning, är en biprodukt av den snabba utvecklingen av datorer. Distributed Computing kommer att ta den förmågan vi har idag och föra den i höjderna och göra forskning som tidigare varit omöjligt möjlig, detta i sin tur kommer att skapa många nya dilemman för mänskligheten. 9
5. Avslutning Distributed Computing kan ses som en mycket lovande teknologi för framtidens forskning. Distributed Computing ger möjligheten till gigantisk beräkningskapacitet till sektorer som annars inte skulle ha möjlighet till detta. Det ger mänskligheten ett mycket användbart verktyg för att lösa såna stora problem som att bota allvarliga sjukdomar, bevisa att det finns utomjordiskt liv och utföra virtuella experiment med sådana ämnen som annars skulle skada vår omgivning, så som till exempel kärnvapen. Distributed Computing kommer med all säkerhet att ha mycket stor inverkan på dataindustrin och också på hela mänskligheten. 6. Källförtäckning [DIST] distributed.net, http:// www.distributed.net/ [SETI] Search for Extra Terrestrial Intelligence at Home, http://setiathome.berkeley.edu/ [BOINC] Berkley Open Infrastructure for Network Computing, http://boinc.berkeley.edu/ [GR03] Berman, Fox, Hey: Grid Computing, Making the Global Infrastructure a Reality, 2003 [ENT] Entropia, PC Grid Computing, http://www.entropia.com/ 10