Medan både distribuerade och parallella datorer involverar behandlingsuppgifter över flera noder eller processorer, skiljer de sig väsentligt i sina underliggande tillvägagångssätt, arkitektoniska antaganden och målproblem. Här är en uppdelning av deras viktigaste skillnader:
Parallell datoranvändning:
* Fokus: Påskynda beräkningen genom att dela upp ett enda problem i mindre delar som kan utföras samtidigt.
* Arkitektur: Involverar vanligtvis tätt kopplade processorer inom ett enda system. Detta system har ofta delat minne, vilket gör att processorer kan kommunicera direkt.
* Kommunikation: Förlitar sig starkt på delat minne eller snabba kommunikationsnätverk för interprocessor. Kommunikationskostnaderna är i allmänhet lägre än i distribuerade system.
* Koordination: Kräver snäv samordning och synkronisering mellan processorer för att säkerställa korrekt genomförande av uppgiften. Synkroniseringsprimitiv (t.ex. lås, semaforer) används ofta.
* feltolerans: Lägre feltolerans. Om en processor misslyckas kan hela systemet påverkas, eftersom de är tätt integrerade.
* Exempel: Multi-core-processorer, GPU:er, superdatorer (med delat minne), enstaka datorkluster.
* Mål: Minska * tiden * det tar att lösa ett problem.
* Typiska problem: CPU-bundna uppgifter som vetenskapliga simuleringar, komplexa beräkningar och bildbehandling där snabba resultat är av största vikt.
Distribuerad datoranvändning:
* Fokus: Lösa ett större problem genom att dela upp det i oberoende underproblem och utföra dem på separata, geografiskt spridda datorer (noder). Innebär ofta att hantera data som är för stora för att passa på en enda maskin.
* Arkitektur: Involverar löst kopplade system, där varje nod är en fristående dator med sitt eget minne, operativsystem och potentiellt olika hårdvara.
* Kommunikation: Förlorar meddelandet som passerar över ett nätverk. Kommunikationskostnaderna är vanligtvis högre än i parallella system. Nätverkslatens och bandbredd är betydande problem.
* Koordination: Kräver mer löst kopplad koordination, ofta baserad på meddelandeköer, RPC (fjärrprocedursamtal) eller distribuerade konsensusalgoritmer.
* feltolerans: Högre feltolerans. Misslyckandet med en nod sänker vanligtvis inte hela systemet, eftersom de andra noderna kan fortsätta att fungera. Redundans och datareplikation är vanliga strategier för att säkerställa motståndskraft.
* Exempel: Cloud computing-plattformar, peer-to-peer-nätverk, storskaliga databehandlingssystem (t.ex. Hadoop, Spark), innehållsleveransnätverk (CDN).
* Mål: Öka *skalbarhet *, *tillgänglighet *och *geografisk räckvidd *av applikationer och data. Lös problem som är för stora eller för komplexa för en enda maskin.
* Typiska problem: Dataintensiva applikationer (t.ex. bearbetning av stora datasätt, servering av webbtrafik, hantering av sociala medieinnehåll), system som kräver hög tillgänglighet (t.ex. onlinebank) och applikationer som måste nås från flera geografiska platser.
Här är en tabell som sammanfattar de viktigaste skillnaderna:
| Funktion | Parallell datorer | Distribuerad datorer |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| fokus | Påskyndar en enda uppgift | Skalbarhet, tillgänglighet, hantering av stora datasätt |
| arkitektur | Tätt kopplat, ofta delat minne | Löst kopplade, oberoende noder |
| Kommunikation | Delat minne, snabb interprocessorkommunikation | Meddelande som passerar ett nätverk |
| Koordination | Tät synkronisering | Lös samordning |
| feltolerans | Nedre | Högre |
| minne | Delad (ofta) | Distribueras (varje nod har sitt eget minne) |
| skala | Mindre (vanligtvis inom en enda maskin) | Större (potentiellt över flera maskiner, datacenter) |
Analogi:
* Parallell datoranvändning: Tänk på flera kockar som arbetar tillsammans i ett enda, välutrustat kök för att förbereda en enda, komplex måltid *snabbare *. De delar verktyg, ingredienser och samordnar noggrant.
* Distribuerad datoranvändning: Tänk på en kedja av restauranger, var och en med sitt eget kök, resurser och personal. De kan ha en gemensam meny och varumärke, men de arbetar i stort sett oberoende och kommunicerar främst för att utbyta information om försäljning, lager och marknadsföringskampanjer.
Sammanfattningsvis:
Parallell databehandling handlar om att göra en enda uppgift snabbare genom att dela den mellan flera processorer inom ett enda system. Distribuerad datoranvändning handlar om att lösa större problem eller tillhandahålla tjänster över flera oberoende system, ofta för skalbarhet, tillgänglighet och datahantering. Även om det kan finnas överlappning (t.ex. kan ett distribuerat system använda parallellbehandling inom enskilda noder), men de grundläggande målen och arkitektoniska överväganden är distinkta.