Introducció al paral·lelisme · 1.4
Execució seqüencial vs paral·lela
En execució seqüencial hi ha un sol thread; en paral·lela, el procés es divideix en threads que s'executen alhora en diferents CPUs. En el cas ideal, el temps es divideix pel nombre de processadors.
Conceptes clau
- Execució amb un únic thread
- Diversos threads en diferents CPUs
- ideal
En execució seqüencial, un procés avança amb un únic thread: hi ha un sol flux d’instruccions i, en cada instant, la feina recau sobre una única CPU.
En canvi, en l’execució paral·lela, el mateix únic procés es divideix en diversos threads que poden executar-se alhora en diferents CPUs. Com que tots els threads formen part del mateix procés, comparteixen el mateix codi i el mateix espai de memòria. Però cada thread conserva pila i registres propis. Al tenir varis threads podem usar múltiples processadors alhora, per executar el codi de forma simultània.
Això ens permet dividir el temps d’execució fins a:
Aquest cas és idíl·lic: pressuposa que som capaços de fer un repartiment perfecte de càrrega de treball entre tots els processadors, sense dependències ni sense overheads.