Sto cercando di scoprire come un sistema operativo (Windows, Linux) assegna numeri a cpus logici in un ambiente abilitato per Hyper Threading. ?Numerazione CPU su un sistema abilitato per hypertheading
Entrambi i sistemi operativi assegnano in serie i numeri alle CPU fisiche e quindi iniziano a numerare la CPU logica o sono seguite altre regole ..? per esempio. in 2 sistemi di cpu fisici con hyper threading, un sistema operativo assegna il numero 0,2 alla prima CPU fisica e quindi da 1,3 a seconda CPU fisica ..?
Qualsiasi riferimento sarebbe molto apprezzato.
Grazie in anticipo.
Saluti, -Jay.
Modifica: Rispondendo alla domanda di Alan: Devo saperlo perché, nel mio lavoro ho bisogno di legare vari thread a CPU specifiche per evitare i commutatori di contesto e voglio assicurarmi che determinati Task (THread) siano legati a separata cpus fisico. Grazie
Voglio farlo perché voglio associare compiti diversi (Thread) a differenti cpus logici. –
Ma perché? Lo scheduler dei thread si occuperà di bilanciare correttamente il carico tra i core. Di solito non c'è bisogno di farlo manualmente (potrebbe anche danneggiare le prestazioni) e può causare effetti collaterali inaspettati per i casi limite. –
Alcuni degli algoritmi che utilizziamo hanno i vincoli temporali in microsecondi. Quindi, se non applichiamo l'affinità della CPU su questi thread multipli che elaborano questi algos, gli switch di contesto rendono impossibile rispettare queste scadenze temporali. . –