Используй функции GetProcessAffinityMask (для определения сколько процессоров отдано приложению и системе) и SetProcessAffinityMask(чтобы установить сколько процессоров(ядер) отдать приложению)
Да вот, что еще. Если у тебя один поток, то конечно - лучше привязать один поток к одному ядру. Если у тебя два и более потоков, то лучше отдать все дело на контроль ОС и не заморачиваться с этим. Не всегда выдача 2 ядер для работы одного потока приведет к повышению производительности. Скорее наоборот - будет постоянное переключение между ядрами. А если еще и кэш общий... Ну вы сами понимаете
