You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>Cpp-Taskflow aims to help C++ developers quickly implement efficient parallel decomposition strategies using task-based approaches.</p>
111
111
<h2><aclass="anchor" id="GeneralQuestion2"></a>
112
112
Q2: How do I use Cpp-Taskflow in my projects?</h2>
113
-
<p>Cpp-Taskflow is a header-only library with zero dependencies. The only thing you need is a C++14 compiler. To use Cpp-Taskflow, simply drop the folder <code>taskflow/</code> to your project and include taskflow.hpp.</p>
113
+
<p>Cpp-Taskflow is a header-only library with zero dependencies. The only thing you need is a C++14 compiler. To use Cpp-Taskflow, simply drop the folder <code>taskflow/</code> to your project and include <aclass="el" href="taskflow_8hpp_source.html">taskflow.hpp</a>.</p>
114
114
<h2><aclass="anchor" id="GeneralQuestion3"></a>
115
115
Q3: What is the difference between static tasking and dynamic tasking?</h2>
116
116
<p>Static tasking refers to those tasks created before execution, while dynamic tasking refers to those tasks created during the execution of static tasks or dynamic tasks (nested). Dynamic tasks created by the same task node are grouped together to a subflow.</p>
<p>Unfortunately, Cpp-Taskflow is heavily relying on modern C++14's features/idoms/STL and it is very difficult to provide a version that compiles under older C++ versions.</p>
126
126
<h2><aclass="anchor" id="GeneralQuestion7"></a>
127
127
Q7: How does Cpp-Taskflow schedule tasks?</h2>
128
-
<p>Cpp-Taskflow implemented a very efficient <ahref="https://en.wikipedia.org/wiki/Work_stealing">work-stealing scheduler</a> to execute task dependency graphs. The source code is available at <code><aclass="el" href="executor_8hpp_source.html">taskflow/core/executor.hpp</a></code> and <code>taskflow/core/wsq.hpp</code>. </p><hr/>
128
+
<p>Cpp-Taskflow implemented a very efficient <ahref="https://en.wikipedia.org/wiki/Work_stealing">work-stealing scheduler</a> to execute task dependency graphs. The source code is available at <code><aclass="el" href="executor_8hpp_source.html">taskflow/core/executor.hpp</a></code> and <code><aclass="el" href="tsq_8hpp_source.html">taskflow/core/tsq.hpp</a></code>. </p><hr/>
<trid="row_0_0_"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1Executor.html" target="_self">Executor</a></td><tdclass="desc">The executor class to run a taskflow graph </td></tr>
109
-
<trid="row_0_1_" class="even"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1ExecutorObserver.html" target="_self">ExecutorObserver</a></td><tdclass="desc">Default executor observer to dump the execution timelines </td></tr>
110
-
<trid="row_0_2_"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1ExecutorObserverInterface.html" target="_self">ExecutorObserverInterface</a></td><tdclass="desc">The interface class for creating an executor observer </td></tr>
111
-
<trid="row_0_3_" class="even"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1FlowBuilder.html" target="_self">FlowBuilder</a></td><tdclass="desc">Building blocks of a task dependency graph </td></tr>
112
-
<trid="row_0_4_"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1Subflow.html" target="_self">Subflow</a></td><tdclass="desc">The building blocks of dynamic tasking </td></tr>
113
-
<trid="row_0_5_" class="even"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1Task.html" target="_self">Task</a></td><tdclass="desc"><aclass="el" href="classtf_1_1Task.html" title="task handle to a node in a task dependency graph ">Task</a> handle to a node in a task dependency graph </td></tr>
114
-
<trid="row_0_6_"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1Taskflow.html" target="_self">Taskflow</a></td><tdclass="desc">Class to create a task dependency graph </td></tr>
115
-
<trid="row_0_7_" class="even"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1TaskView.html" target="_self">TaskView</a></td><tdclass="desc">Immutable accessor class to a task node, mainly used in the <aclass="el" href="classtf_1_1ExecutorObserver.html" title="Default executor observer to dump the execution timelines. ">tf::ExecutorObserver</a> interface </td></tr>
116
-
<trid="row_1_"><tdclass="entry"><spanstyle="width:16px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="structis__condition__task.html" target="_self">is_condition_task</a></td><tdclass="desc">Determines if a callable is a condition task </td></tr>
117
-
<trid="row_2_" class="even"><tdclass="entry"><spanstyle="width:16px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="structis__dynamic__task.html" target="_self">is_dynamic_task</a></td><tdclass="desc">Determines if a callable is a dynamic task </td></tr>
118
-
<trid="row_3_"><tdclass="entry"><spanstyle="width:16px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="structis__static__task.html" target="_self">is_static_task</a></td><tdclass="desc">Determines if a callable is a static task </td></tr>
108
+
<trid="row_0_0_"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1cudaFlow.html" target="_self">cudaFlow</a></td><tdclass="desc">Building methods of a cuda task dependency graph </td></tr>
109
+
<trid="row_0_1_" class="even"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1cudaTask.html" target="_self">cudaTask</a></td><tdclass="desc">Handle to a node in a cudaGraph </td></tr>
110
+
<trid="row_0_2_"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1Executor.html" target="_self">Executor</a></td><tdclass="desc">The executor class to run a taskflow graph </td></tr>
111
+
<trid="row_0_3_" class="even"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1ExecutorObserver.html" target="_self">ExecutorObserver</a></td><tdclass="desc">Default executor observer to dump the execution timelines </td></tr>
112
+
<trid="row_0_4_"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1ExecutorObserverInterface.html" target="_self">ExecutorObserverInterface</a></td><tdclass="desc">The interface class for creating an executor observer </td></tr>
113
+
<trid="row_0_5_" class="even"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1FlowBuilder.html" target="_self">FlowBuilder</a></td><tdclass="desc">Building methods of a task dependency graph </td></tr>
114
+
<trid="row_0_6_"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1Subflow.html" target="_self">Subflow</a></td><tdclass="desc">The building blocks of dynamic tasking </td></tr>
115
+
<trid="row_0_7_" class="even"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1Task.html" target="_self">Task</a></td><tdclass="desc">Handle to a node in a task dependency graph </td></tr>
116
+
<trid="row_0_8_"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1Taskflow.html" target="_self">Taskflow</a></td><tdclass="desc">Class to create a task dependency graph </td></tr>
<trid="row_0_10_"><tdclass="entry"><spanstyle="width:32px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="classtf_1_1TaskView.html" target="_self">TaskView</a></td><tdclass="desc">Immutable accessor class to a task node, mainly used in the <aclass="el" href="classtf_1_1ExecutorObserver.html" title="Default executor observer to dump the execution timelines. ">tf::ExecutorObserver</a> interface </td></tr>
119
+
<trid="row_1_" class="even"><tdclass="entry"><spanstyle="width:16px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="structis__condition__task.html" target="_self">is_condition_task</a></td><tdclass="desc">Determines if a callable is a condition task </td></tr>
120
+
<trid="row_2_"><tdclass="entry"><spanstyle="width:16px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="structis__cudaflow__task.html" target="_self">is_cudaflow_task</a></td><tdclass="desc">Determines if a callable is a cudaflow task </td></tr>
121
+
<trid="row_3_" class="even"><tdclass="entry"><spanstyle="width:16px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="structis__dynamic__task.html" target="_self">is_dynamic_task</a></td><tdclass="desc">Determines if a callable is a dynamic task </td></tr>
122
+
<trid="row_4_"><tdclass="entry"><spanstyle="width:16px;display:inline-block;"> </span><spanclass="icona"><spanclass="icon">C</span></span><aclass="el" href="structis__static__task.html" target="_self">is_static_task</a></td><tdclass="desc">Determines if a callable is a static task </td></tr>
0 commit comments