Salta al contingut

    ↑ ↓ per moure't↵ per obrir

    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
    • TPT_P ideal =T1/nprocessadors= T_1 / n_{processadors}

    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:

    TP ideal=T1nprocessadorsT_P^{,\text{ideal}} = \frac{T_1}{n_{\text{processadors}}}

    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.