Parallelo vs. Processore seriale

CPU sulla scheda madre

Primo piano di un chip del processore sulla scheda madre di un computer

Credito immagine: Riccardo_Mojana/iStock/Getty Images

L'elaborazione parallela e seriale descrive se un sistema informatico può suddividere le attività computazionali da utilizzare più processori o core contemporaneamente o se si basa sul completamento di attività con un singolo processore nucleo. Tutti i singoli processori per computer consumer erano processori seriali prima della metà del 2005, quando Intel ha introdotto il primo processore dual-core consumer. Diversi processori single core possono lavorare insieme per gestire l'elaborazione seriale attraverso cluster di computer paralleli in rete o eseguendo più processori su una scheda madre.

I computer sono macchine multitasking

Un tipico computer moderno esegue da decine a centinaia di attività in un dato momento; tuttavia, ogni core sta lavorando su un solo processo alla volta. Il processore salta costantemente tra i diversi "thread" o "flussi di istruzioni" di elaborazione per eseguire diversi programmi simultanei in un'illusione in tempo reale chiamata concorrenza. Il computer finisce per sprecare i cicli del processore durante il passaggio da un lavoro all'altro e non funziona con l'efficienza ottimale durante il multitasking.

Video del giorno

Esecuzione di attività in parallelo

Un ambiente di elaborazione parallela può elaborare le attività più velocemente quando i programmi sono progettati per utilizzare l'elaborazione parallela. I programmi seriali allineano tutte le istruzioni in una disposizione seriale e si interfacciano con il processore utilizzando un singolo thread. I programmi paralleli funzionano suddividendo le attività in singole parti che possono essere divise tra più core del processore e riassemblate come attività completate. I processori paralleli possono moltiplicare la potenza di elaborazione di processori seriali con clock simile con codice scritto correttamente. Tuttavia, un processore seriale con una velocità di clock più elevata può superare i processori paralleli quando si lavora con un singolo thread.

Elaborazione seriale in azione

I programmi scritti per l'elaborazione seriale utilizzano solo un core alla volta ed elaborano le attività in ordine sequenziale. Un processore seriale funziona in modo molto simile a una dozzina di corsie di pagamento aperte in un negozio di alimentari con un cassiere che corre tra le diverse corsie, controllando tutti allo stesso tempo. Il cassiere, o CPU, salta da una corsia all'altra controllando pochi articoli alla volta prima di passare a quello successivo con l'obiettivo di finire tutti gli ordini contemporaneamente.

Elaborazione parallela in azione

L'idea alla base dei processori paralleli è che più core che lavorano insieme porteranno a prestazioni migliori. Un processore parallelo si comporta come avere più di un cassiere che gestisce una dozzina di corsie di pagamento. Se un programma è impostato per sfruttare l'elaborazione parallela, il "cliente" potrebbe suddividere il suo ordine in gruppi più piccoli e utilizzare più corsie di pagamento contemporaneamente.

I processori paralleli ampliano le possibilità

Nel 2007, Nvidia ha utilizzato per la prima volta l'elaborazione parallela per far progredire la tecnologia grafica. Le unità di elaborazione grafica utilizzano l'elaborazione parallela a un livello che spazza via le prestazioni dell'elaborazione seriale quando si eseguono piccoli calcoli. Mentre le CPU tendono ad avere un numero di core facilmente numerabile, le GPU possono avere migliaia di core a bassa potenza che sono più adatti per eseguire calcoli simultanei più semplici. Le GPU sono comunemente usate per la grafica, ma possono eseguire altri calcoli per cose come l'ordinamento e l'algebra delle matrici.