FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

updated docs · ModuleWorks/taskflow@0216d03 · GitHub

Commit 0216d03

Browse files
updated docs
1 parent 464f90f commit 0216d03

31 files changed

Lines changed: 4565 additions & 9820 deletions

‎README.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ and simultaneous high productivity.
1111

1212
# Why Cpp-Taskflow?
1313

14-
Cpp-Taskflow is by far faster, more expressive, and easier for drop-in integration
15-
than existing task programming frameworks such as [OpenMP Tasking][OpenMP Tasking]
16-
and [Intel TBB FlowGraph][TBB FlowGraph] in handling complex parallel workloads.
14+
Cpp-Taskflow is faster, more expressive, and easier for drop-in integration
15+
than many of existing task programming frameworks
16+
in handling complex parallel workloads.
1717

18-
![](image/performance.jpg)
18+
![](image/performance.png)
1919

2020
Cpp-Taskflow lets you quickly implement task decomposition strategies
2121
that incorporate both regular and irregular compute patterns,

‎docs/FAQ.html‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,12 @@ <h2><a class="anchor" id="GeneralQuestion7"></a>
119119
<h2><a class="anchor" id="GeneralQuestion8"></a>
120120
Q8: What is the overhead of taskflow?</h2>
121121
<p>Creating a taskflow has certain overhead. For example, creating a task and a dependency takes about 61 and 14 nanoseconds in our system (Intel 4-core CPU at 2.00GHz). The time is amortized over 1M operations, since we have implemented an object pool to recycle tasks for minimal overhead.</p>
122-
<hr/>
122+
<h2><a class="anchor" id="GeneralQuestion9"></a>
123+
Q9: How does it compare to existing task programming systems?</h2>
124+
<p>There is a large amount of work on programming systems (e.g., StarPU, Intel TBB, OpenMP, PaRSEC, Kokkos, HPX) in the interest of simplifying the programming complexity of parallel and heterogeneous computing. Each of these systems has its own pros and cons and deserves a reason to exist. However, they do have some problems, particularly from the standpoint of ease of use, static control flow, and scheduling efficiency. Cpp-Taskflow addresses these limitations through a simple, expressive, and transparent graph programming model.</p>
125+
<h2><a class="anchor" id="GeneralQuestion10"></a>
126+
Q10: Do you try to simplify the GPU kernel programming?</h2>
127+
<p>No, we do not develop new programming models to simplify the kernel programming. The rationale is simple: Writing efficient kernels requires domain-specific knowledge and developers often require direct access to the native GPU programming interface. High-level kernel programming models or abstractions all come with restricted applicability. Despite non-trivial kernel programming, we believe what makes heterogeneous computing difficult is the surrounding tasks. A mistake made in task scheduling can outweigh all speed-up benefits from a highly optimized kernel. Therefore, Cpp-Taskflow focuses on heterogeneous tasking that affects the overall system performance to a large extent. </p><hr/>
123128
<h1><a class="anchor" id="ProgrammingQuestions"></a>
124129
Programming Questions</h1>
125130
<h2><a class="anchor" id="ProgrammingQuestions1"></a>

‎docs/index.html‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,9 @@
9494
<div class="contents">
9595
<div class="textblock"><h1><a class="anchor" id="ModernCppParallelTaskProgrammingLibrary"></a>
9696
Modern C++ Parallel Task Programming</h1>
97-
<p>Cpp-Taskflow helps you quickly write parallel task programs with high performance scalability and simultaneous high productivity. It is by far faster, more expressive, fewer lines of code, and easier for drop-in integration than existing parallel task programming frameworks such as <a href="https://www.openmp.org/spec-html/5.0/openmpsu99.html">OpenMP Tasking</a> and Intel <a href="https://www.threadingbuildingblocks.org/tutorial-intel-tbb-flow-graph">Thread Building Block (TBB) FlowGraph</a>.</p>
97+
<p>Cpp-Taskflow helps you quickly write parallel task programs with high performance scalability and simultaneous high productivity. It is faster, more expressive, fewer lines of code, and easier for drop-in integration than many of existing task programming frameworks.</p>
9898
<div class="image">
99-
<img src="performance.jpg" alt="performance.jpg" width="95%"/>
99+
<img src="performance.png" alt="performance.png" width="95%"/>
100100
</div>
101101
<p>Cpp-Taskflow is committed to support both academic and industry research projects, making it reliable and cost-effective for long-term and large-scale developments. Our users say:</p>
102102
<ul>

‎docs/navtreedata.js‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ var NAVTREE =
5454
[ "Q5: What is the weird hex value, like 0x7fc39d402ab0, in the dumped graph?", "FAQ.html#GeneralQuestion5", null ],
5555
[ "Q6: Does Cpp-Taskflow have backward compatibility with C++03/98/11?", "FAQ.html#GeneralQuestion6", null ],
5656
[ "Q7: How does Cpp-Taskflow schedule tasks?", "FAQ.html#GeneralQuestion7", null ],
57-
[ "Q8: What is the overhead of taskflow?", "FAQ.html#GeneralQuestion8", null ]
57+
[ "Q8: What is the overhead of taskflow?", "FAQ.html#GeneralQuestion8", null ],
58+
[ "Q9: How does it compare to existing task programming systems?", "FAQ.html#GeneralQuestion9", null ],
59+
[ "Q10: Do you try to simplify the GPU kernel programming?", "FAQ.html#GeneralQuestion10", null ]
5860
] ],
5961
[ "Programming Questions", "FAQ.html#ProgrammingQuestions", [
6062
[ "Q1: What is the difference between Cpp-Taskflow threads and workers?", "FAQ.html#ProgrammingQuestions1", null ],
@@ -87,7 +89,7 @@ var NAVTREE =
8789
var NAVTREEINDEX =
8890
[
8991
".html",
90-
"kmeans.html"
92+
"install.html#BAISettingUpCpp-Taskflow"
9193
];
9294

9395
var SYNCONMSG = 'click to disable panel synchronisation';

‎docs/navtreeindex0.js‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ var NAVTREEINDEX0 =
55
"Examples.html":[4],
66
"FAQ.html":[5],
77
"FAQ.html#GeneralQuestion1":[5,0,0],
8+
"FAQ.html#GeneralQuestion10":[5,0,9],
89
"FAQ.html#GeneralQuestion2":[5,0,1],
910
"FAQ.html#GeneralQuestion3":[5,0,2],
1011
"FAQ.html#GeneralQuestion4":[5,0,3],
1112
"FAQ.html#GeneralQuestion5":[5,0,4],
1213
"FAQ.html#GeneralQuestion6":[5,0,5],
1314
"FAQ.html#GeneralQuestion7":[5,0,6],
1415
"FAQ.html#GeneralQuestion8":[5,0,7],
16+
"FAQ.html#GeneralQuestion9":[5,0,8],
1517
"FAQ.html#GeneralQuestions":[5,0],
1618
"FAQ.html#ProgrammingQuestions":[5,1],
1719
"FAQ.html#ProgrammingQuestions1":[5,1,0],
@@ -233,8 +235,8 @@ var NAVTREEINDEX0 =
233235
"graphtraversal.html#GraphTraversalProblemFormulation":[4,4,0],
234236
"graphtraversal.html#GraphTraversalStaticTraversal":[4,4,2],
235237
"hierarchy.html":[7,2],
236-
"index.html":[],
237238
"index.html":[0],
239+
"index.html":[],
238240
"index.html#ASimpleFirstProgram":[0,6],
239241
"index.html#CompileAndRunYourFirstProgram":[0,7],
240242
"index.html#ComposableTasking":[0,3],
@@ -247,7 +249,5 @@ var NAVTREEINDEX0 =
247249
"index.html#SupportedCompilers":[0,8],
248250
"install.html":[1],
249251
"install.html#BAIBuildExamplesTestsAndBenchmarks":[1,3],
250-
"install.html#BAICompileAndLinkFlag":[1,1],
251-
"install.html#BAISettingUpCpp-Taskflow":[1,0],
252-
"install.html#BAISupportedCompilers":[1,2]
252+
"install.html#BAICompileAndLinkFlag":[1,1]
253253
};

‎docs/navtreeindex1.js‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
var NAVTREEINDEX1 =
22
{
3+
"install.html#BAISettingUpCpp-Taskflow":[1,0],
4+
"install.html#BAISupportedCompilers":[1,2],
35
"kmeans.html":[4,2],
46
"kmeans.html#BuiltInPredicate":[4,2,3],
57
"kmeans.html#KMeansBenchmarking":[4,2,4],

‎docs/performance.png‎

254 KB
LoadingViewer requires iframe.

‎doxygen/FAQ.dox‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,27 @@ takes about 61 and 14 nanoseconds in our system (Intel 4-core CPU at 2.00GHz).
5858
The time is amortized over 1M operations, since we have implemented an object pool
5959
to recycle tasks for minimal overhead.
6060

61+
@subsection GeneralQuestion9 Q9: How does it compare to existing task programming systems?
62+
63+
There is a large amount of work on programming systems (e.g., StarPU, Intel TBB, OpenMP, PaRSEC, Kokkos, HPX) in the interest of simplifying the
64+
programming complexity of parallel and heterogeneous computing.
65+
Each of these systems has its own pros and cons and deserves a reason to exist.
66+
However, they do have some problems, particularly from the standpoint of ease of use,
67+
static control flow, and scheduling efficiency.
68+
Cpp-Taskflow addresses these limitations through a simple, expressive, and transparent
69+
graph programming model.
70+
71+
@subsection GeneralQuestion10 Q10: Do you try to simplify the GPU kernel programming?
72+
73+
No, we do not develop new programming models to simplify the kernel programming.
74+
The rationale is simple: Writing efficient kernels requires domain-specific knowledge
75+
and developers often require direct access to the native GPU programming interface.
76+
High-level kernel programming models or abstractions all come with restricted applicability.
77+
Despite non-trivial kernel programming, we believe what makes heterogeneous computing difficult
78+
is the surrounding tasks.
79+
A mistake made in task scheduling can outweigh all speed-up benefits from a highly optimized kernel.
80+
Therefore, Cpp-Taskflow focuses on heterogeneous tasking
81+
that affects the overall system performance to a large extent.
6182

6283
----
6384

‎doxygen/QuickStart.dox‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ namespace tf {
66

77
Cpp-Taskflow helps you quickly write parallel task programs with high performance scalability
88
and simultaneous high productivity.
9-
It is by far faster, more expressive, fewer lines of code, and easier for drop-in integration
10-
than existing parallel task programming frameworks such as <a href="https://www.openmp.org/spec-html/5.0/openmpsu99.html">OpenMP Tasking</a> and Intel <a href="https://www.threadingbuildingblocks.org/tutorial-intel-tbb-flow-graph">Thread Building Block (TBB) FlowGraph</a>.
9+
It is faster, more expressive, fewer lines of code, and easier for drop-in integration
10+
than many of existing task programming frameworks.
1111

12-
@image html images/performance.jpg width=95%
12+
@image html images/performance.png width=95%
1313

1414
Cpp-Taskflow is committed to support both academic and industry research projects,
1515
making it reliable and cost-effective for long-term and large-scale developments.

‎doxygen/images/performance.jpg‎

-1.2 MB
Binary file not shown.

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL