Чтобы узнать количество потоков, которые процессор может одновременно выполнять, можно выполнить команду:
1 | cat /proc/cpuinfo | grep processor | wc -l
|
Выводится сожержимое файла /proc/cpuinfo, из него берутся строчки, содержащие слово "processor", а команда "wc -l" считает количество поданных ей на вход строчек.
Вывод этой команды, например, удобно передавать в make для параллельной сборки:
1 | make -j 'cat /proc/cpuinfo | grep processor | wc -l'
|
UPD: более короткая весрия той же команды:
1 | grep processor /proc/cpuinfo | wc -l
|
можно делать сразу grep processor /proc/cpuinfo | wc -l
ОтветитьУдалитьи вроде всегда ставят количество потоков + 1. чтобы пока все потоки ждут IO, кто-нибудь все равно работал
По поводу +1 - это, я так понял, совсем не очевидная вещь. Самая разумная стратегия, которую я нашел - это экспериментировать на конкретных проектах и конкретных машинах.
ОтветитьУдалить