Não é possível dizer quais núcleos um determinado programa utilizou. A CPU atribui threads para os núcleos de forma invisível e automática, com base em um grande número de fatores, e executa uma pequena mão para fazer parecer que tudo está sendo executado de forma síncrona, mesmo que haja algum tempo na forma como atribui o tempo de processamento para cada thread.
o que acontece é que uma sessão não pode ser mapeada para um conjunto de núcleos. você pode mapear uma sessão para o uso de programas que executam threads em um ou mais núcleos, mas isso é estritamente necessário com base no estado atual de todos os processos.
não é como você atribuir 2 núcleos para sally, 2 núcleos para bob e 4 núcleos para tom, fazendo com que você 'esgotar' deles. Os programas de Sally, Bob e Tom podem usar até 8 núcleos, e o sistema decidirá como melhor atribuir os threads a um recurso de processamento.