Processori multi-core: di più è sempre meglio?

Sommario:

Processori multi-core: di più è sempre meglio?
Processori multi-core: di più è sempre meglio?
Anonim

L'aggiunta di più core a un singolo processore offre vantaggi significativi grazie alla natura multitasking dei moderni sistemi operativi. Tuttavia, per alcuni scopi, esiste un limite pratico superiore al numero di core che producono miglioramenti rispetto al costo della loro aggiunta.

Avanzamenti tecnologici multi-core

Image
Image

I processori multi-core sono disponibili nei personal computer dall'inizio degli anni 2000. I progetti multi-core hanno affrontato il problema dei processori che raggiungevano il limite massimo dei loro limiti fisici in termini di velocità di clock e di quanto efficacemente potevano essere raffreddati e mantenere comunque la precisione. Passando a core aggiuntivi su un singolo chip del processore, i produttori hanno evitato problemi con le velocità di clock moltiplicando efficacemente la quantità di dati che potrebbero essere gestiti dalla CPU.

Quando furono originariamente rilasciati, i produttori offrivano solo due core in una singola CPU, ma ora ci sono opzioni per quattro, sei e anche 10 o più. Oltre ad aggiungere core, le tecnologie multithreading simultanee, come Hyper-Threading di Intel, possono raddoppiare i core virtuali che vede il sistema operativo.

Processi e thread

Un processo è un'attività specifica, come un programma, in esecuzione su un computer. Un processo è costituito da uno o più thread.

Un thread è semplicemente un singolo flusso di dati da un programma che passa attraverso il processore sul computer. Ogni applicazione genera i propri uno o più thread a seconda di come è in esecuzione. Senza il multitasking, un processore single-core può gestire un solo thread alla volta, quindi il sistema passa rapidamente da un thread all' altro per elaborare i dati in modo apparentemente simultaneo.

Il vantaggio di avere più core è che il sistema può gestire più di un thread contemporaneamente. Ciascun core può gestire un flusso di dati separato. Questa architettura aumenta notevolmente le prestazioni di un sistema che esegue applicazioni simultanee. Poiché i server tendono a eseguire molte applicazioni simultanee in un dato momento, la tecnologia è stata originariamente sviluppata per il cliente aziendale, ma poiché i personal computer sono diventati più complessi e il multitasking è aumentato, anche loro hanno tratto vantaggio dall'avere core aggiuntivi.

Ogni processo, tuttavia, è governato da un thread primario che può occupare solo un singolo core. Pertanto, la velocità relativa di un programma come un gioco o un renderer video è fortemente limitata alla capacità del core consumata dal thread principale. Il thread principale può assolutamente delegare thread secondari ad altri core, ma un gioco non diventa due volte più veloce quando raddoppi i core. Pertanto, non è insolito che un gioco raggiunga il massimo di un core (il thread principale) ma veda solo un utilizzo parziale di altri core per i thread secondari. Nessuna quantità di raddoppio del core aggira il fatto che il core primario è un limitatore di velocità per la tua applicazione e le app sensibili a questa architettura funzioneranno meglio delle app che non lo sono.

Dipende dal software

Anche se il concetto di processori multi-core suona allettante, c'è un importante avvertimento su questa tecnologia. Per sfruttare i veri vantaggi dei processori multipli, il software in esecuzione sul computer deve essere scritto per supportare il multithreading. Senza il software che supporta tale funzionalità, i thread verranno eseguiti principalmente attraverso un singolo core, degradando così l'efficienza complessiva del computer. Dopotutto, se può funzionare solo su un singolo core in un processore quad-core, potrebbe essere effettivamente più veloce eseguirlo su un processore dual-core con velocità di clock di base più elevate.

Tutti i principali sistemi operativi attuali supportano la capacità di multithreading. Ma il multithreading deve anche essere scritto nel software applicativo. Il supporto per il multithreading nel software consumer è migliorato nel corso degli anni, ma per molti programmi semplici, il supporto per il multithreading non è ancora implementato a causa della complessità della build del software. Ad esempio, è improbabile che un programma di posta o un browser Web ottenga enormi vantaggi dal multithreading quanto un programma di editing video o grafico, in cui il computer elabora calcoli complessi.

Un buon esempio per spiegare questa tendenza è guardare un tipico gioco per computer. La maggior parte dei giochi richiede una qualche forma di motore di rendering per visualizzare ciò che sta accadendo nel gioco. Inoltre, una sorta di intelligenza artificiale controlla eventi e personaggi nel gioco. Con un core singolo, entrambe le attività vengono eseguite passando da una all' altra. Questo approccio non è efficiente. Se il sistema prevedesse più processori, il rendering e l'IA potrebbero essere eseguiti ciascuno su un core separato, una situazione ideale per un processore multi-core.

È 8 > 4 > 2?

Andare oltre i due core presenta vantaggi contrastanti, dato che la risposta per un determinato acquirente di computer dipende dal software che utilizza di solito. Ad esempio, molti giochi classici offrono ancora poca differenza di prestazioni tra due e quattro core. Anche i giochi moderni, alcuni dei quali presumibilmente richiedono o supportano otto core, potrebbero non funzionare meglio di una macchina a sei core con una velocità di clock di base più elevata, dato che l'efficacia del thread primario governa l'efficienza delle prestazioni multithread.

D' altra parte, un programma di codifica video che transcodifica i video probabilmente vedrà enormi vantaggi poiché il rendering dei singoli frame può essere passato a diversi core e quindi raggruppato in un unico flusso dal software. Quindi avere otto core sarà ancora più vantaggioso che averne quattro. In sostanza, il thread principale non ha bisogno di risorse relativamente ricche; invece, può distribuire il duro lavoro ai thread figli che massimizzano i core del processore.

Velocità dell'orologio

Image
Image

In termini generali, una maggiore velocità di clock significherà un processore più veloce. Le velocità di clock diventano più nebulose se si considerano le velocità relative a più core perché i processori elaborano più thread di dati grazie ai core extra, ma ciascuno di questi core funzionerà a velocità inferiori a causa delle restrizioni termiche.

Ad esempio, un processore dual-core può supportare velocità di clock di base di 3,5 GHz per ciascun processore, mentre un processore quad-core può funzionare solo a 3,0 GHz. Solo guardando un singolo core su ciascuno di essi, il processore dual-core è il 14% più veloce rispetto al quad-core. Pertanto, se si dispone di un programma che è solo a thread singolo, il processore dual-core è in re altà più efficiente. Inoltre, se il tuo software può utilizzare tutti e quattro i processori, il processore quad-core sarà effettivamente circa il 70% più veloce di quello dual-core.

Conclusioni

Per la maggior parte, avere un processore con un numero di core più elevato è generalmente migliore se il software e i casi d'uso tipici lo supportano. Per la maggior parte, un processore dual-core o quad-core sarà più che sufficiente per un utente di computer di base. La maggior parte dei consumatori non vedrà alcun vantaggio tangibile nell'andare oltre i quattro core di processore perché così poco software non specializzato ne trae vantaggio. Il miglior caso d'uso per processori con un numero elevato di core si riferisce a macchine che eseguono attività complesse come l'editing video desktop, alcune forme di gioco di fascia alta o complicati programmi scientifici e matematici.

Dai un'occhiata ai nostri pensieri su Quanto velocemente ho bisogno di un PC? per avere un'idea più precisa del tipo di processore più adatto alle tue esigenze informatiche.

Consigliato: