Processore Parallelo vs Seriale
Elaborazione parallela vs seriale: un sistema può spezzare task computazionali per usare più core/processori simultaneamente (parallelo) o dipende da un solo core (seriale). Tutti i processori consumer erano seriali fino a metà 2005 (Intel primo dual-core consumer). Più processori single-core in rete (cluster) o su stessa motherboard gestiscono elaborazione parallela.
Computer = Macchine Multitasking
PC moderno esegue decine/centinaia di task insieme; ma ogni core lavora su un processo alla volta. Processore salta tra "thread" o "flussi istruzioni" per illusione tempo reale (concorrenza). Spreca cicli nello switching, non efficienza ottimale nel multitasking.
Esecuzione Task in Parallelo
Ambiente parallelo processa più veloce se programmi scritti per parallelo. Programmi seriali: istruzioni in fila, singolo thread. Programmi paralleli: spezzano task in parti divisibili tra core, riassemblano risultati. Processori paralleli moltiplicano potenza vs seriali stesso clock con codice adeguato. Ma processore seriale con clock più alto batte paralleli su single thread.
Elaborazione Seriale in Azione
Programmi seriali usano un core alla volta, task sequenziali. Come 12 casse aperte con 1 cassiere che corre tra corsie: serve pochi clienti per corsia, salta all'altra, obiettivo finire tutti insieme.
Elaborazione Parallela in Azione
Più core che collaborano = prestazioni migliori. Come avere più cassieri per 12 corsie. Se programma sfrutta parallelo, "cliente" divide spesa in gruppi e usa più casse insieme.
Processori Paralleli Espandono Possibilità
2007: Nvidia usa elaborazione parallela per grafica. GPU: elaborazione parallela massiva (migliaia di core low-power) batte seriale per piccoli calcoli. CPU: core contabili (4-64). GPU: migliaia core per calcoli semplici simultanei. GPU usate per grafica, ma anche sorting, algebra matriciale, AI/ML.