# Berkeley Open Infrastructure for Network Computing

Berkeley Open-Infrastructure for Network Computing (BOINC) is een distributed computing-platform van de Universiteit van Californië in Berkeley. Dit houdt in dat er diverse projecten onder BOINC draaien, die worden bestuurd vanaf de BOINC-client. Boinc maakt het mogelijk om de processortijd te verdelen over verschillende projecten.
Boinc werd getest met de programma's SETI@Home en Astropulse. Beide zijn onderdeel van het project SETI.

## Lijst van BOINC-projecten

Hieronder volgt een lijst van BOINC-projecten.

### Wiskunde en strategiespellen

* Chess960@home - Zoekt strategieën voor Chess960.
* Collatz Conjecture - een oplossing zoeken voor het vermoeden van Collatz.
* HashClash - Maakt MD5-collisions.
* PrimeGrid - Probeerde oorspronkelijk een getal van de RSA-factoring challenge te ontbinden. Nu worden diverse vormen van priemgetallen onderzocht waarbij het doel is van elk type nieuwe grote getallen te vinden. Een gebruiker die een nieuwe priem vindt kan zelf dit getal officieel aanmelden en hiervoor de eer krijgen.
* Rectilinear Crossing Number - Zoekt het minimale aantal kruisingen in een graaf.
* Reken mee met ABC - Zoekt naar abc-drietallen om inzicht te krijgen in het abc-vermoeden.
* Riesel Sieve - Probeert het vermoeden van Riesel te bewijzen.
* SHA-1 Collision Search Graz - zoektocht naar collisies in de SHA-1 hashfunctie.
* SZTAKI Desktop Grid - Een zoektocht naar gegeneraliseerde binaire talstelsels.
* VTU@home

### Astronomie/Natuurkunde/Scheikunde

* Cosmology@Home - De zoektocht naar het model dat het best het universum omschrijft.
* Einstein@home - Bij dit project draait het om het zoeken naar pulsars (ingestorte neutronensterren).
* EDGeS@home
* eOn - Is een project dat de dynamische simulatie van fysieke en chemische processen over langere tijd bestudeert.
* FreeHAL - Is een project om een computerprogramma te creëren dat menselijke conversatie zo accuraat mogelijk imiteert.
* Leiden Classical - Het doel van dit project is om een platform te maken voor wetenschappers en studenten, gewijd aan algemene klassieke dynamica.
* LHC@home - Een project om het ontwerp van de deeltjesversneller van het CERN te verbeteren.
* MilkyWay@home - Studie naar de evolutie van het melkwegstelsel.
* Nano-Hive@home
* Quantum Monte Carlo at Home - Een project waarbij de structuur en reactiviteit van moleculen wordt onderzocht op basis van de kwantummechanica.
* SETI@Home - Zoektocht naar buitenaards leven.
* Spinhenge@home - Het onderzoek naar nano-magnetische moleculen. In de toekomst zullen deze moleculen gebruikt kunnen worden in precisie-chemotherapie en minuscule geheugenmodules.

### Aardwetenschappen

* BBC Climate Change Experiment
* ClimatePrediction.net - Onderzoek naar het klimaat.
* Seasonal Attribution Project

### Biologie en medicijnen

* Docking@home
* Cels@home - Onderzoek naar de adhesie tussen cellen. Onder andere toepasbaar in kankeronderzoek, aangezien het begrijpen van het moment dat kankercellen hun plek verlaten om vrij door het lichaam te waren essentieel is om kankeronderzoek te doen. Dit vrijbreken maakt het moeilijk om kanker te bestrijden.
* GPRGRID - Is een project waar met behulp van gelinkte grafische geheugens biomoleculaire simulaties worden uitgevoerd
* MalariaControl.net - Bestrijding van malaria.
* POEM@home - Een project om proteïne structuren te analyseren
* Predictor@home - Doel van dit project is het voorspellen van proteïnestructuren op basis van proteïnevolgorde.
* Rosetta@home - Een project waarbij de 3D-vorm van bepaalde proteïnen wordt onderzocht.
* SIMAP - Een project om proteïnegelijkenissen te onderzoeken.
* Tanpaku - Een project dat is gericht op het voorspellen van eiwitstructuren.
* World Community Grid - Een project om de kennis omtrent menselijke ziekten beter in kaart te brengen.

### Grafische projecten

* BURP - Een project om plaatjes te renderen.
* RenderFarm@Home - Een project voor het renderen van fractals.
* Renderfarm.fi - Een project om Blenderbestanden te renderen.

### Overig

* CAS@home - Een project om Chinese wetenschappers te stimuleren en begeleiden door volunteer computing in hun onderzoeksprojecten te gebruiken.
* DepSpid - Een spider die de afhankelijkheden tussen webpagina's onderzoekt.
* DistrRTgen - Een project om via regenboogtabellen betere beveiligingswachtwoorden te creëren.
* Enigma@home - Een project om de drie originele enigmaberichten uit 1942 te ontcijferen.
* Pirates@home - Testproject.
* Project Neuron - Een project dat test hoe goed BOINC-projecten worden gerund met de beschikbare bronnen.
* XtremLab - Onderzoekt eigenschappen van het BOINC-grid zelf.

## Statistieken

Als een workunit succesvol is verwerkt, krijgt een gebruiker hier een aantal credits voor. Op basis van het aantal credits dat is verdiend, krijgt men een positie in de statistieken. Hierdoor ontstaat er een competitief element. Omdat er veel mensen zijn die zo hoog mogelijk in deze statistieken willen staan, gaan mensen meer "crunchen" voor het project en wordt er meer werk verricht. De credits van verschillende projecten kunnen bij elkaar worden opgeteld, zodat er een overzicht ontstaat van hoeveel werk er in totaal is verricht.

### Berekenen van de credits

Om de credits te berekenen wordt er een benchmark op de computer gedraaid. Met deze benchmark en de tijd die over een WU (workunit) is gedaan, kan BOINC berekenen hoeveel werk het is geweest en hoeveel credits je krijgt. Dit zijn je claimed credits. Hoeveel credits je uiteindelijk krijgt, hangt af van de server. Bij sommige projecten wordt een WU meer dan een keer verstuurd. Stel dat de WU 3 keer wordt verstuurd, dan kan men het gemiddelde van deze 3 WU's nemen, of de mediaan. Bij andere projecten worden de credits statisch berekend. Dit kan als alle WU's ongeveer even groot zijn. Dan wordt aan iedere WU evenveel credit toegekend.
Er is enige controverse rond het berekenen van de credits. Aangezien BOINC volledig open source is, is het mogelijk om een client te compileren die bijvoorbeeld twee keer zo veel credits claimt. Daarom is er een discussie hoe credits berekend moeten worden. Een voorstel van David Anderson is te vinden op internet.
Gemiddeld dient iedere host 100 credits per dag te kunnen verdienen. Dit betekent dat een host steeds minder credits krijgt, aangezien de gemiddelde host steeds sneller wordt. Projecten dienen een credit-functie C(H) te publiceren waar een host H de invoer is. De host wordt beschreven door de floatingpoint- en integerbenchmarks, aantal CPU's, cachegroottes, geheugenbandbreedte, beschikbaar RAM, beschikbare hardeschijfruimte, aanwezigheid van specifieke GPU's, netwerkbandbreedte, tijd dat BOINC draait en verbonden is met het netwerk, en misschien andere variabelen.
Een project kan nooit meer credit geven dan de som over alle hosts van RS(H, P)*C(H) waarbij RS de resource share van project P op host H is.

## Teams

Er kunnen ook teams aangemaakt worden. BOINC-gebruikers kunnen zich bij zo'n team aanmelden en tegen andere teams strijden. Daarnaast strijdt men ook voor een hoge positie binnen het team. Sommige teams hebben ook een eigen website om het teamgevoel te verhogen. De bekendste Nederlandse teams zijn SETI@Netherlands en Dutch Power Cows. In België is het grootste en bekendste team BOINC.BE.

## Geoptimaliseerde applicaties

Voor sommige projecten zijn geoptimaliseerde applicaties beschikbaar. Dit zijn applicaties die gecompileerd zijn voor specifieke instructiesets van processoren (zoals SSE, SSE2 of MMX). Om te kijken of een computer deze applicatie ondersteunt, kan men gebruikmaken van het Windowsprogramma CPU-Z. Deze applicaties verwerken de units sneller dan de normale applicatie. Aan de ene kant worden de 'claimed credits' daardoor minder, omdat de WU's sneller verwerkt worden, aan de andere kant kunnen er meer WU's binnen eenzelfde tijd worden verwerkt. Een speciale BOINC-client kan de 'claimed credits' ook ophogen, zodat toch hetzelfde aantal credits geclaimd wordt.