Как программа "выбирает", на каком ядре работать? Насколько я понимаю, операционная система определяет, какая программа обрабатывается на каком ядре.
ПРИМЕНИМЫЙ ПРИМЕР
Firefox внезапно и безудержно загружает процессор на последнем последнем ядре (i7 930 Hyperthreaded). Все остальные ядра практически не используются.
Я не уверен, почему это последнее ядро выбрано излишне. Мне любопытно, как это будет выделено. Обычно первые два ядра берут на себя основную часть обработки программ.