Ja, det finns flera system för att dela datorkraft mellan flera datorer. Dessa system faller vanligtvis under paraplyen av
distribuerad dator . Den tillvägagångssätt som används beror starkt på typen av uppgift och den önskade kontrollnivån. Här är några exempel:
* nätberäkning: Detta handlar om att använda ett stort antal geografiskt spridda datorer (ofta ägs av olika organisationer eller individer) för att lösa ett enda, stort problem. Exempel inkluderar seti@hem (sökning efter utomjordisk intelligens) och vikning@hem (simulering av proteinvikning). Dessa använder vanligtvis en Master-Worker-modell där en central server distribuerar uppgifter till många arbetarnoder.
* Cluster Computing: Detta använder en samling sammankopplade datorer som arbetar tillsammans som ett enda system. Dessa datorer är ofta belägna nära varandra (t.ex. i ett datacenter) och har höghastighetssamtal. Detta möjliggör större samordning och snabbare kommunikation mellan noder än nätberäkning. Kluster används ofta för högpresterande datoranvändning (HPC), kör stora simuleringar eller hanterar massiva datasätt.
* Cloud Computing: Även om det inte strikt "delar" i betydelsen direkt kontroll över enskilda maskiner, tillåter molnberäkningsplattformar som AWS, Azure och Google Cloud dig att distribuera arbetsbelastningar över ett massivt nätverk av servrar. Du hyr datorresurser (virtuella maskiner, containrar etc.) efter behov och plattformen hanterar distribution och resursallokering.
* peer-to-peer (P2P) Computing: Detta innebär att distribuera uppgifter över ett nätverk av lika kapabla datorer, där varje dator fungerar som både en klient och en server. BitTorrent är ett välkänt exempel på P2P-fildelning, men det kan också anpassas för andra beräkningsuppgifter.
* Volontärberäkning: Detta är en specialiserad form av nätberäkning som förlitar sig på den frivilliga datorkraften för enskilda användares datorer. Seti@hem och vikning@hem är främsta exempel.
Det specifika systemet som valts beror på faktorer som:
* Arten av uppgiften: Vissa uppgifter är lätt parallelliserbara, medan andra inte är det.
* storleken och komplexiteten på uppgiften: Större, mer komplexa uppgifter kräver mer datorkraft och kan dra nytta av nät- eller klusterberäkning.
* Den erforderliga nivån för samordning: Tätt samordnade uppgifter behöver ett kluster, medan löst samordnade uppgifter kan använda ett rutnät.
* Datorns geografiska fördelning: Nätberäkning är bättre lämpad för geografiskt spridda datorer, medan klusterberäkning är bättre för datorer i närheten.
* Budget och infrastruktur: Cloud computing ger skalbarhet men kan vara dyr; Kluster kräver betydande investeringar i hårdvara och nätverk.
Kort sagt finns det inte ett enda system, utan snarare en rad metoder för att dela datorkraft, var och en med sina egna styrkor och svagheter.