Newsgroup: it.comp.hardware
Titolo: Come riconoscere processori logici da fisici

Ciao,
	ho sottomano un i7 con 4 core fisici e Ht, quindi 8 logici.
Quando faccio elaborazioni intensive come posso settare che i 4 core da 
utilizzare siano quelli fisici e non quelli virtuali?
La lista nel task manager va da 0 a 7 ma non c'è altra descrizione.
Grazie,
	Beppe.
-- 
La fatica fisica appaga lo spirito ed avvicina alla saggezza. Solo 
soffrendo acquisisci la forza morale che scaturisce dall'autodominio.

      Beppe.
 
Forse, dico forse, nel bios si può disabilitare l'hyperthreading, ma io 
non lo farei.
 

 	Beppe.
 
Come gia' detto dovresti disabilitare l'HT nel bios...ma in
questo caso verrebbe meno l'utilita' di avere un i7.
Cioe' se il software che usi occupa tutti i thread a disposizione
(o quantomeno ne usa piu' di 4 o 5) allora non ha senso disabilitarlo.


Ne ho diversi, alcuni possono scalare oltre i 4 altri, per meri motivi 
di licenza, si fermano a 4.


 licenza, si fermano a 4.
 
Nel caso quando usi il software che si ferma a 4 core puoi
disabilirare l'HT, in modo da essere sicuri che ogni thread
sia abbinato ad un core fisico...

 
 
Su Windows come su Linux i core virtuali sono mappati in ordine
crescente, per cui al core fisico 0 corrispondono i thread 0-1,
al core fisico 1 corrispondono i thread 2-3 e cosi' via. Questo perche'
ogni core viene presentato in sequenza al sistema come avente due
"connessioni fisiche" alla CPU (puoi leggerne di piu' sul "Intel Core
Processor Datasheet Volume 1", se proprio ci tieni :-)
 
Gli scheduler dei sistemi operativi moderni (so dirti con sicurezza di
Windows e Linux) sono perfettamente in grado di riconoscere i "thread
siblings" e regolare le affinita' automaticamente per la gestione
dell'SMT (Simultaneous Multi-Threading).
 
In linea di massima non devi preoccuparti di nulla, chiaro che nessuno
ti vieta di giocare col BIOS e disattivare l'HT per vedere se le
performance migliorano sul tuo carico di lavoro. Puo' capitare che l'HT
provochi dei rallentamenti, a causa del fatto che alcune risorse della
CPU sono fisicamente duplicate e disponibili effettivamente in
parallelo, altre no, quindi si generano delle situazioni di stallo. Puoi
leggerne di piu' sulla "Intel Hyper-Threading Technology - Technical
User's Guide".
 
Buone feste
 
Lau

 dell'SMT (Simultaneous Multi-Threading).
 
Mi son capitati comunque dei software dove la suddivisione
dei thread non rispecchiava correttamente l'assegnazione
tra core fisici e logici...cioe' avendo a disposizione 4 thread
essi non venivano assegnati tutti ai core fisici.

Il logico, in genere, è laureato in matematica o filosofia.
Il fisico in fisica o astrofisica (in tal caso fa anche gli oroscopi).
Ciao.

      Beppe.
 
da quel che ho capito io, ho l'impressione che la domanda sottende a 
considerare quello che in realtà è un "non-problema"
 
hanno sì creato questa terminologia ... ma in realtà ... NON è che ci 
siano 'processori' di serie a e di serie b ( i logici )
 
i processori 'logici' non sono "figli di un dio minore"
 
è solo per sottolineare che esiste una sorta di MULTITASKING GESTITO IN 
HARDWARE A LIVELLO PROCESSORE per non tenere la cpu senza fare nulla ... 
proprio perchè già in hardware viene associato il task che chiede 
amggiore tempo ai 'fisici' internamente alla cpu , e su cui l'utente non 
può sapere nulla, e nemmeno la cpu stessa si memorizza da nessuna parte 
info su queste cose, ma le compie "al volo" in maniera assolutamente 
trasparente anche al CORE del s.o. che nulal può intervenire su tali 
procedure, su tali associazioni
 
ma quello che viene gestito dai "processori logici aggiuntivi" viene cmq 
eseguito con LE STESSE IDENTICHE 
PRIORITà/VELOCITà/MODI/TEMPI&CAZZI&MAZZI di quelli che vengono definiti 
"processori fisici" ... e PROPRIO PER QUESTO vengono dichiarati "cpu 
aggiuntive" e non "task aggiuntivi"
 
solo che vengono gestiti IN AGGIUNTA al normale funzioanmento delle cpu
 
secondo me, per quel poco che ho letto sulle cpu ... credo che tu ti 
stia creando un "non-problema"
 
però ripeto che questo è quello che ho capito io sul funzioanmento , non 
avendone letto tantissimo sull'argomento
 
se tu hai attivo un solo programma che tende ad usare il 100% della cpu 
... non sarà inficiato che per un centinaio di cicli macchian su 
miliardi di cicli macchina al secondo ... ;-)
 
allo stesso modo ... se tu hai CONTEMPORANEAMENTE due programmi che 
tendono ad usare ognuno il 50% della cpu ... i due verranno eseguiti 
ALLA STESSA MANIERA *****identica**** , con le 
*****stessissime_tempistiche***** , sia se eseguiti sui 'logici' sia sui 
'fisici' ... perchè tali associazioni variano dinamicamente a seconda 
delle necessità in un preciso istante
 
se invece hai un programma che vorresti che venga eseguito più 
velocemente non hai che da scegliere "priorità -> alta" nel task manager
 
se quel task cmq non viene velocizzato motlo ... non devi scervelalrti 
tu, ma evidentemente la velocità di esecuzione è rallentata da accessi 
ai dischi durante le elaborazioni , che inficiano sulal velocità di 
esecuzione di quel programma - oppure andare a settare "priorità -> 
molto bassa" agli altri processi che non ti importano ... o chiuderli 
gli altri ;-)
 

 essi non venivano assegnati tutti ai core fisici.
 
ah :-O vengono evidenzxiati sia i core 'logici' sia i core 'fisici' ?!?!
 
non lo sapevo :-(

tony pedi ci ha detto :

Se per qualche ragione due thread vengono assegnati ad un core fisico 
avrai un efficienza minore rispetto alla possibilita'
di assegnarne uno per core fisico...in quest'ultimo caso ci saranno 
meno risorse condivise.
Questo tra l'altro e' stato un problema che ha afflitto le cpu
AMD su base Bulldozer (basate sul concetto CMT), dove spesso i thread 
non venivano smistati
nella maniera migliore...ovvero puo' capitare che si utilizzi solo
un modulo e gli altri stanno li a "grattarsi".
 
Buon Natale!

Il 25/12/2015, tony pedi ha detto :

Ah e per verificare quali sono i core logici o fisici leggi
la risposta data da Laurent Delacroix di ieri alle 18.22...

utilizzare siano quelli fisici e non quelli virtuali?
 
Puoi provare con questo:
https://technet.microsoft.com/en-us/sysinternals/cc835722
 
 
-- 
Ci sono 10 tipi di persone al mondo: quelle che capiscono il sistema binario
e quelle che non lo capiscono.


Perfetto, grazie mille era proprio questo che volevo sapere (unito anche 
a quello che mi ha detto Lorenz). Volevo controllare che durante 
l'esecuzione (che spesso dura anche giornate) vengano correttamente 
utilizzati core fisici e non finiscano tutti e 4 ad esempio su 2 soli 
core "veri".
Buone feste,
