Задать вопрос
@domu

Как распределить выполнение m задач на n ядер (С++)?

Имеется m задач (функций), выполняются последовательно, между собой не пересекаются, как распределить их выполнение по нескольким потокам, чтобы их выполнение было максимально эффективно?

Грубо говоря хочу сделать также, как делает make -jN для целей компиляции.
  • Вопрос задан
  • 2731 просмотр
Подписаться 2 Оценить Комментировать
Решение пользователя Миша Кринкин К ответам на вопрос (4)
Вы наверно хотите реализовать Thread Pool? Тогда можете посмотреть в книжку C++ Concurrency in action, там есть пример простого Thread Pool, если ваши задачи не слишком маленькие, то его может оказаться достаточно. Если ваши задачи достаточно короткие то можете посмотреть на библиотеку Intel TBB, там где-то в недрах очень качественный пул потоков есть, возможно, это то что вам нужно.
Ответ написан