История изменений
Исправление eao197, (текущая версия) :
Тут уже подсказали основную идею: если есть N вычислительных задач, которые нагружают CPU, то нет смысла запускать их одновременно все. Создается K рабочих потоков (где K либо равно количеству вычислительных ядер, либо на единицу меньше /чтобы обеспечить системе какую-то отзывчивость/, либо на единицу больше /чтобы утилизировать CPU, когда какой-то поток уходит в I/O операцию или ждет чего-то/). А вычислительные задачи распределяются между этими рабочими потоками.
Готовых инструментов для этих целей довольно много. Начать можно отсюда, далее по ссылкам. Из того, что недавно еще появилось можно глянуть HPX.
Исходная версия eao197, :
Тут уже подсказали основную идею: если есть N вычислительных задач, которые нагружают CPU, то нет смысла запускать их одновременно все. Создается K рабочих потоков (где K либо равно количеству вычислительных ядер, либо на единицу меньше (чтобы обеспечить системе какую-то отзывчивость), либо на единицу больше (чтобы утилизировать CPU, когда какой-то поток уходит в I/O операцию или ждет чего-то). А вычислительные задачи распределяются между этими рабочими потоками.
Готовых инструментов для этих целей довольно много. Начать можно отсюда, далее по ссылкам. Из того, что недавно еще появилось можно глянуть HPX.