boh… idee varie

/mnt/brain

Single core, dual core o quad core… Vale la pena?

Pubblicato da Alessio Margutta su 30 Dicembre 2008

Venuto in mente per caso, come al solito. Da poco sono felice possessore – per caso – di un Phenom X4. Un mio amico da poco ha cambiato PC e si è preso un Intel Core 2 Quad Q8200. Chiacchierando sull’utilità dei processori multicore mi chiede:

skype-quad-core-o-single-core

Così mi indica il taskmanager e così ho sempre letto dappertutto, che ’sti dual o quad-core servono a poco se l’applicazione non è scritta ben beneficiarne. Però mi è venuta la curiosità di quantificare un po’ meglio le prestazioni e ho fatto un paio di test.

 

Intanto per confrontare le prestazioni bisogna spegnere i core. Che è possibile solo da BIOS, se il BIOS lo permettesse. Un sistema molto più semplice è istruire Windows a ignorarli. In XP è piuttosto semplice: basta aggiungere un’opzione al boot.ini e riavviare il PC.

Ecco come apparivano i miei boot.ini. /numproc=1 e /onecpu sono equivalenti.

Ecco come apparivano i miei boot.ini. /numproc=1 e /onecpu sono equivalenti.

***** NOTA *****

1) Io non ho avuto grane. Ma non posso escludere che cambiare il numero dei core comporti una nuova attivazione di Windows.

2) Io non ho avuto grane. Ma non posso escludere che il sistema operativo non parta se si cambia il numero di core. A maggior ragione se si seleziona 3: io ho sperato ed è andata bene. Avessi un Intel – non seguo più di tanto, ma almeno i primissimi Intel Quad erano 2xdual core su un chip - starei attento. Male che vada basta rieditare il boot.ini da una console di ripristino.  Però sempre una rottura.

****************

In Vista o Linux il concetto è simile; la procedura un po’ diversa rispetto a XP, ma le spiegazioni su come fare si trovano facilmente in rete. Poi quale programma scegliere. Mah, avevo letto da qualche parte che WinRAR è ottimizzato per il multithreading. Viene spesso usato anche per misurare le prestazioni dei processori. E allora proviamo e vediamo i risultati.

da 320 MB è stato dopo lunga elaborazione compresso a 320 MB! E' già compresso di suo.

WinRAR 3.80. Per stressare il processore ho usato l'opzione "best" e come file da comprimere il SP3 di XP. Nota a margine: da 320 MB il SP3 è stato compresso - dopo lunga elaborazione - a 320 MB! E' già compresso di suo. L'opzione multithreading è selezionata di default se è attivo più di un core.

Ho chiuso tutte le applicazioni. Disattivato l’antivirus e ho cercato insomma di avere condizioni omogenee per poter fare un confronto. Per vedere il carico su ogni singolo core ho usato la HWM Blackbox: gli screenshot che seguono sono solo un’istantanea, ma almeno sono più chiari del taskmanager di Windows. Il carico del sistema è solo un’indicazione molto approssimativa: ho calcolato solo una media aritmetica delle varie istantanee che ho preso.

100%

x1 Single core. Tempo: 5:41. CPU-Load: 100%

90%

x2 Dual core. Tempo: 2:55. CPU Load - media: 90%

81%

x3 Triple core. Tempo: 2:25. CPU load - media: 81%

71%

x4 Quad core. Tempo: 2:12. CPU load - media: 71%

Insomma, si vede già a occhio come WinRAR scali benissimo da uno a due core: impiega  poco più della metà del tempo - da 5:41 (=341 secondi) a 2:55 (=175 secondi) - e riesce a dare lavoro a tutti e due i core (circa 90% di carico medio sul processore). Poi si perde: cioè le prestazioni non aumentano in proporzione al numero di core attivi perché i core non riescono ad operare a piena capacità (80% circa per l’x3 e 70% per l’x4), che è come dire – nel caso del quad - che un core di fatto non fa niente. Una parte del lavoro – dal 10 al 15% – va inoltre persa inutilmente: WinRAR tiene cioè occupati i core senza che le prestazioni aumentino in proporzione al carico di lavoro effettuato. Insomma i processori o cincischiano senza combinare niente, oppure sono occupati con se stessi a passarsi le carte, manco fossero impiegati della pubblica amministrazione. In attesa di un Brunetta, qualche grafico riassuntivo:

Prestazioni teoriche - se la performance scalasse linearmente con il numero di core - e prestazioni effettive a confronto.

Prestazioni teoriche - se la performance scalasse linearmente con il numero di core - e prestazioni effettive a confronto.

 

Scalabilità teorica - se i core lavorassero tutti al 100% - ed effettiva. L'efficienza è stata calcolata come MByte/sec elaborati (320 MB in tutto) sul carico del processore (media aritmetica) per 10.000 (per via del grafico).

Scalabilità teorica - se i core lavorassero tutti al 100% - ed effettiva, come somma del carico dei singoli core. L'efficienza è stata calcolata come MB/sec elaborati (320 MB in tutto) sul carico del processore - somma dei singoli core - per 10.000 (per via della scala del grafico).

 

Non che mi aspettassi un risultato molto diverso, però che WinRAR scalasse in modo quasi perfetto solo fino a due core mi ha insospettito. E così ho cercato un’applicazioncina scritta apposta per testare la scalabilità dei processori multicore; come ad esempio wPrime. E sorpresa

I risultati con wPrime - incollati su un unica immagine per questione di spazio.

I risultati con wPrime - incollati su un unica immagine per questione di spazio.

Sorpresa, perché scala in modo perfetto. Beh, è stata scritta apposta. Non c’è neppure bisogno di un grafico: la metà di 62 è 31, un terzo è 20 e un quarto 15. Una bella linea retta. Il trucco? perfetto parallelismo e core sempre con load al 100%.

ogni core va al 100%.

I tre core mentre gira wPrime: ogni core va al 100%.

 

A cosa servono quindi i processori multicore? Al momento direi ben a poco se si tratta di accelerare una singola applicazione. Anche WinRAR – che pur si fregia di essere capace di multithreading – non mi pare vada molto al di là di un’ottimizzazione per un dualcore. Detto questo, più core fanno comodo perché - anche se l’applicazione è single threaded – il sistema operativo la lascia eseguire su un core che al momento ha poco da fare. Un quad core non costa molto più di un dual core. Inoltre - almeno il mio PC – viaggia sempre alla metà del clock perché non ha nulla da fare e quindi quattro core non consumano molto più di due. E poi devo dire che passando da un Athlon64 2,2 GHz al Phenom 2,5 GHz ho notato soggettivamente una differenza notevolissima. Che non mi spiego né con il leggero incremento di clock né con il design più moderno del Phenom rispetto all’Athlon. Che sia il numero di core?

 

*** aggiunta 24.01.09 ***

online scan con Kaspersky.

Un esempio dove un quad core è meglio di un dual core, che è meglio di un core solo: online scan con Kaspersky.

 

Lascia un commento

XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>