You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@singa.apache.org by wa...@apache.org on 2015/05/07 15:07:46 UTC

[22/57] [partial] incubator-singa git commit: create github pages

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1NeuralNet.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1NeuralNet.html b/api/classsinga_1_1NeuralNet.html
new file mode 100644
index 0000000..b62bd10
--- /dev/null
+++ b/api/classsinga_1_1NeuralNet.html
@@ -0,0 +1,357 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>Apache SINGA: singa::NeuralNet Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" href="classsinga_1_1NeuralNet.html">NeuralNet</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classsinga_1_1NeuralNet-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">singa::NeuralNet Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The neural network is constructed from user configured layers through google protocol buffer.  
+ <a href="classsinga_1_1NeuralNet.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="neuralnet_8h_source.html">neuralnet.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ae5c47bb34897f5029d4b82e96f50081a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5c47bb34897f5029d4b82e96f50081a"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1NeuralNet.html#ae5c47bb34897f5029d4b82e96f50081a">NeuralNet</a> (NetProto net_proto, int group_size=1)</td></tr>
+<tr class="memdesc:ae5c47bb34897f5029d4b82e96f50081a"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct the net structure from protocol buffer. <br/></td></tr>
+<tr class="separator:ae5c47bb34897f5029d4b82e96f50081a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a947cdee455cd4c29403459aeb7e48f47"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1NeuralNet.html#a947cdee455cd4c29403459aeb7e48f47">ToString</a> ()</td></tr>
+<tr class="memdesc:a947cdee455cd4c29403459aeb7e48f47"><td class="mdescLeft">&#160;</td><td class="mdescRight">construct a json string representing the neuralnet graph.  <a href="#a947cdee455cd4c29403459aeb7e48f47">More...</a><br/></td></tr>
+<tr class="separator:a947cdee455cd4c29403459aeb7e48f47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a012046b1543c8c24209e6ccefe4603f9"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1NeuralNet.html#a012046b1543c8c24209e6ccefe4603f9">DebugInfo</a> ()</td></tr>
+<tr class="memdesc:a012046b1543c8c24209e6ccefe4603f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print Norm1 of data and grad of each <a class="el" href="classsinga_1_1Layer.html" title="Base layer class. ">Layer</a> and parameter.  <a href="#a012046b1543c8c24209e6ccefe4603f9">More...</a><br/></td></tr>
+<tr class="separator:a012046b1543c8c24209e6ccefe4603f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac59d09a7129befe7eb4206d22075eb11"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac59d09a7129befe7eb4206d22075eb11"></a>
+std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1NeuralNet.html#ac59d09a7129befe7eb4206d22075eb11">ToAdjacency</a> ()</td></tr>
+<tr class="memdesc:ac59d09a7129befe7eb4206d22075eb11"><td class="mdescLeft">&#160;</td><td class="mdescRight">to display the adjacency layers <br/></td></tr>
+<tr class="separator:ac59d09a7129befe7eb4206d22075eb11"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83bf4d104eb009b22e559282d92dc4d3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a83bf4d104eb009b22e559282d92dc4d3"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1NeuralNet.html#a83bf4d104eb009b22e559282d92dc4d3">AddLayer</a> (const LayerProto &amp;layer_proto)</td></tr>
+<tr class="memdesc:a83bf4d104eb009b22e559282d92dc4d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add layer explicitly used in manually programming/constructing neural net. <br/></td></tr>
+<tr class="separator:a83bf4d104eb009b22e559282d92dc4d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae548e6daf3f7ae01e2beb9a7f5bc6f03"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae548e6daf3f7ae01e2beb9a7f5bc6f03"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1NeuralNet.html#ae548e6daf3f7ae01e2beb9a7f5bc6f03">AddLayer</a> (const <a class="el" href="classsinga_1_1Layer.html">Layer</a> *layer)</td></tr>
+<tr class="memdesc:ae548e6daf3f7ae01e2beb9a7f5bc6f03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add layer explicitly used in manually programming/constructing neural net. <br/></td></tr>
+<tr class="separator:ae548e6daf3f7ae01e2beb9a7f5bc6f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac135472b2cec6cebb0be27a558d671b6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac135472b2cec6cebb0be27a558d671b6"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1NeuralNet.html#ac135472b2cec6cebb0be27a558d671b6">ShareParams</a> (shared_ptr&lt; <a class="el" href="classsinga_1_1NeuralNet.html">NeuralNet</a> &gt; other, int flag)</td></tr>
+<tr class="memdesc:ac135472b2cec6cebb0be27a558d671b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">share weights from other neuralnet <br/></td></tr>
+<tr class="separator:ac135472b2cec6cebb0be27a558d671b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefb74385ed5cc8a65f56f314deaa8a1c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aefb74385ed5cc8a65f56f314deaa8a1c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>ToProto</b> (NetProto *net_proto, bool copyData=false)</td></tr>
+<tr class="separator:aefb74385ed5cc8a65f56f314deaa8a1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3b951c63d520e2e749c89b4fe1b47b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3b951c63d520e2e749c89b4fe1b47b4"></a>
+const std::vector&lt; shared_ptr<br class="typebreak"/>
+&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt; &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>layers</b> ()</td></tr>
+<tr class="separator:ad3b951c63d520e2e749c89b4fe1b47b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8955f91a3f9ed9557d885c594445d49"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad8955f91a3f9ed9557d885c594445d49"></a>
+const std::vector&lt; <a class="el" href="classsinga_1_1ParserLayer.html">ParserLayer</a> * &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1NeuralNet.html#ad8955f91a3f9ed9557d885c594445d49">parserlayers</a> ()</td></tr>
+<tr class="memdesc:ad8955f91a3f9ed9557d885c594445d49"><td class="mdescLeft">&#160;</td><td class="mdescRight">return <a class="el" href="classsinga_1_1ParserLayer.html" title="parse the input records into Blobs. ">ParserLayer</a> of the neuralnet. <br/></td></tr>
+<tr class="separator:ad8955f91a3f9ed9557d885c594445d49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afce12f03001db3a02c5e136736cf150a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afce12f03001db3a02c5e136736cf150a"></a>
+const std::vector&lt; <a class="el" href="classsinga_1_1LossLayer.html">LossLayer</a> * &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>losslayers</b> ()</td></tr>
+<tr class="separator:afce12f03001db3a02c5e136736cf150a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3638e916992bd414d9ded932962bddb7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3638e916992bd414d9ded932962bddb7"></a>
+const std::vector&lt; <a class="el" href="classsinga_1_1DataLayer.html">DataLayer</a> * &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>datalayers</b> ()</td></tr>
+<tr class="separator:a3638e916992bd414d9ded932962bddb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5559e533d59d0e8734e363e949bfcaf3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5559e533d59d0e8734e363e949bfcaf3"></a>
+const std::vector&lt; shared_ptr<br class="typebreak"/>
+&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>params</b> () const </td></tr>
+<tr class="separator:a5559e533d59d0e8734e363e949bfcaf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3fd6c037c2c4e9e099c4cc4d87ec2e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab3fd6c037c2c4e9e099c4cc4d87ec2e3"></a>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>name2layer</b> (string name)</td></tr>
+<tr class="separator:ab3fd6c037c2c4e9e099c4cc4d87ec2e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa42ba8a7fdfb9071048f8bd62c7ab4db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa42ba8a7fdfb9071048f8bd62c7ab4db"></a>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>paramid2param</b> (int id)</td></tr>
+<tr class="separator:aa42ba8a7fdfb9071048f8bd62c7ab4db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a5dd6ab4cd78c3f1562b82fbff4644b6c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5dd6ab4cd78c3f1562b82fbff4644b6c"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1NeuralNet.html#a5dd6ab4cd78c3f1562b82fbff4644b6c">RegisterLayers</a> ()</td></tr>
+<tr class="memdesc:a5dd6ab4cd78c3f1562b82fbff4644b6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register Layers. <br/></td></tr>
+<tr class="separator:a5dd6ab4cd78c3f1562b82fbff4644b6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40c2bb568e630d04b4106f37f61f58e7"><td class="memItemLeft" align="right" valign="top">static shared_ptr&lt; <a class="el" href="classsinga_1_1NeuralNet.html">NeuralNet</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1NeuralNet.html#a40c2bb568e630d04b4106f37f61f58e7">SetupNeuralNet</a> (const NetProto &amp;np, Phase phase)</td></tr>
+<tr class="memdesc:a40c2bb568e630d04b4106f37f61f58e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup the neural network for training, test or validation.  <a href="#a40c2bb568e630d04b4106f37f61f58e7">More...</a><br/></td></tr>
+<tr class="separator:a40c2bb568e630d04b4106f37f61f58e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a90ee7190372b8c7187d6665d1c067a4f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a90ee7190372b8c7187d6665d1c067a4f"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>ConstructNeuralNet</b> (const NetProto &amp;net_proto)</td></tr>
+<tr class="separator:a90ee7190372b8c7187d6665d1c067a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2214d7af752549f346029c496202edea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2214d7af752549f346029c496202edea"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>PartitionNeuralNet</b> ()</td></tr>
+<tr class="separator:a2214d7af752549f346029c496202edea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4238f961a3a3e1dfaa024910150ca39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4238f961a3a3e1dfaa024910150ca39"></a>
+map&lt; string, shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>GetNameToLayer</b> (const vector&lt; shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt;&gt; &amp;layers)</td></tr>
+<tr class="separator:ab4238f961a3a3e1dfaa024910150ca39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6806741dfd2f6dffdea17fc66b43760"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6806741dfd2f6dffdea17fc66b43760"></a>
+<a class="el" href="classGraph.html">Graph</a>&#160;</td><td class="memItemRight" valign="bottom"><b>CreatePartitonedGraph</b> (const vector&lt; shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt;&gt; &amp;layers, const map&lt; string, shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt;&gt; &amp;name2layer)</td></tr>
+<tr class="separator:ac6806741dfd2f6dffdea17fc66b43760"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a207c0744182a802925c41355ef0f2f"><td class="memItemLeft" align="right" valign="top">map&lt; string, vector<br class="typebreak"/>
+&lt; shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1NeuralNet.html#a0a207c0744182a802925c41355ef0f2f">PartitionLayers</a> (const vector&lt; shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt;&gt; &amp;layers)</td></tr>
+<tr class="memdesc:a0a207c0744182a802925c41355ef0f2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Partition each layer according its partition type and dimension.  <a href="#a0a207c0744182a802925c41355ef0f2f">More...</a><br/></td></tr>
+<tr class="separator:a0a207c0744182a802925c41355ef0f2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a87389f5e484e4b8d853bdac66f38494a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a87389f5e484e4b8d853bdac66f38494a"></a>
+vector&lt; shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>layers_</b></td></tr>
+<tr class="separator:a87389f5e484e4b8d853bdac66f38494a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a083fb0d7e4d40cd1dc8467880a57e791"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a083fb0d7e4d40cd1dc8467880a57e791"></a>
+vector&lt; <a class="el" href="classsinga_1_1ParserLayer.html">ParserLayer</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>parserlayers_</b></td></tr>
+<tr class="separator:a083fb0d7e4d40cd1dc8467880a57e791"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab57fc41ddc64d62e6fd9bd1eff0b04c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab57fc41ddc64d62e6fd9bd1eff0b04c2"></a>
+vector&lt; <a class="el" href="classsinga_1_1LossLayer.html">LossLayer</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>losslayers_</b></td></tr>
+<tr class="separator:ab57fc41ddc64d62e6fd9bd1eff0b04c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a576d9c03b8c9d854c6c670d49f629d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a576d9c03b8c9d854c6c670d49f629d"></a>
+vector&lt; <a class="el" href="classsinga_1_1DataLayer.html">DataLayer</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>datalayers_</b></td></tr>
+<tr class="separator:a4a576d9c03b8c9d854c6c670d49f629d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a2207f3586e0559aee5d8c76a7e1281"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a2207f3586e0559aee5d8c76a7e1281"></a>
+vector&lt; shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>params_</b></td></tr>
+<tr class="separator:a5a2207f3586e0559aee5d8c76a7e1281"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa991c1f8eeee6f87e4d7338bfe1a68ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa991c1f8eeee6f87e4d7338bfe1a68ff"></a>
+map&lt; string, shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>name2layer_</b></td></tr>
+<tr class="separator:aa991c1f8eeee6f87e4d7338bfe1a68ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0813743d163d6cb6737c39ff4ad4e7dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0813743d163d6cb6737c39ff4ad4e7dc"></a>
+map&lt; int, shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>paramid2param_</b></td></tr>
+<tr class="separator:a0813743d163d6cb6737c39ff4ad4e7dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e81a377402bdc1a7a9b4cde678bb413"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e81a377402bdc1a7a9b4cde678bb413"></a>
+map&lt; string, LayerProto &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>name2layerproto_</b></td></tr>
+<tr class="separator:a8e81a377402bdc1a7a9b4cde678bb413"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67146adc1622e08f1b8e12764848cb2f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a67146adc1622e08f1b8e12764848cb2f"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>group_size_</b></td></tr>
+<tr class="separator:a67146adc1622e08f1b8e12764848cb2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45bb3b83766152d0d9ce6dc6e6a6dd43"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45bb3b83766152d0d9ce6dc6e6a6dd43"></a>
+<a class="el" href="classGraph.html">Graph</a>&#160;</td><td class="memItemRight" valign="bottom"><b>graph_</b></td></tr>
+<tr class="separator:a45bb3b83766152d0d9ce6dc6e6a6dd43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The neural network is constructed from user configured layers through google protocol buffer. </p>
+<p>TODO support constructing neural network by adding layers explicitly. E.g., users create layers and connect them manually in the code.</p>
+<p>Some layers, e.g., <a class="el" href="classsinga_1_1SplitLayer.html" title="Replciate this layer into multiple dst layers. ">SplitLayer</a> and BridgeSrcLayer/BridgeDstLayer will be added implicitly to partition the neural network. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a012046b1543c8c24209e6ccefe4603f9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string singa::NeuralNet::DebugInfo </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Print Norm1 of data and grad of each <a class="el" href="classsinga_1_1Layer.html" title="Base layer class. ">Layer</a> and parameter. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">net,neural</td><td>network </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a0a207c0744182a802925c41355ef0f2f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">map&lt;string, vector&lt;shared_ptr&lt;<a class="el" href="classsinga_1_1Layer.html">Layer</a>&gt; &gt; &gt; singa::NeuralNet::PartitionLayers </td>
+          <td>(</td>
+          <td class="paramtype">const vector&lt; shared_ptr&lt; <a class="el" href="classsinga_1_1Layer.html">Layer</a> &gt;&gt; &amp;&#160;</td>
+          <td class="paramname"><em>layers</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Partition each layer according its partition type and dimension. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">layers</td><td>original unpartitioned layers </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a40c2bb568e630d04b4106f37f61f58e7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static shared_ptr&lt;<a class="el" href="classsinga_1_1NeuralNet.html">NeuralNet</a>&gt; singa::NeuralNet::SetupNeuralNet </td>
+          <td>(</td>
+          <td class="paramtype">const NetProto &amp;&#160;</td>
+          <td class="paramname"><em>np</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">Phase&#160;</td>
+          <td class="paramname"><em>phase</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Setup the neural network for training, test or validation. </p>
+<p>Parameters for test/validation net can share those from training after setup (done outside of this funcion).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">np</td><td>proto for the neural network. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a947cdee455cd4c29403459aeb7e48f47"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string singa::NeuralNet::ToString </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>construct a json string representing the neuralnet graph. </p>
+<p>The json string can be used by other graph engine to draw a figure for displaying the neuralnet structure. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/wangwei/program/asf/incubator-singa/include/neuralnet/<a class="el" href="neuralnet_8h_source.html">neuralnet.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 for Apache SINGA by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1PMServer-members.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1PMServer-members.html b/api/classsinga_1_1PMServer-members.html
new file mode 100644
index 0000000..3715b07
--- /dev/null
+++ b/api/classsinga_1_1PMServer-members.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>Apache SINGA: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" href="classsinga_1_1PMServer.html">PMServer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">singa::PMServer Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>dealer_</b> (defined in <a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>group_id_</b> (defined in <a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classsinga_1_1PMServer.html#a6a10c73069a1e1495672792d43dad42c">HandleGet</a>(Msg **msg)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsinga_1_1PMServer.html#abb72a5ae0864e41314e8f4b49e0e2304">HandlePut</a>(Msg **msg)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classsinga_1_1PMServer.html#a5fea9e785ebb67eb4db6b214693114f3">HandleSyncRequest</a>(Msg **msg)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsinga_1_1PMServer.html#a0dd96b16e813a82d7aa853dc8a583a82">HandleSyncResponse</a>(Msg **msg)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classsinga_1_1PMServer.html#a8ac7bf4ff9cf29135e9a8c08e16f890a">HandleUpdate</a>(Msg **msg)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>ParamShard</b> typedef (defined in <a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>server_id_</b> (defined in <a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Setup</b>(int group_id, int server_id, shared_ptr&lt; ParamShard &gt; shard, const UpdaterProto &amp;proto) (defined in <a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>shard_</b> (defined in <a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsinga_1_1PMServer.html#a84fb182e77ea7a3109aabc74e17cbf69">SyncNow</a>()</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>updater_</b> (defined in <a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~PMServer</b>() (defined in <a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMServer.html">singa::PMServer</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 for Apache SINGA by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1PMServer.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1PMServer.html b/api/classsinga_1_1PMServer.html
new file mode 100644
index 0000000..ced5316
--- /dev/null
+++ b/api/classsinga_1_1PMServer.html
@@ -0,0 +1,280 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>Apache SINGA: singa::PMServer Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" href="classsinga_1_1PMServer.html">PMServer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classsinga_1_1PMServer-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">singa::PMServer Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Parameter manager at the server side.  
+ <a href="classsinga_1_1PMServer.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="pm__server_8h_source.html">pm_server.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:ad92d2621f460a2e1d222c469369dd7f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad92d2621f460a2e1d222c469369dd7f1"></a>
+typedef std::map&lt; int, <br class="typebreak"/>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ParamShard</b></td></tr>
+<tr class="separator:ad92d2621f460a2e1d222c469369dd7f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aeb90a8db3d06feb38d43136f65ae4383"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb90a8db3d06feb38d43136f65ae4383"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>Setup</b> (int group_id, int server_id, shared_ptr&lt; ParamShard &gt; shard, const UpdaterProto &amp;proto)</td></tr>
+<tr class="separator:aeb90a8db3d06feb38d43136f65ae4383"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a10c73069a1e1495672792d43dad42c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMServer.html#a6a10c73069a1e1495672792d43dad42c">HandleGet</a> (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="memdesc:a6a10c73069a1e1495672792d43dad42c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process GET request.  <a href="#a6a10c73069a1e1495672792d43dad42c">More...</a><br/></td></tr>
+<tr class="separator:a6a10c73069a1e1495672792d43dad42c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ac7bf4ff9cf29135e9a8c08e16f890a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMServer.html#a8ac7bf4ff9cf29135e9a8c08e16f890a">HandleUpdate</a> (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="memdesc:a8ac7bf4ff9cf29135e9a8c08e16f890a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process Update request.  <a href="#a8ac7bf4ff9cf29135e9a8c08e16f890a">More...</a><br/></td></tr>
+<tr class="separator:a8ac7bf4ff9cf29135e9a8c08e16f890a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb72a5ae0864e41314e8f4b49e0e2304"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMServer.html#abb72a5ae0864e41314e8f4b49e0e2304">HandlePut</a> (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="memdesc:abb72a5ae0864e41314e8f4b49e0e2304"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process PUT request.  <a href="#abb72a5ae0864e41314e8f4b49e0e2304">More...</a><br/></td></tr>
+<tr class="separator:abb72a5ae0864e41314e8f4b49e0e2304"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5fea9e785ebb67eb4db6b214693114f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5fea9e785ebb67eb4db6b214693114f3"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMServer.html#a5fea9e785ebb67eb4db6b214693114f3">HandleSyncRequest</a> (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="memdesc:a5fea9e785ebb67eb4db6b214693114f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">TODO Process SYNC request. <br/></td></tr>
+<tr class="separator:a5fea9e785ebb67eb4db6b214693114f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dd96b16e813a82d7aa853dc8a583a82"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0dd96b16e813a82d7aa853dc8a583a82"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMServer.html#a0dd96b16e813a82d7aa853dc8a583a82">HandleSyncResponse</a> (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="memdesc:a0dd96b16e813a82d7aa853dc8a583a82"><td class="mdescLeft">&#160;</td><td class="mdescRight">TODO Process SYNC response. <br/></td></tr>
+<tr class="separator:a0dd96b16e813a82d7aa853dc8a583a82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84fb182e77ea7a3109aabc74e17cbf69"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMServer.html#a84fb182e77ea7a3109aabc74e17cbf69">SyncNow</a> ()</td></tr>
+<tr class="memdesc:a84fb182e77ea7a3109aabc74e17cbf69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scheduler for synchronizing server groups.  <a href="#a84fb182e77ea7a3109aabc74e17cbf69">More...</a><br/></td></tr>
+<tr class="separator:a84fb182e77ea7a3109aabc74e17cbf69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a0f0d677b900418700e2c9dc842f738b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f0d677b900418700e2c9dc842f738b5"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>group_id_</b></td></tr>
+<tr class="separator:a0f0d677b900418700e2c9dc842f738b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5dc575411ae40bc39a3d4a85eb45849"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac5dc575411ae40bc39a3d4a85eb45849"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>server_id_</b></td></tr>
+<tr class="separator:ac5dc575411ae40bc39a3d4a85eb45849"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44d0f5b0fbdff3fbd18df3879e10a33e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a44d0f5b0fbdff3fbd18df3879e10a33e"></a>
+shared_ptr&lt; ParamShard &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>shard_</b></td></tr>
+<tr class="separator:a44d0f5b0fbdff3fbd18df3879e10a33e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a363f39726e0c81f7c56ce24d0f3b1d95"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a363f39726e0c81f7c56ce24d0f3b1d95"></a>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Dealer.html">Dealer</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>dealer_</b></td></tr>
+<tr class="separator:a363f39726e0c81f7c56ce24d0f3b1d95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acfb6abf73f0d8345e686cb12749806cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acfb6abf73f0d8345e686cb12749806cb"></a>
+shared_ptr&lt; <a class="el" href="classsinga_1_1Updater.html">Updater</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>updater_</b></td></tr>
+<tr class="separator:acfb6abf73f0d8345e686cb12749806cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Parameter manager at the server side. </p>
+<p>Repsond to worker's get/put/udpate request, and periodically syncing with other servers.</p>
+<p>Normally, the <a class="el" href="classsinga_1_1PMServer.html" title="Parameter manager at the server side. ">PMServer</a> creates a response message for each request which will be sent back to the one who issued the request. However, if the request are not processed successfully, the original message will be returned. The sever does not know the returned message (response or the original message), it just sends it to the router. The router will decide to re-send the request to the server or send it to the worker. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a6a10c73069a1e1495672792d43dad42c"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a>* singa::PMServer::HandleGet </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classsinga_1_1Msg.html">Msg</a> **&#160;</td>
+          <td class="paramname"><em>msg</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Process GET request. </p>
+<dl class="section return"><dt>Returns</dt><dd>the orignal message or response message </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="abb72a5ae0864e41314e8f4b49e0e2304"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a>* singa::PMServer::HandlePut </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classsinga_1_1Msg.html">Msg</a> **&#160;</td>
+          <td class="paramname"><em>msg</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Process PUT request. </p>
+<dl class="section return"><dt>Returns</dt><dd>the original message or response message. If we don't want need to acknowledge the put request, then return nullptr. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a8ac7bf4ff9cf29135e9a8c08e16f890a"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a>* singa::PMServer::HandleUpdate </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classsinga_1_1Msg.html">Msg</a> **&#160;</td>
+          <td class="paramname"><em>msg</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Process Update request. </p>
+<dl class="section return"><dt>Returns</dt><dd>the orignal message or response message </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a84fb182e77ea7a3109aabc74e17cbf69"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual bool singa::PMServer::SyncNow </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Scheduler for synchronizing server groups. </p>
+<p>TODO implement the Caffe's synchronization scheduler for data parallelism </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/wangwei/program/asf/incubator-singa/include/trainer/<a class="el" href="pm__server_8h_source.html">pm_server.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 for Apache SINGA by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1PMWorker-members.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1PMWorker-members.html b/api/classsinga_1_1PMWorker-members.html
new file mode 100644
index 0000000..d72d4bb
--- /dev/null
+++ b/api/classsinga_1_1PMWorker-members.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>Apache SINGA: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" href="classsinga_1_1PMWorker.html">PMWorker</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">singa::PMWorker Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html#aa69dece9e990b3c25315f7e9226d7e5e">Collect</a>(Msg **)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html#a0ec5f2c8c47854cb10bc1bfda527e255">Get</a>(shared_ptr&lt; Param &gt; param, int step)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Get</b>(Msg **msg) (defined in <a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>group_id_</b> (defined in <a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html#a2c6442319470a4f557921c7088338afc">ParamShard</a> typedef</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html#af866eeeb80821f8ac17a6c9e99cebf1b">Put</a>(shared_ptr&lt; Param &gt; param, int step)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Put</b>(Msg **msg) (defined in <a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>set_id</b>(int group_id, int worker_id) (defined in <a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Setup</b>(int group_id, int worker_id, shared_ptr&lt; ParamShard &gt; shard) (defined in <a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>shard_</b> (defined in <a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html#abc856cc69b3a638fd56dfeaa429f8a4f">Sharding</a>(int param_id)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html#a31953e1006e0b19c10f5998b31e735c3">Update</a>(shared_ptr&lt; Param &gt; param, int step)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Update</b>(Msg **msg) (defined in <a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>worker_id_</b> (defined in <a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a>)</td><td class="entry"><a class="el" href="classsinga_1_1PMWorker.html">singa::PMWorker</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 for Apache SINGA by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/666a841d/api/classsinga_1_1PMWorker.html
----------------------------------------------------------------------
diff --git a/api/classsinga_1_1PMWorker.html b/api/classsinga_1_1PMWorker.html
new file mode 100644
index 0000000..3cf817b
--- /dev/null
+++ b/api/classsinga_1_1PMWorker.html
@@ -0,0 +1,216 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>Apache SINGA: singa::PMWorker Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="singa-logo-small.png"/></td>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">Apache SINGA
+   </div>
+   <div id="projectbrief">A distributed deep learning platform .</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><b>singa</b></li><li class="navelem"><a class="el" href="classsinga_1_1PMWorker.html">PMWorker</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classsinga_1_1PMWorker-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">singa::PMWorker Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Parameter manager at the worker side.  
+ <a href="classsinga_1_1PMWorker.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="pm__worker_8h_source.html">pm_worker.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a2c6442319470a4f557921c7088338afc"><td class="memItemLeft" align="right" valign="top">typedef std::map&lt; int, <br class="typebreak"/>
+shared_ptr&lt; <a class="el" href="classsinga_1_1ParamCounter.html">ParamCounter</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMWorker.html#a2c6442319470a4f557921c7088338afc">ParamShard</a></td></tr>
+<tr class="memdesc:a2c6442319470a4f557921c7088338afc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Workers from the same group resident in the same process share the same ParamShard which contains ParamCounters for <a class="el" href="classsinga_1_1Param.html">Param</a> objects used/updated by these worekrs.  <a href="#a2c6442319470a4f557921c7088338afc">More...</a><br/></td></tr>
+<tr class="separator:a2c6442319470a4f557921c7088338afc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a5f0141f04b1613c8b739fab0291c87da"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f0141f04b1613c8b739fab0291c87da"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>Setup</b> (int group_id, int worker_id, shared_ptr&lt; <a class="el" href="classsinga_1_1PMWorker.html#a2c6442319470a4f557921c7088338afc">ParamShard</a> &gt; shard)</td></tr>
+<tr class="separator:a5f0141f04b1613c8b739fab0291c87da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a86e12af5c96933f53f49248a8121fa7c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a86e12af5c96933f53f49248a8121fa7c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>set_id</b> (int group_id, int worker_id)</td></tr>
+<tr class="separator:a86e12af5c96933f53f49248a8121fa7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc856cc69b3a638fd56dfeaa429f8a4f"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMWorker.html#abc856cc69b3a638fd56dfeaa429f8a4f">Sharding</a> (int param_id)</td></tr>
+<tr class="separator:abc856cc69b3a638fd56dfeaa429f8a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ec5f2c8c47854cb10bc1bfda527e255"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ec5f2c8c47854cb10bc1bfda527e255"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMWorker.html#a0ec5f2c8c47854cb10bc1bfda527e255">Get</a> (shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; param, int step)</td></tr>
+<tr class="memdesc:a0ec5f2c8c47854cb10bc1bfda527e255"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a request message to Get the parameter object. <br/></td></tr>
+<tr class="separator:a0ec5f2c8c47854cb10bc1bfda527e255"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac88e330eb052a919a85a77a3de1ea424"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac88e330eb052a919a85a77a3de1ea424"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>Get</b> (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="separator:ac88e330eb052a919a85a77a3de1ea424"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31953e1006e0b19c10f5998b31e735c3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a31953e1006e0b19c10f5998b31e735c3"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMWorker.html#a31953e1006e0b19c10f5998b31e735c3">Update</a> (shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; param, int step)</td></tr>
+<tr class="memdesc:a31953e1006e0b19c10f5998b31e735c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a request message to Update the parameter object. <br/></td></tr>
+<tr class="separator:a31953e1006e0b19c10f5998b31e735c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3496f3679257b3c337e6c77b860dce3c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3496f3679257b3c337e6c77b860dce3c"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>Update</b> (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="separator:a3496f3679257b3c337e6c77b860dce3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa69dece9e990b3c25315f7e9226d7e5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa69dece9e990b3c25315f7e9226d7e5e"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMWorker.html#aa69dece9e990b3c25315f7e9226d7e5e">Collect</a> (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **)</td></tr>
+<tr class="memdesc:aa69dece9e990b3c25315f7e9226d7e5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Collect a <a class="el" href="classsinga_1_1Param.html">Param</a> object returned from server. <br/></td></tr>
+<tr class="separator:aa69dece9e990b3c25315f7e9226d7e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af866eeeb80821f8ac17a6c9e99cebf1b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af866eeeb80821f8ac17a6c9e99cebf1b"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsinga_1_1PMWorker.html#af866eeeb80821f8ac17a6c9e99cebf1b">Put</a> (shared_ptr&lt; <a class="el" href="classsinga_1_1Param.html">Param</a> &gt; param, int step)</td></tr>
+<tr class="memdesc:af866eeeb80821f8ac17a6c9e99cebf1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a request message to Put the parameter object. <br/></td></tr>
+<tr class="separator:af866eeeb80821f8ac17a6c9e99cebf1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace080ba577fdd1add3ec0119990bb1cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace080ba577fdd1add3ec0119990bb1cb"></a>
+virtual <a class="el" href="classsinga_1_1Msg.html">Msg</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>Put</b> (<a class="el" href="classsinga_1_1Msg.html">Msg</a> **msg)</td></tr>
+<tr class="separator:ace080ba577fdd1add3ec0119990bb1cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a4947ce4984da0ee4e1486c0d12810827"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4947ce4984da0ee4e1486c0d12810827"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>group_id_</b></td></tr>
+<tr class="separator:a4947ce4984da0ee4e1486c0d12810827"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0229dda3a527f7a6f650940c4aa54782"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0229dda3a527f7a6f650940c4aa54782"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>worker_id_</b></td></tr>
+<tr class="separator:a0229dda3a527f7a6f650940c4aa54782"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3259dbed95b02f78bfc46374b891b1b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae3259dbed95b02f78bfc46374b891b1b"></a>
+shared_ptr&lt; <a class="el" href="classsinga_1_1PMWorker.html#a2c6442319470a4f557921c7088338afc">ParamShard</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>shard_</b></td></tr>
+<tr class="separator:ae3259dbed95b02f78bfc46374b891b1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Parameter manager at the worker side. </p>
+</div><h2 class="groupheader">Member Typedef Documentation</h2>
+<a class="anchor" id="a2c6442319470a4f557921c7088338afc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef std::map&lt;int, shared_ptr&lt;<a class="el" href="classsinga_1_1ParamCounter.html">ParamCounter</a>&gt; &gt; <a class="el" href="classsinga_1_1PMWorker.html#a2c6442319470a4f557921c7088338afc">singa::PMWorker::ParamShard</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Workers from the same group resident in the same process share the same ParamShard which contains ParamCounters for <a class="el" href="classsinga_1_1Param.html">Param</a> objects used/updated by these worekrs. </p>
+<p>Shared <a class="el" href="classsinga_1_1Param.html">Param</a> objects are associated with the same <a class="el" href="classsinga_1_1ParamCounter.html" title="Counters used to construct a parameter shard. ">ParamCounter</a>. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="abc856cc69b3a638fd56dfeaa429f8a4f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual int singa::PMWorker::Sharding </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>param_id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>server id where the parameter is maintained. </dd></dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/wangwei/program/asf/incubator-singa/include/trainer/<a class="el" href="pm__worker_8h_source.html">pm_worker.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 7 2015 17:15:43 for Apache SINGA by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>