Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2294587

Browse files
committed
improved pipeline performance
1 parent 4e650cc commit 2294587

21 files changed

+308
-252
lines changed

docs/classtf_1_1Pipeflow.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ <h3>Contents</h3>
5555
<li>
5656
Reference
5757
<ul>
58+
<li><a href="#typeless-methods">Constructors, destructors, conversion operators</a></li>
5859
<li><a href="#pub-methods">Public functions</a></li>
5960
</ul>
6061
</li>
@@ -66,6 +67,15 @@ <h3>Contents</h3>
6667
<span class="o">&lt;&lt;</span> <span class="s">&quot; at pipe=&quot;</span> <span class="o">&lt;&lt;</span> <span class="n">pf</span><span class="p">.</span><span class="n">pipe</span><span class="p">()</span>
6768
<span class="o">&lt;&lt;</span> <span class="sc">&#39;\n&#39;</span><span class="p">;</span>
6869
<span class="p">}};</span></pre><p><a href="classtf_1_1Pipeflow.html" class="m-doc">Pipeflow</a> can only be created privately by the <a href="classtf_1_1Pipeline.html" class="m-doc">tf::<wbr />Pipeline</a> and be used through the pipe callable.</p>
70+
<section id="typeless-methods">
71+
<h2><a href="#typeless-methods">Constructors, destructors, conversion operators</a></h2>
72+
<dl class="m-doc">
73+
<dt id="a801877443f7046b9e450160c05c26d7d">
74+
<span class="m-doc-wrap-bumper"><a href="#a801877443f7046b9e450160c05c26d7d" class="m-doc-self">Pipeflow</a>(</span><span class="m-doc-wrap">) <span class="m-label m-flat m-info">defaulted</span></span>
75+
</dt>
76+
<dd>default constructor</dd>
77+
</dl>
78+
</section>
6979
<section id="pub-methods">
7080
<h2><a href="#pub-methods">Public functions</a></h2>
7181
<dl class="m-doc">

docs/fibonacci.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ <h3>Contents</h3>
5959
<p>We study the classic problem, <em>Fibonacci Number</em>, to demonstrate the use of recursive task parallelism.</p><section id="FibonacciNumberProblem"><h2><a href="#FibonacciNumberProblem">Problem Formulation</a></h2><p>In mathematics, the Fibonacci numbers, commonly denoted <code>F(n)</code>, form a sequence such that each number is the sum of the two preceding ones, starting from 0 and 1.</p><p><code>0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...</code></p><p>A common solution for computing fibonacci numbers is <em>recursion</em>.</p><pre class="m-code"><span class="kt">int</span> <span class="nf">fib</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
6060
<span class="k">if</span><span class="p">(</span><span class="n">n</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">)</span> <span class="k">return</span> <span class="n">n</span><span class="p">;</span>
6161
<span class="k">return</span> <span class="n">fib</span><span class="p">(</span><span class="n">n</span><span class="mi">-1</span><span class="p">)</span> <span class="o">+</span> <span class="n">fib</span><span class="p">(</span><span class="n">n</span><span class="mi">-2</span><span class="p">);</span>
62-
<span class="p">}</span></pre></section><section id="RecursiveFibonacciParallelism"><h2><a href="#RecursiveFibonacciParallelism">Recursive Fibonacci Parallelism</a></h2><p>We use <a href="classtf_1_1Subflow.html" class="m-doc">tf::<wbr />Subflow</a> to recursively compute fibonacci numbers in parallel.</p><pre class="m-code"><span class="kt">int</span> <span class="nf">spawn</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="n">tf</span><span class="o">::</span><span class="n">Subflow</span><span class="o">&amp;</span> <span class="n">sbf</span><span class="p">)</span> <span class="p">{</span>
62+
<span class="p">}</span></pre></section><section id="RecursiveFibonacciParallelism"><h2><a href="#RecursiveFibonacciParallelism">Recursive Fibonacci Parallelism</a></h2><p>We use <a href="classtf_1_1Subflow.html" class="m-doc">tf::<wbr />Subflow</a> to recursively compute fibonacci numbers in parallel.</p><pre class="m-code"><span class="cp">#include</span> <span class="cpf">&lt;taskflow/taskflow.hpp&gt;</span><span class="cp"></span>
63+
64+
<span class="kt">int</span> <span class="nf">spawn</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">,</span> <span class="n">tf</span><span class="o">::</span><span class="n">Subflow</span><span class="o">&amp;</span> <span class="n">sbf</span><span class="p">)</span> <span class="p">{</span>
6365
<span class="k">if</span> <span class="p">(</span><span class="n">n</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">)</span> <span class="k">return</span> <span class="n">n</span><span class="p">;</span>
6466
<span class="kt">int</span> <span class="n">res1</span><span class="p">,</span> <span class="n">res2</span><span class="p">;</span>
6567
<span class="n">sbf</span><span class="p">.</span><span class="n">emplace</span><span class="p">([</span><span class="o">&amp;</span><span class="n">res1</span><span class="p">,</span> <span class="n">n</span><span class="p">]</span> <span class="p">(</span><span class="n">tf</span><span class="o">::</span><span class="n">Subflow</span><span class="o">&amp;</span> <span class="n">sbf</span><span class="p">)</span> <span class="p">{</span> <span class="n">res1</span> <span class="o">=</span> <span class="n">spawn</span><span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="n">sbf</span><span class="p">);</span> <span class="p">}</span> <span class="p">)</span>
@@ -278,7 +280,7 @@ <h3>Contents</h3>
278280
</g>
279281
</g>
280282
</svg>
281-
</div><p>Even if recursive dynamic tasking or subflows are permitted, the recursion depth may not be too deep or it can cause stack overflow.</p></section>
283+
</div><p>Even if recursive dynamic tasking or subflows are possible, the recursion depth may not be too deep or it can cause stack overflow.</p></section>
282284
</div>
283285
</div>
284286
</div>

0 commit comments

Comments
 (0)