Sistema multicore. Como são os núcleos "classificados"

5

Se eu tiver um sistema com digamos que dois processadores Quadcore e HyperThreading estejam habilitados, como eu sei como os núcleos virtuais e físicos são classificados? Por exemplo, se eu forçar um processo para rodar em "CPU 0", como saber qual Core isso realmente é? Eu me lembro de um desenho complexo sobre isso, mas não achei nada útil.

Atualização: Depois de discutir isso com um programador, estou convencido de que não faz sentido vincular um programa / thread a um núcleo específico. Na maioria dos casos, é melhor deixar o sistema operacional decidir que núcleo (s) usar. No entanto, ainda seria interessante como a enumeração funciona.

    
por asdrubael 24.03.2010 / 17:20

1 resposta

2

Dê uma olhada no projeto hwloc . Ele fornece uma API C para responder a esse tipo de pergunta e também uma ferramenta chamada lstopo , que gera mapas de topologia de CPU / memória. Veja o URL para exemplos.

    
por 05.04.2010 / 17:16