Инструкции по сборке, чтобы узнать, сколько потоков включено в многоядерной системе

Я работаю на чистой системе, в которой мне нужно определить через некоторое время после загрузки, сколько ядер и потоков включено, чтобы я мог отправлять им события SIPI. Я также хочу, чтобы каждый поток знал, какой это поток.

Например, в одноядерной конфигурации с включенным HT у нас есть (например, Intel Atom):

thread 0 --> core 0 thread 0
thread 1 --> core 0 thread 1

В двухъядерной конфигурации без HT у нас есть (например, Core 2 Duo):

thread 0 --> core 0 thread 0
thread 1 --> core 1 thread 0

Какой лучший способ определить это?

Редактировать: Я нашел, как каждый поток может найти, какой поток это. Я до сих пор не нашел, как определить, сколько ядер.

Ответы на вопрос(1)

Ваш ответ на вопрос