Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.

When is a Task Graph not a Tree?

AJ13
New Contributor I
192 Views
When it's logged...hahaha... sorry, couldn't resist.

I was asked this question "When is a task graph not a tree in TBB?" I couldn't think of a good answer. Does anyone have an example of a task graph that isn't a tree?

AJ
0 Kudos
1 Reply
RafSchietekat
Black Belt
192 Views
I suppose technically it's a forest, because there can be multiple root tasks. If you want to simulate a directed acyclic graph of dependencies (examples aplenty), you have to find a supporting tree (would that always be a subgraph?) that is represented directly in TBB (which doesn't do dags), and fill in the missing dependencies by adding empty_task children of the dependent tasks to be explicitly spawned by their dependencies on completion (or use release_ref() as implemented in the "Pipeline" thread).
Reply