Ett parallellt datorsystem är ett datorsystem med mer än en processor som arbetar samtidigt för att lösa ett problem. Istället för att förlita sig på en enda processor för att utföra instruktioner i följd delar ett parallellt system problemet i mindre delar och tilldelar varje del till en annan processor. Dessa processorer arbetar sedan samtidigt och kombinerar sina resultat för att producera den slutliga lösningen. Detta möjliggör betydligt snabbare bearbetning än ett enda processorsystem, särskilt för beräkningsintensiva uppgifter.
Här är en uppdelning av viktiga aspekter:
* Flera processorer: Kärnkarakteristiken är närvaron av flera bearbetningsenheter (CPU:er, GPU:er, etc.) som arbetar tillsammans. Detta kan sträcka sig från några kärnor inom ett enda chip (multi-core processor) till tusentals processorer i en stor superdator.
* samtidig exekvering: Flera processorer kör olika delar av samma program eller olika program samtidigt. Detta är i motsats till seriell bearbetning där instruktioner utförs efter varandra.
* Kommunikation: Effektiv kommunikation mellan processorerna är avgörande. De måste utbyta data och synkronisera sin verksamhet för att ge ett sammanhängande resultat. Kommunikationsmetoden varierar beroende på arkitekturen (t.ex. delat minne, meddelande som passerar).
* Parallell programmering: Programvara måste utformas specifikt för parallell exekvering. Detta handlar om att dela upp problemet i hanterbara uppgifter, tilldela dem till processorer, hantera databeroende och hantera kommunikationsområden.
typer av parallella datorsystem:
Parallella system kan kategoriseras på olika sätt, inklusive:
* delat minne: Processorer delar samma minnesutrymme. Detta förenklar kommunikationen men kan leda till synkroniseringsproblem om den inte noggrant hanteras.
* Meddelande Passing: Processorer har sitt eget privata minne och kommunicerar genom att utbyta meddelanden. Detta är mer skalbart men kräver uttryckliga kommunikationsmekanismer.
* SIMD (enstaka instruktioner, flera data): Alla processorer kör samma instruktion på olika datamängder samtidigt. Detta är lämpligt för mycket parallella uppgifter som bildbehandling.
* mimd (flera instruktioner, flera data): Processorer kan utföra olika instruktioner på olika datamängder samtidigt. Detta är den mest allmänna typen av parallell datoranvändning.
I huvudsak erbjuder parallella datorsystem betydande speedups för applikationer som effektivt kan parallella. De introducerar emellertid också komplexiteter i programmering och hantering av interaktionen mellan flera processorer.