-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
2 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
<!DOCTYPE html> | ||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Accumulator (kcas_data.Kcas_data.Accumulator)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../odoc.support/odoc.css"/><meta name="generator" content="odoc 2.4.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">kcas_data</a> » <a href="../index.html">Kcas_data</a> » Accumulator</nav><header class="odoc-preamble"><h1>Module <code><span>Kcas_data.Accumulator</span></code></h1><p>Scalable accumulator.</p><p>A scalable accumulator can be used to scalably accumulate an integer value in parallel as long as the accumulated value is read infrequently.</p></header><nav class="odoc-toc"><ul><li><a href="#common-interface">Common interface</a></li><li><a href="#compositional-interface">Compositional interface</a></li><li><a href="#non-compositional-interface">Non-compositional interface</a></li></ul></nav><div class="odoc-content"><h2 id="common-interface"><a href="#common-interface" class="anchor"></a>Common interface</h2><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div><div class="spec-doc"><p>The type of a scalable accumulator.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-make"><a href="#val-make" class="anchor"></a><code><span><span class="keyword">val</span> make : <span><span class="optlabel">?n_way</span>:int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>make n</code> returns a new accumulator whose initial value is <code>n</code>.</p><p>The optional <code>n_way</code> argument can be used to specify a desired level of parallelism, i.e. maximum number of non-interfering parallel updates. The default value is chosen to strike a balance between scalability and memory use and a given value may be adjusted by the implementation.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-n_way_of"><a href="#val-n_way_of" class="anchor"></a><code><span><span class="keyword">val</span> n_way_of : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>n_way_of a</code> returns the maximum number of non-interfering parallel updates supported by the accumulator <code>a</code>.</p><p><b>NOTE</b>: The returned value may not be the same as given to <a href="#val-make"><code>make</code></a>.</p></div></div><h2 id="compositional-interface"><a href="#compositional-interface" class="anchor"></a>Compositional interface</h2><div class="odoc-spec"><div class="spec module anchored" id="module-Xt"><a href="#module-Xt" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Xt/index.html">Xt</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Explicit transaction log passing on accumulators.</p></div></div><h2 id="non-compositional-interface"><a href="#non-compositional-interface" class="anchor"></a>Non-compositional interface</h2><div class="odoc-spec"><div class="spec value anchored" id="val-add"><a href="#val-add" class="anchor"></a><code><span><span class="keyword">val</span> add : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>add a n</code> increments the value of the accumulator <code>a</code> by <code>n</code>. <code>add</code> operations can be performed scalably in parallel.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-incr"><a href="#val-incr" class="anchor"></a><code><span><span class="keyword">val</span> incr : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>incr a</code> is equivalent to <code>add a 1</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-decr"><a href="#val-decr" class="anchor"></a><code><span><span class="keyword">val</span> decr : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>decr a</code> is equivalent to <code>add a (-1)</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get"><a href="#val-get" class="anchor"></a><code><span><span class="keyword">val</span> get : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>get a</code> returns the current value of the accumulator.</p><p><b>CAUTION</b>: Performing a <code>get</code> is expensive and can limit scalability.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set"><a href="#val-set" class="anchor"></a><code><span><span class="keyword">val</span> set : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>set a n</code> sets the current value of the accumulator <code>a</code> to <code>n</code>.</p></div></div></div></body></html> | ||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Accumulator (kcas_data.Kcas_data.Accumulator)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../odoc.support/odoc.css"/><meta name="generator" content="odoc 2.4.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">kcas_data</a> » <a href="../index.html">Kcas_data</a> » Accumulator</nav><header class="odoc-preamble"><h1>Module <code><span>Kcas_data.Accumulator</span></code></h1><p>Scalable accumulator.</p><p>A scalable accumulator can be used to scalably accumulate an integer value in parallel as long as the accumulated value is read infrequently.</p></header><nav class="odoc-toc"><ul><li><a href="#common-interface">Common interface</a></li><li><a href="#compositional-interface">Compositional interface</a></li><li><a href="#non-compositional-interface">Non-compositional interface</a></li></ul></nav><div class="odoc-content"><h2 id="common-interface"><a href="#common-interface" class="anchor"></a>Common interface</h2><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div><div class="spec-doc"><p>The type of a scalable accumulator.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-make"><a href="#val-make" class="anchor"></a><code><span><span class="keyword">val</span> make : <span>int <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>make n</code> returns a new accumulator whose initial value is <code>n</code>.</p></div></div><h2 id="compositional-interface"><a href="#compositional-interface" class="anchor"></a>Compositional interface</h2><div class="odoc-spec"><div class="spec module anchored" id="module-Xt"><a href="#module-Xt" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Xt/index.html">Xt</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Explicit transaction log passing on accumulators.</p></div></div><h2 id="non-compositional-interface"><a href="#non-compositional-interface" class="anchor"></a>Non-compositional interface</h2><div class="odoc-spec"><div class="spec value anchored" id="val-add"><a href="#val-add" class="anchor"></a><code><span><span class="keyword">val</span> add : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>add a n</code> increments the value of the accumulator <code>a</code> by <code>n</code>. <code>add</code> operations can be performed scalably in parallel.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-incr"><a href="#val-incr" class="anchor"></a><code><span><span class="keyword">val</span> incr : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>incr a</code> is equivalent to <code>add a 1</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-decr"><a href="#val-decr" class="anchor"></a><code><span><span class="keyword">val</span> decr : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>decr a</code> is equivalent to <code>add a (-1)</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get"><a href="#val-get" class="anchor"></a><code><span><span class="keyword">val</span> get : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>get a</code> returns the current value of the accumulator.</p><p><b>CAUTION</b>: Performing a <code>get</code> is expensive and can limit scalability.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set"><a href="#val-set" class="anchor"></a><code><span><span class="keyword">val</span> set : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>set a n</code> sets the current value of the accumulator <code>a</code> to <code>n</code>.</p></div></div></div></body></html> |
Oops, something went wrong.