Intel TBB: пул графиков - PullRequest
       22

Intel TBB: пул графиков

5 голосов
/ 06 марта 2012

У меня есть модель обработки данных, которая состоит из множества цепочек алгоритмов обработки фрагментов данных.Каждая цепочка представляет собой граф алгоритмов, который я реализовал с помощью класса графов TBB.

Теперь я хотел бы иметь что-то вроде «пула графов», то есть пула задач, каждая из которых содержит таблицу tbb.:: график.Таким образом, я мог бы запускать цепочки алгоритмов параллельно над кусками данных.

Не могли бы вы указать какой-нибудь пример TBB на что-то похожее на «пул графиков», или вы могли бы предложить и подсказки для его реализации?

Ответы [ 2 ]

1 голос
/ 07 сентября 2012

Я бы посоветовал вам использовать tbb :: concurrent_queue или tbb :: concurrent_vector, преимущество в том, что вы можете изменить его размер при множественном доступе.Мой личный совет: создайте объект блокировки / графика, чтобы вы никогда не изменяли объект параллельно.

http://threadingbuildingblocks.org/wiki/index.php?title=Concurrent_Vector

Пример очереди можно найти здесь: https://sites.google.com/site/samplecodesproject/tbb/containers-3/concurrent_queue

0 голосов
/ 31 июля 2014

Я не уверен, что полностью понимаю, чего именно вы пытаетесь достичь, но давайте попробуем :).Кажется, что единственное, что вам нужно, это правильный исходный_узел (https://www.threadingbuildingblocks.org/docs/help/reference/flow_graph/source_node_cls.htm), чтобы бросать новые порции данных в потоковый граф для обработки.Экземпляр потокового графа можно рассматривать как алгоритм (например, tbb ::rallel_pipeline), написанный немного по-другому.Он не должен рассматриваться как структура данных, такая как список или вектор.Так что скорее всего вам не нужен пул графиков:)

...