Distributed computing

Distributed computing (Engels voor gedistribueerd rekenen) is een techniek waarbij rekentaken niet door één enkele computer worden uitgevoerd, maar door een verzameling computers verbonden in een computernetwerk; het lijkt daarmee enigszins op een computercluster. De verzameling computers kan bestaan uit machines in één ruimte, of uit computers op meerdere locaties, waarbij gebruik wordt gemaakt van conventionele netwerktechnieken en internet. Het idee is om een grotere totale rekenkracht (verwerkingscapaciteit) te verkrijgen door het combineren van de rekenkracht van de individuele computers. Wanneer in een dergelijk netwerk zeer veel relatief eenvoudige computers beschikbaar zijn, kan de beschikbare rekenkracht aanzienlijke proporties aannemen, vergelijkbaar met een supercomputer.

Distributed computing is met name geschikt voor rekentaken waarbij de hoeveelheid data die tussen de cliënt en de server moet worden verstuurd, erg klein is in verhouding tot de rekenkracht die nodig is om de data te verwerken. Ook moet de totale taak kunnen worden onderverdeeld in kleinere taken die geen onderlinge relaties hebben.

De pc thuis bewerken

Met de opkomst van permanente verbindingen met het internet voor de personal computers van thuisgebruikers is men de techniek ook gaan toepassen in dit segment, waardoor de braakliggende rekenkracht van letterlijk miljoenen pc's voor grote projecten beschikbaar gemaakt kan worden. In dit geval maakt de distributed computingsoftware over het algemeen alleen gebruik van de idle time van een pc. Hierdoor hoeven andere werkzaamheden die met dezelfde pc worden verricht niet trager te verlopen.

Aangezien deze distributed-computingprojecten afhankelijk zijn van door vrijwilligers gedoneerde processorcapaciteit, proberen deze projecten vaak zo veel mogelijk rekenkracht te vergaren door het opzetten van pagina's met statistieken. Ook is het vaak mogelijk om een team op te richten, zodat er tussen de deelnemers competitie ontstaat om zo veel mogelijk rekenkracht in te zetten voor een bepaald project.

Software en ontwikkeling bewerken

Vaak wordt voor één bepaald distributed computingproject eigen specifieke software ontwikkeld, maar er zijn inmiddels ook projecten die een soort algemene softwareomgeving bieden die het deelnemen aan verscheidene projecten (quasi) tegelijk mogelijk maakt en waarmee ook doorgerekend kan worden als één project even geen nieuw rekenwerk aanlevert.

De eerste poging op dit gebied was Distributed.net, waarmee deelgenomen kan worden aan een paar deelprojecten. Een ervan is het vinden van complexe optimal Golomb Rulers. Een ander project is encryptie van een code bestaande uit 272 cijfers (RC5-72) waarmee wat prijzengeld is te winnen.

Ook de universiteit van Californië (Berkeley) ontwikkelde een dergelijk systeem in de vorm van de opensourcesoftware BOINC (Berkeley Open Infrastructure for Network Computing). Dit werd onder andere gebruikt voor het populaire SETI@Home, de opvolger van SETI classic die wel op een eigen platform draaide.

Toepassing bewerken

Er kunnen verschillende redenen zijn om distributed computing toe te passen:

  • De taken zijn dusdanig complex dat uitvoeren op de snelste computers te lang duurt. Tijdwinst kan dan gerealiseerd worden door een taak op te delen (liefst zo onafhankelijk mogelijk van elkaar) en die delen vervolgens te verspreiden over de deelnemende computers.
  • Kwetsbaarheid: computers die in één ruimte staan, worden gemakkelijker getroffen door een storing, zoals uitval van elektriciteit, brand, terreur, en dergelijke. Door de rekenkracht te verspreiden over verschillende locaties zal bij een storing in de meeste gevallen slechts een deel van de rekenkracht uitvallen.
  • Donatie: voor een aantal projecten is het mogelijk om ongebruikte verwerkingscapaciteit te laten gebruiken voor goede doelen. Zodra de computer niet of nauwelijks gebruikmaakt van de CPU, wordt de rekenkracht ingezet voor die taak. Een voorbeeld is het onderzoek naar aidsmedicijnen.

Voorbeelden bewerken

Enkele algemene voorbeelden van het soort projecten waarbij de techniek wordt ingezet:

Populaire specifieke projecten bewerken

Naast de geïntegreerde projecten zoals Distributed.net en BOINC is er een groot aantal populaire specifieke projecten waar vrijwilligers aan kunnen deelnemen:

Medisch:

  • Community TSC is een project dat zoekt naar een medicijn voor de dodelijke kinderziekte Tuberous Sclerosis Complex.
  • Folding@Home tracht, in navolging van het eerdere Distributed Folding, door het simuleren van het vouwen van de proteïne te begrijpen waarom ziekten zoals alzheimer ontstaan, zodat er een behandeling kan komen.
  • Rosetta@home tracht te voorspellen hoe eiwitten vouwen.
  • World Community Grid. Hierop draaien momenteel 9 projecten. Een kleine greep hieruit: (kinder)kanker, spierziektes, clean energy en proteïne vouwen.

Wiskundig:

Overige:

Afgelopen projecten bewerken

Externe links bewerken