Cores vs Threads
SMP
Caratteristiche
- Processori più semplici
- Affidabilità
Possibile utilizzo
- Piu task, ogni task su un processore diverso
Task-Level Parallelism
- Stesso task, esecuzione parallela sui diversi processori
Parallel processing
Esecuzione parallela
- Alcuni task sono naturalmente paralleli (programmi concorrenti) ⇒ possono essere eseguiti sequenzialmente o in time sharing su un architettura monoprocessore
- Altri task sono seriali e occorre capire come parallelizzarli in modo efficiente (blocking, moltiplicazione tra matrici ecc)
Blocking
- i programmi concorrenti hanno la possibilità di essere facilmente parallelizzati (parti diverse di un programma possono essere eseguite fuori ordine senza modificare il risultato finale) da un architettura multi-processore o multi-core.
- Esecuzione parallela richiede un overhead
Overhead ( Scheduling )
- I multi-processori si associano a un paralellismo esplicito
Parallelismo esplicito