Использование tbb :: flow :: graph с смущающе параллельной частью

Я новичок в использовании tbb :: flow и искал для создания графа, в котором его часть была бы смущающе параллельной. Таким образом, идея состоит в том, чтобы сообщение приходило на узел, который выполняет некоторую предварительную обработку, а затем может формулировать набор задач, которые могут выполняться параллельно. Затем данные объединяются в многофункциональный_узел, который отправляет результаты в несколько мест.

                       --------------                 ------
|parallel nodes|               |Output|
-----------  /|--------------|\  ---------- / ------
msg -> |pre-process| -|parallel nodes|- |aggregator|
-----------  \|--------------|/  ---------- \ ------
|parallel nodes|               |Output|
--------------                 ------

Теперь агрегатор не может отправить свою работу, пока работа не будет завершена. Поэтому необходимо отслеживать количество ожидаемых ответов. Могу ли я сделать это с помощью tbb :: flow :: graph или я должен создать узел функции, в который встроена параллель? Другие идеи или варианты?

Если я могу сделать это с помощью tbb :: flow, каковы типы узлов и стратегии очередей?

Еще один способ думать об этом — это операция типа MapReduce с небольшой предварительной обработкой, и результаты отправляются в несколько разных мест в несколько разных формах.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]