Både parallell datoranvändning och distribuerad datoranvändning syftar till effektiv uppgiftsbehandling, men de skiljer sig väsentligt i sin strategi:
Parallell datoranvändning:
* Fokus: Utföra flera beräkningar * samtidigt * inom ett enda datorsystem. Detta utnyttjar flera bearbetningsenheter (kärnor, trådar etc.) inom samma maskin.
* Kommunikation: Kommunikation mellan behandlingsenheterna är relativt snabb och effektiv eftersom de delar samma minnesutrymme (eller åtminstone har en höghastighetssamtal). Datavdelning är ofta enkel.
* Programmeringsmodell: Innebär ofta att använda tekniker som multithreading, multiprocessing eller SIMD (enstaka instruktioner, flera data) instruktioner. Bibliotek som OpenMP, MPI (även om det också används i distribuerad) och CUDA används vanligtvis.
* skalbarhet: Begränsad av de fysiska resurserna (antalet kärnor, minne, I/O -bandbredd) av en enda maskin. Att lägga till mer bearbetningskraft kräver att du får en kraftfullare maskin.
* Exempel: Kör en komplex simulering med flera kärnor på en enda avancerad arbetsstation.
Distribuerad datoranvändning:
* Fokus: Utföra flera beräkningar * samtidigt * över flera oberoende datorer (noder) anslutna med ett nätverk.
* Kommunikation: Kommunikation mellan noder förlitar sig på ett nätverk (t.ex. Ethernet, Infiniband), som i sig är långsammare och mer komplex än intern kommunikation inom en enda maskin. Datavdelning kräver uttryckliga kommunikationsmekanismer. Nätverkslatens och bandbredd blir kritiska faktorer.
* Programmeringsmodell: Innebär ofta att använda meddelandepasseringstekniker (t.ex. MPI) eller delade-ingenting-arkitekturer (t.ex. med hjälp av databaser). Koordinering mellan noder är mer utmanande.
* skalbarhet: Kan skala till mycket stora problem genom att lägga till fler datorer i nätverket. Den teoretiska gränsen är mycket högre än parallellberäkning på en enda maskin.
* Exempel: En storskalig webbsökmotor, där många servrar arbetar tillsammans för att indexera och hämta webbsidor. Cloud Computing är ett framträdande exempel på distribuerad datoranvändning.
Nyckelskillnader sammanfattade:
| Funktion | Parallell datorer | Distribuerad datorer |
| ----------------- | ------------------------------------------------------------------------------------- |
| hårdvara | Enkel maskin, flera processorer | Flera oberoende maskiner |
| Kommunikation | Snabbt, delat minne (ofta) | Långsammare, nätverksbaserad |
| skalbarhet | Begränsad av enstaka maskinresurser | Mycket skalbar |
| komplexitet | Relativt enklare att programmera | Betydligt mer komplex att programmera |
| Datadelning | Enklare, ofta implicit | Mer komplex, uttrycklig kommunikation |
I vissa fall kan du kombinera båda metoderna - med ett kluster av datorer (distribuerad dator) där varje dator själv utför parallella beräkningar. Detta erbjuder det bästa av båda världarna:hög skalbarhet och effektivt utnyttjande av enskilda maskinresurser.