<p>The partitioner divides iterations into chunks and distributes chunks to workers in order. If the chunk size is not specified (default <code>0</code>), the partitioner resorts to a chunk size that equally distributes iterations into workers.</p><preclass="m-code"><spanclass="n">std</span><spanclass="o">::</span><spanclass="n">vector</span><spanclass="o"><</span><spanclass="kt">int</span><spanclass="o">></span><spanclass="w"></span><spanclass="n">data</span><spanclass="w"></span><spanclass="o">=</span><spanclass="w"></span><spanclass="p">{</span><spanclass="mi">1</span><spanclass="p">,</span><spanclass="w"></span><spanclass="mi">2</span><spanclass="p">,</span><spanclass="w"></span><spanclass="mi">3</span><spanclass="p">,</span><spanclass="w"></span><spanclass="mi">4</span><spanclass="p">,</span><spanclass="w"></span><spanclass="mi">5</span><spanclass="p">,</span><spanclass="w"></span><spanclass="mi">6</span><spanclass="p">,</span><spanclass="w"></span><spanclass="mi">7</span><spanclass="p">,</span><spanclass="w"></span><spanclass="mi">8</span><spanclass="p">,</span><spanclass="w"></span><spanclass="mi">9</span><spanclass="p">,</span><spanclass="w"></span><spanclass="mi">10</span><spanclass="p">}</span>
<spanclass="n">executor</span><spanclass="p">.</span><spanclass="n">run</span><spanclass="p">(</span><spanclass="n">taskflow</span><spanclass="p">).</span><spanclass="n">run</span><spanclass="p">();</span></pre><p>In addition to partition size, the application can specify a closure wrapper for a static partitioner. A closure wrapper allows the application to wrapper a partitioned task (i.e., closure) with a custom function object that performs additional tasks. For example:</p><preclass="m-code"><spanclass="n">std</span><spanclass="o">::</span><spanclass="n">atomic</span><spanclass="o"><</span><spanclass="kt">int</span><spanclass="o">></span><spanclass="w"></span><spanclass="n">count</span><spanclass="w"></span><spanclass="o">=</span><spanclass="w"></span><spanclass="mi">0</span><spanclass="p">;</span>
<spanclass="m-doc-wrap-bumper">auto <ahref="#a54a55e0b20f054e215509486bcd5dc1c" class="m-doc">adjusted_chunk_size</a>(</span><spanclass="m-doc-wrap">size_t N,
<spanclass="m-doc-wrap-bumper">size_t tf::<wbr/>StaticPartitioner<C>::<wbr/></span><spanclass="m-doc-wrap"><spanclass="m-doc-wrap-bumper"><ahref="#a54a55e0b20f054e215509486bcd5dc1c" class="m-doc-self">adjusted_chunk_size</a>(</span><spanclass="m-doc-wrap">size_t N,
size_t W,
size_t w) const</span></span>
</h3>
<p>queries the adjusted chunk size</p>
<p>Returns the given chunk size if it is not zero, or returns <code>N/W + (w < NW)</code>, where <code>N</code> is the number of iterations, <code>W</code> is the number of workers, and <code>w</code> is the worker ID.</p>
</div></section>
</section>
</div>
</div>
</div>
</article></main>
<divclass="m-doc-search" id="search">
<ahref="#!" onclick="return hideSearch()"></a>
<divclass="m-container">
<divclass="m-row">
<divclass="m-col-m-8 m-push-m-2">
<divclass="m-doc-search-header m-text m-small">
<div><spanclass="m-label m-default">Tab</span> / <spanclass="m-label m-default">T</span> to search, <spanclass="m-label m-default">Esc</span> to close</div>