Dutch Power Cows: Distributed Computing FAQInhoudsopgave
Distributed ComputingDistributed Computing is precies dat wat de woorden zeggen, verspreid rekenen. Vroeger werden computers vooral voor rekentaken gebruikt en dat gebeurt ook nog steeds tot op de dag van vandaag. Het KNMI gebruikt bijvoorbeeld computers om het weer te voorspellen en alle facetten van het weer over de gehele wereld met elkaar in verband te brengen. Hiervoor gebruiken ze geen huis, tuin en keuken computers, zoals we die thuis hebben staan, maar speciale supercomputers die met gemak 100 keer zo snel zijn als die waar je nu achter zit (speciale gevallen daargelatenUiteraard kost zo'n computer dan ook met gemak het 100-voudige van de standaard consumenten PC en is daardoor niet voor iedereen weggelegd. Met de komst van netwerken, en vooral het internet is er echter nog een nieuwe manier om zware berekeningen uit te voeren bijgekomen: distributed computing. In sommige gevallen is mogelijk om een zware rekentaak niet op slechts één computer uit te voeren, maar te spreiden over meerdere computers. Als deze computers met elkaar op een zeer snel netwerk zitten kunnen ze samen de kracht van een supercomputer evenaren. Misschien heb je wel eens gehoord van een (Linux) cluster of een grid. Dat is de naam die we hieraan geven. Een vast aantal computers zit samen op een netwerk en krijgen taken toebedeeld. Meestal worden hier hele snelle computers voor gebruikt die je ook terugvindt in de serverparken van bedrijven. Deze clusters kosten nog steeds flink wat geld en zijn daardoor ook niet geschikt voor particulieren. Met de komst van het internet veranderde dit echter. Al die computers op dat ene grote netwerk samen, internet zelf, hebben meer rekenkracht dan alle supercomputers samen! Maar uiteraard is niemand van plan om enkel en alleen op internet te zijn om mee te rekenen aan een ingewikkeld probleem. Om deze reden heeft men de programma's waarmee we rekenen zo gemaakt dat ze alleen gebruik maken van ongebruikte rekenkracht. Ongebruikte rekenkrachtZoals wel bekend heeft elke computer een processor (CPU) als kloppend hart. Zonder processor zouden computers niet werken en hoe sneller (in MHz of GHz) de processor, des te sneller de computer. Ondanks het feit dat iedereen graag de snelste computer wil hebben, gebruiken de meeste mensen die pure rekenkracht nauwelijks. Hedendaagse games maken samen met video software (afspelen films) als enige echt gretig gebruik van de kracht van de processor. Surfen over het internet en zeker het tikken van documenten juist helemaal niet.Wat ik nu ga zeggen zullen velen in eerste instantie niet willen geloven, maar je kunt het straks zelf controleren. Als je, je computer net hebt opgestart gebruik je, in het geval dat Windows draait, gemiddeld slechts zo'n 2 tot 3 procent van de kracht van een processor. Als je vervolgens Word opstart, of Excel, zal dit iets van 4 tot 5 procent worden. Let wel dit gaat uit van de gemiddelde computer! Surfen op internet verbruikt meestal ruim 10 procent van de aanwezige kracht, maar hoe je het ook wendt of keert, veel kracht blijft ongebruikt. De programma's die worden verspreid om mee te kunnen rekenen aan zo'n distributed computing project zijn erop gericht hier gebruik van te maken. De meesten werken zo lang een computer aanstaat en schikken keurig in als er meer kracht nodig is voor andere programma's. Je zult niet merken dat ze draaien, tenzij misschien aan een icoontje onder in het scherm. Anderen werken enkel als de screensaver aangaat, maar aangezien dit zonde is van de overige ongebruikte capaciteit komt dit niet zo vaak meer voor. Waarom meedoen?Dat is een hele goede vraag.Over het algemeen zijn er twee mogelijke redenen: Het project spreekt je zodanig aan dat je graag mee wilt helpen. Zo zijn er vele projecten die door middel van simulatie een medicijn tegen bepaalde ziekten proberen te vinden. Ook zijn er projecten die encryptie methoden proberen te kraken, waarmee veelal geld te winnen is. Het grootste project tot nu toe doet juist weer iets heel anders. Het is op zoek naar leven in het heelal. Dit project heet SETI@Home en wordt vaak in één adem met Distributed Computing genoemd, maar er is dus veel meer. Hoe deze verschillende projecten precies werken kun je vinden in de project beschrijvingen elders op deze site (wanneer deze af is). Hoewel je zou verwachten dat bovenstaande reden de enige goede reden is, blijkt uit ervaring dat velen het om een totaal andere reden doen. Deze reden heet: competitie, en dat is iets wat de meeste mensen erg aanspreekt. Dit begon allemaal onschuldig toen de eerste bekendere projecten op hun site lieten zien hoeveel werk individuen in totaal hadden verricht. Zonder het te realiseren hadden ze hiermee een belangrijke zet gedaan om nog veel groter uit te kunnen groeien. Binnen no-time waren mensen druk bezig anderen in te halen door meer computers voor hun karretje te spannen en zelfs de computers langer aan te laten staan. Dit werd nog erger toen men zich ook in teams op kon delen om zo samen de strijd aan te gaan met andere teams. Tegenwoordig is dit bij de meeste projecten uitgegroeid tot levensbehoefte nummer 1, aangezien deze competitie vele extra mensen aan schijnt te trekken. Er zijn dan tegenwoordig ook stats in alle soorten te vinden die toch minstens eens per dag worden geupdate. Dit zorgt ervoor dat men ook weer kan berekenen hoeveel je per dag hebt gedaan en ook daar is dus ook weer competitie in mogelijk. In het kortOp dit punt hopen we duidelijk te hebben gemaakt wat Distributed Computing is, maar we vatten het idee (zoals gebruikt bij projecten die u op deze site tegenkomt) nog een keer kort samen. Distributed Computing is een manier de ongebruikte rekenkracht van computers op het Internet massaal in te zetten om problemen die veel rekenkracht vereisen op te kunnen lossen of überhaupt uit te kunnen voeren. De belangrijkste beweegredenen om mee te doen zijn affiniteit met het probleem en/of de onderlinge competitie.Om er helemaal in te komen gaan we hieronder nog even over het competitie gedeelte verder. CompetitieCompetitie vind plaats op vele niveaus, maar 2 daarvan zijn het meest belangrijk en bij elk project aanwezig.Competitie op teamniveau Verschillende teams concurreren met elkaar om zo hoog mogelijk in de statistieken van het project te komen. Het belangrijkste onderdeel hiervan is het totaal wat elk team heeft bijgedragen aan rekenkracht, en direct hierna draait het om welk team het best heeft gescoord over de afgelopen dag. Competitie op individueel niveau Binnen een team is de onderlinge concurrentie meestal duidelijk aanwezig hoewel dit nauw verbonden is aan de positie van het team. Als het goed gaat met het team en ze weinig te duchten lijken te hebben van overige teams draait de onderlinge competitie binnen het team op volle toeren. Om deze reden ontstaan er meestal kleine, zogenoemde, subteams die meerdere personen uit één team herbergen en de strijd aangaan met andere subteams of personen die some een hele vloot aan computers onder hun beheer hebben. Deze strijd draait net als de teamstrijd om de algemene ('overall') plek in het totaalklassement en om de dagelijkse ('daily') plek. Dit zijn de belangrijkste vormen van competitie, maar er is vaak nog meer. Zo bestrijden deelnemers elkaar ook onderling, onafhankelijk van in welk team ze zitten, maar dit staat meestal op een aanzienlijk lager pitje. Een ander verschijnsel zijn statistieken met daarin een rangorde die puur en alleen toont wie het meeste werk ooit op een dag heeft gedaan. Ook dit komt weer voor op zowel team- als individueel niveau. Voor alle niveaus geldt dat de competitie sportief en vriendelijk is en men elkaar meestal feliciteerd met mooie resultaten of als een ander team / subteam / individu de nummer 1 plaats te pakken krijgt in de statistieken (ookwel 'stats' genoemd). |