Несколько ядер
Ну оптимизация под многопроцессорность в основном достигается распараллеливанием алгоритма на несколько потоков, а ОС уже сама заботиться о распределении ресурсов. Про оптимизацию программы под hyper threading можно найти скажем здесь:
http://www.microsoft.com/Rus/Msdn/Magazine/2005/06/HyperThreading.mspx
Возможно, это оффтоп, но...
Не стоит этим заниматься. Ось распределяет по процессорам/ядрам не потоки, а кванты времени, так что каждый поток не работает на конкретном процессоре/ядре, разные кванты времени он может отработать на разных процах.
Лучше подумай об удачной синхронизации потоков.
Не стоит этим заниматься. Ось распределяет по процессорам/ядрам не потоки, а кванты времени, так что каждый поток не работает на конкретном процессоре/ядре, разные кванты времени он может отработать на разных процах.
Лучше подумай об удачной синхронизации потоков.
Да, но я упоминал о функциях, позволяющих ограничить набор процессоров/ядер на которых будет выполняться процесс/поток.
Да все понятно, я о том и говорю - вряд ли стоит этим заниматься. Не вижу причин ограничивать процы. Даже если процессоры разной производительности, слабый процессор будет постоянно занят, и ему будет выделяться меньше квантов. Имхо, лучше задать приоритет потока и, повторюсь, удачно распараллелить и синхронизировать.