Mens både parallelle og distribuerede computing sigter mod at forbedre beregningshastigheden og håndtere store problemer, er de forskellige i deres arkitektur og hvordan de når dette mål. Her er en oversigt over de vigtigste forskelle:
Parallel computing:
* Arkitektur: Involverer typisk flere processorer eller kerner * inden for en enkelt maskine * (f.eks. En multi-core CPU, en GPU).
* hukommelse: Deler normalt en * delt hukommelse * plads. Alle processorer kan få adgang til de samme hukommelsessteder.
* Kommunikation: Kommunikation mellem processorer er generelt hurtigere på grund af delt hukommelse. Synkroniseringsmekanismer (låse, semaforer) bruges til at koordinere adgangen til delte ressourcer.
* fokus: Optimering for hastighed og effektivitet ved at opdele opgaver mellem processorer, der har direkte adgang til de samme data.
* Eksempler: Multithreading på en enkelt computer ved hjælp af GPU'er til videnskabelige simuleringer, højtydende computing inden for en server.
* Tæt kobling: Processorer er tæt koblet, hvilket betyder, at de er tæt forbundet og synkroniseres.
Distribueret computing:
* Arkitektur: Involverer flere uafhængige computere (noder), der er * tilsluttet via et netværk * (f.eks. Internettet, et lokalt netværk). Disse noder kan være fysisk placeret på forskellige geografiske steder.
* hukommelse: Hver knude har sin *egen private hukommelse *. Der er ingen delt hukommelsesplads.
* Kommunikation: Kommunikation opstår via * Message Passing * over netværket. Dette er generelt langsommere end delt hukommelsesadgang.
* fokus: Håndtering af store problemer, forbedring af tilgængelighed og fejltolerance og muliggør samarbejde mellem forskellige systemer.
* Eksempler: Cloud computing, gitterberegning, peer-to-peer-netværk, distribuerede databaser, systemer som Apache Kafka eller Apache Spark.
* Løs kobling: Processorer er løst koblet, hvilket betyder, at de fungerer relativt uafhængigt og kommunikerer gennem meddelelser.
Her er en tabel, der opsummerer forskellene:
| Funktion | Parallel computing | Distribueret computing |
| ------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Arkitektur | Flere processorer inden for en enkelt maskine | Flere uafhængige computere, der er tilsluttet via et netværk |
| hukommelse | Delt hukommelse | Privat hukommelse (ingen delt hukommelse) |
| Kommunikation | Delt hukommelsesadgang (hurtig) | Meddelelse, der passerer (langsommere) |
| kobling | Tæt koblet | Løst koblet |
| fokus | Hastighed, effektivitet | Skalerbarhed, tilgængelighed, fejltolerance |
| placering | Typisk inden for en enkelt fysisk placering | Kan spænde over forskellige geografiske placeringer |
Analogi:
* Parallel computing: Forestil dig en gruppe kokke, der arbejder i det samme køkken (den enkelte maskine). De deler de samme ingredienser, værktøjer og arbejdsområde (delt hukommelse) til at tilberede et måltid hurtigere.
* Distribueret computing: Forestil dig et team af kokke, der arbejder i forskellige restauranter (separate maskiner) over hele landet. De kommunikerer via telefon eller e -mail (meddelelsesafgang) for at koordinere oprettelsen af en kompleks menu.
Overlapning og sløring:
Det er vigtigt at bemærke, at linjen mellem parallel og distribueret computing undertiden kan sløres. For eksempel:
* En klynge af maskiner (distribueret system) kan bruge multi-core processorer i hver maskine (parallel behandling).
* Nogle systemer bruger muligvis en kombination af delte og distribuerede hukommelsesarkitekturer.
Sammenfattende fokuserer parallel computing på at maksimere hastigheden inden for et enkelt system ved hjælp af delte ressourcer, mens distribuerede computerhåndtag i større skala, geografisk spredte problemer ved at udnytte flere uafhængige systemer, der kommunikerer via et netværk. Valg af den relevante tilgang afhænger af de specifikke krav i applikationen, herunder størrelsen på problemet, præstationsmål og tilgængelighedsbehov.