Un numero maggiore di core o una velocità di clock superiore sono più vantaggiosi per le prestazioni di un computer? [chiuso]


16

Con la riduzione dei costi del silicio e l'aumento delle esigenze dei consumatori, i produttori sembrano spingersi in due modi: velocità di clock e / o numero di core. Con il modo in cui vanno le cose, non sembra più che la velocità di clock dei processori stia aumentando, ma il numero di core del processore.

Ricordo solo qualche anno fa, avevo un bel processore Pentium 4 single-core veloce. Avanti veloce ad oggi, e non credo che tu possa nemmeno acquistare un processore single-core (per non parlare del crescente aumento dei processori multicore anche nei telefoni cellulari ). Per come vanno le cose, potremmo trovare computer con centinaia di core in pochi anni (e so che molti sistemi operativi ne hanno già il supporto).

È più vantaggioso per le prestazioni complessive di un sistema aumentare la velocità di clock o aumentare il numero di core? Supponiamo che stiamo entrando in centinaia di core tutti in esecuzione insieme o che la velocità di clock sia dieci volte superiore a quella che abbiamo oggi (indipendentemente dal fatto che sia fisicamente possibile o meno).

Quali sono alcuni esempi di processi comuni (ad es. Crittografia, compressione di file, editing di immagini / video) che trarranno maggiori benefici l'uno o l'altro? Ci sono alcuni processi che possono essere, ma attualmente non sono (per motivi tecnici) accelerati aumentando il loro parallelismo?


Supponiamo che l'ipotetico processore abbia lo stesso identico design del core (dimensione della parola, larghezza del bit dell'indirizzo, dimensione del bus di memoria, cache, ecc ...), quindi le uniche variabili qui sono la velocità di clock e il conteggio dei core. E ancora, non sto parlando di uno, due o addirittura quattro core - immagina decine a centinaia.


9
Tutto dipenderà da cosa vuoi fare su quel computer. I core multipli sono buoni per alcune cose, velocità di clock più alte per altre.
ChrisF,

@ChrisF Personalmente conosco la risposta, ma lo sto chiedendo per due motivi. Il primo è avere queste informazioni sul sito Web (l'ho visto solo chiesto in relazione ai processori dual o quad core), e il secondo è quello di provare a dare alle persone un'idea di ciò che verrà "in futuro" e di mostra quali sono le applicazioni di entrambi i lati dell'equazione.
Breakthrough


3
Direi che mentre questa è una buona domanda per parlare mentre hai una pinta, non è praticamente una buona domanda di scambio di stack.
EBGreen

1
Ci sono troppe variabili, quali if e altri parametri + la tecnologia in corso cambia per sviluppare una risposta sintetica che sarà rilevante per più di un periodo di tempo specifico. Questo è un argomento interessante per un forum o blog, ma non come qualcosa da fissare come "risposta". Ho votato per chiudere per questo motivo quindi lasciate che le fiamme inizino !!!
Linker3000,

Risposte:


12

Esistono due situazioni di base da considerare:

  1. Il processore viene utilizzato con un computer che esegue esclusivamente calcoli per un singolo programma

  2. Il processore viene utilizzato per più programmi in esecuzione contemporaneamente

La prima situazione è quella in cui la "velocità" del processore è più importante, in quanto l'utente desidera poter eseguire calcoli in modo rapido ed efficiente. Queste situazioni sono in genere per l'elaborazione intensiva di calcolo, ovvero il calcolo dei numeri primi per la crittografia / decrittografia

Il secondo è dove più nuclei sono utili, poiché ogni programma può essere assegnato a un nucleo separato, liberando così ogni programma dal "collo di bottiglia" tra loro. Nel mondo di oggi, l'utente medio utilizzerà il proprio computer per più programmi alla volta, rendendo così l'elaborazione multi-core una cosa desiderabile.

Tuttavia, multi-core ! = Velocità più elevate o prestazioni più elevate in tutti i casi. Poiché la maggior parte dei programmi sono scritti per l'elaborazione single core * , la velocità di clock è ancora importante da guardare. Una combinazione di entrambi deve essere presa in considerazione (insieme a molti altri fattori) .


* Ci sono alcuni programmi e, si spera, presto ne verranno creati altri, in cui è possibile utilizzare più core contemporaneamente. Il futuro del software si trova con questa " Programmazione parallela ":

Gli sviluppatori di software non possono più fare affidamento solo sull'aumento della velocità di clock per accelerare le applicazioni a thread singolo; invece, per ottenere un vantaggio competitivo, gli sviluppatori devono imparare a progettare correttamente le proprie applicazioni per l'esecuzione in un ambiente thread. Le architetture multi-core hanno un singolo pacchetto di processore che contiene due o più "core di esecuzione" o motori di calcolo del processore e forniscono, con software adeguato, l'esecuzione completamente parallela di più thread software.

- Intel


La migliore risposta che ho visto finora, +1. Sai se è possibile accelerare la crittografia / decrittografia con un qualche tipo di algoritmo parallelo (o esiste una cosa del genere)?
Breakthrough

2

Personalmente penso che il conteggio dei core sia la strada da percorrere. Lo sviluppo del software si è spostato su sistemi in rete, quindi le risorse locali non sono più le uniche risorse disponibili. Il fattore più importante nel modo in cui lavori ora è la rete di cui fai parte.

Notare il passaggio a banda larga mobile, connettività costante, accesso remoto, ecc. Con ciò, la connettività costante richiede la durata della batteria. Mentre è discutibile quali fattori della CPU siano più ottimali per la durata della batteria (hai la classica equazione di ottimizzazione del valore di lavoro rispetto al tempo), personalmente penso che, se dovessi sceglierne uno, sceglierei più core.

Intel ora consente di alimentare i core su richiesta. Sebbene non sia ottimale come non avere core per dormire, la possibilità di utilizzare più core ti dà la flessibilità di eseguire più applicazioni dalla stessa piattaforma hardware.


2

Come cita ChrisF in un commento, dipende. Ma poiché risposte come queste non sono proprio risposte, cercherò di individuare alcuni scenari in cui uno sarà più vantaggioso dell'altro:

Nella maggior parte dei processi comuni citati, il numero di core non avrà molta importanza, poiché la maggior parte del lavoro viene eseguita in un singolo thread che può essere eseguito solo su un singolo core (alla volta). Per tali processi, un core singolo ma molto potente funzionerà meglio di un paio di core più lenti. Sia la crittografia che la compressione dei file potrebbero fare eccezione, ma dipende molto da quali algoritmi vengono utilizzati e se possono essere eseguiti in parallelo.

Tuttavia, hai dimenticato una delle attività più comuni eseguite oggi sui computer: la navigazione. Diversi browser popolari aprono ciascuna scheda in un processo separato (Chrome è l'unico che sono sicuro che faccia, poiché è quello che uso), il che significa che se hai quattro schede aperte su un sistema quad-core, ogni finestra di navigazione può (in teoria) hanno un nucleo "a se stesso" (ignorando i thread e roba del sistema operativo) ed essere veloci come se non ci fossero altre schede / finestre del browser aperte. Per le persone che navigano con molte schede aperte contemporaneamente, questo può essere un notevole miglioramento delle prestazioni senza dover costruire core CPU estremamente veloci.

La chiave per sapere se un sistema multi-core con core più lenti sarà più veloce di un sistema single-core con un core veloce è sapere se farai molte cose diverse contemporaneamente o poche, ma pesanti . Poiché questo differirà molto da utente a utente, così sarà la risposta alla tua domanda.


Le altre risposte fanno anche un paio di punti importanti:

  • le prestazioni del processore non riguardano più la velocità di clock o il numero di core: altre parti del processore stanno diventando colli di bottiglia man mano che la velocità di clock e il numero di core migliorano.
  • per la maggior parte degli utenti, le prestazioni del processore non sono nemmeno il collo di bottiglia per cominciare. Se trascorri il tuo tempo in applicazioni ospitate come Google Documenti, la velocità della tua scheda di rete avrà più importanza della velocità dei core del tuo processore. Se stai guardando o modificando materiale cinematografico ad alta risoluzione, le prestazioni del disco rigido avranno più importanza. Eccetera...

+1 per aver pensato e effettivamente fornito spiegazioni, ma vorrei sottolineare una cosa: sì, alcuni browser mettono ciascuna scheda in un processo separato , ma questo è appena fatto in caso di crash del processo. La maggior parte dei browser esegue almeno ogni scheda in un thread separato e i sistemi operativi hanno la possibilità di eseguire più thread (dallo stesso processo) su core diversi.
Breakthrough

IE 9 esegue il metodo multi-processo. Tuttavia, credo che utilizzino un determinato numero di processi e condividano tutte le schede tra tali processi. Il risultato è un numero inferiore di processi rispetto a quelli di Chrome, ma ciò significa che perderai solo alcune schede se tutto si riduce in un heap con sfumature di Redmond.
music2myear,

Oh, e dipende anche dal software. Mentre il sistema operativo in genere è in grado di gestire la gestione del traffico e inviare thread di attesa ai core disponibili (immagine mentale di match.com presente nel mio grottoso silicio), i programmi multi-thread stessi (la maggior parte dei prodotti Adobe Creative Suite e altri ben supportati , moderni strumenti di sviluppo multimediale) trarranno un vantaggio molto maggiore dalle capacità di un sistema multi-core.
music2myear,

2

Innanzitutto, le velocità single-core non sono diminuite molto. L'unica ragione per cui l'attuale lineup di Sandy Bridge di Intel non supera i Pentium 4s single-core in termini di megahertz è che Intel manca di concorrenza, quindi non devono spingere così forte.

In secondo luogo, la velocità di clock non è tutto, nemmeno su single core. Per quanto riguarda le prestazioni delle applicazioni, sempre rispetto a Pentium 4, l'attuale gamma Intel è circa il 50% più veloce per ciclo di clock . I motivi per cui Sandy Bridge è più veloce per ciclo di clock rispetto a Pentium 4 (Prescott è l'ultima incarnazione di esso) sono numerosi, ma hanno un controller di memoria intelligente pre-recuperato, un controller di memoria sullo stesso die con CPU e parallelismo di livello superiore (ILP) contribuire a questo.

Il parallelismo a livello di istruzione significa sostanzialmente che il processore esamina le istruzioni e le loro dipendenze e se due istruzioni non dipendono l'una dall'altra, la CPU può iniziare a caricare i dati per entrambi allo stesso tempo e possibilmente riordinare le istruzioni, dei dati per uno dei loro arrivano prima dell'altro.

Terzo, alcune applicazioni beneficiano davvero molto bene di più core. Ad esempio Photoshop preferisce quasi sempre più core rispetto alla frequenza operativa. Vale a dire. anche un quad-core lento batte quasi sempre qualsiasi chip dual-core, e qualsiasi dual-core batte qualsiasi chip single-core. I tre core sono un miscuglio, spesso vincono sui dual core, ma non sempre.

Generalmente le applicazioni che eseguono lo stesso tipo di operazioni per molti set di dati diversi traggono maggior beneficio dal parallelismo. Ad esempio la compressione video o il fotoritocco spesso possono essere parallelizzati abbastanza facilmente. D'altra parte, i giochi per computer si sono rivelati difficili da parallelizzare. La grafica su di essi ovviamente si parallelizza molto bene, ma quella parte viene eseguita su GPU, non su CPU. La fisica rimanente, la contabilità del mondo di gioco e gli IA si parallelizzano meno facilmente.


1

In realtà oggi il fattore più importante non è la velocità di clock del processore, ci sono molte nuove funzionalità lanciate da quando questo "fattore di confronto" è caduto in disuso.

Oggi è necessario dare un'occhiata a molti fattori per inferire sulle prestazioni del processore. Cose come:

  • numero di core
  • numero di thread di operazioni parallele
  • famiglia di processori (Dual core, Pentium, Core i / Calpella, Sandy Bridge, ecc.)
  • generazione del processore (2a, 6a, ecc.) e quindi
  • velocità di clock del processore.

In realtà, quando voglio confrontare la velocità del processore, consulto il passmark delle tabelle di benchmark di notebookcheck . I benchmark, a mio avviso, sono il miglior fattore per misurare e confrontare la velocità e le prestazioni del processore.


Sì, ma per semplificare le cose, supponiamo che tutto il resto sia uguale (stessa quantità di cache per core, stessa larghezza del bus dell'indirizzo, stessa dimensione della parola, ecc ...). I nuclei stessi sono esattamente gli stessi, è solo a) quanti, oppure b) quanto velocemente.
Breakthrough

La famiglia di processori e la generazione non hanno nulla a che fare con la velocità del processore. Dopotutto, i proc Atom sono molto più recenti dei processori P4 o Core e Core2, ma nessuno sosterrebbe mai che sono più veloci. Altre cose che hanno un effetto più diretto sulla velocità della CPU sono la cache on-die, il numero di registri, l'architettura del chip, la dimensione dei percorsi conduttivi (processo di manipolazione nm), le capacità operative in virgola mobile, ecc.
music2myear

@ music2myear - Quando mi riferisco alla generazione, parlo di famiglia ( superuser.com/questions/314757/… ). In realtà Atom D525 sono migliori di molti Core 2 ( cpubenchmark.net/cpu_lookup.php?cpu=Intel+Atom+D525+%40+1.80GHz )
Diogo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.