Как называется шаблон параллельных вычислений?

Имеется задача, состоящая из подзадач разной сложности. Хочется решать эти подзадачи параллельно.

Пусть имеется итератор подзадач. Нужно сделать так, чтобы когда один процессор завершает свою подзадачу, ему тут же выдается следующая. При этом процессор не ориентируется на остальные процессоры. И так, пока не будет решена вся задача целиком.

Как НЕ нужно: выдаем четырем процессорам по одной подзадаче. Ждем пока все подзадачи будут решены. После этого каждый процессор снова получает подзадачу.

Как это называется по-умному. Где об этом можно почитать?

Мое предположение:
пусть у нас 100500 подзадач. Создадим для каждой подзадачи поток. И пусть операционная система сама разруливает эти потоки. Ждем когда все потоки завершатся.
  • Вопрос задан
  • 229 просмотров
Решения вопроса 2
@vilgeforce
Раздолбай и программист
Это и называется "параллельные вычисления".
Ответ написан
Rulexec
@Rulexec
Метатеоретик теории типов
  1. Создаём общую очередь задач (потокобезопасную, блокирующую/неблокирующую, зависит от шансов коллизий)
  2. Запускаем сколько нам нужно потоков, которые в цикле берут себе задачу из очереди, обрабатывают её и кладут куда нужно результат (лучше — вызывают коллбек у задачи, который сам решит, что делать с результатом)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы