Обратите внимание, что «число ядер» может быть не особенно полезным числом, вам, возможно, придется уточнить его немного больше. Как вы хотите сосчитать многопоточные процессоры, такие как Intel HT, IBM Power5 и Power6, и наиболее известные из них Sun Niagara / UltraSparc T1 и T2? Или, что еще интереснее, MIPS 1004k с двумя уровнями аппаратного потока (супервизор и пользовательский уровень) ... Не говоря уже о том, что происходит, когда вы переходите на системы с поддержкой гипервизора, где на оборудовании могут быть десятки процессоров, но ваша конкретная ОС видит только несколько.
Лучшее, на что вы можете надеяться, это сообщить количество логических процессоров, которые есть в вашем локальном разделе ОС. Забудьте о том, чтобы увидеть настоящую машину, если вы не являетесь гипервизором. Единственное исключение из этого правила сегодня на земле x86, но конец не виртуальных машин скоро наступит ...