Я новичок в использовании tbb :: flow и искал для создания графа, в котором его часть была бы смущающе параллельной. Таким образом, идея состоит в том, чтобы сообщение приходило на узел, который выполняет некоторую предварительную обработку, а затем может формулировать набор задач, которые могут выполняться параллельно. Затем данные объединяются в многофункциональный_узел, который отправляет результаты в несколько мест.
-------------- ------
|parallel nodes| |Output|
----------- /|--------------|\ ---------- / ------
msg -> |pre-process| -|parallel nodes|- |aggregator|
----------- \|--------------|/ ---------- \ ------
|parallel nodes| |Output|
-------------- ------
Теперь агрегатор не может отправить свою работу, пока работа не будет завершена. Поэтому необходимо отслеживать количество ожидаемых ответов. Могу ли я сделать это с помощью tbb :: flow :: graph или я должен создать узел функции, в который встроена параллель? Другие идеи или варианты?
Если я могу сделать это с помощью tbb :: flow, каковы типы узлов и стратегии очередей?
Еще один способ думать об этом — это операция типа MapReduce с небольшой предварительной обработкой, и результаты отправляются в несколько разных мест в несколько разных формах.
Задача ещё не решена.
Других решений пока нет …