Core parking in Windows Seven: prestazioni di WinRaR con Sandy Bridge

Il Core Parking in profondità

Abbiamo effettuato un numero elevato di prove con l'esemplare di Core i7 2600K in nostro possesso.

consumi


Durante tutte le prove, sia il consumo che le tensioni di alimentazione sono rimaste le stesse. Le prestazioni, invece, sono aumentate.

Tabella_affinit


In tabella sono riportati i risultati, con core parking abilitato e disabilitato, per WinRaR, con affinità impostata su varie combinazioni di core. Abbiamo prima verificato che con core parking abilitato o disabilitato da registro (dopo un riavvio) e core parking abilitato o disabilitato da interfaccia grafica, non cambiasse nulla. Infine, per quanto riguarda l'ultima riga del test, che riporta le prestazioni in mono core, è stato verificato che ognuno degli 8 core virtuali desse le stesse prestazioni.

Iniziamo con l'analisi della tabella. La prima riga contiene le prestazioni di WinRaR con tutti i core attivi, nelle due condizioni di core parking attivo e disattivo. Questi risultati sono gli stessi che già abbiamo visto in precedenza.

Analizziamo il valore con core parking ON e 8 thread e i valori con core parking OFF e 4 thread, presi a CPU virtuali alterne. Sappiamo che i processi eseguiti sui core 0, 2, 4 e 6, oppure i core 1, 3, 5 e 7 sono eseguiti su core fisici separati. Perciò dal confronto dei risultati possiamo dedurre che il core parking di Windows Seven "parcheggia" per primi i core "virtuali". Ma non si rende conto che WinRaR richiede 8 thread per funzionare al meglio e quindi non sveglia un numero di core sufficiente.

Nella colonna relativa ai risultati con core parking abilitato, notiamo i risultati pressoché identici delle prime tre configurazioni a 4 thread, che ci fanno sospettare che solo due core non sono parcheggiati in quel momento e sono su core fisici separati. La penultima riga è strana: il risultato è comparabile al risultato in mono thread. Questo ci fa pensare a un ulteriore baco: Windows pensa che sia necessario un solo core attivo per quel carico e non due.

La colonna relativa ai risultati con core parking disabilitato non ha sorprese rilevanti: la prima riga con 8 thread ha le massime prestazioni, le successive 2 allocano 4 thread su 2 core fisici e 2 logici, e quindi danno prestazioni sub-ottimali, le successive 2 allocano i 4 thread su core fisici separati, ottenendo tra l'altro lo stesso risultato di 8 thread con core parking abilitato, segno che Windows Seven pensa che 4 core (fisici) bastano per WinRar. L'ultimo valore, le prestazioni in mono core, è invariato.



Conclusioni

Il core parking di Windows usa una euristica per determinare quanti core sono strettamente necessari al software in esecuzione. Purtroppo non sempre questa euristica funziona.
A farne le spese sono le CPU Intel con tecnologia Hyper Threading. Ironicamente il vecchio Windows XP è immune da tale problema.
Disabilitando il core parking le ultime CPU di casa Intel possono liberare pienamente il loro potenziale in carichi mediamente leggeri per la CPU, dove l'euristica del core parking può sbagliare.
Con carichi medio - pesanti, dove la CPU è impegnata al massimo, non c'è spazio per spegnere core: in quel caso non si hanno miglioramenti disattivando il core parking. In effetti, nella maggior parte degli altri benchmark non abbiamo notato incrementi rilevanti delle performance.
Non sappiamo se Microsoft ha in lavorazione una patch per risolvere questo problema. Se volete avere le massime prestazioni, a scapito di un minor risparmio energetico, ora avete anche un modo comodo per modificare le impostazioni del core parking.

Marco Comerci
Redazione XtremeHardware