Инструкции по сборке, чтобы узнать, сколько потоков включено в многоядерной системе
Я работаю на чистой системе, в которой мне нужно определить через некоторое время после загрузки, сколько ядер и потоков включено, чтобы я мог отправлять им события 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
Какой лучший способ определить это?
Редактировать: Я нашел, как каждый поток может найти, какой поток это. Я до сих пор не нашел, как определить, сколько ядер.